NER를 위한 EntityRuler
EntityRuler는 기존 모델의 EntityRecognizer와 결합해 정확도를 높일 수 있습니다. 이 연습 문제에서는 en_core_web_sm 모델의 기존 NER 구성 요소와 EntityRuler 구성 요소를 결합해 보겠습니다. 모델은 이미 nlp로 로드되어 있어요.
EntityRuler를 NER 구성 요소 앞에 추가하면, 엔터티 인식기는 기존 엔터티 범위를 존중하고 EntityRuler에 추가된 패턴을 바탕으로 예측을 조정하여 개체명 인식 작업의 정확도를 향상시킵니다.
이 연습은 강의의 일부입니다
spaCy로 배우는 자연어 처리
연습 안내
ner구성 요소보다 앞에EntityRuler를nlp에 추가하세요.- 소문자
new york group을ORG로 분류하는 토큰 엔터티 패턴을 정의하세요. - 정의한
patterns를EntityRuler구성 요소에 추가하세요. - 모델을 실행하고
Doc컨테이너에 대한 엔터티의 텍스트와 타입 튜플을 출력하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
nlp = spacy.load("en_core_web_sm")
text = "New York Group was built in 1987."
# Add an EntityRuler to the nlp before NER component
ruler = nlp.____("entity_ruler", ____="ner")
# Define a pattern to classify lower cased new york group as ORG
patterns = [{"label": "ORG", "pattern": [{"lower": ____}]}]
# Add the patterns to the EntityRuler component
ruler.____(____)
# Run the model and print entities text and type for all the entities
doc = ____
print([(ent.____, ent.____) for ent in doc.____])