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
Instructions de l’exercice
- Définissez un motif pour faire correspondre des numéros de téléphone de la forme
8888888888à utiliser parEntityRuler. - Chargez un modèle anglais vierge de
spaCyet ajoutez un composantEntityRulerau 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
textfourni.
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.____])