EntityRuler für NER
EntityRuler kann mit dem EntityRecognizer eines vorhandenen Modells kombiniert werden, um die Genauigkeit zu erhöhen. In dieser Übung übst du, eine EntityRuler-Komponente mit einer vorhandenen NER-Komponente des Modells en_core_web_sm zu kombinieren. Das Modell ist bereits als nlp geladen.
Wenn EntityRuler vor der NER-Komponente hinzugefügt wird, respektiert der Entity Recognizer die vorhandenen Entitätsspannen und passt seine Vorhersagen auf Basis der zum EntityRuler hinzugefügten Muster an, um die Genauigkeit der Erkennung benannter Entitäten zu verbessern.
Diese Übung ist Teil des Kurses
Natural Language Processing mit spaCy
Anleitung zur Übung
- Füge einen
EntityRulervor der Komponentenerzunlphinzu. - Definiere ein Token-Entitätsmuster, um das kleingeschriebene
new york groupalsORGzu klassifizieren. - Füge die
patternszurEntityRuler-Komponente hinzu. - Führe das Modell aus und gib das Tupel aus Entitätstext und -typ für den
Doc-Container aus.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
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.____])