Créer une entité nommée personnalisée dans spaCy
Si les entités nommées intégrées de spaCy ne suffisent pas, vous pouvez créer les vôtres avec la classe EntityRuler() de spaCy.
EntityRuler() vous permet de définir vos propres entités à ajouter à un pipeline spaCy.
Commencez par créer une instance de EntityRuler() et passez-lui le pipeline actuel, nlp.
Vous pouvez ensuite appeler add_patterns() sur cette instance et lui passer un dictionnaire contenant le pattern (motif) de texte que vous souhaitez étiqueter avec une entité.
Une fois votre motif configuré, vous pouvez l’ajouter au pipeline nlp avec add_pipe().
Comme Acme est une entreprise technologique, vous décidez d’associer le motif "smartphone" à l’étiquette d’entité "PRODUCT".
spaCy a été importé et un doc existe déjà, contenant le texte transcrit depuis call_4_channel_2.wav file).
Cet exercice fait partie du cours
Traitement du langage parlé en Python
Instructions
- Importez
EntityRulerdepuisspacy.pipeline. - Ajoutez
"smartphone"comme valeur pour la clé"pattern". - Ajoutez l’instance
EntityRuler(),ruler, au pipelinenlp. - Affichez les attributs des entités contenus dans
doc.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Import EntityRuler class
from spacy.pipeline import ____
# Create EntityRuler instance
ruler = EntityRuler(nlp)
# Define pattern for new entity
ruler.add_patterns([{"label": "PRODUCT", "pattern": ____}])
# Update existing pipeline
nlp.add_pipe(____, before="ner")
# Test new entity
for entity in doc.____:
print(entity.text, entity.label_)