Začněte nyníZačněte zdarma

RegEx s EntityRuler v spaCy

Regulární výrazy (RegEx) slouží k extrakci informací na základě pravidel pomocí komplexních vzorů pro porovnávání řetězců. RegEx umožňuje vyhledávat vzory v řetězci nebo nahrazovat nalezené shody jinými vzory. V tomto cvičení si procvičíš použití EntityRuler v spaCy k nalezení e-mailových adres v daném textu.

Balíček spaCy je už naimportovaný. Pro porovnávání vzorů číslic můžeš použít \d — tento metaznak odpovídá libovolné číslici od 0 do 9.

Vzor v spaCy může jako atribut používat REGEX. V takovém případě má vzor tvar [{"TEXT": {"REGEX": "<daný vzor>"}}].

Toto cvičení je součástí kurzu

Zpracování přirozeného jazyka s knihovnou spaCy

Zobrazit kurz

Pokyny k cvičení

  • Definuj vzor pro porovnávání telefonních čísel ve formátu 8888888888, který bude používat EntityRuler.
  • Načti prázdný anglický model spaCy a přidej do pipeline komponentu EntityRuler.
  • Přidej sestavený vzor do komponenty EntityRuler.
  • Spusť model a vypiš n-tici s textem a typem entit pro daný text.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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.____])
Upravit a spustit kód