Kom igångKom igång gratis

Skapa en egen namngiven entitet i spaCy

Om spaCy:s inbyggda namngivna entiteter inte räcker till kan du skapa dina egna med spaCy:s pipelinekomponent entity_ruler.

Komponenten entity_ruler gör att du kan skapa egna entiteter och lägga till dem i en spaCy-pipeline.

Du börjar med att lägga till komponenten i den befintliga pipelinen med nlp.add_pipe(), och placerar den before komponenten "ner" så att dina egna regler tillämpas först. add_pipe() returnerar komponenten den lade till.

Sedan kan du anropa add_patterns() på komponenten och skicka med en dictionary med textmönstret (pattern) du vill märka med en entitet.

Eftersom Acme är ett teknikföretag bestämmer du dig för att märka mönstret "smartphone" med entitetstaggen "PRODUCT".

spaCy har importerats och nlp innehåller en inladdad en_core_web_sm-modell. Eftersom en ändring av en pipeline inte påverkar redan existerande doc-objekt kommer du att återskapa doc från den transkriberade texten i call_4_channel_2.wav file när den nya komponenten är på plats.

Den här övningen är en del av kursen

Taligenkänning i Python

Visa kurs

Övningsinstruktioner

  • Lägg till komponenten "entity_ruler" i pipelinen nlp, före komponenten "ner", och spara den i ruler.
  • Lägg till "smartphone" som värde för nyckeln "pattern".
  • Skriv ut entitetsattributen som finns i doc.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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_)
Redigera och kör kod