chicagomusiccompass.com을 스크랩하고 싶다고 가정해 보겠습니다.
보시다시피 카드에는 각각 이벤트를 나타내는 여러 개의 카드가 있습니다. 이제 다음 내용을 살펴보겠습니다.
이벤트 이름은 다음과 같습니다.
jazmin bean: the traumatic livelihood tour
이제 질문은 이렇습니다. 텍스트에서 아티스트 이름을 어떻게 추출하나요?
인간으로서 Jazmin Bean이 아티스트라는 것을 "쉽게" 알 수 있습니다. 위키 페이지를 확인해 보세요. 하지만 해당 이름을 추출하는 코드를 작성하는 것은 까다로울 수 있습니다.
'야, : 앞에는 작가 이름이 있어야지'라고 생각할 수도 있겠네요. 참 현명해 보이죠? 이 경우에는 효과가 있지만 이번 경우는 어떻습니까?
happy hour on the patio: kathryn & chris
여기서는 순서가 뒤집어졌습니다. 다양한 사례를 처리하기 위해 논리를 계속 추가할 수 있지만 곧 깨지기 쉽고 모든 것을 다루지는 못할 수많은 규칙이 생기게 될 것입니다.
여기서 명명된 엔터티 인식(NER) 모델이 유용합니다. 오픈 소스이며 텍스트에서 이름을 추출하는 데 도움이 될 수 있습니다. 모든 사건을 포착할 수는 없지만 대부분의 경우 필요한 정보를 얻을 수 있습니다.
이 방법을 사용하면 추출이 훨씬 쉬워집니다. 저는 Python의 머신러닝 관련 커뮤니티가 매우 훌륭하기 때문에 Python을 선택합니다.
from gliner import GLiNER model = GLiNER.from_pretrained("urchade/gliner_base") text = "jazmin bean: the traumatic livelihood tour" labels = ["person", "bands", "projects"] entities = model.predict_entities(text, labels) for entity in entities: print(entity["text"], "=>", entity["label"])
출력을 생성하는 방법:
jazmin bean => person
이제 다른 사례를 살펴보겠습니다.
happy hour on the patio: kathryn & chris
출력:
kathryn => person chris => person
소스-GLiNER
굉장하죠? 이름을 추출하는 지루한 논리는 더 이상 필요하지 않습니다. 모델을 사용하면 됩니다. 물론 가능한 모든 경우를 다룰 수는 없지만 내 프로젝트에서는 이 수준의 유연성이 잘 작동합니다. 더 높은 정확성이 필요한 경우 언제든지 다음을 수행할 수 있습니다.
소프트웨어 개발자로서 머신러닝 분야의 도구에 대한 최신 정보를 지속적으로 얻는 것이 좋습니다. 단순한 프로그래밍과 논리만으로 모든 것을 해결할 수는 없습니다. 일부 과제는 모델과 통계를 사용하여 더 잘 해결할 수 있습니다.
위 내용은 ETL: 텍스트에서 사람 이름 추출의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!