CommencezCommencez gratuitement

RegEx avec EntityRuler dans spaCy

Les expressions régulières, ou RegEx, servent à l'extraction d'information basée sur des règles avec des motifs de correspondance complexes. RegEx peut être utilisé pour repérer des motifs ou remplacer, dans une chaîne, les occurrences correspondant à un motif par d'autres motifs. Dans cet exercice, vous pratiquerez l'utilisation de EntityRuler dans spaCy pour trouver des adresses courriel dans un text donné.

Le module spaCy est déjà importé pour vous. Vous pouvez utiliser \d pour faire correspondre des motifs de chaîne représentant un métacaractère qui correspond à tout chiffre de 0 à 9.

Un motif spaCy peut utiliser REGEX comme attribut. Dans ce cas, un motif aura la forme [{"TEXT": {"REGEX": "<a given pattern>"}}].

Cette activité fait partie du cours

Traitement du langage naturel avec spaCy

Voir le cours

Instructions de l’exercice

  • Définissez un motif pour faire correspondre des numéros de téléphone de la forme 8888888888 à utiliser par EntityRuler.
  • Chargez un modèle anglais vierge de spaCy et ajoutez un composant EntityRuler au pipeline.
  • Ajoutez le motif compilé au composant EntityRuler.
  • Exécutez le modèle et affichez le tuple du texte et du type des entités pour le text fourni.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

text = "Our phone number is 4251234567."

# Define a pattern to match phone numbers
patterns = [{"label": "PHONE_NUMBERS", "pattern": [{"TEXT": {"REGEX": "(____){____}"}}]}]

# Load a blank model and add an EntityRuler
nlp = spacy.____("en")
ruler = nlp.____("entity_ruler")

# Add the compiled patterns to the EntityRuler
ruler.____(patterns)

# Print the tuple of entities texts and types for the given text
doc = ____(____)
print([(ent.____, ent.____) for ent in doc.____])
Modifier et exécuter le code