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