Kiến trúc hiện thực mơ hình ngơn ngữ mức từ

Một phần của tài liệu Phát triển ứng dụng phát hiện lỗi chính tả tiếng việt sử dụng mô hình ngôn ngữ (Trang 41 - 44)

Hình 4 .1 Mơ hình hiện thực bài toán

Hình 4.3 Kiến trúc hiện thực mơ hình ngơn ngữ mức từ

Mơ hình gần giống với mơ hình mức kí tự nhưng đơn giản hơn do lượng dữ liệu huấn luyện ở mức từ sẽ ít hơn nhiều. Tuy nhiên, các trọng số lớp embedding sẽ được huấn luyện bên ngồi trước với mơ hình CBOW và Skip-gram, sau đó sẽ được load lên trước khi huấn luyện và sẽ không được cập nhật trong suốt quá trình huấn luyện. Lớp cuối cùng tuỳ theo mỗi bộ dữ liệu mà có kích thước khác nhau, do chứa nhiều tên riêng và nhiễu, nếu giữ ngun sẽ làm cho chất lượng mơ hình kém và độ phức tạp của mơ hình rất lớn. Vì thế, khi huấn luyện các trọng số cho lớp embedding đối với dữ liệu wiki, chỉ giữ lại những từ có tần số xuất hiện trên 10 lần để loại bỏ bớt nhiễu. Kết quả, sau khi lọc bớt, số lượng từ vựng của tập dữ liệu wiki cịn khoảng 17000 từ. Tất cả các mơ hình đều dùng sequence length là 10.

Mơ hình ngơn ngữ mức từ từ trái sang phải

Model predefine param, epochs: 50, batchSize: 512

Corpus file: dataset/VNTQcorpus-small.txt , sequences file: dataset/VNTQcorpus-small_left2right_word_sequences.txt ,

proceeded_file: dataset/VNTQcorpus-small_proceeded.txt , right_size? False

Start create sequences, total lines: 197931 , sequence length: 5 Time taken (sec): 50.68779683113098

Create sequences duration: 54.0327365398407 Start tokenize

End tokenize, duration: 6.218344211578369 Word index size: 9991

Load sequence data

Load sequence data duration: 53.75298261642456 Total sequences 5297626

First sequence: [ 0 0 0 0 0 286]

Word vector keys size: 9992 , vocab size: 9993 Sequence shape: (5297626, 6)

Model: "sequential"

_________________________________________________________________ Layer (type) Output Shape Param # ================================================================= embedding (Embedding) (None, 5, 100) 999300 _________________________________________________________________ lstm (LSTM) (None, 512) 1255424 _________________________________________________________________ dense (Dense) (None, 9993) 5126409 ================================================================= Total params: 7,381,133

Trainable params: 6,381,833 Non-trainable params: 999,300

Start training model, model type: left2right, last epoch: 0 Init SaveModel callback, ckpt_path: ckpt, model_path: model, model_prefix: WordLM, model_name: VNTQcorpus-small, model_type: left2right, ckpt_period: 1

Save check point file: ckpt/WordLM_VNTQcorpus-small_left2right_022.h5 Save model file: model/WordLM_VNTQcorpus-small_left2right.h5

Training time total: 5979.9904720783233694

Mơ hình ngơn ngữ mức từ từ phải sang trái

Model predefine param, epochs: 50, batchSize: 512

Start create sequences, total lines: 197931 , sequence length: 5 Time taken (sec): 50.451892137527466

Create sequences duration: 52.06351685523987 Start tokenize

End tokenize, duration: 6.196485996246338 Word index size: 9991

Load sequence data

Load sequence data, total lines: 5297626 Load sequence data, first lines: tìm Load sequence data, line length: 1

Load sequence data duration: 53.436360120773315 Total sequences 5297626

First sequence: [ 0 0 0 0 0 286]

Word vector keys size: 9992 , vocab size: 9993 Sequence shape: (5297626, 6)

Model: "sequential_1"

_________________________________________________________________ Layer (type) Output Shape Param # ================================================================= embedding_1 (Embedding) (None, 5, 100) 999300 _________________________________________________________________ lstm_1 (LSTM) (None, 512) 1255424 _________________________________________________________________ dense_1 (Dense) (None, 9993) 5126409

================================================================= Total params: 7,381,133

Trainable params: 6,381,833 Non-trainable params: 999,300

Start training model, model type: right2left, last epoch: 0

Init SaveModel callback, ckpt_path: ckpt, model_path: model,

model_prefix: WordLM, model_name: VNTQcorpus-small, model_type:

right2left, ckpt_period: 1

Save check point file: ckpt/WordLM_VNTQcorpus-small_right2left_025.h5 Save model file: model/WordLM_VNTQcorpus-small_right2left.h5

Training time total: 6753.06451678276116203

Sau khi xử lý dữ liệu và huấn luyện tập dữ liệu, ta thu các mơ hình ngơn ngữ mức từ từ hai phía tương ứng.

Nhận xét mức từ

Chúng ta dùng mơ hình ngơn ngữ mức từ sinh ra một danh sách các từ ứng viên là các từ có xác suất cao nhất trong vector đầu ra. Sau đó, ta tính khoảng cách giữa từng từ ứng viên và từ cần thay thế rồi chọn từ có khoảng cách gần nhất.

* Kết hợp mơ hình ngơn ngữ để kết hợp và sửa lỗi chính tả (mức kí tự và mức từ).

Sử dụng vector xác suất đầu ra của mơ hình ngơn ngữ ta có thể xác định các lỗi sai trong văn bản, cụ thể đó là những từ hay kí tự có xác suất thấp hơn một giá trị ngưỡng cho trước.

Tuy nhiên, việc sử dụng vector xác suất này ta có thể tìm kiếm được từ hay kí tự có xác suất cao để thay thế các từ hay kí tự sai này. Vì vậy ta sẽ dựa vào điều này để quyết định sửa lỗi bằng mơ hình ngơn ngữ nào khi kết hợp nhiều mơ hình ngơn ngữ.

So sánh giữa 2 mơ hình ở mức kí tự và mức từ

Input Output_Char Output_Word

ạn vaat phụ âm nhi bão dươg trung hí dĩ vi hồ

ạn vật phụ âm nhi bão dương trung khí dĩ vi hồ

vạn vật phụ âm nhi bão dương trung khí dĩ vi hồ

Một phần của tài liệu Phát triển ứng dụng phát hiện lỗi chính tả tiếng việt sử dụng mô hình ngôn ngữ (Trang 41 - 44)

Tải bản đầy đủ (PDF)

(60 trang)