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

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.____])
Редактировать и запускать код