Tworzenie niestandardowej nazwanej encji w spaCy
Jeśli wbudowane nazwane encje biblioteki spaCy nie wystarczają, możesz tworzyć własne – za pomocą klasy EntityRuler().
EntityRuler() pozwala definiować własne encje i dodawać je do potoku spaCy.
Zaczynasz od utworzenia instancji EntityRuler() i przekazania jej bieżącego potoku, nlp.
Następnie wywołujesz na tej instancji metodę add_patterns(), przekazując jej słownik z wzorcem tekstowym pattern, który chcesz oznaczyć jako encję.
Gdy wzorzec jest już gotowy, dodajesz go do potoku nlp za pomocą add_pipe().
Ponieważ Acme jest firmą technologiczną, postanawiasz oznaczyć wzorzec "smartphone" tagiem encji "PRODUCT".
Biblioteka spaCy została już zaimportowana, a obiekt doc zawiera transkrybowany tekst z pliku call_4_channel_2.wav plik).
To ćwiczenie jest częścią kursu
Przetwarzanie mowy w Pythonie
Instrukcje do ćwiczenia
- Zaimportuj
EntityRulerz modułuspacy.pipeline. - Dodaj
"smartphone"jako wartość klucza"pattern". - Dodaj instancję
EntityRuler(), czyliruler, do potokunlp. - Wydrukuj atrybuty encji zawartych w obiekcie
doc.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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_)