EntityRuler z wieloma wzorcami w spaCy
EntityRuler pozwala dodawać encje do doc.ents i zwiększać skuteczność rozpoznawania nazwanych encji. W tym ćwiczeniu przećwiczysz dodawanie komponentu EntityRuler do istniejącego potoku nlp, aby kilka encji było poprawnie klasyfikowanych.
Model en_core_web_sm jest już wczytany i dostępny jako nlp. Przykładowy tekst znajdziesz w zmiennej example_text. Użyj nlp i doc, aby uzyskać dostęp odpowiednio do modelu spaCy i kontenera Doc dla example_text.
To ćwiczenie jest częścią kursu
Przetwarzanie języka naturalnego z użyciem spaCy
Instrukcje do ćwiczenia
- Wyświetl listę krotek zawierających tekst i typ encji z
example_textprzy użyciu modelunlp. - Zdefiniuj wiele wzorców dopasowujących tokeny
brotherisisterszapisane małymi literami do etykietyPERSON. - Dodaj komponent
EntityRulerdo potokunlpi przypisz do niego zmiennąpatterns. - Wyświetl krotki zawierające tekst i typ encji dla
example_textprzy użyciu modelunlp.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
nlp = spacy.load("en_core_web_md")
# Print a list of tuples of entities text and types in the example_text
print("Before EntityRuler: ", [____ for ____ in nlp(____).____], "\n")
# Define pattern to add a label PERSON for lower cased sisters and brother entities
patterns = [{"label": ____, "pattern": [{"lower": ____}]},
{"label": ____, "pattern": [{"lower": ____}]}]
# Add an EntityRuler component and add the patterns to the ruler
ruler = nlp.____("entity_ruler")
ruler.____(____)
# Print a list of tuples of entities text and types
print("After EntityRuler: ", [(ent.____, ent.____) for ent in nlp(example_text).____])