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

Sıfırdan bir spaCy modeli eğitme

spaCy, kendi modellerini eğitmek için oldukça temiz ve verimli bir yaklaşım sunar. Bu egzersizde, gerçek bir derlem (CORD-19 verisi) üzerinde sıfırdan bir NER modeli eğiteceksin.

Eğitim verileri uygun biçimde training_data olarak sağlanıyor. Bu egzersizde, boş bir İngilizce model (nlp) ve bir NER bileşeni kullanarak labels içinde saklanan etiketler ("Pathogen", "MedicalCondition", "Medicine") listesini kullanacaksın. Hedef tıbbi labels NER ardışık düzenine eklenecek ve ardından modeli bir epoch boyunca eğitebilirsin. Eğitim verilerini gerekli biçime dönüştürmek için önceden içe aktarılmış Example sınıfını kullanabilirsin. Model eğitimini takip etmek için .update() yöntemine bir losses listesi ekleyip eğitim kaybını inceleyebilirsin.

Bu egzersiz

spaCy ile Natural Language Processing

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

Egzersiz talimatları

  • Boş bir spaCy modeli oluştur ve modele bir NER bileşeni ekle.
  • Diğer ardışık düzen bileşenlerini devre dışı bırak, oluşturulan optimizer nesnesini kullan ve Example biçimine dönüştürülmüş verilerle model ağırlıklarını güncelle.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

# Load a blank English model, add NER component, add given labels to the ner pipeline
nlp = spacy.____("____")
ner = nlp.____("ner")
for ent in labels:
    ner.add_label(ent)

# Disable other pipeline components, complete training loop and run training loop
other_pipes = [____ for pipe in nlp.____ if ____ != "____"]
nlp.disable_pipes(*____)
losses = {}
optimizer = nlp.begin_training()
for text, annotation in training_data:
    doc = nlp.____(text)
    example = Example.____(doc, annotation)
    nlp.____([example], sgd=____, losses=losses)
    print(losses)
Kodu Düzenle ve Çalıştır