EntityRuler för NER
EntityRuler kan kombineras med EntityRecognizer i en befintlig modell för att förbättra dess träffsäkerhet. I den här övningen får du öva på att kombinera en EntityRuler-komponent med en befintlig NER-komponent från modellen en_core_web_sm. Modellen är redan inläst som nlp.
När EntityRuler läggs till före NER-komponenten respekterar entitetsigenkännaren befintliga entitetsspann och anpassar sina förutsägelser baserat på de mönster som lagts till i EntityRuler, vilket förbättrar träffsäkerheten för namngivna entiteter.
Den här övningen är en del av kursen
Naturlig språkbehandling med spaCy
Övningsinstruktioner
- Lägg till en
EntityRulerinlpförener-komponenten. - Definiera ett token-entitetsmönster som klassificerar gemena
new york groupsomORG. - Lägg till
patternsiEntityRuler-komponenten. - Kör modellen och skriv ut tupeln med entiteternas text och typ för
Doc-behållaren.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
nlp = spacy.load("en_core_web_sm")
text = "New York Group was built in 1987."
# Add an EntityRuler to the nlp before NER component
ruler = nlp.____("entity_ruler", ____="ner")
# Define a pattern to classify lower cased new york group as ORG
patterns = [{"label": "ORG", "pattern": [{"lower": ____}]}]
# Add the patterns to the EntityRuler component
ruler.____(____)
# Run the model and print entities text and type for all the entities
doc = ____
print([(ent.____, ent.____) for ent in doc.____])