CommencezCommencez 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 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

Voir le cours

Instructions de l’exercice

  • Importez EntityRuler de spacy.pipeline.
  • Ajoutez "smartphone" comme valeur pour la clé "pattern".
  • Ajoutez l'instance EntityRuler(), ruler, au pipeline nlp.
  • 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_)
Modifier et exécuter le code