Matcha ett enskilt ord i spaCy
RegEx-mönster kan vara svåra att läsa, skriva och felsöka. Men det finns ett bra alternativ: spaCy erbjuder en lättläst lösning anpassad för produktionsmiljöer – klassen Matcher. Den kan matcha fördefinierade regler mot en sekvens av tokens i en given Doc-behållare. I den här övningen får du öva på att använda Matcher för att hitta ett enskilt ord.
Du kan komma åt exempeltexten via example_text och använda nlp respektive doc för att komma åt en spaCy-modell och en Doc-behållare för example_text.
Den här övningen är en del av kursen
Naturlig språkbehandling med spaCy
Övningsinstruktioner
- Initiera en
Matcher-klass. - Definiera ett mönster för att matcha
witchi gemener iexample_text. - Lägg till mönstren i
Matcher-klassen och hitta matchningar. - Iterera genom matchningarna och skriv ut tokenindexen för start och slut samt spannet för den matchade texten.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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)