RegEx z EntityRuler w spaCy
Wyrażenia regularne (RegEx) służą do ekstrakcji informacji na podstawie reguł i złożonych wzorców dopasowywania ciągów tekstowych. Za pomocą RegEx można wyszukiwać wzorce w tekście lub zastępować pasujące fragmenty innymi ciągami. W tym ćwiczeniu przećwiczysz użycie komponentu EntityRuler w bibliotece spaCy do wyszukiwania adresów e-mail w podanym tekście (text).
Pakiet spaCy jest już zaimportowany. Do dopasowywania cyfr od 0 do 9 możesz użyć metaznaku \d.
Wzorzec w spaCy może używać atrybutu REGEX. W takim przypadku wzorzec ma postać: [{"TEXT": {"REGEX": "<dany wzorzec>"}}].
To ćwiczenie jest częścią kursu
Przetwarzanie języka naturalnego z użyciem spaCy
Instrukcje do ćwiczenia
- Zdefiniuj wzorzec dopasowujący numery telefonów w formacie
8888888888, który będzie używany przez komponentEntityRuler. - Wczytaj pusty model
spaCydla języka angielskiego i dodaj do potoku komponentEntityRuler. - Dodaj skompilowany wzorzec do komponentu
EntityRuler. - Uruchom model i wypisz krotki zawierające tekst oraz typ encji dla podanego
text.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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.____])