Zacznij terazZacznij za darmo

Tworzenie własnej nazwanej jednostki w spaCy

Jeśli wbudowane nazwane jednostki w spaCy ci nie wystarczają, możesz stworzyć własne za pomocą komponentu entity_ruler z pipeline'u spaCy.

Komponent entity_ruler pozwala tworzyć własne jednostki i dodawać je do pipeline'u spaCy.

Na początek dodajesz komponent do istniejącego pipeline'u za pomocą nlp.add_pipe(), umieszczając go before komponentem "ner", dzięki czemu twoje reguły zostaną zastosowane jako pierwsze. add_pipe() zwraca dodany komponent.

Następnie możesz wywołać add_patterns() na tym komponencie i przekazać mu słownik ze wzorcem tekstu pattern, który chcesz oznaczyć jako jednostkę.

Ponieważ Acme jest firmą technologiczną, postanawiasz oznaczyć wzorzec "smartphone" tagiem jednostki "PRODUCT".

spaCy zostało już zaimportowane, a nlp zawiera wczytany model en_core_web_sm. Ponieważ zmiana pipeline'u nie wpływa na istniejące już dokumenty, po dodaniu nowego komponentu musisz na nowo utworzyć doc z tekstu transkrybowanego z pliku call_4_channel_2.wav plik.

To ćwiczenie jest częścią kursu

Przetwarzanie mowy w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Dodaj komponent "entity_ruler" do pipeline'u nlp, przed komponentem "ner", i zapisz go w zmiennej ruler.
  • Dodaj "smartphone" jako wartość dla klucza "pattern".
  • Wypisz atrybuty jednostek zawarte w doc.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# Add an entity_ruler component to the pipeline, before ner
ruler = nlp.add_pipe(____, before=____)

# Define pattern for new entity
ruler.add_patterns([{"label": "PRODUCT", "pattern": ____}])

# Recreate the doc so it uses the updated pipeline
doc = nlp(call_4_channel_2_text)

# Test new entity
for entity in doc.____:
  print(entity.text, entity.label_)
Edytuj i uruchom kod