RegEx cu EntityRuler în spaCy
Expresiile regulate, sau RegEx, sunt folosite pentru extragerea de informații bazată pe reguli, prin tipare complexe de potrivire a șirurilor de caractere. RegEx poate fi utilizat pentru a găsi tipare într-un șir sau pentru a înlocui tiparele identificate cu alte șiruri. În acest exercițiu, vei exersa utilizarea EntityRuler în spaCy pentru a găsi adrese de email într-un text dat.
Pachetul spaCy este deja importat. Poți folosi \d pentru a potrivi tipare de șiruri care reprezintă un metacaracter ce identifică orice cifră de la 0 la 9.
Un tipar spaCy poate folosi REGEX ca atribut. În acest caz, tiparul va avea forma [{"TEXT": {"REGEX": "<un tipar dat>"}}].
Acest exercițiu face parte din cursul
Procesarea limbajului natural cu spaCy
Instrucțiuni pentru exercițiu
- Definește un tipar pentru a potrivi numere de telefon de forma
8888888888, care să fie folosit deEntityRuler. - Încarcă un model
spaCygol pentru limba engleză și adaugă o componentăEntityRulerla pipeline. - Adaugă tiparul compilat la componenta
EntityRuler. - Rulează modelul și afișează tuplul cu textul și tipul entităților identificate pentru
text-ul dat.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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.____])