Zacznij terazZacznij za darmo

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Zdefiniuj wzorzec dopasowujący numery telefonów w formacie 8888888888, który będzie używany przez komponent EntityRuler.
  • Wczytaj pusty model spaCy dla języka angielskiego i dodaj do potoku komponent EntityRuler.
  • 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.____])
Edytuj i uruchom kod