PhÇn 1
3.1. Giới thiệu bài toán phân lớp văn bản
Bài toán phân lớp văn bản như đã được mô tả ở trên là việc gán các chủ đề có trước cho các văn bản dựa trên nội dung của chúng. Người ta có thể phân lớp văn bản một cách thủ công, hoặc sử dụng các phương pháp phân lớp tự động [1, 12, 13].
Để phân lớp được văn bản tự động thường sử dụng các kỹ thuật học máy có giám sát (supervised learning). Trong kỹ thuật này, dữ liệu được chia ra thành hai phần: tập huấn luyện hay tập mẫu (training set) và tập kiểm thử (test set). Đầu tiên hệ thống sẽ được huấn luyện (học) thông qua tập mẫu, sau đó đánh giá hiệu quả của hệ thống thông qua các dữ liệu kiểm thử.
Các hệ thống phân lớp văn bản như vậy có thể ứng dụng trong việc phân loại tài liệu của các thư viện điện tử, phân loại bài viết trên các trang tin điện tử, hay phân loại giấy tờ công văn trong các công sở,... Một hệ thống phân lớp văn bản tốt không những có thể thay thế hoàn toàn con người trong lĩnh vực này mà thậm chí còn cho ra các kết quả tốt hơn rất nhiều so với con người.
3.2. Các thuật toán Phân lớp văn bản cơ bản
Để phân lớp dữ liệu hiện nay có những phương pháp phân lớp nổi tiếng như:
Phân lớp với cây quyết định (Decision Tree)
Phân lớp k láng giềng gần nhất k-NN (k-Nearest Neighbor)
Phân lớp bằng tập thô (Rough Set Approach)
Phân lớp bằng mạng Neuron (Classification by Backpropagtion)
Phân lớp dựa trên giải thuật di truyền (Genetic Algorithms)
Phương pháp Bayesian (Bayesian Classification)
Phân lớp dựa trên tập mờ (Fuzzy Set Approach),
....
Trong đó đối với dữ liệu văn bản thì hai thuật toán đầu tiên: cây quyết định và k-NN là hai thuật toán thông dụng nhất. Chúng ta sẽ đi vào tìm hiểu hai thuật toán này trong phần sau đây.
3.2.1. Thuật toán cây quyết định (Decision Tree)
Cây quyết định là một trong các phương pháp được sử dụng rộng rãi nhất trong học quy nạp từ tập dữ liệu lớn. Phương pháp này được Mitchell đưa ra vào năm 1996 [9], đây là phương pháp học xấp xỉ các hàm mục tiêu có giá trị rời rạc. Một ưu điểm của phương pháp cây quyết định là có thể chuyển dễ dàng sang dạng cơ sở tri thức là các luật Nếu - Thì (If Then). -
3.2.1.1. Mô tả cây quyết định
Đầu ra của giải thuật là mô hình phân lớp dưới dạng một cây quyết định. Mô hình cây quyết định gồm các nút quyết định, các nhánh và các lá.
• Mỗi gắn với một nhãn lớp,lá
• Mỗi nút quyết định mô tả một phép thử X nào đó,
• Mỗi nhánh của nút này tương ứng với một khả năng của X.
Hệ thống sẽ phân lớp một tài liệu dj bằng phép thử đệ quy các trọng số mà các khái niệm được gán nhãn cho các nút trong của cây với vector dj cho đến khi đạt tới một nút lá, khi đó nhãn của nút lá này được gán cho tài liệu dj. Đa số các phương pháp phân lớp như vậy sử dụng biểu diễn dữ liệu ở dạng nhị phân, các cây cũng được biểu diễn dưới dạng nhị phân.
3.2.1.2. Ví dụ minh họa cây quyết định Ta có thể minh họa qua ví dụ sau:
Dữ liệu huấn luyện:
Dữ liệu huấn luyện trong bảng 3.1 là 10 văn bản được biểu diễn bởi 7 khái niệm ở dạng nhị phân bao gồm: “Lúa”, “Nông trại”, “Rơm rạ”, “Thương nghiệp”,
“Xuất khẩu”, “Nông nghiệp”, và “Tấn”. Cột cuối cùng trong bảng là nhãn đã được gán cho từng văn bản tương ứng với phân lớp “LÚA” (class LÚA). Giá trị 1 mang ý nghĩa xác định văn bản tương ứng thuộc phân lớp“LÚA”, còn giá trị 0 mang ý nghĩa ngược lại tức là văn bản này không thuộc phân lớp “LÚA”.
Bảng 3.1. Các mẫu huấn luyện dùng cho cây quyết định class LÚA
VĂN BẢN Lúa Nông trại
Rơm Rạ
Thương nghiệp
Xuất khẩu
Nông nghiệp
Tấn Class LÚA
d1 1 1 1 0 0 1 0 1
d2 0 1 0 1 1 1 0 1
d3 0 0 1 1 0 0 1 0
d4 1 1 0 1 0 0 1 0
d5 0 1 0 0 0 1 0 0
d6 1 0 1 0 0 1 1 1
d7 0 0 1 1 0 0 0 0
d8 0 0 1 0 0 1 0 0
d9 1 0 1 0 1 0 0 0
d10 1 1 1 1 1 0 1 1
Cây quyết định xây dựng
Hình 3.1 minh họa cây quyết định cho phân lớp “LÚA” xây dựng từ bảng 3.1.
Lóa
Nông trại Xuất khẩu
Rơm rạ Xuất khẩu Class LúA
= Yes
Class LóA
= No
Class LóA = Yes
Class LóA
= No
Class LóA
= No
Class LóA
= Yes
1
1
1 1
1 0
0 0
0 0
Hình 3.1. Một ví dụ về cây quyết định cho phân lớp LÚA
Cơ sở tri thức biểu diễn dưới dạng các luật Nếu – Thì:
Từ tập huấn luyện này ta rút ra được cơ sở tri thức biểu diễn dưới dạng các luật Nếu – Thì như sau:
Nếu (Lúa = 0) và (Xuất khẩu = 0) Thì class LÚA = 0
Nếu (Lúa = 0) và (Xuất khẩu = 1) Thì class LÚA = 1
Nếu (Lúa = 1) và (Nông trại = 0) và (Xuất khẩu = 1) Thì class LÚA =0
Nếu (Lúa = 1) và (Nông trại = 0) và (Xuất khẩu = 0) Thì class LÚA =1
Nếu (Lúa = 1) và (Nông trại = 1) và (Rơm rạ= 0) Thì class LÚA = 0
Nếu (Lúa = 1) và (Nông trại = 1) và (Rơm rạ= 1) Thì class LÚA = 1
Quá trình xác định phân lớp trên cây quyết định:
Xét một văn bản d11 được biểu diễn nhị phân dưới dạng các khái niệm như sau:
d11= {Lúa, Nông trại, Rơm rạ, Thương nghiệp, Xuất khẩu, Nông nghiệp, Tấn} = {1, 1, 0, 0, 0, 1, 0}
VĂN BẢN Lúa Nông trại
Rơm Rạ
Thương nghiệp
Xuất khẩu
Nông nghiệp
Tấn Class LÚA
d11 1 1 0 0 0 1 0 ???
Quá trình tìm kiếm lời giải trên cây quyết định cho văn bản d11 được mô tả trong hình 3.2 như sau:
Lóa
Nông trại Xuất khẩu
Rơm rạ Xuất khẩu Class LúA
= Yes
Class LóA
= No
Class LóA = Yes
Class LóA
= No
Class LóA
= Yes
1
1
1 1
1 0
0 0
0 0
Class LóA
= No
Hình 3.2. Ví dụ tìm kiếm lời giải trên cây quyết định phân lớp chủ đề “LÚA ”
Kết luận: Như vậy tài liệu d11 không thuộc về phân lớp LÚA .
3.2.1.3. Xây dựng cây quyết định
Quá trình xây dựng cây quyết định gồm hai bước: phát triển cây và tỉa cây [1, 8, 11].
3.2.1.3.1. Phát triển cây
Bước này sử dụng tập mẫu học đang xét để tạo ra một cây quyết định tương ứng. Phần lớn các giải thuật hiện nay như ID3, C4.5, SLIQ, SPRILT, ScaparlC đều phát triển cây theo phương pháp Hunt mô tả trong phần dưới đây.
Ta ký hiệu như sau:
• T là tập mẫu học.
• Cjlà lớp thứ j, j =1...k.
• X: Một phép thử bất kỳ.
• Oi: là khả năng thứ i của phép thử X , i=1...n
• Ti: Tập con thứ i của T(i = 1...n ) sao cho mọi mẫu trong Ti đều thoả mãn khả năng Oi của phép thử X.
Chiến lược dựng cây
Việc dựng cây được thực hiện một cách đệ quy theo phương pháp Hunt. Khi dùng tập mẫu học T có các nhãn lớp {Ci,....,Ck } để phát triển một cây quyết định có thể xẩy ra một trong 3 trường hợp sau :
1. Mọi mẫu trong T đều thuộc lớp C: Cây quyết định tưong ứng sẽ chỉ là một lá có nhãn lớp là Cj.
2. T là tập rỗng. Khi đó cây quyết định tương ứng cũng chỉ là một lá, tuy nhiên để xác định nhãn lớp cho lá này cần có thêm thông tin.
3. Các phần tử của T thuộc nhiều lớp khác nhau. Dùng một phép thử X có các khả năng Oi,...,On loại trừ lẫn nhau để tách lập T thành các tập con Ti,...,Tn rời nhau. Cây quyết định tương ứng với T sẽ gồm một nút quyết định có nhãn X và n nhánh tương ứng. Lặp lại quá trình trên với từng tập con Ti
Quá trình phát triển cây hoàn thành khi các mẫu tương ứng với từng lá đều thuộc cùng một lớp hoặc khi tập mẫu có quá ít phần tử không cần tiếp tục phân chia nữa.
Lựa chọn thuộc tính tốt nhất
“Which attribute is the best?”
Việc đánh giá một thuộc tính lựa chọn để tách tập mẫu tưong ứng với nút đang xét thường dựa trên một số tiêu chuẩn sau [1, 4, 9]:
• Độ đo thông tin Entropy
• Tiêu chuẩn Gain Gain criterion ( ).
• Tiêu chuẩn tỉ số Gain Ratio (Gain ratio criterion) Entropy
Entropy là đại lượng đo độ đồng nhất thông tin của các mẫu. Đây là đại lượng hết sức quan trọng trong lý thuyết thông tin. Giả sử đưa ra tập S có chứa các mẫu ví dụ dương (+) và các mẫu ví dụ âm ( ), như vậ- y S được chia thành hai lớp phân biệt. Khi đó Entropy của tập được xác định như (3.1.):S
−
− +
+ −
≡ p p p
S log2 log2
Entropy( ) -p (3.1)
trong đó p+ là phân bố của các ví dụ dương trong S và p-là phân bố của các ví dụ âm trong S.
Ví dụ: giả sử S gồm 10 phần tử (4 phần tử dương và 6 phần tử âm), ký hiệu là ]
,
[−6 +4 . Khi đó đại lượng Entropy đặc trưng cho sự phân bố các giá trị âm và dương trong được tính theo công thức (3.1):S
Entropy S ( ) = -(4/10)log2(4/10 6/10) – ( )log2(6/10 = 0.97 )
Đại lượng Entropy có giá trị nằm trong khoảng từ 0 đến 1 và có phân bố như trong hình 3.3. Đại lượng Entropy = 0 tại các điểm có phân bố chỉ thuộc về một nhóm, và đạt cực đại bằng 1 tại điểm có phân bố đều.
Hình 3.3. Đồ thị phân bố đại lượng Entropy
Trong trường hợp tổng quát thì đại lượng Entropy được tính theo (3.2):
∑=
−
≡ n
i pi pi
S
1
)
Entropy( log2 (3.2)
trong đó, pi là phân bố của thuộc tính thứ i trong S. Đại Entropy là đại lượng trong lý thuyết thông tin, tính theo bit, nên hàm logarithm được tính ở cơ số 2, do đó Entropy có thể lớn hơn 1 trong trường hợp > 2. n
Information Gain
Dựa trên Entropy là đại lượng đặc trưng cho độ đồng nhất thông tin, người ta đưa ra một độ đo xác định ảnh hưởng của một thuộc tính của mẫu trong việc phân lớp, đại lượng đó gọi là Information Gain.
A S
Information Gain của một thuộc tính trong tập , ký hiệu là Gain(S, A) được xác định theo công thức (3.3):
∈ ∑
−
≡
) Values(
) Entropy(
) Entropy(
) , Gain(
A
v v
v S
S S S
A
S (3.3)
trong đó Values( ) A là tập các giá trị có thể của thuộc tính A, còn Sv là tập con có thể của tập gồm các phần tử có thuộc tính S A = v, tức là Sv ={s∈S|A(s)=v}.
Ví dụ: Gọi là tập các văn bản trong bảng 3.1., gồm 10 ví dụ trong đó có 6 ví dụ âm S và 4 ví dụ dương, [-6, +4]. Xét Alà thuộc tính Nông trại, trong thuộc tính này gồm:
3 giá trị dương và 1 giá trị âm ứng với thuộc tính Nông trại = 1 -> [-1,+3],
1 giá trị dương và 5 giá trị âm ứng với thuộc tính Nông trại = 0 -> [-5,+1].
Khi đó ta có:
Values( )A = đúng, sai S = [-6,+4]
Sđúng= [-1,+3] Ssai = [-5,+1]
Entropy( )S -= 6/10( )log2(6/10 – 4/10) ( )log2(4/10 = 0.97 ) Entropy(Sđúng) = 1/4-( )log2(1/4) – (3/4)log2(3/4 = 0.81 ) Entropy(Ssai) = 5/6-( )log2(4/6 1/6) – ( )log2(2/6 = 0.65 )
Gain(S,A =) Entropy( ) (S – 4/10)Entropy(Sđúng) ( – 6/10)Entropy(Ssai) = 0.97 – (4/10)0.81 – (6/10)0.65 = 0.26
Tiêu chuẩn tỉ số Gain Ratio
Mặc dù tiêu chuẩn Gain cho kết quả khá tốt nhưng nó lại không hề có tác dụng đối với các phép thử có quá nhiều khả năng. Để khắc phục hiện tượng trên, người ta đưa ra tiêu chuẩn tỉ số Gain Ratio xét thêm thông tin về sự phân bố các khả năng của phép thử đó theo công thức (3.4):
) , (
) , ) (
,
( splitS A
A S
= gain A S
gainratio (3.4)
3.2.1.3.2. Tỉa cây (Tree Prunning)
Cây thu được ở bước trên sẽ được thu gọn và tinh chỉnh nhằm loại bỏ các yếu tố mang tính thống kê và các dữ liệu bị nhiễu trong tập mẫu đang xét. Quá trình dựng cây đệ quy ở trên sẽ dừng khi tất cả các mẫu ở các tập con đều thuộc cùng một lớp, hoặc khi không còn phép thử nào cần xét nữa. Tuy nhiên cây thu được thường rất phức tạp và chỉ phù hợp với tập mẫu ban đầu. Khi áp dụng cây với các dữ liệu mới sẽ gây ra sai số lớn. Bước tỉa cây sẽ loại bỏ những cây con, những nhánh không phù hợp nhằm thu được một cây đơn giản và chính xác hơn.
Có hai phương pháp tỉa cây cơ bản là:
• Tỉa cây trước (prepruning): Quá trình tỉa cây được thực hiện ngày trong khi dựng cây.
• Tỉa cây sau (postpruning): Quá trình tỉa cây sau chỉ được thực hiện khi đã có một cây quyết định hoàn chỉnh.
Nhận xét: Tỉa cây sau tuy gây ra tốn kém về mặt thời gian và bộ nhớ do tạo ra các nút dư thừa nhưng cây thu được sau khi tỉa thường đạt độ chính xác phân lớp cao.
Vì những lí do trên, quá trình thu gọn cây thường được thực hiện bằng các phương pháp tỉa cây sau.
3.2.2. Thuật toán k-NN (k-Nearest Neighbor)
Thuật toán k-NN dựa trên phương pháp học máy được biết đến như một thuật toán hiệu quả trong nhiều lĩnh vực đặc biệt là trong bài toán phân lớp văn bản.
Tư tưởng chính của thuật toán là tính toán độ phù hợp của văn bản đang xét với
từng chủ đề dựa trên văn bản mẫu có độ tương tự gần nhất [9, 13]. Thuật toán k k- NN còn được sử dụng trong bài toán tìm kiếm văn bản và bài toán tóm tắt văn bản.
Trong ví dụ hình 3.4 sau đây biểu diễn việc khoanh vùng văn bản gần nhất k ( k = 5) với văn bản cần phân lớp. Từ k văn bản gần nhất tìm được cần đưa ra giải pháp để tìm phân lớp phù hợp nhất với văn bản này.
Hình 3.4. Minh họa việc khoanh vùng k văn bản gần nhất với k = 5
Vấn đề đầu tiên cần quan tâm là: khái niệm “gần” ở đây hiểu ra sao? mức độ
“gần” khi đó sẽ được tính theo công thức nào?
Khái niệm gần ở đây được hiểu là độ tương tự hay độ giống nhau giữa các văn bản. Có rất nhiều cách tính độ tương tự (độ “gần”) giữa hai văn bản trong đó phương pháp đánh giá độ tương tự dựa trên công thức cosine trọng số thường được sử dụng rộng rãi nhất. Ở đây, văn bản được biểu diễn dưới dạng vector.
T = {t1, t2,…tn} là tập hợp các thuật ngữ (hoặc các khái niệm),
W = {w1, w2,...wn} vector trọng số trong đó wi là trọng số của thuật ngữ ti.
Xét hai văn bản X = {x1, x2,…xn} và = {yY 1, y2,…yn}, trong đó xi, yi là tần số thuật ngữ tixuất hiện tương ứng trong văn bản X Y, .
Khi đó độ tương tự giữa hai văn bản X và Yđược tính theo công thức (3.5) sau:
∑
∑
∑
∈
∈
∈
×
×
×
×
= ×
=
T
t t t
T
t t t
T
t t t t t
w y w
x
w y w W x
Y X Y
X ( )2 ( )2
) (
) ) (
, , cosine(
) ,
sim( (3.5)
Phân lớp 1 Phân lớp 2
Văn bản cần phân lớp
Trong vector X và , các thành phần Y xi và yi thường được chuẩn hóa theo tần suất xuất hiện TF (công thức (1.2), (1.3), (1.4)) của thuật ngữ ti trong và X Y. Vector W được xác định bằng tay hoặc được tính theo một thuật toán tham lam nào đó. Một số đề xuất đưa ra cách tính vector W theo nghịch đảo tần suất văn bản IDF, khi đó các văn bản được biểu diễn dưới dạng vector tần suất TF × IDF (công thức (1.6)) .
Vấn đề thứ hai đặt ra là: “Sau khi tìm được k văn bản gần nhất, làm thế nào để tìm ra phân lớp văn bản phù hợp nhất với văn bản đó?”
Có nhiều cách đánh giá độ phù hợp của chủ đề cho văn bản đang xét dựa trên độ tương tự giữa các văn bản, trong đó có 3 cách được sử dụng nhiều nhất [4, 9]:
• Gán nhãn theo văn bản gần nhất
Theo phương pháp này, văn bản đang xét sẽ được gán nhãn cho chủ đề của văn bản có độ tương tự cao nhất. Giải pháp này tương đối đơn giản và hiệu quả, song nó không được đánh giá cao vì sẽ dẫn đến kết quả sai khi tập mẫu có nhiễu. Một nhược điểm nữa là kết quả đưa ra sẽ không mang tính tổng hợp.
• Gãn nhãn theo số đông
Văn bản đang xét sẽ được gán nhãn cho chủ đề có nhiều văn bản gần văn bản đang xét nhất trong số k văn bản. Để dễ hiểu, xét một ví dụ như sau, văn bản d có 5 văn bản gần với nó là d1, d2, d3, d4 và d5 có nhãn chủ đề và độ tương tự như sau:
Bảng 3.2. Ví dụ 1 về gán nhãn theo số đông
d1 d2 d3 d4 d5
Độ tương tự 0.9 0.89 0.89 0.88 0.6
Chủ đề chủ đề 1 chủ đề 2 chủ đề 2 chủ đề 2 chủ đề 3
Về mặt trực quan, nên gán nhãn chủ đề 2 cho văn bản vì có 3 văn bản thuộc d lớp này. Nếu chọn theo văn bản gần nhất (gán nhãn chủ đề 1) thì có thể gặp sai lầm vì khả năng có nhiễu hoặc tập mẫu chứa sai sót. Như vậy, cách đánh giá này đã khắc phục được lỗi trong tập mẫu, tuy nhiên lại vẫn chưa được đánh giá cao trong một số tình huống mà cụ thể là ở ví dụ dưới đây.
Bảng 3.3. Ví dụ 2 về gán nhãn theo số đông
d1 d2 d3 d4 d5
Độ tương tự 0.9 0.8 0.3 0.3 0.2
Chủ đề Chủ đề 1 chủ đề 1 chủ đề 2 chủ đề 2 chủ đề 2 Trong trường hợp này thì lại nên chọn chủ đề 1 để gán nhãn cho văn bản d.
• Gán nhãn theo độ phù hợp chủ đề
Phương pháp này cần lần lượt tính độ phù hợp của văn bản với từng chủ đề d từ văn bản đã lấy ra, sau đó gán nhãn chủ đề phù hợp nhất cho k d.
Độ phù hợp giữa một văn bản và chủ đề được tính theo công thức (3.6):d c
∑∈
=
c
d i
i
d d c
d, ) sim( , )
sim( (3.6)
Đây là phương pháp thường cho độ chính xác cao nhất.
Ví dụ: Với ví dụ cho trong bảng 3.2, theo phương pháp gán nhãn theo độ phù hợp chủ đề thì d sẽ được gán cho chủ đề 1, do sim(d, chủ đề 1) = 1.7; sim(d, chủ đề 2) = 0.8.
3.3. Đánh giá hiệu suất phân lớp văn bản
Hình 3.5. Minh họa cách tính precision và recall
Hiệu suất xử lý văn bản xác định thông qua hai đại lượng precision (độ chính xác) và recall (độ hồi tưởng) được tính theo công thức (3.7) [1, 4, 9]:
Tổng số văn bản Tổng số văn bản tìm
được nhưng không đúng
Số văn bản đúng nhưng không tìm được
Số văn bản tìm được và đúng
a
b c
b a precision b
= + , và
c b recall b
= + (3.7)
Trong đó: số văn bản tìm được = a+b, số văn bản đúng = b+c.
• Khi đại lượng precision càng tiến đến 1 thì tập văn bản tìm được càng có nhiều phần tử thuộc tập văn bản đúng, khi đó độ chính xác càng cao.
• Khi đại lượng recall càng tiến đến 1 thì tập hợp văn bản đúng càng có nhiều phần tử thuộc tập tìm được.
• Khi precision = 1 thì tập văn bản tìm được là tập con của tập văn bản đúng,
• Khi recall = 1 thì tập văn bản đúng là tập con của tập văn bản tìm được.
• Trong trường hợp lý tưởng khi precision = recall = 1, tập văn bản tìm được và tập văn bản đúng hoàn toàn trùng nhau, khi đó ta nói kết quả phân lớp chính xác tuyệt đối.
Ngoài ra còn có đại lượng đánh giá hiệu suất xử lý văn bản dựa trên thời gian hay tốc độ thực hiện bài toán với lượng dữ liệu đầu vào lớn. Đại lượng này chủ yếu đánh giá hiệu suất về mặt tốc độ, để đánh giá chất lượng thực sự của hệ thống thì cần kết hợp giữa tốc độ của thuật toán (khả năng đáp ứng của hệ thống với thời gian thực) và chất lượng kết quả (qua hai đại lượng precision và recall ).