IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Definisci un pattern per far combaciare numeri di telefono della forma 8888888888 da usare con EntityRuler.
  • Carica un modello inglese vuoto di spaCy e aggiungi un componente EntityRuler alla pipeline.
  • Aggiungi il pattern compilato al componente EntityRuler.
  • Esegui il modello e stampa la tupla di testo e tipo di entità per il text fornito.

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.____])
Modifica ed esegui il codice