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

spaCy'de PhraseMatcher

Yapılandırılmamış metni işlerken, çoğu zaman taramak ve verilen metinlerde eşleştirmek istediğin uzun listeler ve sözlükler olur. Matcher kalıpları elle hazırlanır ve her bir belirtecin (token) tek tek kodlanması gerekir. Uzun bir ifade listen varsa, Matcher artık en iyi seçenek değildir. Bu durumda, PhraseMatcher sınıfı uzun sözlükleri eşleştirmemize yardımcı olur. Bu egzersizde, PhraseMatcher sınıfını kullanarak birden fazla terimle aynı şekle sahip kalıpları yakalamayı pratik edeceksin.

en_core_web_sm modeli halihazırda yüklü ve nlp olarak kullanıma hazır. PhraseMatcher sınıfı içe aktarılmış durumda. Kullanman için bir text dizgesi ve bir terms listesi mevcut.

Bu egzersiz

spaCy ile Natural Language Processing

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

Egzersiz talimatları

  • Verilen terms öğelerinin şekliyle eşleşecek şekilde bir attr ile PhraseMatcher sınıfını başlat.
  • PhraseMatcher nesnesine eklenecek patterns listesini oluştur.
  • Verilen kalıplar için eşleşmeleri bul ve başlangıç ve bitiş belirteç indekslerini ve text içindeki eşleşen bölümü yazdır.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

text = "There are only a few acceptable IP addresse: (1) 127.100.0.1, (2) 123.4.1.0."
terms = ["110.0.0.0", "101.243.0.0"]

# Initialize a PhraseMatcher class to match to shapes of given terms
matcher = ____(nlp.____, attr = ____)

# Create patterns to add to the PhraseMatcher object
patterns = [nlp.make_doc(____) for term in terms]
matcher.____("IPAddresses", patterns)

# Find matches to the given patterns and print start and end characters and matches texts
doc = ____
matches = ____
for match_id, start, end in matches:
    print("Start token: ", ____, " | End token: ", ____, "| Matched text: ", doc[____:____].text)
Kodu Düzenle ve Çalıştır