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
Pokyny k cvičení
- Definuj vzor pro porovnávání telefonních čísel ve formátu
8888888888, který bude používatEntityRuler. - Načti prázdný anglický model
spaCya přidej do pipeline komponentuEntityRuler. - 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.____])