ПочатиПочніть безкоштовно

Зіставлення з розширеним синтаксисом у spaCy

Правиловий (rule-based) витяг інформації є важливою частиною будь-якого конвеєра NLP. Клас Matcher робить шаблони виразнішими, дозволяючи використовувати деякі оператори всередині фігурних дужок. Ці оператори виконують розширені порівняння і подібні до операторів Python: in, not in та операторів порівняння. У цій вправі ви попрактикуєтеся у функціональності зіставлення spaCy, Matcher, щоб знаходити збіги для заданих термінів у прикладному тексті.

Клас Matcher уже імпортовано з бібліотеки spacy.matcher. У цій вправі ви використовуватимете контейнер Doc з прикладним текстом через змінну doc. Попередньо завантажена модель spaCy також доступна як nlp.

Ця вправа є частиною курсу

Обробка природної мови (NLP) зі spaCy

Переглянути курс

Інструкції до вправи

  • Створіть об'єкт зіставника за допомогою Matcher і nlp.
  • Використайте оператор IN, щоб визначити шаблон для збігу з tiny squares та tiny mouthful.
  • Застосуйте цей шаблон, щоб знайти збіги в doc.
  • Виведіть індекси початкового й кінцевого токенів та текстовий фрагмент знайдених збігів.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

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)
Редагувати та запускати код