НачатьНачать бесплатно

Поиск одного термина с помощью Matcher в spaCy

Шаблоны RegEx непросто читать, писать и отлаживать. Однако у вас есть удобная альтернатива: spaCy предоставляет класс Matcher, который отличается наглядностью и подходит для использования в реальных проектах. Класс Matcher сопоставляет заранее определённые правила с последовательностью токенов в заданном контейнере Doc. В этом упражнении вы потренируетесь использовать Matcher для поиска отдельного слова.

Текст для анализа доступен в переменной example_text. Используйте nlp для доступа к модели spaCy и doc — к контейнеру Doc для example_text.

Это упражнение является частью курса

Обработка естественного языка с помощью 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)
Редактировать и запускать код