spaCy'de özel bir adlandırılmış varlık oluşturma
spaCy'nin yerleşik adlandırılmış varlıkları yeterli değilse, spaCy'nin entity_ruler pipeline bileşenini kullanarak kendi varlıklarını oluşturabilirsin.
entity_ruler bileşeni, kendi varlıklarını oluşturup bir spaCy pipeline'ına eklemene olanak tanır.
Önce nlp.add_pipe() ile bileşeni mevcut pipeline'a eklersin; kendi kurallarının önce uygulanması için onu "ner" bileşeninden before olacak şekilde yerleştirirsin. add_pipe() eklediği bileşeni döndürür.
Daha sonra bileşen üzerinde add_patterns() çağırıp, varlık etiketi vermek istediğin metin pattern sözlüğünü geçebilirsin.
Acme bir teknoloji şirketi olduğundan, "smartphone" desenini "PRODUCT" varlık etiketiyle etiketlemeye karar veriyorsun.
spaCy içe aktarılmış durumda ve nlp yüklü bir en_core_web_sm modelini tutuyor. Bir pipeline'ı değiştirmek, halihazırda var olan dökümanları etkilemediğinden, yeni bileşen eklendikten sonra call_4_channel_2.wav dosyasının çözümlenmiş metninden doc'u yeniden oluşturacaksın.
Bu egzersiz, kursun bir parçasıdır
Python ile Konuşma Dili İşleme
Egzersiz talimatları
"entity_ruler"bileşenini,"ner"bileşeninden önce olacak şekildenlppipeline'ına ekle verulerdeğişkenine ata."pattern"anahtarı için değer olarak"smartphone"ekle.dociçinde yer alan varlık özniteliklerini yazdır.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# Add an entity_ruler component to the pipeline, before ner
ruler = nlp.add_pipe(____, before=____)
# Define pattern for new entity
ruler.add_patterns([{"label": "PRODUCT", "pattern": ____}])
# Recreate the doc so it uses the updated pipeline
doc = nlp(call_4_channel_2_text)
# Test new entity
for entity in doc.____:
print(entity.text, entity.label_)