Zacznij terazZacznij za darmo

Dopasowywanie z rozszerzoną składnią w spaCy

Ekstrakcja informacji oparta na regułach jest niezbędnym elementem każdego potoku NLP. Klasa Matcher umożliwia tworzenie bardziej wyrazistych wzorców dzięki operatorom umieszczanym wewnątrz nawiasów klamrowych. Operatory te służą do rozszerzonych porównań i przypominają składnią operatory in, not in oraz operatory porównania znane z Pythona. W tym ćwiczeniu przećwiczysz działanie mechanizmu dopasowywania w spaCy – klasy Matcher – aby znaleźć dopasowania do podanych wyrażeń w przykładowym tekście.

Klasa Matcher jest już zaimportowana z biblioteki spacy.matcher. Do pracy z przykładowym tekstem wykorzystasz kontener Doc, wywołując doc. Wstępnie załadowany model spaCy jest dostępny pod nazwą nlp.

To ćwiczenie jest częścią kursu

Przetwarzanie języka naturalnego z użyciem spaCy

Zobacz kurs

Instrukcje do ćwiczenia

  • Zdefiniuj obiekt matchera, używając Matcher i nlp.
  • Użyj operatora IN, aby zdefiniować wzorzec dopasowujący wyrażenia tiny squares i tiny mouthful.
  • Użyj tego wzorca, aby znaleźć dopasowania w doc.
  • Wyświetl indeksy tokenów początku i końca oraz fragment tekstu dla każdego dopasowania.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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)
Edytuj i uruchom kod