CommencerCommencer gratuitement

RegEx avec EntityRuler dans spaCy

Les expressions régulières (RegEx) servent à extraire des informations selon des règles, en s’appuyant sur des motifs de chaînes complexes. Vous pouvez les utiliser pour retrouver des motifs ou remplacer les correspondances dans une chaîne par d’autres motifs. Dans cet exercice, vous allez utiliser EntityRuler de spaCy pour détecter des adresses e‑mail dans un text donné.

Le paquet spaCy est déjà importé. Vous pouvez utiliser \d pour faire correspondre un métacaractère représentant n’importe quel 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>"}}].

Cet exercice fait partie du cours

Traitement du langage naturel avec spaCy

Afficher le cours

Instructions

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

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

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