Tải bản đầy đủ (.doc) (45 trang)

Phân loại văn bản dùng thuật toán Naïve Bayes và Logic Mờ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (814.88 KB, 45 trang )

Đề tài: Phân loại văn bản dùng thuật toán Naïve Bayes và Logic Mờ
LỜI NÓI ĐẦU
Thống kê (toán học) là bộ môn toán học rất quan trọng và có nhiều ứng dụng to
lớn trong thực tế, giúp con người rút ra thông tin từ dữ liệu quan sát, nhằm giải quyết
các bài toán thực tế trong cuộc sống.
Ngày nay , sự bùng nổ thông tin do bị tác động bởi sự xuất hiện của các siêu phương
tiện và World Wide Web (WWW) đã làm cho không gian dữ liệu gia tăng thường xuyên,
điều này tạo ra một thách thức cho các hệ thống truy vấn thông tin sao cho có hiệu qủa.
Một trong những khó khăn mà các hệ thống thông tin thường phải gặp đó là tần suất cập
nhật của các thông tin qúa lớn. Phương thức sử dụng giấy trong giao dịch đang dần được
số hóa, do nhiều tính năng vượt trội mà phương thức này mang lại, như là có thể lưu trữ
lâu dài, cập nhật, sửa đổi, tìm kiếm một cách nhanh chóng. Do đó số lượng văn bản số
hóa ngày nay đang tăng dần theo cấp số nhân, cùng với sự gia tăng của số lượng văn bản,
nhu cầu tìm kiếm văn bản cũng tăng theo, khi đó phân loại văn bản tự động là một yêu
cầu cấp thiết được đặt ra. Phân loại văn bản giúp sẽ giúp chúng ta tìm kiếm thông tin một
cách nhanh chóng hơn thay vì phải tìm lần lượt trong từng văn bản, hơn nữa khi mà số
lượng văn bản đang gia tăng một cách nhanh chóng thì thao tác tìm lần lượt trong từng
văn bản sẽ mất rất nhiều thời gian, công sức và là một công việc nhàm chán và không khả
thi. Chính vì thế nhu cầu phân loại văn bản tự động là thực sự cần thiết.
Trang 1
Đề tài: Phân loại văn bản dùng thuật toán Naïve Bayes và Logic Mờ
MỤC LỤC
DANH MỤC BẢNG BIỂU 5
CHƯƠNG 1: CÁC HƯỚNG TIẾP CẬN PHÂN LOẠI VĂN BẢN 6
1.1. Biểu diễn văn bản 6
1.2. Các phương pháp phân loại văn bản 7
1.2.1. Phương pháp SVM – Support Vector Machine 7
1.2.2. Phương pháp K – Nearest Neighbor ( kNN) 8
1.2.3. Phương pháp Naïve Bayes (NB) 9
1.2.4. Phương pháp Linear Least Square Fit – LLSF 11
1.2.5. Phương pháp Centroid – based vector 12


1.2.6. Kết luận 13
CHƯƠNG 2: CÁC HƯỚNG TIẾP CẬN TÁCH TỪ 15
2.1. Các hướng tiếp cận dựa trên từ 15
2.2. Các hướng tiếp cận dựa trên kí tự 16
CHƯƠNG 3: PHÂN LOẠI VĂN BẢN TIẾNG VIỆT 17
3.1. Tách từ trong văn bản 17
3.2. Xác định từ loại của từ 18
3.3. Loại bỏ các từ tầm thường 18
3.4. Phương pháp trích rút đặc trưng văn bản 19
3.4.1. Các ý tưởng cơ bản 19
3.4.2. Phương pháp truyền thống rút trích đặc trưng văn bản 19
3.4.3. Phương pháp rút trích đặc trưng đề nghị sử dụng 21
CHƯƠNG 4: SỬ DỤNG THUẬT TOÁN NAIVE BAYES ĐỂ PHÂN LOẠI VĂN BẢN
23
4.1. Lý do chọn Naïve Bayes 23
4.2. Áp dụng cho bài toán phân loại văn bản 23
Trang 2
Đề tài: Phân loại văn bản dùng thuật toán Naïve Bayes và Logic Mờ
4.3. Một số cải tiến : 27
4.3.1. Ước lượng P(X|Y) 27
4.3.2. Ước lượng P(Y) 27
4.3.3. Ước lượng P(Y|X) 28
CHƯƠNG 5: PHÂN LOẠI VĂN BẢN DỰA VÀO THUẬT TOÁN LOGIC MỜ 29
5.1. Mô hình chung 29
5.2. Phân loại văn bản 29
5.2.1. Mỗi liên hệ giữa phân loại và thuật ngữ mờ 29
5.2.2. Độ đo tương tự mờ (Fuzzy Similarity Measure) 30
5.2.3. Trường hợp đặc biệt của độ đo tương tự mờ 31
CHƯƠNG 6: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 33
6.1. Mô hình useCase: 33

6.2. Đặc tả useCase: 33
6.3. Biểu đồ hoạt động của hệ thống 34
6.4. Cơ sở dữ liệu 36
6.3. Thuật ngữ chuyên ngành 38
6.4. Thiết kế giao diện chương trình 38
CHƯƠNG 7: KẾT LUẬN 43
7.1. Đánh giá về hệ thống 43
7.2. Hướng phát triển 43
Phụ lục: 44
Tài liệu tham khảo : 45
DANH MỤC HÌNH ẢNH
Trang 3
Đề tài: Phân loại văn bản dùng thuật toán Naïve Bayes và Logic Mờ
Trang 4
Đề tài: Phân loại văn bản dùng thuật toán Naïve Bayes và Logic Mờ
DANH MỤC BẢNG BIỂU
Trang 5
Đề tài: Phân loại văn bản dùng thuật toán Naïve Bayes và Logic Mờ
CHƯƠNG 1: CÁC HƯỚNG TIẾP CẬN PHÂN LOẠI VĂN BẢN
1.1. Biểu diễn văn bản
Như đã trình bày ở phần trên , bước đầu tiên trong qui trình phân loại văn bản là
thao tác chuyển văn bản đang được mô tả duới dạng chuỗi các từ thành một mô hình
khác, sao cho phù hợp với các thuật toán phân loại, thông thường nguời ta thường biểu
diễn văn bản bằng mô hình vector. Ý tưởng của mô hình này là xem mỗi một văn bản (D
i
)
được biểu diễn theo dạng
(
)
i,

d
D
i
i
=
, trong đó i là chỉ số dùng để nhận diện văn bản này

d
i
là vector đặc trưng của văn bản D
i
này, trong đó :
), ,,(
www
d
in2i1i
i
=
, và n là
số luợng đặc trưng của vector văn bản,
w
ij
là trọng số của đặc trưng thứ j,
{ }
n1,2, ,j∈
Một vấn đề cần quan tâm khi biểu diễn văn bản theo vector đặc trưng chính là việc
chọn lựa đặc trưng và số chiều cho không gian vector. Cần phải chọn bao nhiêu từ, là các
từ nào, phương pháp chọn ra sao? Đây là câu hỏi chúng ta phải trả lời trong quá trình
chuyển văn bản sang dạng vector, có nhiều cách tiếp cận khác nhau để trả lời cho câu hỏi
này, tiêu biểu là sử dụng phương pháp Information Gain, phương pháp DF – Thresolding

hay phương pháp Term Strength. Phương pháp Information Gain sử dụng độ đo MI
(Mutual Information) để chọn ra tập từ khóa đặc trưng có độ đo MI cao nhất. Tuy nhiên,
việc chọn lựa phương pháp nào thì tuỳ thuộc vào độ thích hợp, phù hợp của phương pháp,
của độ đo mà phương pháp đó sử dụng so với bài toán mà chúng ta đang xem xét giải
quyết, có thể là nếu văn bản là một trang web thì sẽ có phương pháp để chọn lựa đặc
trưng khác so với các văn bản loại khác.
Các đặc trưng của văn bản khi biểu diễn dưới dạng vector:
- Số chiều không gian đặc trưng thường lớn.
- Các đặc trưng độc lập nhau.
- Các đặc trưng rời rạc: vector đặc trưng d
i
có thể có nhiều thành phần mang giá trị 0
do có nhiều đặc trưng không xuất hiện trong văn bản d
i
(nếu chúng ta tiếp cận theo cách
sử dụng giá trị nhị phân 0, 1 để biểu diễn cho việc có xuất hiện hay không một đặc trưng
nào đó trong văn bản đang được biểu diễn thành vector), tuy nhiên nếu đơn thuần cách
Trang 6
Đề tài: Phân loại văn bản dùng thuật toán Naïve Bayes và Logic Mờ
tiếp cận sử dụng giá trị nhị phân 0, 1 này thì kết qủa phân loại phần nào hạn chế là do có
thể đặc trưng đó không có trong văn bản đang xét nhưng trong văn bản đang xét lại có từ
khóa khác với từ đặc trưng nhưng có ngữ nghĩa giống với từ đặc trưng này, do đó một
cách tiếp cận khác là không sử dụng số nhị phân 0, 1 mà sử dụng giá trị số thực để phần
nào giảm bớt sự rời rạc trong vector văn bản.
1.2. Các phương pháp phân loại văn bản
1.2.1. Phương pháp SVM – Support Vector Machine
SVM là phương pháp phân loại rất hiệu qủa được Vapnik giới thiệu năm 1995.
Ý tưởng của phương pháp là cho trước một tập huấn luyện được biểu diễn trong
không gian vector, trong đó mỗi một văn bản được xem như một điểm trong không gian
này. Phương pháp này tìm ra một siêu mặt phẳng h quyết định tốt nhất có thể chia các

điểm trên không gian này thành hai lớp riêng biệt tương ứng, tạm gọi là lớp + (cộng ) và
lớp – (trừ). Chất lượng của siêu mặt phẳng này được quyết định bởi một khoảng cách
(được gọi là biên) của điểm dữ liệu gần nhất của mỗi lớp đến mặt phẳng này. Khoảng
cách biên càng lớn thì càng có sự phân chia tốt các điểm ra thành hai lớp, nghĩa là sẽ đạt
được kết qủa phân loại tốt. Mục tiêu của thuật toán SVM là tìm được khoảng cách biên
lớn nhất để tạo kết qủa phân loại tốt.
Có thể nói SVM thực chất là một bài toán tối ưu, mục tiêu của thuật toán là tìm được
một không gian H và siêu mặt phẳng quyết định h trên H sao cho sai số khi phân loại là
thấp nhất, nghĩa là kết qủa phân loại sẽ cho kết qủa tốt nhất .
Phương trình siêu mặt phẳng chứa vector d
i
trong không gian như sau:
0b
w
.
d
i
=+


Trang 7
Đề tài: Phân loại văn bản dùng thuật toán Naïve Bayes và Logic Mờ







<+




>+


+
=










=









0b
w

.
d
i
,
0bw.
d
i
,
w
.
d
i
sign
d
i
h
Như thế vector h(d
i
) biểu diễn sự phân lớp của vector d
i
vào hai lớp. Gọi Y
i
mang
giá trị +1 hoặc -1, khi đó Y
i
= +1 văn bản tương ứng với vector d
i
thuộc lớp + và ngược
lại nó sẽ thuộc vào lớp - . Khi này để có siêu mặt phẳng h ta sẽ giải bài toán sau :
Tìm Min

w

với
w

và b thỏa điều kiện :
1b))w
d
i
(sign(
y
i
:n1,i
≥+−∈∀
Chúng ta thấy rằng SVM là mặt phẳng quyết định chỉ phụ thuộc vào các vector hỗ
trợ có khoảng cách đến mặt phẳng quyết định là 1/w
i
. Khi các điểm khác bị xóa đi thì
thuật toán vẫn cho kết qủa giống như ban đầu. Chính đặc điểm này làm cho SVM khác
với các thuật toán khác như kNN, LLSF, Nnet, NB vì tất cả dữ liệu trong tập huấn luyện
đều được dùng để tối ưu hóa kết quả.
1.2.2. Phương pháp K – Nearest Neighbor ( kNN)
kNN là phương pháp truyền thống khá nổi tiếng theo hướng tiếp cận thống kê đã
được nghiên cứu trong nhiều năm qua. kNN được đánh giá là một trong những phương
pháp tốt nhất được sử dụng từ những thời kỳ đầu trong nghiên cứu về phân loại văn bản.
Ý tưởng của phương pháp này đó là khi cần phân loại một văn bản mới, thuật toán
sẽ xác định khoảng cách (có thể áp dụng các công thức về khoảng cách như Euclide,
Cosine, Manhattan, …) của tất cả các văn bản trong tập huấn luyện đến văn bản này để
tìm ra k văn bản gần nhất, gọi là k nearest neighbor – k láng giềng gần nhất, sau đó dùng
các khoảng cách này đánh trọng số cho tất cả các chủ đề. Khi đó, trọng số của một chủ đề

chính là tổng tất cả các khoảng cách ở trên của các văn bản trong k láng giềng có cùng
chủ đề, chủ đề nào không xuất hiện trong k láng giềng sẽ có trọng số bằng 0. Sau đó các
chủ đề sẽ được sắp xếp theo giá trị trọng số giảm dần và các chủ đề có trọng số cao sẽ
được chọn làm chủ đề của văn bản cần phân loại.
Trang 8
Đề tài: Phân loại văn bản dùng thuật toán Naïve Bayes và Logic Mờ
Trọng số của chủ đề c
j
đối với văn bản x được tính như sau :

b
j
c
j
,
d
i
y.
{kNN}
d
i
d
i
,
x
simc
j
x,
W −





















=









Trong đó :

y (d
i
, c) thuộc {0,1} , với :
- y = 0 : văn bản d
i
không thuộc về chủ đề c
j
- y = 1 : văn bản d
i
thuộc về chủ đề c
j
sim (x , d) : độ giống nhau giữa văn bản cần phân loại x và văn bản d . Chúng ta
có thể sử dụng độ đo cosine để tính khoảng cách :
d
i
x
d
i
.
x
d
i
,
x
cos
d
i
,
x
sim





=










=










- b
j
là ngưỡng phân loại của chủ đề c
j

được tự động học sử dụng một tập văn bản
hợp lệ được chọn ra từ tập huấn luyện.
Để chọn được tham số k tốt nhất cho thao tác phân loại, thuật toán cần được chạy
thử nghiệm trên nhiều giá trị k khác nhau, giá trị k càng lớn thì thuật toán càng ổn định và
sai sót càng thấp .
1.2.3. Phương pháp Naïve Bayes (NB)
Naïve Bayes (NB) là phương pháp phân loại dựa vào xác suất được sử dụng rộng rãi
trong lĩnh vực máy học [Mitchell, 1996] [Joachims, 1997] [Jason, 2001], được sử dụng
lần đầu tiên trong lĩnh vực phân loại bởi Maron vào năm 1961 [Maron, 1961] sau đó trở
nên phổ biến dùng trong nhiều lĩnh vực như trong các công cụ tìm kiếm [Rijsbergen et al,
1970], các bộ lọc email [Sahami et al, 1998]…
NB là phương pháp phân loại dựa vào xác suất được sử dụng rộng rãi trong lĩnh vực
máy học và nhiều lĩnh vực khác như trong các công cụ tìm kiếm, các bộ lọc mail …
Trang 9
Đề tài: Phân loại văn bản dùng thuật toán Naïve Bayes và Logic Mờ
Ý tưởng cơ bản của cách tiếp cận này là sử dụng xác suất có điều kiện giữa từ hoặc
cụm từ và chủ đề để dự đoán xác suất chủ đề của một văn bản cần phân loại. Điểm quan
trọng của phương pháp này chính là ở chỗ giả định rằng sự xuất hiện của tất cả các từ
trong văn bản đều độc lập với nhau. Như thế NB không tận dụng được sự phụ thuộc của
nhiều từ vào một chủ đề cụ thể. Chính giả định đó làm cho việc tính toán NB hiệu quả và
nhanh chóng hơn các phương pháp khác với độ phức tạp theo số mũ vì nó không sử dụng
cách kết hợp các từ để đưa ra phán đoán chủ đề.
Thuật toán Naïve Bayes dựa trên định lý Bayes được phát biểu như sau:
Áp dụng trong bài toán phân loại, các dữ kiện gồm có:
 D: tập dữ liệu huấn luyện đã được vector hóa dưới dạng
 C
i
: phân lớp i, với i = {1,2,…,m}.
 Các thuộc tính độc lập điều kiện đôi một với nhau.
Theo định lý Bayes:

Theo tính chất độc lập điều kiện:
Trong đó:
 là xác suất thuộc phân lớp i khi biết trước mẫu X.
 xác suất là phân lớp i.
 xác suất thuộc tính thứ k mang giá trị x
k
khi đã biết X thuộc phân lớp i.
Các bước thực hiện thuật toán Naïve Bayes:
Trang 10
Đề tài: Phân loại văn bản dùng thuật toán Naïve Bayes và Logic Mờ
Bước 1: Huấn luyện Naïve Bayes (dựa vào tập dữ liệu), tính và
Bước 2: Phân lớp , ta cần tính xác suất thuộc từng phân lớp
khi đã biết trước X
new
. X
new
được gán vào lớp có xác suất lớn nhất theo công thức
Ngoài ra còn có các phương pháp NB khác có thể kể ra như ML Naïve Bayes, MAP
Naïve Bayes, Expected Naïve Bayes. Nói chung Naïve Bayes là một công cụ rất hiệu qủa
trong một số trường hợp. Kết qủa có thể rất xấu nếu dữ liệu huấn luyện nghèo nàn và các
tham số dự đoán (như không gian đặc trưng) có chất lượng kém. Nhìn chung đây là một
thuật toán phân loại tuyến tính thích hợp trong phân loại văn bản nhiều chủ đề. NB có ưu
điểm là cài đặt đơn giản, tốc độ thực hiện thuật toán nhanh, dễ dàng cập nhật dữ liệu huấn
luyện mới và có tính độc lập cao với tập huấn luyện.
1.2.4. Phương pháp Linear Least Square Fit – LLSF
LLSF là một cách tiếp cận ánh xạ được phát triển bởi Yang và Chute vào năm 1992.
Ban đầu LLSF được thử nghiệm trong lĩnh vực xác định từ đồng nghĩa sau đó sử dụng
trong phân loại vào năm 1994. Các thử nghiệm cho thấy hiệu suất phân loại của LLSF có
thể ngang bằng với phương pháp kNN kinh điển.
Ý tưởng của LLSF là sử dụng phương pháp hồi quy để học từ tập huấn luyện và các

chủ đề có sẵn.
Tập huấn luyện được biểu diễn dưới dạng một cặp vector đầu vào và đầu ra
như sau:
-Vector đầu vào là một văn bản bao gồm các từ và trọng số.
-Vector đầu ra gồm các chủ đề cùng với trọng số nhị phân của văn bản ứng với
vector đầu vào .
Trang 11
Đề tài: Phân loại văn bản dùng thuật toán Naïve Bayes và Logic Mờ
Giải phương trình các cặp vector đầu vào, đầu ra chúng ta sẽ thu được ma trận đồng
hiện của hệ số hồi quy của từ và chủ đề .
Phương pháp này sử dụng công thức :
BFA
2
min
arg
F
F
LS
−=
Trong đó :
- A, B là ma trận đại diện tập dữ liệu huấn luyện (các cột trong ma trận tương ứng là
các vector đầu vào và đầu ra).
- F
LS
là ma trận kết quả chỉ ra một ánh xạ từ một văn bản bất kỳ vào vector của chủ
đề đã gán trọng số.
Nhờ vào việc sắp xếp trọng số của các chủ đề, chúng ta được một danh sách chủ đề
có thể gán cho văn bản cần phân loại. Nhờ đặt ngưỡng lên trọng số của các chủ đề mà ta
tìm được chủ đề thích hợp cho văn bản đầu vào. Hệ thống tự động học các ngưỡng tối ưu
cho từng chủ đề, giống với kNN. Mặc dù LLSF và kNN khác nhau về mặt thống kê,

nhưng chúng ta vẫn tìm thấy điểm chung trong cách làm của hai phương pháp này là quá
trình học ngưỡng tối ưu.
1.2.5. Phương pháp Centroid – based vector
Là một phương pháp phân loại đơn giản, dễ cài đặt và tốc độ nhanh do có độ phức
tạp tuyến tính O(n).
Ý tưởng của cách tiếp cận này là mỗi lớp trong dữ liệu huấn luyện sẽ được biểu diễn
bằng một vector trọng tâm. Việc xác định lớp của một văn bản bất kỳ sẽ thông qua việc
tìm vector trọng tâm nào gần với vector biểu diễn văn bản thứ nhất. Lớp của văn bản
chính là lớp mà vector trọng tâm đại diện và khoảng cách được xác định theo độ đo
cosine.
Chúng ta có công thức tính vector trọng tâm của lớp i :



=

{i}
d
j
d
j
{i}
1
C
i
Độ đo khoảng cácg giữa vector x và vector C
i
:
Trang 12
Đề tài: Phân loại văn bản dùng thuật toán Naïve Bayes và Logic Mờ

C
i
.
x
C
i
.
x
C
i
,
x
cos




=










Trong đó :
- x là vector văn bản cần phân loại

- {i} là tập hợp các văn bản thuộc chủ đề C
i
- Chủ đề của vector x là C
x
thỏa mãn cos(x, C
x
)= arg max (cos(x,C
i
)).
1.2.6. Kết luận
Các thuật toán phân loại trên từ thuật toán phân loại hai lớp (SVM) đến các thuật
toán phân loại đa lớp (kNN) đều có điểm chung là yêu cầu văn bản phải được biểu diễn
dưới dạng vector đặc trưng. Ngoài ra các thuật toán như kNN, NB, LLSF đều phải sử
dụng các ước lượng tham số và ngưỡng tối ưu khi phân loại văn bản, trong khi thuật toán
SVM có thể tự xác định các tham số tối ưu này trong quá trình thực hiện thuật toán. Xét
về mặt thời gian, các phương pháp có thời gian huấn luyện khác nhau, các phương pháp
kNN, NB, LLSF có thời gian huấn luyện và phân loại văn bản nhanh hơn so với các thuật
toán còn lại, đồng thời dễ dàng cài đặt hơn.
Một câu hỏi được đặt ra là: “ Để có được một kết quả phân loại đạt kết quả tốt thì
cần những yếu tố gì ? ”
Có 3 yếu tố quan trọng tác động đến kết qủa phân loại văn bản :
1) Cần một tập dữ liệu huấn luyện chuẩn và đủ lớn để cho thuật toán học phân loại.
Nếu chúng ta có được một tập dữ liệu chuẩn và đủ lớn thì quá trình huấn luyện sẽ tốt và
khi đó chúng ta sẽ có kết quả phân loại tốt sau khi đã được học .
2) Các phương pháp trên hầu hết đều sử dụng mô hình vector để biểu diễn văn bản,
do đó phương pháp tách từ trong văn bản đóng vai trò quan trọng qúa trình biểu diễn văn
bản bằng vector. Yếu tố này rất quan trọng, vì có thể đối với một số ngôn ngữ như tiếng
Anh chẳng hạn thì thao tác tách từ trong văn bản đơn giản chỉ là dựa vào các khoảng
trắng , tuy nhiên trong các ngôn ngữ đa âm tiết như tiếng Việt và một số ngôn ngữ khác
Trang 13

Đề tài: Phân loại văn bản dùng thuật toán Naïve Bayes và Logic Mờ
thì sử dụng khoảng trắng khi tách từ là không chính xác, do đó phương pháp tách từ là
một yếu tố quan trọng.
3) Thuật toán sử dụng để phân loại phải có thời gian xử lý hợp lý, thời gian này
bao gồm: thời gian học, thời gian phân loại văn bản , ngoài ra thuật toán này phải có tính
tăng cường (incremental function) nghĩa là không phân loại lại toàn bộ tập văn bản khi
thêm một số văn bản mới vào tập dữ liệu mà chỉ phân loại các văn bản mới mà thôi, khi
đó thuật toán phải có khả năng giảm độ nhiễu (noise) khi phân loại văn bản.
Trang 14
Đề tài: Phân loại văn bản dùng thuật toán Naïve Bayes và Logic Mờ
CHƯƠNG 2: CÁC HƯỚNG TIẾP CẬN TÁCH TỪ
2.1. Các hướng tiếp cận dựa trên từ
Hướng tiếp cận dựa trên từ với mục tiêu tách được các từ hoàn chỉnh trong câu.
Hướng tiếp cận này có thể chia ra theo 3 hướng: dựa trên thống kê (statistics - based), dựa
trên từ điển (dictionary – based) và hydrid (kết hợp nhiều phương pháp với hy vọng đạt
được những ưu điểm của các phương pháp này).
 Hướng tiếp cận dựa trên thống kê: Dựa trên các thông tin như tần số xuất hiện
của từ trong tập huấn luyện ban đầu. Hướng tiếp cận này đặc biệt dựa trên tập ngữ liệu
huấn luyện, nhờ vậy nên hướng tiếp cận này tỏ ra linh hoạt và hữu dụng trong nhiều lĩnh
vực khác nhau.
 Hướng tiếp cận dựa trên từ điển: Ý tưởng của hướng tiếp cận này là những cụm
từ được tách ra từ văn bản phải được so khớp với các từ trong từ điển. Do đó trong hướng
tiếp cận này đòi hỏi từ điển riêng cho từng lĩnh vực quan tâm. Hướng tiếp cận “full word /
phrase” cần sử dụng một từ điển hoàn chỉnh để có thể tách được đầy đủ các từ hoặc ngữ
trong văn bản, trong khi đó hướng tiếp cận thành phần “component” lại sử dụng từ điển
thành phần . Từ điển thành phần chỉ chứa các thành phần của từ và ngữ như hình vị và
các từ đơn giản. Hướng tiếp cận theo từ điển vẫn còn một số hạn chế trong việc tách từ vì
thực hiện hoàn toàn dựa vào từ điển. Nếu như thực hiện thao tác tách từ bằng cách sử
dụng từ điển hoàn chỉnh thì trong thực tế việc xây dựng một bộ từ điển hoàn chỉnh là khó
thực hiện vì đòi hỏi nhiều thời gian và công sức. Nếu tiếp cận theo hướng sử dụng từ điển

thành phần thì sẽ giảm nhẹ hạn chế, khó khăn khi xây dựng từ điển, vì khi đó chúng ta sẽ
sử dụng các hình vị từ và các từ đơn giản và các từ khác để hình thành nên từ, cụm từ
hoàn chỉnh.
 Hướng tiếp cận theo Hybrid: Với mục đích kết hợp các hướng tiếp cận khác
nhau để thừa hưởng được các ưu điểm của nhiều kỹ thuật và các hướng tiếp cận khác
nhau nhằm nâng cao kết qủa. Hướng tiếp cận này thường kết hợp giữa hướng dựa trên
thống kê và dựa trên từ điển nhằm tận dụng các mặt mạnh của các phương pháp này. Tuy
Trang 15
Đề tài: Phân loại văn bản dùng thuật toán Naïve Bayes và Logic Mờ
nhiên hướng tiếp cận Hybrid lại mất nhiều thời gian xử lý, không gian đĩa và đòi hỏi
nhiều chi phí.
2.2. Các hướng tiếp cận dựa trên kí tự
Trong tiếng việt, hình vị nhỏ nhất là “tiếng” được hình thành bởi nhiều ký tự trong
bảng chữ cái. Hướng tiếp cận này đơn thuần rút trích ra một số lượng nhất định các tiếng
trong văn bản như rút trích từ 1 ký tự (unigram) hay nhiều ký tự (n-gram) và cũng mang
lại một số kết qủa nhất định được minh chứng thông qua một số công trình nghiên cứu đã
được công bố, như của tác giả Lê An Hà [2003] xây dựng tập ngữ liệu thô 10MB bằng
cách sử dụng phương pháp qui hoạch động để cựa đại hóa xác suất xuất hiện của các
ngữ.Rồi công trình nghiên cứu của H.Nguyễn [2005] làm theo hướng tiếp cận là thay vì
sử dụng ngữ liệu thô, công trình tiếp cận theo hướng xem Internet như một kho ngữ liệu
khổng lồ, sau đó tiến hành thống kê và sử dụng thuật giải di truyền để tìm cách tách từ tối
ưu nhất, và một số công trình của một số tác giả khác. Khi so sánh kết qủa của tác giả Lê
An Hà và H.Nguyễnt thì thấy công trình của H.Nguyễn cho được kết qủa tốt hơn khi tiến
hành tách từ, tuy nhiên thời gian xử lý lâu hơn. Ưu điểm nổi bật của hướng tiếp cận dựa
trên nhiều ký tự là tính đơn giản, dễ ứng dụng, ngoài ra còn có thuận lợi là ít tốn chi phí
cho thao tác tạo chỉ mục và xử lý nhiều câu truy vấn. Qua nhiều công trình nghiên cứu
của các tác giả đã được công bố, hướng tiếp cận tách từ dựa trên nhiều ký tự, cụ thể là
cách tách từ hai ký tự được cho là sự lựa chọn thích hợp.
Trang 16
Đề tài: Phân loại văn bản dùng thuật toán Naïve Bayes và Logic Mờ

CHƯƠNG 3: PHÂN LOẠI VĂN BẢN TIẾNG VIỆT
3.1. Tách từ trong văn bản
Phương pháp tách tách từ tiếng Việt dựa trên thống kê từ Internet và thuật giải di
truyền – IGATEC (Internet and Genetics Algorithm based Text Categorization for
Documents in Vietnamese) do H. Nguyễn đề xuất năm 2005 như một hướng tiếp cận mới
trong tách từ với mục đích phân loại văn bản mà không cần dùng đến một từ điển hay tập
ngữ liệu học nào. Trong hướng tiếp cận này, tác giả kết hợp giữa thuật toán di truyền với
dữ liệu thống kê được lấy từ Internet .
Trong tiếp cận của mình , tác giả đã mô tả hệ thống tách từ gồm các thành phần:
a. Online Extractor : Thành phần này có tác dụng lấy thông tin về tần số xuất hiện
của các từ trong văn bản bằng cách sử dụng một search engine nổi tiếng như Google hay
Yahoo chẳng hạn . Sau đó , tác giả sử dụng các công thức dưới đây để tính toán mức độ
phụ thuộc lẫn nhau (mutual information) để làm cơ sở tính fitness cho GA engine.
• Tính xác suất các từ xuất hiện trên Internet :
( )
MAX
)
w
2
&
w
1
count(
)
w
2
&
w
1
p(

MAX
count(w)
wp
=
=
Trong đó : MAX = 4 * 10
9
count(w) số lượng văn bản trên Internet được tìm thấy có chứa
từ w hoặc cùng chứa w1 và w2 đối với count(w1&w2).
• Tính xác suất độ phụ thuộc của một từ lên một từ khác :
( )
w
1
p
)
w
2
&
w
1
p(
)
w
2
|
w
1
p( =
Thông tin phụ thuộc lẫn nhau (mutual information) của các từ ghép được cấu tạo bởi
n tiếng ( cw = w

1
w
2
…w
n
)
Trang 17
Đề tài: Phân loại văn bản dùng thuật toán Naïve Bayes và Logic Mờ
( )

=

=
n
1j
)
w
n
& &
w
2
&
w
1
p(
w
j
p
)
w

n
& &
w
2
&
w
1
p(
MI(cw)
3.2. Xác định từ loại của từ
Để xác định từ loại của từ tiếng Việt, có một công trình khá tốt là VnQTag của
nhóm tác giả Nguyễn Thị Minh Huyền. VnQTag giúp gán nhãn từ loại tự động cho văn
bản tiếng Việt. Chương trình VnQTag được nhóm tác giả trên chỉnh sửa lại thành phiên
bản dùng cho tiếng Việt từ phần mếm QTAG của nhóm tác giả O.Mason, Đại học
Bermingham, Anh. QTAG là chương trình gán nhãn từ loại tự động dựa vào thống kê tức
là dựa vào xác suất. Qua một số thử nghiệm thực tế, VnQTag cho kết quả có độ chính xác
khá cao.
QTAG là một bộ gán nhãn xác suất độc lập với ngôn ngữ. Phương pháp xử lý của
QTAG có thể mô tả tổng quát như sau. Đầu tiên tiến hành học từ vựng, bộ nhãn từ loại,
cùng với xác suất từ vựng và xác suất ngữ cảnh từ một kho ngữ liệu đã được gán nhãn
bằng tay. Dựa vào những dữ liệu đã học được này, bộ gán nhãn tìm những nhãn có thể
được và tần số của nó cho từng từ trong kho dữ liệu mới đã được tách từ. Nếu việc tìm
kiếm một từ trong danh sách từ vựng đã học thất bại thì tất cả các nhãn sẽ được gán cho
từ đó. Cuối cùng, bộ gán nhãn thực hiện bước loại bỏ nhập nhằng bằng cách sử dụng
thông tin về xác suất phân bố từ vựng đã được học trước đó.
Dữ liệu đầu vào của VnQTag là văn bản đã được tách từ trong từng câu có được từ
kết quả của bước tách từ ở phần trên, kết quả đầu ra của chương trình là một từ loại tương
ứng sẽ được gán cho từng từ trong văn bản. VnQTag sử dụng đồng thời từ điển để liệt kê
các từ loại có thể cho một từ, và một kho văn bản mẫu để loại bỏ nhập nhằng.
3.3. Loại bỏ các từ tầm thường

Sau khi đã tiến hành tách từ trong văn bản , chúng ta sẽ tiến hành loại bỏ các từ tầm
thường (stopword). Trong một văn bản, không phải tất cả các từ đều có ngữ nghĩa tương
đương nhau, và không phải tất cả các từ đều dùng để miêu tả nội dung của văn bản. Do đó
trong bất kỳ một văn bản nào chắc chắn sẽ có những từ mà không mang ngữ nghĩa của
Trang 18
Đề tài: Phân loại văn bản dùng thuật toán Naïve Bayes và Logic Mờ
văn bản, các từ như vậy được gọi là stopword. Vì vậy chúng ta sẽ loại bỏ các từ này ra
khỏi văn bản. Trong các ngôn ngữ tự nhiên thì các mạo từ, giới từ, liên từ là các
stopword. Ngoài ra cũng có một số động từ, tính từ, phó từ thì cũng được xem như là các
stopword. Danh sách các từ stopword được liệt kê trong phụ lục .
3.4. Phương pháp trích rút đặc trưng văn bản
3.4.1. Các ý tưởng cơ bản
Các phương pháp rút trích thông tin cổ điển thì coi mỗi một văn bản như là tập các
từ khóa và gọi tập các từ khóa này là tập các term. Một phần tử trong tập term thì đơn
giản là một từ, mà ngữ nghĩa của từ này giúp tạo thành nên nội dung của văn bản. Vì vậy,
tập term được sử dụng để tạo các chỉ mục và tóm lược nội dung của văn bản.
Giả sử cho một tập term của một văn bản nào đó , chúng ta có thể nhận thấy rằng
không phải tất cả các từ trong tập term này đều có mức độ quan trọng như nhau trong việc
mô tả nội dung văn bản. Ví dụ, bây giờ chúng ta xét một tập gồm một trăm ngàn văn bản,
giả sử có một từ A nào đó xuất hiện trong một trăm ngàn văn bản này thì chúng ta có thể
khẳng định rằng từ A này không quan trọng và chúng ta sẽ không quan tâm đến nó, bởi vì
chắc chắn là nó sẽ không cho chúng ta biết được về nội dung của các văn bản này. Vì vậy
từ A sẽ bị loại ra khỏi tập các term, khi chúng ta xây dựng tập term cho văn bản để miêu
tả nội dung ngữ nghĩa của các văn bản này. Kết quả này có được thông qua thao tác xác
định trọng số cho mỗi một từ trong tập term của một văn bản.
Đặt k
i
là từ thứ i trong tập term, d
j
là văn bản j, và w

ij
>= 0 là trọng số của từ k
i
trong
văn bản d
j
. Giá trị của trọng số này thì rất là quan trọng trong việc miêu tả nội dung của
văn bản .
Đặt t là số luợng các từ trong tập term của hệ thống. K = { k
1
,k
2
,k
3
…, k
t
} là tập
tất cả các từ trong tập term, trong đó k
i
là từ thứ i trong tập term. Trọng số w
ij
>0

là trọng
số của từ k
i
trong văn bản d
j
. Với mỗi một từ, nếu nó không xuất hiện trong văn bản thì w
ij

= 0. Do đó, văn bản d
j
thì được biểu diễn bằng vector dj, trong đó vector dj = {w
j1,
w
j2,
w
j3,
….,
w
jt
}.
3.4.2. Phương pháp truyền thống rút trích đặc trưng văn bản
Trang 19
Đề tài: Phân loại văn bản dùng thuật toán Naïve Bayes và Logic Mờ
Theo truyền thống, một văn bản D thì được biểu diễn bằng một vector đặc trưng
theo dạng (d
1
,d
2
,…,d
n
), trong đó d
i
là trọng số của đặc trưng thứ i và n là số lượng các đặc
trưng. Mỗi một đặc trưng tương ứng với một từ xuất hiện trong tập huấn luyện, sau khi
loại bỏ các stopword ra khỏi các văn bản.
Phương pháp 1:
Phương pháp phổ biến nhất để rút trích các đặc trưng là dựa vào tần suất xuất hiện
của các từ riêng biệt trong các văn bản. Phương pháp này thực hiện thông qua hai bước

sau:
 Bước 1 : Loại bỏ các từ chung (ngữ nghĩa của các từ này không ảnh hưởng đến nội
dung của văn bản) ra khỏi văn bản bằng cách sử dụng một từ điển đặc biệt , hoặc là sử
dụng danh sách các từ tầm thường ( stopword ) .
 Bước 2 : Xác định tần suất xuất hiện tf
ij
của các từ T
j
còn lại trong mỗi văn bản D
i
và đặc biệt là số lần xuất hiện của T
j
trong D
i
. Sau đó dựa vào tần suất xuất hiện của các
từ này, chúng ta sẽ tính giá trị trọng số cho các từ T
j
này. Và n từ T
j
có giá trị trọng số lớn
nhất sẽ được chọn làm n đặc trưng của văn bản.
Phương pháp 2:
Một phương pháp khác để rút trích các đặc trưng của văn bản là sự kết hợp tần suất
xuất hiện của từ trong văn bản và tần suất xuất hiện ngược trong văn bản (TF-IDF). Lúc
này chúng ta có công thức tính giá trị trọng số cho từ T
j
trong văn bản Di, như sau :

)log(
df

tf
w
j
ih
ij
N
×=

Trong đó : df
j
là số luợng văn bản trong tập văn bản N mà trong đó từ T
j
có xuất
hiện. Và cũng tương tự như trong phương pháp 1, n từ T
j
có giá trị trọng số lớn nhất sẽ
được chọn làm n đặc trưng của văn bản.
Tuy nhiên, chúng ta nhận thấy rằng các phương pháp rút trích đặc trưng trình bày ở
trên thì không phù hợp, vì các lý do sau :
Trang 20
Đề tài: Phân loại văn bản dùng thuật toán Naïve Bayes và Logic Mờ
o Phương pháp kết hợp TF-IDF có thể lấy ra tất cả các đặc trưng có tần suất xuất
hiện tương đối thấp trong văn bản.
o Các phương pháp trình bày ở trên đã không xem xét đến mức độ phủ của các
đặc trưng được rút trích. Mức độ phủ của các đặc trưng được định nghĩa là số phần trăm
các văn bản chứa ít nhất một đặc trưng trong số các đặc trưng được rút trích. Do các
phương pháp ở trên chỉ chọn n từ có giá trị trọng số lớn nhất và xem đó như là các đặc
trưng, thì dẫn tới là không có gì bảo đảm là các đặc trưng này có số phần trăm bao phủ
các văn bản là cao. Hơn nữa, nếu số phần trăm bao phủ là thấp thì sẽ có nhiều văn bản
được biểu diễn bằng một vector đặc trưng, mà trong đó tất cả các thành phần trong vector

này đều có giá trị là 0 ( giá trị trọng số bằng không ).
o Nếu tất cả các từ đều được chọn như là đặc trưng thì chiều dài của vector đặc
trưng sẽ lên tới con số hàng ngàn. Điều này làm cho thời gian xử lý sẽ rất lâu. Khi tất cả
các đặc trưng được chọn thì theo [8] thì có ít hơn 4% các vector mà giá trị tất cả các thành
phần trong vector này khác 0. Như thế thì trên 96% không gian bộ nhớ sẽ bị bỏ trống, khi
vector đặc trưng này được dùng để biểu diễn một văn bản.
3.4.3. Phương pháp rút trích đặc trưng đề nghị sử dụng
Chúng ta sẽ sử dụng một phương pháp rút trích đặc trưng sao cho phù hợp. Chúng ta
chọn phương pháp này để rút trích đặc trưng, vì các yếu tố sau :
 Phương pháp này cân bằng giữa yếu tố mức độ bao phủ và số luợng các đặc trưng
đuợc sử dụng để biểu diễn văn bản.
Chi tiết các bước thực hiện của phương pháp này :
 Bước 1 : Loại bỏ các từ tầm thường (stopword).
 Bước 2 : Đếm tần suất xuất hiện của các từ trong bước 1.
 Bước 3 : Đặt lower = k , upper = k (tần suất xuất hiện của các từ (giả định ban
đầu) và sẽ được xác định chính xác khi số lượng đặc trưng tìm được có mức độ phủ lớn
hơn ngưỡng T, thông thường ngưỡng T được gán khoảng 0.95 – 95%).
 Bước 4 : Chọn tất cả các từ ở trên với tần suất xuất hiện nằm trong khoảng từ
lower đến upper.
Trang 21
Đề tài: Phân loại văn bản dùng thuật toán Naïve Bayes và Logic Mờ
 Bước 5 : Kiểm tra mức độ phủ của các từ .
 Nếu mức độ phủ này lớn hơn ngưỡng T đã được định nghĩa trước thì dừng.
 Ngược lại thì đặt lower = lower –1 và upper = upper + 1 và quay lại bước 4.
Trang 22
Đề tài: Phân loại văn bản dùng thuật toán Naïve Bayes và Logic Mờ
CHƯƠNG 4: SỬ DỤNG THUẬT TOÁN NAIVE BAYES ĐỂ PHÂN LOẠI
VĂN BẢN
4.1. Lý do chọn Naïve Bayes
NB là phương pháp phân loại dựa vào xác suất được sử dụng rộng rãi trong lĩnh vực

máy học và nhiều lĩnh vực khác như trong các công cụ tìm kiếm, các bộ lọc mail …
Điểm quan trọng của phương pháp này chính là ở chỗ giả định rằng sự xuất hiện của
tất cả các từ trong văn bản đều độc lập với nhau. Như thế NB không tận dụng sự phụ
thuộc của nhiều từ vào một chủ đề cụ thể. Chính giả định đó làm cho việc tính toán NB
hiệu quả và nhanh chóng hơn các phương pháp khác với độ phức tạp theo số mũ vì nó
không sử dụng cách kết hợp các từ để đưa ra phán đoán chủ đề… Nhìn chung đây là một
thuật toán phân loại tuyến tính thích hợp trong phân loại văn bản nhiều chủ đề. NB có ưu
điểm là cài đặt đơn giản, tốc độ thực hiện thuật toán nhanh, dễ dàng cập nhật dữ liệu huấn
luyện mới và có tính độc lập cao với tập huấn luyện. Chính những đặc điểm đó nên Naïve
Bayes được đề nghị sử dụng để phân loại văn bản .
4.2. Áp dụng cho bài toán phân loại văn bản
• Ý tưởng: Ý tưởng cơ bản của cách tiếp cận Naïve Bayes là sử dụng xác suất có
điều kiện giữa từ và chủ đề để dự đoán xác suất chủ đề của một văn bản cần phân loại.
Điểm quan trọng của phương pháp này chính là ở chỗ giả định rằng sự xuất hiện của tất
cả các từ trong văn bản đều độc lập với nhau. Giả định đó làm cho việc tính toán NB hiệu
quả và nhanh chóng hơn các phương pháp khác vì không sử dụng việc kết hợp các từ để
đưa ra phán đoán chủ đề. Kết quả dự đoán bị ảnh hưởng bởi kích thước tập dữ liệu, chất
lượng của không gian đặc trưng…
• Hướng dẫn cài đặt:
Mô tả vector đặc trưng của văn bản: Là vector có số chiều là số đặc trưng trong toàn
tập dữ liệu, các đặc trưng này đôi một khác nhau. Nếu văn bản có chứa đặc trưng đó sẽ có
giá trị 1, ngược lại là 0.
Thuật toán gồm 2 giai đoạn huấn luyện và phân lớp:
a. Huấn luyện: tính và
Trang 23
Đề tài: Phân loại văn bản dùng thuật toán Naïve Bayes và Logic Mờ
Đầu vào:
 Các vector đặc trưng của văn bản trong tập huấn luyện (Ma trận MxN, với M là số
vector đặc trưng trong tập huấn luyện, N là số đặc trưng của vector).
 Tập nhãn/lớp cho từng vector đặc trưng của tập huấn luyện.

Đầu ra:
 Các giá trị xác suất và .
Công thức tính đã làm trơn Laplace
Trong đó:
 |docs
i
|: số văn bản của tập huấn luyện thuộc phân lớp i.
 |total docs|: số văn bản trong tập huấn luyện.
 m số phân lớp
Cài đặt:
 Khởi tạo mảng A, B có kích thước m.
 Duyệt qua các văn bản trong tập dữ liệu, đếm số văn bản trong mỗi phân lớp lưu
vào A.
 Tính xác suất cho từng phân lớp theo công thức trên và lưu vào mảng B.
Công thức tính đã làm trơn Laplace:
Trong đó:
 : Số văn bản trong trong phân lớp i có đặc trưng thứ k mang giá trị x
k
.
(hay số văn bản trong lớp i, có xuất hiện/không xuất hiện đặc trưng k)
 : Số văn bản của tập huấn luyện thuộc phân lớp i.
 Số giá trị có thể có của đặc trưng thứ k
Cài đặt:
Trang 24
Đề tài: Phân loại văn bản dùng thuật toán Naïve Bayes và Logic Mờ
 Với vector đặc trưng như mô tả bên trên, d
k
ở đây mang giá trị là 2, tương ứng với
xuất hiện và không xuất hiện. Do chỉ có 2 giá trị, ta có thể tính nhanh xác suất không xuất
hiện theo công thức

 Khởi tạo mảng 3 chiều C, chiều 1 có kích thước là m (số phân lớp), chiều 2 có
kích thước là N (số đặc trưng), chiều 3 có kích là 2 (d
k
) để lưu các giá trị .
 Duyệt qua các văn bản trong tập dữ liệu, tiến hành thống kê các chỉ số cần thiết để
tính xác suất theo công thức trên và lưu vào mảng C.
b. Phân lớp:
Đầu vào:
 Vector đặc trưng của văn bản cần phân lớp.
 Các giá trị xác suất và .
Đầu ra:
 Nhãn/lớp của văn bản cần phân loại.
Công thức tính xác suất thuộc phân lớp i khi biết trước mẫu X
Dựa vào vector đặc trưng của văn bản cần phân lớp, áp dụng công thức trên tính xác
suất thuộc từng phân lớp cho văn bản, và chọn ra lớp có xác suất cao nhất.
Ví dụ:
Docs Var Bit Class
Doc1
1 0 Math
Doc2
0 1 Comp
Doc3
1 1 Comp
Doc4
1 0 Math
Doc5
0 1 Math
Doc6
0 1 Comp
Trang 25

×