"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > ETL: 텍스트에서 사람 이름 추출

ETL: 텍스트에서 사람 이름 추출

2024-11-07에 게시됨
검색:961

chicagomusiccompass.com.

을 스크래핑한다고 가정해 보겠습니다.

보시다시피 카드에는 여러 장의 카드가 있으며 각각은 이벤트를 나타냅니다. 이제 다음 항목을 확인해 보겠습니다.

ETL: Extracting a Person

이벤트 이름은 다음과 같습니다.


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

멋지죠? 이름을 추출하는 지루한 논리는 더 이상 필요하지 않습니다. 모델을 사용하면 됩니다. 물론 가능한 모든 경우를 다룰 수는 없지만 내 프로젝트에서는 이 수준의 유연성이 잘 작동합니다. 더 높은 정확성이 필요한 경우 언제든지 다음을 수행할 수 있습니다.

  • 다른 모델을 사용해 보세요
  • 기존 모델에 기여
  • 프로젝트를 포크하고 필요에 맞게 조정

결론

소프트웨어 개발자로서 기계 학습 공간의 도구에 대한 최신 정보를 지속적으로 얻는 것이 좋습니다. 단순한 프로그래밍과 논리만으로 모든 것을 해결할 수는 없습니다. 모델과 통계를 사용하면 일부 문제를 더 잘 해결할 수 있습니다.

릴리스 선언문 이 글은 https://dev.to/garciadiazjaime/etl-extracting-a-persons-name-from-text-ahl?1에서 복제됩니다.1 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3