5.2. Lựa chọn giải pháp tiếp cận
5.2.2. Tiếp cận theo đề xuất cải tiến công thức đánh giá độ liên quan giữa hai văn bản trong mô hình vector
5.2.2.1. Mô hình tiếp cận Mô hình tiếp cận (xem hình 5.4):
Hình 5.4. Mô hình tiếp cận theo công thức cải tiến đề xuất
Với công thức cải tiến (5.4) đã đề xuất ở mục 5.1.2. hướng tiếp cận thứ hai thực hiện như sau:
• Với mỗi văn bản truy vấn cần phân lớp Q thực hiện tiền xử lý và biểu diễn dưới dạng TF × IDF
• Xác định độ liên quan giữa Q với tập văn bản mẫu học D theo công thức (5.4) đã đề xuất
• Lựa chọn văn bản có độ liên quan cao nhất với Q. Sử dụng thuật toán k phân lớp k NN để xác định phân lớp mà văn bản truy vấn Q thuộc về.-
Rõ ràng là thay vì phải thực hiện một khối lượng tính toán rất lớn khi tính độ liên quan giữa vector văn bản đầu vào và toàn bộ tập văn bản mẫu theo công thức cosine (5.1) thì chúng ta đã thực hiện tính toán trước độ liên quan của các term với các văn bản học mẫu trong quá trình học tập mẫu và khi thực thi, để tính độ liên quan giữa văn bản truy vấn bất kì cần phân lớp và một văn bản học mẫu ta chỉ cần thực hiện một phép tính tổng các độ liên quan của từng term có trong văn bản truy vấn với mỗi văn bản mẫu theo công thức (5.4). Độ liên quan của từng term này được tính bằng tích số của độ liên quan đã tính trước của term đó với văn bản mẫu nhân với trọng số của term đó trong văn bản truy vấn. Như vậy chúng ta có thể thấy tốc độ phân lớp văn bản được tăng lên rất nhiều trong khi độ chính xác và hiệu quả không hề giảm.
5.2.2.2. Tiền xử lý và vector hóa văn bản
Quá trình tiền xử lý văn bản (tương tự như hướng tiếp cận học không giám sát) bao gồm quá trình tách term và loại bỏ các StopWords thông qua một từ điển và một danh sách StopWords có sẵn. Văn bản sau tiền xử lý được biểu diễn dưới dạng vector thưa dựa trên mô hình tần suất TF × IDF.
5.2.2.3. Quản lý độ liên quan giữa các term và văn bản mẫu
Theo ý tưởng cải tiến đã đề xuất, ta sẽ tính trước độ liên quan giữa các term trong từ điển với văn bản mẫu, sau đó cộng tổng các độ liên quan của những term có trong văn bản truy vấn lại để thu được độ liên quan giữa văn bản truy vấn với văn bản mẫu. Vấn đề nảy sinh là ta có hơn 70.000 term trong từ điển tiếng Việt đang sử dụng. Giả sử với tập dữ liệu có số văn bản mẫu khoảng 500 thì ta cần phải lưu trữ 70.000 x 500 = 35.000.000 kết quả tính toán, nghĩa là một con số rất lớn.
Khi đó chúng ta sẽ phải quan tâm đến các vấn đề quan trọng sau:
Vấn đề thứ nhất là: Làm thế nào để quản lý lưu trữ có hiệu quả số lượng khổng lồ các kết quả này?
Thực ra con số 35.000.000 kết quả đưa ra ở trên thực tế chỉ có tính lý thuyết, vì một văn bản mẫu không thể nào chứa hết cả 70.000 term, và nếu có thì cũng không phải tất cả các văn bản mẫu đều chứa hết 70.000 term, do đó tác giả đã đưa ra một hướng lưu trữ như sau: chỉ lưu trữ các giá trị độ liên quan giữa “term–văn bản mẫu” mà giá trị đó khác không. Như vậy, ta sẽ xây dựng một cấu trúc dữ liệu cho các bản ghi, gồm có ba thành phần như sau:
DocID (Interger 32 bit)
Độ liên quan term-văn bản mẫu (Double 64 bit)
TermID (Interger 32 bit)
Theo cấu trúc này ta chỉ cần lưu trữ các bản ghi có độ dài 16 byte là đủ. Thực tế khi tính độ liên quan cho 70.000 term với 152 văn bản mẫu, file lưu trữ của tác giả chỉ mất có 229KB, một con số rất nhỏ.
Vấn đề thứ hai là: Thời gian truy cập và tìm kiếm các kết quả đã lưu trữ trên?
Việc sử dụng cấu trúc dữ liệu lưu trữ như trên đã đảm bảo việc truy cập và tìm kiếm các kết quả dựa trên các ID của term và văn bản. Bên cạnh đó, để giải quyết vấn đề này thực tế khi xây dựng mô hình thực nghiệm tác giả còn sử dụng một class được thiết kế sẵn của .NET, đó là lớp abstract “DictionaryBase”. Đây là Class rất mạnh, chuyên cung cấp các tính năng truy vấn, chỉnh sửa và cập nhật trên các dạng dữ liệu theo kiểu “key–value”. Nhờ thừa kế từ class này mà vấn đề lưu trữ và cập nhật độ liên quan tác giả xây dựng đã hoạt động với hiệu quả rất cao và ổn định.
5.2.2.4. Phân lớp văn bản với công thức cải tiến đề xuất
Thực hiện sắp xếp tăng dần độ liên quan∑M(Q,Dd)(công thức 5.4) giữa văn bản truy vấn Q và các văn bản mẫu Dd (sử dụng thuật toán QuickSort), độ liên quan này được tính theo công thức cải tiến đã đề xuất. Sau đó đưa ra văn bản mẫu k đầu tiên có độ liên quan cao nhất. Chúng ta sẽ xác định phân lớp mà văn bản truy vấn Q thuộc về theo thuật toán phân lớp k-NN và cách gán nhãn theo độ phù hợp chủ đề. Văn bản cần truy vấn Q sẽ thuộc vào phân lớp có độ liên quan cao nhất.
Mô hình tiếp cận theo hướng tiếp cận thứ hai này khi tác giả thực hiện cài đặt thực tế đã cho một hiệu quả phân lớp chính xác tốt với sai số không nhiều. Kết quả chi tiết sẽ được trình bày trong chương 7.