Створення власної іменованої сутності в spaCy
Якщо вбудованих іменованих сутностей spaCy недостатньо, ви можете створити власні за допомогою класу EntityRuler() у spaCy.
EntityRuler() дає змогу створювати власні сутності й додавати їх до конвеєра spaCy.
Почніть зі створення екземпляра EntityRuler() і передайте йому поточний конвеєр nlp.
Потім викличте add_patterns() для цього екземпляра та передайте словник із текстовим pattern, який ви хочете позначити сутністю.
Після того як налаштуєте взірець, додайте його до конвеєра nlp за допомогою add_pipe().
Оскільки Acme — технологічна компанія, ви вирішили позначити взірець "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_)