RegEx con EntityRuler in spaCy
Le espressioni regolari, o RegEx, si usano per l’estrazione di informazioni basata su regole con pattern complessi di corrispondenza su stringhe. Con le RegEx puoi recuperare pattern o sostituire in una stringa i pattern corrispondenti con altri. In questo esercizio farai pratica con EntityRuler in spaCy per trovare indirizzi email nel text fornito.
Il pacchetto spaCy è già importato. Puoi usare \d per far combaciare pattern di stringa che rappresentano un metacarattere che corrisponde a qualsiasi cifra da 0 a 9.
Un pattern di spaCy può usare REGEX come attributo. In questo caso, un pattern avrà la forma [{"TEXT": {"REGEX": "<a given pattern>"}}].
Questo esercizio fa parte del corso
Natural Language Processing con spaCy
Istruzioni dell'esercizio
- Definisci un pattern per far combaciare numeri di telefono della forma
8888888888da usare conEntityRuler. - Carica un modello inglese vuoto di
spaCye aggiungi un componenteEntityRuleralla pipeline. - Aggiungi il pattern compilato al componente
EntityRuler. - Esegui il modello e stampa la tupla di testo e tipo di entità per il
textfornito.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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.____])