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
Pokyny k cvičení
- Vytvoř objekt matcheru pomocí
Matcheranlp. - Pomocí operátoru
INdefinuj vzor pro shodu s výrazytiny squaresatiny 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)