Bắt đầu ngayBắt đầu miễn phí

Huấn luyện một mô hình NER hiện có

Một mô hình spaCy có thể không hoạt động tốt trên một tập dữ liệu nhất định. Một cách giải quyết là huấn luyện mô hình trên dữ liệu của bạn. Trong bài tập này, bạn sẽ thực hành huấn luyện một mô hình NER để cải thiện hiệu quả dự đoán.

Mô hình spaCy en_core_web_sm có sẵn dưới tên nlp hiện chưa thể dự đoán đúng house là một thực thể trong chuỗi test.

Với training_data đã cho, hãy viết các bước để cập nhật mô hình này khi lặp qua dữ liệu hai lần. Các pipeline khác đã được vô hiệu hóa và optimizer cũng đã sẵn sàng sử dụng. Số epoch đã được đặt là 2.

Bài tập này là một phần của khóa học

Xử lý ngôn ngữ tự nhiên với spaCy

Xem khóa học

Hướng dẫn bài tập

  • Sử dụng đối tượng optimizer và với mỗi epoch, hãy xáo trộn tập dữ liệu bằng gói random và tạo đối tượng Example.
  • Cập nhật mô hình nlp bằng thuộc tính .update và đặt tham số sgd để sử dụng optimizer.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

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])
Chỉnh sửa và Chạy Mã