Hledání jednoho výrazu pomocí spaCy
Regulární výrazy se píší, čtou i ladí poměrně složitě. spaCy ale nabízí čitelnou alternativu pro produkční použití – třídu Matcher. Ta umožňuje porovnávat předdefinovaná pravidla s posloupností tokenů v daném kontejneru Doc. V tomto cvičení si procvičíš práci s Matcher při hledání jediného slova.
Text máš k dispozici v proměnné example_text. Model spaCy a kontejner Doc pro tento text ti poskytují proměnné nlp a doc.
Toto cvičení je součástí kurzu
Zpracování přirozeného jazyka s knihovnou spaCy
Pokyny k cvičení
- Inicializuj třídu
Matcher. - Definuj vzor pro hledání slova
witchv malých písmenech vexample_text. - Přidej vzory do třídy
Matchera vyhledej shody. - Projdi nalezené shody a vypiš indexy tokenů
startaendspolu s úsekem nalezeného textu.
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)
# Initialize a Matcher object
matcher = Matcher(nlp.____)
# Define a pattern to match lower cased word witch
pattern = [{"lower" : ____}]
# Add the pattern to matcher object and find matches
matcher.add("CustomMatcher", [____])
matches = matcher(____)
# Print start and end token indices and span of the matched text
for match_id, start, end in matches:
print("Start token: ", ____, " | End token: ", ____, "| Matched text: ", doc[____:____].text)