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ırEgzersiz talimatları
EntityRulertarafından kullanılacak,8888888888biçimindeki telefon numaralarını eşleyen bir desen tanımla.- Boş bir İngilizce
spaCymodeli yükle ve ardışık düzene birEntityRulerbileşeni ekle. - Derlediğin deseni
EntityRulerbileşenine ekle. - Modeli çalıştır ve verilen
textiç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.____])