Melatih model spaCy dari awal
spaCy menyediakan pendekatan yang sangat rapi dan efisien untuk melatih model Anda sendiri. Pada latihan ini, Anda akan melatih model NER dari awal menggunakan korpus dunia nyata (data CORD-19).
Data pelatihan sudah tersedia dalam format yang benar sebagai training_data. Dalam latihan ini, Anda akan menggunakan daftar label yang diberikan ("Pathogen", "MedicalCondition", "Medicine") yang tersimpan dalam labels dengan model bahasa Inggris kosong (nlp) yang memiliki komponen NER. labels medis yang ditargetkan akan ditambahkan ke pipeline NER dan kemudian Anda dapat melatih model selama satu epoch. Anda dapat menggunakan kelas Example yang sudah diimpor untuk mengonversi data pelatihan ke format yang diperlukan. Untuk memantau pelatihan model, Anda dapat menambahkan daftar losses ke metode .update() dan meninjau nilai kerugian pelatihan.
Latihan ini adalah bagian dari kursus
Pemrosesan Bahasa Alami dengan spaCy
Petunjuk latihan
- Buat model spaCy kosong dan tambahkan komponen NER ke model tersebut.
- Nonaktifkan komponen pipeline lainnya, gunakan objek
optimizeryang dibuat, dan perbarui bobot model menggunakan data yang telah dikonversi ke formatExample.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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)