НачатьНачать бесплатно

EntityRuler для NER

EntityRuler можно сочетать с EntityRecognizer уже существующей модели, чтобы повысить её точность. В этом упражнении вы потренируетесь совмещать компонент EntityRuler с компонентом NER из модели en_core_web_sm. Модель уже загружена как nlp.

Если EntityRuler добавлен перед компонентом NER, распознаватель сущностей будет учитывать уже имеющиеся спены сущностей и скорректирует свои предсказания на основе шаблонов, добавленных в EntityRuler, — это позволяет повысить точность задачи распознавания именованных сущностей.

Это упражнение является частью курса

Обработка естественного языка с помощью spaCy

Посмотреть курс

Инструкции к упражнению

  • Добавьте EntityRuler в конвейер nlp перед компонентом ner.
  • Определите шаблон токенов, чтобы классифицировать строку 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.____])
Редактировать и запускать код