BaşlayınÜcretsiz Başlayın

spaCy'de genişletilmiş söz dizimiyle eşleştirme

Kural tabanlı bilgi çıkarımı, herhangi bir NLP işlem hattı için çok önemlidir. Matcher sınıfı, süslü parantezlerin içinde bazı operatörlere izin vererek kalıpların daha ifade gücü yüksek olmasını sağlar. Bu operatörler genişletilmiş karşılaştırmalar içindir ve Python'daki in, not in ve karşılaştırma operatörlerine benzer. Bu egzersizde, örnek bir metinden verilen terimlere eşleşmeler bulmak için spaCy'nin eşleştirme işlevselliği olan Matcher ile pratik yapacaksın.

Matcher sınıfı spacy.matcher kütüphanesinden zaten içe aktarıldı. Bu egzersizde doc çağrısıyla örnek bir metnin Doc kapsayıcısını kullanacaksın. Önceden yüklenmiş bir spaCy modeli de nlp olarak erişilebilir durumdadır.

Bu egzersiz

spaCy ile Natural Language Processing

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

  • Matcher ve nlp kullanarak bir matcher nesnesi tanımla.
  • IN operatörünü kullanarak tiny squares ve tiny mouthful ifadelerine eşleşecek bir kalıp tanımla.
  • Bu kalıbı kullanarak doc için eşleşmeleri bul.
  • Eşleşmelerin başlangıç ve bitiş token indekslerini ve metin aralığını yazdır.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

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)
Kodu Düzenle ve Çalıştır