CommencerCommencez gratuitement

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>
Voir le cours

Instructions de l’exercice

  • Ajoutez le composant "entity_ruler" au pipeline nlp, avant le composant "ner", et enregistrez-le dans ruler.
  • 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_)
Modifier et exécuter le code