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

Shoda s rozšířenou syntaxí v spaCy

Extrakce informací na základě pravidel je klíčovou součástí každého NLP pipeline. Třída Matcher umožňuje definovat výrazové vzory pomocí operátorů uvnitř složených závorek. Tyto operátory slouží k rozšířenému porovnávání a svou syntaxí připomínají Pythonovy operátory in, not in a srovnávací operátory. V tomto cvičení si procvičíš funkci porovnávání v spaCy pomocí třídy Matcher – a to tak, že v ukázkovém textu vyhledáš shody pro zadané výrazy.

Třída Matcher je již naimportována z knihovny spacy.matcher. V tomto cvičení budeš pracovat s kontejnerem Doc pro ukázkový text, který získáš voláním doc. K dispozici máš také předem načtený model spaCy dostupný jako nlp.

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

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

Zobrazit kurz

Pokyny k cvičení

  • Vytvoř objekt matcheru pomocí Matcher a nlp.
  • Pomocí operátoru IN definuj vzor pro shodu s výrazy tiny squares a tiny mouthful.
  • Použij tento vzor k vyhledání shod v doc.
  • Vypiš indexy počátečního a koncového tokenu a textový úsek nalezených shod.

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

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

nlp = spacy.load("en_core_web_sm")
doc = nlp(example_text)

# Define a matcher object
matcher = Matcher(nlp.____)
# Define a pattern to match tiny squares and tiny mouthful
pattern = [{"lower": ____}, {"lower": {____: ["squares", "mouthful"]}}]

# Add the pattern to matcher object and find matches
matcher.____("CustomMatcher", [____])
matches = ____(____)

# Print out start and end token indices and the matched text span per match
for match_id, start, end in matches:
    print("Start token: ", ____, " | End token: ", ____, "| Matched text: ", doc[____:____].text)
Upravit a spustit kód