EntityRuler met een lege spaCy‑model
Met EntityRuler kun je entiteiten toevoegen aan doc.ents. Je kunt het combineren met EntityRecognizer, een spaCy-pijplijncomponent voor named entity recognition, om de nauwkeurigheid te verhogen, of het op zichzelf gebruiken voor een volledig regelgebaseerd entiteitsherkenningssysteem. In deze oefening ga je een EntityRuler-component toevoegen aan een leeg Engels spaCy-model en benoemde entiteiten in de gegeven text classificeren met puur regelgebaseerde named entity recognition.
Het spaCy-pakket is al geïmporteerd en een leeg Engels spaCy-model staat klaar als nlp. Er is al een lijst met patterns gemaakt om de lowercased OpenAI en Microsoft als ORG te classificeren.
Deze oefening maakt deel uit van de cursus
Natural Language Processing met spaCy
Oefeninstructies
- Maak een
EntityRuler-component en voeg die toe aan de pipeline. - Voeg de gegeven patterns toe aan de
EntityRuler-component. - Voer het model uit op de gegeven
texten maak de bijbehorendeDoc-container. - Print een tuple van (entiteitstekst en -typen) voor alle entiteiten in de
Doc-container
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
nlp = spacy.blank("en")
patterns = [{"label": "ORG", "pattern": [{"LOWER": "openai"}]},
{"label": "ORG", "pattern": [{"LOWER": "microsoft"}]}]
text = "OpenAI has joined forces with Microsoft."
# Add EntityRuler component to the model
entity_ruler = nlp.____("entity_ruler")
# Add given patterns to the EntityRuler component
entity_ruler.____(____)
# Run the model on a given text
doc = nlp(____)
# Print entities text and type for all entities in the Doc container
print([(ent.____, ent.____) for ent in doc.____])