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, kursun bir parçasıdır

spaCy ile Natural Language Processing

Kursa Göz Atın

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ı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

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