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
멋지죠? 이름을 추출하는 지루한 논리는 더 이상 필요하지 않습니다. 모델을 사용하면 됩니다. 물론 가능한 모든 경우를 다룰 수는 없지만 내 프로젝트에서는 이 수준의 유연성이 잘 작동합니다. 더 높은 정확성이 필요한 경우 언제든지 다음을 수행할 수 있습니다.
소프트웨어 개발자로서 기계 학습 공간의 도구에 대한 최신 정보를 지속적으로 얻는 것이 좋습니다. 단순한 프로그래밍과 논리만으로 모든 것을 해결할 수는 없습니다. 모델과 통계를 사용하면 일부 문제를 더 잘 해결할 수 있습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3