Dopasowywanie pojedynczego terminu w spaCy
Wzorce RegEx bywają trudne do czytania, pisania i debugowania. Na szczęście spaCy oferuje czytelną alternatywę gotową do zastosowania w środowisku produkcyjnym – klasę Matcher. Klasa Matcher dopasowuje predefiniowane reguły do sekwencji tokenów w danym kontenerze Doc. W tym ćwiczeniu przećwiczysz użycie Matcher do wyszukania pojedynczego słowa.
Odpowiedni tekst znajdziesz w zmiennej example_text. Skorzystaj z nlp i doc, aby uzyskać dostęp odpowiednio do modelu spaCy i kontenera Doc dla example_text.
To ćwiczenie jest częścią kursu
Przetwarzanie języka naturalnego z użyciem spaCy
Instrukcje do ćwiczenia
- Zainicjalizuj klasę
Matcher. - Zdefiniuj wzorzec dopasowujący słowo
witchzapisane małymi literami wexample_text. - Dodaj wzorce do klasy
Matcheri znajdź dopasowania. - Przejdź przez dopasowania i wyświetl indeksy tokenów start i end oraz fragment dopasowanego tekstu.
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)
# 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)