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

Afficher le cours

Instructions

  • Importez EntityRuler depuis 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 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_)
Modifier et exécuter le code