Kom igångKom igång gratis

Matchning med utökad syntax i spaCy

Regelbaserad informationsextraktion är grundläggande i alla NLP-pipelines. Klassen Matcher gör det möjligt att skriva mer uttrycksfulla mönster med hjälp av operatorer inuti de klammerparenteser. Dessa operatorer används för utökade jämförelser och liknar Pythons in, not in och jämförelseoperatorer. I den här övningen får du öva på spaCy:s matchningsfunktion, Matcher, för att hitta träffar för givna termer i en exempeltext.

Klassen Matcher är redan importerad från biblioteket spacy.matcher. Du använder en Doc-behållare med en exempeltext i den här övningen genom att anropa doc. En förinstansierad spaCy-modell är också tillgänglig via nlp.

Den här övningen är en del av kursen

Naturlig språkbehandling med spaCy

Visa kurs

Övningsinstruktioner

  • Definiera ett matcherobjekt med hjälp av Matcher och nlp.
  • Använd operatorn IN för att definiera ett mönster som matchar tiny squares och tiny mouthful.
  • Använd mönstret för att hitta träffar i doc.
  • Skriv ut start- och slutindex för token samt textspannet för träffarna.

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)

# 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)
Redigera och kör kod