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

Создание пользовательской именованной сущности в spaCy

Если встроенных именованных сущностей spaCy недостаточно, вы можете создать собственные с помощью класса EntityRuler().

EntityRuler() позволяет определять пользовательские сущности и добавлять их в конвейер spaCy.

Для начала создайте экземпляр EntityRuler() и передайте ему текущий конвейер nlp.

Затем вызовите метод add_patterns() на этом экземпляре и передайте ему словарь с текстовым шаблоном pattern, которому нужно присвоить метку сущности.

После настройки шаблона добавьте его в конвейер nlp с помощью add_pipe().

Поскольку Acme Studios — технологическая компания, вы решаете пометить шаблон "smartphone" тегом сущности "PRODUCT".

Библиотека spaCy уже импортирована, а объект doc создан и содержит текст, расшифрованный из файла call_4_channel_2.wav file).

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

Обработка устной речи на Python

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

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

  • Импортируйте EntityRuler из spacy.pipeline.
  • Добавьте "smartphone" в качестве значения для ключа "pattern".
  • Добавьте экземпляр EntityRuler(), ruler, в конвейер nlp.
  • Выведите атрибуты сущностей, содержащихся в объекте doc.

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

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

# Import EntityRuler class
from spacy.pipeline import ____

# Create EntityRuler instance
ruler = EntityRuler(nlp)

# Define pattern for new entity
ruler.add_patterns([{"label": "PRODUCT", "pattern": ____}])

# Update existing pipeline
nlp.add_pipe(____, before="ner")

# Test new entity
for entity in doc.____:
  print(entity.text, entity.label_)
Редактировать и запускать код