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

spaCy ile Natural Language Processing

Kursa Göz Atın

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

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

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