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).____])