Hiện thực mô hình hỏi đáp Tiếng việt

Một phần của tài liệu Xây dựng hệ thống hỏi đáp (Trang 52 - 53)

5 Hiện thực mô hình

6.2 Hiện thực mô hình hỏi đáp Tiếng việt

Nhìn chung giải quyết bài toán trên tập Tiếng Việt tương tự như các bước ở mô hình tiếng Anh. Tuy nhiên khi bắt đầu đi hiện thực, nhóm đã gặp nhiều lỗi sai cơ bản ở bước tiền xử lý dẫn đến kết quả EM và F1_socre thấp đến vô lý: độ chính xác của F1_score là 12% và EM là 4%. Trong đó bao gồm việc tìm vector biểu diễn cho từng token trong đoạn văn lẫn câu hỏi. Và phải tách các token trên ngôn ngữ tiếng Việt.

Ở bước tìm vector biểu diễn, nhóm đã sử dụng tập vector biểu diễn của nhóm anh Sang và Quí1để mã hóa cho tập dữ liệu tiếng Việt của mình, tuy nhiên sau khi ngay cả dùng tập pre- trained vector biểu diễn từ ngữ này, các vector biểu diễn trong văn bản vẫn còn bị thiếu nhiều khi chúng tôi log ra kết quả các từ không lấy được vector biểu diễn. Sau khi in ra các từ không

XÂY DỰNG MÔ HÌNH HỎI-ĐÁP TIẾNG VIỆT lấy được này, chúng tôi nhận thấy rằng: các từ trong văn bản hay câu hỏi thường ở dạng viết in chữ cái đầu, trong khi đó trong tập pre-trained word vector toàn bộ các token đều được lưu ở dạng viết thường. Ví dụ từ Việt Nam có trong văn bản nhưng không lấy được vector biểu diễn vì trong pre-trained word vector được lưu là "việt_nam".

Qua được bước đầu tiên chúng tôi thử huấn luyện mô hình nhưng kết quả cũng không cao, chúng tôi nhận thấy rằng số vector biểu diễn đã được cải thiện đáng kể 7000 lấy được trên tổng số 12000 từ. Chúng tôi nhận thấy rằng ở tiếng Anh đã có thư việc Spacy2hỗ trợ việc tokenize cho các từ tiếng Anh. Cho nên đối với việc tokenize các kí tự cho các từ tiếng Việt khác so với tiếng Anh. Chúng tôi tìm kiếm được một thư viện hỗ trợ này là Pyvi3hỗ trợ rất tốt cho việc này. Sau bước này thì số từ mã hóa đã lên tới 11000 và chỉ khoảng 1000 từ là không lấy được trên tổng số 12000 từ.

Chúng tôi đã huấn luyện mô hình này nhưng kết quả không khả quan khi độ chính xác chỉ là 55% trên F1_socre. Chúng tôi nhận thấy rằng ViTokenize khi tách các token đã làm thay đổi chiều dài của văn bản dẫn đến làm thay đổi vị trí bắt đầu của câu trả lời. Và chúng tôi đã thực hiện một vài điều chỉnh tiếp tục để đạt được kết quả tốt hơn.

Khi thực viện bước tiền xử lý dữ liệu, chúng tôi có 2 thử nghiệm hai cách đó là: giữ nguyên cách viết hoa của từ và đổi toàn bộ các từ xuống dạng viết thường. Chúng tôi đã chạy thử nghiệm hai cách tiền xử lý này, kết quả thu được là việc đổi hoàn toàn xuống dạng viết thường đạt kết quả tốt hơn, chúng tôi nhận định rằng điều này vì tập dữ liệu với số lượng hạn chế.

>>> a = ’Trường Đại học Bách Khoa đào tạo khoa học, công nghệ’ >>>from pyvi import ViTokenizer

>>>print(ViTokenizer(a))

’Trường Đại_học Bách_Khoa đào_tạo khoa_học , công_nghệ’

Chúng ta thấy rằng sau khi tách các token chiều dài thay đổi khi dấu “,” không đi liền sau từ “học”. Dẫn đến chúng tôi phải thực hiện một vài thay đổi ở bước tiền xử lý để phù hợp với thư viện ViTokenizer này.

Một phần của tài liệu Xây dựng hệ thống hỏi đáp (Trang 52 - 53)

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

(71 trang)