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

spaCy'de EntityRuler ile RegEx

Düzenli ifadeler (RegEx), karmaşık dize eşleme desenleriyle kural tabanlı bilgi çıkarımı için kullanılır. RegEx; bir deseni bulmak veya bir dizgedeki eşleşen desenleri başka desenlerle değiştirmek için kullanılabilir. Bu egzersizde, verilen bir text içinde e-posta adreslerini bulmak için spaCy içindeki EntityRuler kullanımını pratik edeceksin.

spaCy paketi senin için zaten içe aktarılmış durumda. 0'dan 9'a kadar herhangi bir rakamı eşleyen bir metakarakteri temsil eden dize desenlerini eşlemek için \d kullanabilirsin.

Bir spaCy deseni, bir öznitelik olarak REGEX kullanabilir. Bu durumda, bir desenin şekli [{"TEXT": {"REGEX": "<a given pattern>"}}] olur.

Bu egzersiz

spaCy ile Natural Language Processing

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

Egzersiz talimatları

  • EntityRuler tarafından kullanılacak, 8888888888 biçimindeki telefon numaralarını eşleyen bir desen tanımla.
  • Boş bir İngilizce spaCy modeli yükle ve ardışık düzene bir EntityRuler bileşeni ekle.
  • Derlediğin deseni EntityRuler bileşenine ekle.
  • Modeli çalıştır ve verilen text için varlıkların metin ve tür ikililerini yazdır.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

text = "Our phone number is 4251234567."

# Define a pattern to match phone numbers
patterns = [{"label": "PHONE_NUMBERS", "pattern": [{"TEXT": {"REGEX": "(____){____}"}}]}]

# Load a blank model and add an EntityRuler
nlp = spacy.____("en")
ruler = nlp.____("entity_ruler")

# Add the compiled patterns to the EntityRuler
ruler.____(patterns)

# Print the tuple of entities texts and types for the given text
doc = ____(____)
print([(ent.____, ent.____) for ent in doc.____])
Kodu Düzenle ve Çalıştır