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 transmettez-lui le pipeline courant, nlp.
Vous pouvez ensuite appeler add_patterns() sur l'instance et lui passer un dictionnaire contenant le pattern de texte que vous souhaitez étiqueter avec une entité.
Une fois le motif configuré, vous pouvez l'ajouter au pipeline nlp avec add_pipe().
Comme Acme est une entreprise technologique, vous décidez d'étiqueter le motif "smartphone" avec l'étiquette d'entité "PRODUCT".
spaCy a été importé et un doc existe déjà, contenant le texte transcrit de call_4_channel_2.wav file).
Cette activité fait partie du cours
Traitement de la langue parlée en Python
Instructions de l’exercice
- Importez
EntityRulerdespacy.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 ce code d’exemple.
# 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_)