시작하기무료로 시작하기

spaCy에서 사용자 지정 개체명 만들기

spaCy의 기본 개체명 인식만으로 충분하지 않을 때는, EntityRuler() 클래스를 사용해 직접 만들 수 있어요.

EntityRuler()를 사용하면 spaCy 파이프라인에 추가할 사용자 지정 엔터티를 정의할 수 있어요.

먼저 EntityRuler() 인스턴스를 만들고 현재 파이프라인인 nlp를 전달해요.

그다음 인스턴스에서 add_patterns()를 호출해, 엔터티로 지정하고 싶은 텍스트 pattern을 담은 딕셔너리를 전달해요.

패턴을 설정했다면 add_pipe()를 사용해 nlp 파이프라인에 추가할 수 있어요.

Acme가 기술 회사이므로, "smartphone" 패턴에 "PRODUCT" 엔터티 태그를 붙이기로 했어요.

spaCy는 이미 임포트되어 있고, doc에는 call_4_channel_2.wav file의 음성을 전사한 텍스트가 들어 있어요.

이 연습은 강의의 일부입니다

Python으로 배우는 음성 언어 처리

강의 보기

연습 안내

  • spacy.pipeline에서 EntityRuler를 임포트하세요.
  • "pattern" 키의 값으로 "smartphone"을 추가하세요.
  • EntityRuler() 인스턴스 rulernlp 파이프라인에 추가하세요.
  • doc에 들어 있는 엔터티 속성을 출력하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# Import EntityRuler class
from spacy.pipeline import ____

# Create EntityRuler instance
ruler = EntityRuler(nlp)

# Define pattern for new entity
ruler.add_patterns([{"label": "PRODUCT", "pattern": ____}])

# Update existing pipeline
nlp.add_pipe(____, before="ner")

# Test new entity
for entity in doc.____:
  print(entity.text, entity.label_)
코드 편집 및 실행