Huấn luyện với spaCy

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

Azadeh Mobasher

Principal Data Scientist

Các bước huấn luyện

 

  1. Gán nhãn và chuẩn bị dữ liệu vào
  2. Tắt các thành phần pipeline khác
  3. Huấn luyện mô hình trong vài epoch
  4. Đánh giá hiệu năng mô hình
Xử lý ngôn ngữ tự nhiên với spaCy

Tắt các thành phần pipeline khác

 

  • Tắt mọi thành phần pipeline trừ NER:

 

other_pipes = [pipe for pipe in nlp.pipe_names if pipe != 'ner']

nlp.disable_pipes(*other_pipes)
Xử lý ngôn ngữ tự nhiên với spaCy

Quy trình huấn luyện mô hình

  • Duyệt tập huấn luyện nhiều lần; mỗi lượt gọi là một epoch.
  • Mỗi epoch, cập nhật trọng số mô hình một lượng nhỏ.
  • Optimizer cập nhật trọng số mô hình.
optimizer = nlp.create_optimizer()
losses = {}
for i in range(epochs):
  random.shuffle(training_data)

for text, annotation in training_data: doc = nlp.make_doc(text) example = Example.from_dict(doc, annotation)
nlp.update([example], sgd = optimizer, losses=losses)
Xử lý ngôn ngữ tự nhiên với spaCy

Lưu và tải mô hình đã huấn luyện

 

  • Lưu mô hình NER đã huấn luyện:
ner = nlp.get_pipe("ner")
ner.to_disk("<ner model name>")
  • Tải mô hình đã lưu:
    ner = nlp.create_pipe("ner")
    ner.from_disk("<ner model name>")
    nlp.add_pipe(ner, "<ner model name>")
    
Xử lý ngôn ngữ tự nhiên với spaCy

Mô hình cho suy luận

 

  • Dùng mô hình đã lưu để suy luận.

 

  • Áp dụng NER và lưu các bộ (entity text, entity label):
doc = nlp(text)
entities = [(ent.text, ent.label_) for ent in doc.ents]
Xử lý ngôn ngữ tự nhiên với spaCy

Ayo berlatih!

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

Preparing Video For Download...