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

Mevcut bir NER modelini eğit

Bir spaCy modeli, verilen bir veri üzerinde iyi çalışmayabilir. Çözüm yollarından biri, modeli kendi verimiz üzerinde eğitmektir. Bu egzersizde, bir NER modelini eğiterek tahmin performansını iyileştirmeyi pratik edeceksin.

nlp olarak erişebileceğin bir spaCy en_core_web_sm modeli var ve bu model test dizesinde house öğesini bir varlık olarak doğru şekilde tahmin edemiyor.

Verilen training_data ile, verinin üzerinden iki kez geçerek bu modeli güncelleme adımlarını yaz. Diğer işlem hatları (pipelines) zaten devre dışı bırakıldı ve optimizer kullanıma hazır. Epoch sayısı da 2 olarak ayarlandı.

Bu egzersiz

spaCy ile Natural Language Processing

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

Egzersiz talimatları

  • optimizer nesnesini kullan ve her epoch için veri kümesini random paketiyle karıştırarak bir Example nesnesi oluştur.
  • nlp modelini .update özelliğiyle güncelle ve sgd argümanlarını optimizer'ı kullanacak şekilde ayarla.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

nlp = spacy.load("en_core_web_sm")
print("Before training: ", [(ent.text, ent.label_) for ent in nlp(test).ents])
other_pipes = [pipe for pipe in nlp.pipe_names if pipe != 'ner']
nlp.disable_pipes(*other_pipes)
optimizer = nlp.create_optimizer()

# Shuffle training data and the dataset using random package per epoch
for i in range(epochs):
  random.____(training_data)
  for text, ____ in training_data:
    doc = nlp.____(____)
    # Update nlp model after setting sgd argument to optimizer
    example = Example.____(____, ____)
    nlp.____([____], sgd = ____)
print("After training: ", [(ent.text, ent.label_) for ent in nlp(test).ents])
Kodu Düzenle ve Çalıştır