MulaiMulai sekarang secara gratis

Latih model NER yang sudah ada

Sebuah model spaCy mungkin tidak bekerja dengan baik pada data tertentu. Salah satu solusinya adalah melatih model pada data kita sendiri. Pada latihan ini, Anda akan berlatih melatih model NER untuk meningkatkan kinerja prediksinya.

Model spaCy en_core_web_sm yang dapat diakses sebagai nlp tidak mampu memprediksi house sebagai entitas dengan benar pada string test.

Dengan training_data yang diberikan, tuliskan langkah-langkah untuk memperbarui model ini sambil melakukan iterasi melalui data sebanyak dua kali. Pipeline lainnya sudah dinonaktifkan dan optimizer juga sudah siap digunakan. Jumlah epoch sudah ditetapkan menjadi 2.

Latihan ini adalah bagian dari kursus

Pemrosesan Bahasa Alami dengan spaCy

Lihat Kursus

Petunjuk latihan

  • Gunakan objek optimizer dan untuk setiap epoch, acak himpunan data menggunakan paket random dan buat objek Example.
  • Perbarui model nlp menggunakan atribut .update dan atur argumen sgd untuk menggunakan optimizer tersebut.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

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])
Edit dan Jalankan Kode