Vytvoření vlastní pojmenované entity ve spaCy
Pokud ti vestavěné pojmenované entity ve spaCy nestačí, můžeš si vytvořit vlastní pomocí komponenty pipeline entity_ruler.
Komponenta entity_ruler ti umožní vytvořit vlastní entity a přidat je do pipeline spaCy.
Nejdřív přidáš komponentu do existující pipeline pomocí nlp.add_pipe() a umístíš ji before komponentu "ner", aby se tvá pravidla použila jako první. add_pipe() vrací komponentu, kterou přidal.
Poté na komponentě zavoláš add_patterns() a předáš jí slovník s textovým pattern, který chceš označit entitou.
Jelikož je Acme technologická společnost, rozhodneš se označit vzor "smartphone" entitním tagem "PRODUCT".
spaCy je už naimportovaná a nlp obsahuje načtený model en_core_web_sm. Jelikož změna pipeline nemá vliv na už existující dokumenty, jakmile bude nová komponenta na místě, znovu vytvoříš doc z přepsaného textu souboru call_4_channel_2.wav file.
Toto cvičení je součástí kurzu
Zpracování mluveného jazyka v Pythonu
Pokyny k cvičení
- Přidej komponentu
"entity_ruler"do pipelinenlp, před komponentu"ner", a ulož ji do proměnnéruler. - Jako hodnotu klíče
"pattern"přidej"smartphone". - Vypiš atributy entit obsažených v
doc.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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_)