EntityRuler для NER
EntityRuler можна поєднувати з EntityRecognizer наявної моделі, щоб підвищити її точність. У цій вправі ви попрактикуєтеся поєднувати компонент EntityRuler і наявний компонент NER моделі en_core_web_sm. Модель уже завантажено як nlp.
Коли EntityRuler додано перед компонентом NER, розпізнавач сутностей враховує наявні проміжки сутностей і коригує свої передбачення на основі взірців, доданих до EntityRuler, щоб поліпшити точність завдання розпізнавання іменованих сутностей.
Ця вправа є частиною курсу
Обробка природної мови (NLP) зі 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.____])