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ırEgzersiz 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
optimizernesnesini kullan veExamplebiç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)