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 le composant de pipeline entity_ruler de spaCy.
Le composant entity_ruler vous permet de définir vos propres entités et de les ajouter à un pipeline spaCy.
Commencez par ajouter le composant au pipeline existant avec nlp.add_pipe(), en le plaçant before le composant "ner" afin que vos règles soient appliquées en premier. add_pipe() renvoie le composant ajouté.
Vous pouvez ensuite appeler add_patterns() sur ce composant et lui passer un dictionnaire décrivant le pattern textuel que vous souhaitez annoter avec une entité.
Comme Acme est une entreprise technologique, vous décidez d'étiqueter le motif "smartphone" avec le tag d'entité "PRODUCT".
spaCy a été importé et nlp contient un modèle en_core_web_sm chargé. Comme la modification d'un pipeline n'a aucun effet sur les documents déjà créés, vous recréerez le doc à partir du texte transcrit de call_4_channel_2.wav fichier une fois le nouveau composant en place.
Cet exercice fait partie du cours
<cours>Traitement du langage parlé en Python</cours>Instructions de l’exercice
- Ajoutez le composant
"entity_ruler"au pipelinenlp, avant le composant"ner", et enregistrez-le dansruler. - Ajoutez
"smartphone"comme valeur pour la clé"pattern". - Affichez les attributs des entités contenus dans
doc.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Add an entity_ruler component to the pipeline, before ner
ruler = nlp.add_pipe(____, before=____)
# Define pattern for new entity
ruler.add_patterns([{"label": "PRODUCT", "pattern": ____}])
# Recreate the doc so it uses the updated pipeline
doc = nlp(call_4_channel_2_text)
# Test new entity
for entity in doc.____:
print(entity.text, entity.label_)