2017-08-17 14 views
9

Tôi đã đào tạo một mô hình phân loại tâm lý bằng thư viện Keras bằng cách làm theo các bước dưới đây (rộng rãi).Keras Text Preprocessing - Lưu đối tượng Tokenizer vào tập tin để ghi

  1. Chuyển đổi văn bản corpus vào chuỗi sử dụng Tokenizer đối tượng/lớp
  2. Xây dựng một mô hình bằng cách sử dụng phương pháp model.fit()
  3. Đánh giá mô hình này

Bây giờ cho điểm sử dụng mô hình này, tôi đã có thể lưu mô hình vào một tệp và tải từ một tệp. Tuy nhiên tôi đã không tìm thấy cách để lưu đối tượng Tokenizer vào tệp. Nếu không có điều này tôi sẽ phải xử lý kho văn bản mỗi lần tôi cần phải ghi điểm ngay cả một câu duy nhất. Có cách nào để giái quyết vấn đề này không?

Trả lời

17

Cách thông dụng nhất là sử dụng pickle hoặc joblib. Ở đây bạn có một ví dụ về cách sử dụng pickle để tiết kiệm Tokenizer:

import pickle 

# saving 
with open('tokenizer.pickle', 'wb') as handle: 
    pickle.dump(tokenizer, handle, protocol=pickle.HIGHEST_PROTOCOL) 

# loading 
with open('tokenizer.pickle', 'rb') as handle: 
    tokenizer = pickle.load(handle) 
+0

Bạn có gọi lại tokenizer.fit_on_texts trên bộ kiểm tra không ? – cgl

+0

No. Nếu bạn gọi lại * một lần nữa, nó có thể thay đổi chỉ mục. Trình mã thông báo được tải sẵn đã được sử dụng. –

1

tôi đã tạo ra những vấn đề https://github.com/keras-team/keras/issues/9289 trong keras Repo. Cho đến khi API được thay đổi, vấn đề có một liên kết đến một gist có mã để chứng minh làm thế nào để lưu và khôi phục một tokenizer mà không có các tài liệu gốc tokenizer là phù hợp trên. Tôi thích lưu trữ tất cả thông tin mô hình của mình trong tệp JSON (vì lý do, nhưng chủ yếu là môi trường JS/Python hỗn hợp) và điều này sẽ cho phép điều đó, ngay cả với sort_keys = True

Các vấn đề liên quan