EntityRuler с пустой моделью spaCy
EntityRuler позволяет добавлять сущности в doc.ents. Его можно сочетать с EntityRecognizer — компонентом конвейера spaCy для распознавания именованных сущностей — чтобы повысить точность, или использовать самостоятельно для реализации полностью основанной на правилах системы распознавания сущностей. В этом упражнении вы потренируетесь добавлять компонент EntityRuler в пустую английскую модель spaCy и классифицировать именованные сущности в заданном тексте text с помощью исключительно правилового подхода.
Пакет spaCy уже импортирован, а пустая английская модель spaCy доступна вам как nlp. Список шаблонов patterns для классификации OpenAI и Microsoft в нижнем регистре как ORG уже создан и готов к использованию.
Это упражнение является частью курса
Обработка естественного языка с помощью spaCy
Инструкции к упражнению
- Создайте компонент
EntityRulerи добавьте его в конвейер. - Добавьте заданные шаблоны в компонент
EntityRuler. - Запустите модель на заданном тексте
textи создайте соответствующий контейнерDoc. - Выведите кортеж (текст сущности и её тип) для всех сущностей в контейнере
Doc.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
nlp = spacy.blank("en")
patterns = [{"label": "ORG", "pattern": [{"LOWER": "openai"}]},
{"label": "ORG", "pattern": [{"LOWER": "microsoft"}]}]
text = "OpenAI has joined forces with Microsoft."
# Add EntityRuler component to the model
entity_ruler = nlp.____("entity_ruler")
# Add given patterns to the EntityRuler component
entity_ruler.____(____)
# Run the model on a given text
doc = nlp(____)
# Print entities text and type for all entities in the Doc container
print([(ent.____, ent.____) for ent in doc.____])