Пошук одного терміна в spaCy
Шаблони RegEx не завжди просто читати, писати й налагоджувати. Проте у вас є альтернатива: у spaCy є зручний для читання та придатний до продакшну інструмент — клас Matcher. Клас Matcher може зіставляти заздалегідь визначені правила з послідовністю токенів у вказаному контейнері Doc. У цій вправі ви потренуєтеся використовувати Matcher, щоб знайти одне слово.
Ви можете звернутися до відповідного тексту через example_text, а також скористатися nlp і doc, щоб отримати модель spaCy та контейнер Doc для example_text відповідно.
Ця вправа є частиною курсу
Обробка природної мови (NLP) зі spaCy
Інструкції до вправи
- Ініціалізуйте клас
Matcher. - Визначте шаблон для збігу зі словом у нижньому регістрі
witchуexample_text. - Додайте шаблони до класу
Matcherі знайдіть збіги. - Ітеруйтеся за збігами та виведіть початковий і кінцевий індекси токенів і фрагмент знайденого тексту.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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)