Chúng tôi sử dụng mô hình ngôn ngữ N-gram để xây dựng các mệnh đề thông tin ngữ cảnh, từđó xây dựng các đặc trưng trước khi đưa vào huấn luyện mô hình.
3.3.2.1. Mô hình ngôn ngữ N-gram
Xét trong một văn bản, N-gram là một cụm từ gồm N từ liên tiếp cùng xuất hiện trong văn bản đó. Nếu độ dài tính theo từ của một văn bản là L, thì số N-gram sinh ra là 2 ) 1 ( * L−N+
L . Như vậy N càng lớn thì số lượng N-gram sinh ra càng lớn. Qua quá trình thử nghiệm, xây dựng đặc trưng với N =1, 2, 3, 4 và với 1, 2, 3
N = chúng tôi nhận thấy với cách sử dụng tối đa N =3 thời gian huấn luyện và thời gian phân lớp nhanh hơn so với cách sử dụng tối đa N =4, trong khi đo độ chính xác mô hình là gần như nhau. Vì vậy chúng tôi sử dụng N =1, 2, 3.
3.3.2.2. Đặc trưng
Có được tập hợp các N-gram, ta tiến hành xây dựng các mệnh đề thông tin ngữ cảnh. Mệnh đề mô tả thông tin ngữ cảnh là một mệnh đề chỉ ra văn bản hiện tại chứa một N-gram nào đó. Ví dụ,
Theo cách mà nguyên lý Entropy đã cung cấp để xây dựng đặc trưng: một đặc trưng là sự kết hợp giữa mệnh đề mô tả thông tin ngữ cảnh cp x( ) và nhãn của lớp tương ứng với văn bản. Ví dụ, với 'y là lớp “bss” (business) ta có một đặc trưng như sau: ( ) ⎩ ⎨ ⎧ = = = 0 _ _ _ and if 1 , , _ _ _ true dau xang gia has document bss y y x fdocument has gia xang daubss
Đặc trưng này sẽ có giá trị đúng nếu văn bản hiện tại chứa cụm từ “giá xăng dầu” và nó được gán nhãn “bss”.
Cần chú ý rằng, số lượng các mệnh đề thông tin ngữ cảnh sinh ra nhỏ hơn số
lượng các N-gram (vì có những N-gram trùng nhau cũng xuất hiện trong một văn bản), và cũng không bằng số lượng các đặc trưng.
3.3.3. Lựa chọn đặc trưng
3.3.3.1. Chiến lược loại bỏ stop-word
Bản chất của các ngôn ngữ tự nhiên là luôn có các từ xuất hiện nhiều, nhưng không mang nhiều ý nghĩa để phân loại. Trong tiếng Anh gọi đó là stop-word. Ngôn ngữ nào cũng có stop-word, tuy nhiên do tiếng Anh được xử lý nhiều nên người ta xây dựng danh sách stop-word cho nó khá rõ ràng. Ở một số ngôn ngữ khác, ví dụ như
tiếng Việt cũng sẽ có danh sách stop-word cụ thể như tiếng Anh nếu được xử lý nhiều trong tương lai [2]. Stop-word không những dư thừa, khi kết hợp với các từ khác để
xây dựng đặc trưng chúng còn gây ra hiện tượng overfitting. Qua thử nghiệm trên một bộ phân lớp văn bản trên tiếng Anh, sau khi lọc stop-word độ chính xác huấn luyện (trainning accuracy) tăng lên đáng kể. Vì vậy loại bỏ stop-word là rất cần thiết.
Tuy nhiên, nếu đối với bài toán phân lớp văn bản trên nhiều ngôn ngữ, loại bỏ
stop-word cho văn bản thì nghiễm nhiên các văn bản đã mất đi sự bình đẳng. Nói cách khác, các văn bản đòi hỏi được nhận dạng ngôn ngữ. Bài toán phân lớp trong Khóa luận không hướng tới việc nhận dạng ngôn ngữ để loại bỏ stop-word nhưng làm thế
nào để loại bỏ chúng. Ởđây, chúng tôi đề xuất một phương pháp khá hiệu quả: vẫn tận dụng được đặc điểm về ngôn ngữ mà vẫn giữ tính độc lập ngôn ngữ của bài toán. Phương pháp này áp dụng sau khi sinh n-gram, và loại bỏ theo hai quy tắc sau:
- Loại bỏ các 1-gram, 2-gram, 3-gram là stop-word: điều này có lợi với các ngôn ngữ mà đơn vị nhỏ nhất không phải là từ. Ví dụ, với tiếng Việt đơn
- Loại bỏ 2-gram, 3-gram mà mỗi gram là một stop-word. Ví dụ, câu “he is in Hanoi” sinh ra 2-gram “is_in” chứa 2 stop-word là “is” và “in”.
Qua thực nghiệm mà chúng tôi tiến hành, phương pháp này làm giảm đi 31,7% tổng số đặc trưng so với loại stop-word từ văn bản trước khi sinh n-gram là 33%. Như vậy đây thực sự là chiến lược tốt.
3.3.3.2. Đặt ngưỡng
Thực tế cho thấy, có những mệnh đề thông tin ngữ cảnh xuất hiện nhiều lần trong một văn bản và những mệnh đề thông tin ngữ cảnh xuất hiện rất ít lần. Ví dụ
trong câu “Giá dầu đang ngày một leo thang”:
[document has dầu_đang_ngày]
Để loại bỏ những mệnh đề thông tin ngữ cảnh không có nhiều ý nghĩa này, chiến lược lọc đặt ngưỡng chỉ đơn giản đặt ngưỡng cho sự xuất hiện của một mệnh đề
thông tin ngữ cảnh trong toàn bộ tập mệnh đề thông tin ngữ cảnh: nếu số lần xuất hiện nằm ngoài một khoảng nào đó thì bị loại bỏ.
3.3.3.3. TF.IDF
TF.IDF là một kĩ thuật thống kê đánh giá ý nghĩa, độ quan trọng của một cụm từđối với một văn bản, hoặc một lớp.
TF (term frequency) là độ đo tần số: tần suất xuất hiện của cụm từ trong một văn bản: i k k n tf n = ∑ i
n là số lần xuất hiện của cụm từ trong toàn bộ văn bản. IDF (inverse document frequency) là độđo tổng quát độ quan trọng của cụm từ:
Trọng số TF.IDF được tính bằng công thức:
( ) . log j i D tf idf tf d t ⎛ ⎞ ⎜ ⎟ = × ⎜ ⊃ ⎟ ⎝ ⎠ trong đó, - D: là số các văn bản trong tập dữ liệu huấn luyện.
Một cụm từ t xuất hiện nhiều lần trong văn bản, và xuất hiện ít lần trong các văn bản khác của tập dữ liệu mẫu thì có trọng số TF.IDF cao. Với tính chất như vậy, TF.IDF có ý nghĩa trong việc lọc bỏ các cụm từ chung. Chúng ta cũng có thể sử dụng phương pháp này để tìm những cụm từ mang ý nghĩa phân lớp cao bằng cách đánh trọng số của từ trên một lớp.
3.3.4. Huấn luyện mô hình
Sau khi đã xây dựng được tập các đặc trưng ta tiến hành huấn luyện mô hình.
Ở bước này chính là lúc áp dụng các thuật toán ước lượng tham sốđể tìm ra tập trọng số λ (mỗi một đặc trưng fi sẽ được gán một trọng số λi). Một văn bản mới có một tập các đặc trưng, chính tập trọng số sẽ quyết định mức độ quan trọng của các đặc trưng và chúng ảnh hưởng trực tiếp đến quá trình phân lớp cho văn bản mới, từđó dự đoán một cách chính xác lớp cho văn bản đó.
Trong quá trình huấn luyện mô hình, chúng ta cần tiến hành đánh giá độ chính xác của bộ phân lớp. Nói cách khác, trong quá trình này cần đánh giá khả năng đoán nhận của mô hình thông qua độ chính xác (accuracy) của quá trình huấn luyện.
3.3.5. Phân lớp văn bản mới
Với một văn bản mới, bộ phân lớp sẽ thực hiện tính toán xác suất trên từng lớp của văn bản. Tổng các giá trị xác suất này bằng 1. Lớp nào có giá trị cao nhất, văn bản sẽ thuộc lớp đó.
Lớp cho văn bản mới được tính theo công thức sau: * argmax ( | )
y
y = p y xλ
trong đó, *y là lớp tương ứng với xác suất pλ(y|x) cao nhất. Hàm argmax là hàm cực đại đối số, nó trả về giá trị của argument (ởđây là y) mà tại đó hàm đạt max.
Rõ ràng, những đặc trưng quan sát được trong văn bản mới mà không có trong mô hình, tức là không quan sát thấy trong tập dữ liệu huấn luyện sẽ nhận giá trị sai,
xem như là không có vì vậy chúng không làm ảnh hưởng đến xác suất của văn bản trên từng lớp. Chỉ những đặc trưng có giá trị là đúng mới có ý nghĩa quan trọng quyết định văn bản đó thuộc lớp nào.
Thực tế, tính tách rời của cây phân lớp chuẩn khó có thể được đảm bảo, vì có rất nhiều văn bản có thể được chia vào nhiều lớp. Trong trường hợp này, chúng ta sẽ
3.4. Đánh giá độ chính xác của bộ phân lớp
Bên cạnh việc xây dựng một bộ phân lớp hoàn chỉnh thì việc đánh giá ước lượng độ chính xác của bộ phân lớp đó không kém phần quan trọng. Trên cơ sở đó mới so sánh được chất lượng của các bộ phân lớp khác nhau (trên cùng một tập dữ liệu thử nghiệm). Đã có rất nhiều các phương pháp ước lượng độ chính xác của một bộ
phân lớp, ví dụ như: handout method, ước lượng chéo trên k tập con (k-fold cross validation), hay leave-one-out cross validation,… Trong khoá luận, chúng tôi sử dụng phương pháp ước lượng chéo trên k tập con. Ý nghĩa của phương pháp này là đểđo độ
chính xác của mô hình trên toàn tập dữ liệu; có nghĩa là đánh giá mức độ thích ứng cũng như sức mạnh phân lớp của mô hình một cách chính xác hơn, toàn diện hơn.
3.4.1. Các độđo
Độ hồi tưởng, độ chính xác, độ đo F1 là các độđo cơ bản trong lý thuyết nhận thông tin (Information Retrival).
2* * num_of_match precision num_of_model num_of_match recall num_of_manual precision recall F1 precision recall = = = + trong đó,
- num_of_match: số lượng văn bản trùng hợp mà mô hình và con người cùng phân lớp vào một lớp nào đó.
- num_of_model: số lượng văn bản mà mô hình đã gán cho một lớp nào đó. - num_of_manual: số lượng văn bản được con người (gán bằng tay) gán vào
một lớp nào đó.
Độ chính xác mà chúng ta sử dụng để đánh giá mô hình được tính là số lượng văn bản được phân lớp đúng bởi mô hình chia cho tổng số lượng văn bản.
Vì vậy nếu xét trên tổng thế thì độ chính xác, precision, recall, F1 có cùng giá trị.
3.4.2. Áp dụng phương pháp ước lượng chéo trên k tập con
Tư tưởng của phương pháp ước lượng chéo trên k tập con là phương pháp
đánh giá độ chính xác của hệ thống thông qua việc tính toán độ chính xác trung bình trên k tập con. Ưu điểm của phương pháp này là toàn bộ tập dữ liệu huấn luyện đều
được lấy làm tập kiểm tra [21].
Trong khoá luận, chúng tôi sử dụng k = 10 là giá trị phổ biến để có được một
ước lượng chính xác. Hệ thống chia dữ liệu thực nghiệm thành 10 phần bằng nhau một cách ngẫu nhiên. Quá trình huấn luyện được thực hiện 10 lần. Tại lần huấn luyện thứi
( 0 < i < 10), tập con thứ i được chọn làm tập kiểm tra, 9 tập còn lại được trộn lại với nhau làm tập huấn luyện. Cũng trong mỗi lần huấn luyện này, sau mỗi bước lặp tập trọng số λ được cập nhật, hệ thống tiến hành phân lớp tập dữ liệu kiểm tra, rồi tính toán độ chính xác của mô hình.
3.5. Xây dựng bộ phân lớp trên cây phân lớp thông minh
Phần 3.2 và 3.3 đã trình bày về cách giải quyết khó khăn cho bài toán phân lớp văn bản độc lập ngôn ngữ, và cách xây dựng bộ phân lớp cho bài toán này. Tuy nhiên, có thể thấy rằng ứng dụng cho bài toán này là các bài toán không đòi hỏi nhận diện ngôn ngữ cho văn bản. Trong thực tế, có thể thấy rất nhiều ứng dụng phân lớp văn bản
đòi hỏi nhận diện được ngôn ngữ. Ví dụ, bộ phân lớp sách thay cho công việc của một thủ thư kho sách điện tử cần xếp sách vào lớp với ngôn ngữ tương ứng, hay các tin bài của các hãng tin lớn cần được xếp vào chuyên mục tin của ngôn ngữ tương ứng. Tuy nhiên nếu sử dụng thêm một bộ nhận dạng ngôn ngữ tốn kém và làm chậm quá trình phân lớp.
Xuất phát từ nhu cầu đó, và hướng tới các ứng dụng nhỏ khoá luận đề xuất xây dựng một bộ phân lớp văn bản độc lập ngôn ngữ trên cây phân lớp thông minh. Quá trình xây dựng bộ phân lớp này hoàn toàn giống với quá trình xây dựng bộ phân lớp trong phần 3.3. Điểm khác duy nhất nằm ở cây phân lớp. Giả sử trong cây phân lớp chuẩn của bộ phân lớp L ngôn ngữ có N lớp, thì ở cây phân lớp thông minh sẽ có
Bảng 1. Cây phân lớp thông minh tổng quát
STT lang1 lang2 … langL
1 lang1_class1 lang2_class1 … langL_class1
2 lang1_class2 lang2_class3 … langL_class2
…
N lang1_classN lang2_classN … langL_classN
Bộ phân lớp xây dựng trên cây phân lớp thông minh, vừa có khả năng phân lớp văn bản, vừa có khả năng nhận dạng văn bản được viết bởi nhưng ngôn ngữ nào.
Đây là một ví dụ cây phân lớp thông minh cho bài toán phân lớp tác phẩm văn học: giả
sử chỉ lấy trên 3 lớp là: Thơ, Truyện, Tuỳ bút đối với 2 ngôn ngữ là tiếng Anh và tiếng Trung.
Bảng 2. Bảng ví dụ cho cây phân lớp thông minh
STT Anh Trung Quốc Mô tả
1 en_po cn_po tác phẩm là thơ
2 en_st cn_st tác phẩm là truyện, truyện ngắn, tiểu thuyết,… 3 en_dl cn_dl tác phẩm là kí sự, tuỳ bút,…
3.5.1. Bản chất bài toán
Xét hai bài toán phân lớp văn bản trên nhiều ngôn ngữ, và bài toán nhận dạng ngôn ngữ. Điểm chung giữa hai bài toán này là đều có thể sử dụng chung một tập dữ
liệu chú ý rằng đây không phải là tập dữ liệu huấn luyện. Với bài toán phân lớp thì gán nhãn văn bản theo lớp, bài toán nhận dạng ngôn ngữ gán nhãn văn bản theo ngôn ngữ. Lợi dụng điều này, ta sẽ gán nhãn văn bản theo cả lớp và ngôn ngữ. Trong ví dụ trên en_po là nhãn cho lớp thơ và ngôn ngữ là tiếng Anh. Như vậy, thực chất nhãn trong cây phân lớp thông minh là bao gồm nhiều nhãn, cụ thể ởđây là: nhãn lớp (lĩnh vực) và nhãn ngôn ngữ. Chính vì lý do này, chúng tôi gọi cây phân lớp như vậy là cây phân lớp thông minh.
3.5.2. Phân lớp cho văn bản mới
Với một văn bản mới, bộ phân lớp tiến hành phân lớp cho văn bản. Các bước thực hiện giống như việc phân lớp văn bản của bộ phân lớp trên cây phân lớp chuẩn.
Nếu văn bản được viết bởi 1 ngôn ngữ, các n-gram sinh ra sẽ mang đặc trưng của ngôn ngữ. Nên sác xuất của văn bản đó sẽ có xu hướng nghiêng hẳn về một lớp.
đa lớp cho văn bản. Nếu văn bản được phân vào lớp en_st tức là văn bản thuộc thể loại Truyện nhưng viết bằng tiếng Anh. Nếu văn bản được phân vào lớp cn_st và cn_dl thì văn bản được phân vào cả hai lớp Truyện và Tuỳ bút nhưng nó được viết bằng tiếng Trung.
Nếu văn bản được viết bởi nhiều ngôn ngữ, sẽ xuất hiện n-gram sinh ra đặc trưng cho nhiều ngôn ngữ khác nhau. Đến đây là tiếp tục sử dụng chiến lược phân đa lớp để tìm lớp cho văn bản. Nếu văn bản được phân vào hai lớp: en_dl và cn_dl có nghĩa là văn bản thuộc lĩnh vực Tuỳ bút nhưng được viết bởi cả hai ngôn ngữ Anh và Trung.
3.5.3. Nhận xét về phương pháp
Thời gian huấn luyện bằng với thời gian huấn luyện của bộ phân lớp văn bản
độc lập ngôn ngữ trên cây phân lớp chuẩn. Nhưng thời gian phân lớp thì lâu hơn. Nguyên nhân là do sự kết hợp giữa tập mệnh đề thông tin ngữ cảnh và số các lớp làm số lượng đặc trưng tăng gấp L lần (số các ngôn ngữ). Do đó một lần nữa chúng ta khẳng định lại rằng, bộ phân lớp này phù hợp cho các ứng dụng nhỏ.
3.6. Tổng kết chương
Chương này đã xem xét các khía cạnh điển hình về bài toán phân lớp văn bản
độc lập ngôn ngữ cũng như cách xây dựng bộ phân lớp với việc ứng dụng mô hình Entropy cực đại. Đặc biệt, hai vấn đề nhập nhằng ngôn ngữ và bùng nổ đặc trưng là những khó khăn thách thức đối với bài toán phân lớp văn bản độc lập ngôn ngữ đã
được phân tích và giải quyết bằng các phương pháp cụ thể. Khóa luận đã có một đề
xuất lựa chọn đặc trưng rất ý nghĩa là phương pháp loại bỏ stop-word trong n-gram khá hiệu quả. Và cuối cùng một đề xuất có ý nghĩa ứng dụng và tính thực tế cao đó là việc xây dựng bộ phân lớp trên cây phân lớp thông minh. Bộ phân lớp như vậy rất hiệu quả trong việc giải quyết các bài toán phân lớp văn bản và muốn nhận dạng ngôn ngữ