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

EntityRuler с несколькими шаблонами в spaCy

EntityRuler позволяет добавлять сущности в doc.ents и повышать качество распознавания именованных сущностей. В этом упражнении вы потренируетесь добавлять компонент EntityRuler в существующий конвейер nlp, чтобы несколько сущностей корректно классифицировались.

Модель en_core_web_sm уже загружена и доступна как nlp. Пример текста хранится в переменной example_text; для работы с моделью spaCy и контейнером Doc для example_text используйте nlp и doc соответственно.

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

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

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

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

  • Выведите список кортежей с текстом и типами сущностей из example_text, используя модель nlp.
  • Определите несколько шаблонов для сопоставления слов brother и sisters в нижнем регистре с меткой PERSON.
  • Добавьте компонент EntityRuler в конвейер nlp и передайте в него список patterns.
  • Выведите кортежи с текстом и типом сущностей для example_text, используя модель nlp.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

nlp = spacy.load("en_core_web_md")

# Print a list of tuples of entities text and types in the example_text
print("Before EntityRuler: ", [____ for ____ in nlp(____).____], "\n")

# Define pattern to add a label PERSON for lower cased sisters and brother entities
patterns = [{"label": ____, "pattern": [{"lower": ____}]},
            {"label": ____, "pattern": [{"lower": ____}]}]

# Add an EntityRuler component and add the patterns to the ruler
ruler = nlp.____("entity_ruler")
ruler.____(____)

# Print a list of tuples of entities text and types
print("After EntityRuler: ", [(ent.____, ent.____) for ent in nlp(example_text).____])
Редактировать и запускать код