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

PhraseMatcher v spaCy

Při zpracování nestrukturovaného textu se často setkáš s dlouhými seznamy a slovníky, které potřebuješ v textu vyhledat a porovnat. Vzory pro Matcher se vytváří ručně a každý token je nutné kódovat zvlášť. Pokud máš dlouhý seznam frází, Matcher přestává být tou nejlepší volbou. V takovém případě přichází ke slovu třída PhraseMatcher, která umožňuje porovnávat rozsáhlé slovníky. V tomto cvičení si procvičíš vyhledávání vzorů odpovídajících tvarům více výrazů pomocí třídy PhraseMatcher.

Model en_core_web_sm je už načtený a připravený k použití jako nlp. Třída PhraseMatcher je naimportovaná. K dispozici máš řetězec text a seznam terms.

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

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

Zobrazit kurz

Pokyny k cvičení

  • Inicializuj třídu PhraseMatcher s argumentem attr tak, aby hledala shody podle tvaru zadaných výrazů terms.
  • Vytvoř patterns, které přidáš do objektu PhraseMatcher.
  • Najdi shody pro zadané vzory a vypiš indexy počátečního a koncového tokenu spolu s odpovídající částí textu 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 = "There are only a few acceptable IP addresse: (1) 127.100.0.1, (2) 123.4.1.0."
terms = ["110.0.0.0", "101.243.0.0"]

# Initialize a PhraseMatcher class to match to shapes of given terms
matcher = ____(nlp.____, attr = ____)

# Create patterns to add to the PhraseMatcher object
patterns = [nlp.make_doc(____) for term in terms]
matcher.____("IPAddresses", patterns)

# Find matches to the given patterns and print start and end characters and matches texts
doc = ____
matches = ____
for match_id, start, end in matches:
    print("Start token: ", ____, " | End token: ", ____, "| Matched text: ", doc[____:____].text)
Upravit a spustit kód