Zacznij terazZacznij za darmo

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Zaimportuj EntityRuler z modułu spacy.pipeline.
  • Dodaj "smartphone" jako wartość klucza "pattern".
  • Dodaj instancję EntityRuler(), czyli ruler, do potoku nlp.
  • 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_)
Edytuj i uruchom kod