TF ì IDF Phương phỏp biểu diễn văn bản dựa trờn tần số thuật ngữ TF và nghịch đảo tần số văn bản IDF Trang 10 Danh mục cỏc bảng trong Luận văn Trang 11 Danh mục cỏc hỡnh vẽ trong Luậ
Trang 2trờng đại học bách khoa hà nội
- *** -
Đinh Thị Phơng Thu
tiếp cận học không giám sát trong học có giám sát với bài
toán phân lớp văn bản tiếng việt &
đề xuất cải tiến công thức tính độ liên quan giữa hai văn
bản trong mô hình vector
Chuyên ngành: Công nghệ thông tin luận văn thạc sĩ công nghệ thông tin
nn n nng gời h g ời h ời hớng dẫn ớng dẫn ớng dẫn khoa khoa khoa học học học
TS H ỳnh Q ế Thắn u uy t g
Hà nội - 11/2004
Trang 3M ỤC LỤ C
MỤC LỤC 1
Danh mục các thuật ngữ và ký hiệu viết tắt trong Luận văn 6
Danh mục các bảng trong Luận văn 8
Danh mục các hình vẽ trong Luận văn 9
MỞ ĐẦU 10
phÇn i c¬ së lý thuyÕt 13
CHƯƠNG 1 TỔNG QUAN VỀ XỬ LÝ VĂN BẢN- 14
1.1 Khai phá và phát hiện tri thức trong dữ liệu 15
1.1.1 Dữ liệu, Thông tin và Tri thức 15
1.1.2 Khai phá dữ liệu và phát hiện tri thức 15
1.2 Text Mining - Góc nhìn nhận quan trọng trong Data Mining 18
1.3 Các khái niệm cơ bản trong xử lý văn bản 19
1.3.1 Từ khóa, Thuật ngữ và Khái niệm 19
1.3.2 Từ dừng (StopW StopWords ords ) 20
1.3.3 Trọng số của thuật ngữ 20
1.3.4 Độ liên quan giữa các văn bản 21
1.4 Các bài toán cơ bản trong xử lý văn bản 21
1.4.1 Tìm kiếm văn bản (TTex ex ex t R t R t Ret et etri ri rieva eva evalllll ) 21
1.4.2 Phân lớp văn bản (TTex ex exttttt Categor Categor Categoriza iza ization, tion, tion, Tex Tex Text Classification t Classification ) 22
1.4.3 Phân nhóm văn bản ( T Tex ex t Clu ex t Clu t Clust steri st eri erinnnnnggggg ) 22
1.4.4 Tóm tắt văn bản (T Tex ex t Su ex t Sum t Su m mm m ariza m ariza arization tion ) 23
1.4.5 Dẫn đường văn bản (TTex ex ext Routing t Routing ) 23
1.5 Các phương pháp biểu diễn văn bản 24
1.5.1 Mô hình không gian vector ( Vectttttor S Vec or S or Spa pa pace ce ce M M M od od odel el el - VSM VSM ) 24
1.5.1.1 Mô hình Boolean 25
Trang 41.5.1.2 Mô hình tần số 26
1.5.1.3 Phương pháp xử lý véc tơ thưa 27
1.5.2 Phương pháp biểu diễn văn bản dựa trên các khái niệm mờ 29
1.6 Kết chương 30
CHƯƠNG 2 PHÂN NHÓM PHƯƠNG PHÁP HỌC KHÔNG GIÁM SÁT- 31
2.1 Giới thiệu bài toán phân nhóm 32
2.1.1 Phân nhóm dữ liệu 32
2.1.2 Bài toán “Phân nhóm văn bản” 32
2.2 Các yêu cầu ủ c a kĩ thuật phân nhóm 32
2.3 Các thuật toán Phân nhóm cơ bản hiện nay 33
2.3.1 Các phương pháp phân chia (PPPPPartart artition ition itionnin nin ning Alg g Alg g Algorith orith orithm m msssss ) 34
2.3.2 Phương pháp phân nhóm dựa trên hàm mật độ (DensitDensityyyyy -B B B as as ased ed ) 34
2.3.3 Phương pháp phân nhóm dựa trên lưới (GridGrid -Based M Based M etho Based M etho ethoddddd ) 35
2.3.4 Phân nhóm dựa trên thuật ngữ xuất hiện thường xuyên ( Frequent IIIIItem tem temset set ) 36 2.3.4.1 Các giải thuật xác định tập các thuật ngữ xuất hiện thường xuyên 36
2.3.4.2 Các giải thuật phân nhóm dựa trên thuật ngữ xuất hiện thường xuyên 39
2.4 Đánh giá hiệu suất phân nhóm 45
2.5 Kết chương 45
CHƯƠNG 3 PHÂN LỚP PHƯƠNG PHÁP HỌC CÓ GIÁM SÁT- 46
3.1 Giới thiệu bài toán 47
3.2 Các thuật toán Phân lớp văn bản cơ bản 47
3.2.1 Thuật toán cây quyết định (DecisionDecision T T Tree ree ) 48
3.2.1.1 Mô tả cây quyết định 48
3.2.1.2 Ví dụ minh họa cây quyết định 48
3.2.1.3 Xây dựng cây quyết định 51
3.2.2 Thuật toán k-NN ( kkkkk -N N Neares eares earesttttt N N Nei ei eigh gh ghbbbbbor or ) 54
3.3 Đánh giá hiệu suất phân lớp văn bản 57
3.4 Kết chương 58
Trang 5CHƯƠNG 4 VẤN ĐỀ NGHIÊN CỨU CỦA LUẬN VĂN - BÀI TOÁN PHÂN
LỚP VĂN BẢN TIẾNG VIỆT 59
4.1 Khai phá dữ liệu văn bản tiếng Việt 60
4.2 Các đặc trưng của tiếng Việt 60
4.2.1 Các đơn vị tiếng Việt 61
4.2.2 Các đặc điểm chính tả văn bản tiếng Việt 61
4.2.3 Từ tiếng Việt 62
4.2.4 Các chuẩn Font tiếng Việt được sử dụng 63
4.3 Bài toán phân lớp văn bản tiếng Việt 64
4.4 Kết chương 65
phÇn iI thiÕt kÕ híng tiÕp cËn 66
CHƯƠNG 5 ĐỀ XUẤT VÀ LỰA CHỌN GIẢI PHÁP TIẾP CẬN BÀI - TOÁN PHÂN LỚP VĂN BẢN TIẾNG VIỆT 67
5.1 Đề xuất hai hướng tiếp cận bài toán 68
5.1.1 Hướng tiếp cận theo phương pháp học không giám sát trong học có giám sát 68
5.1.2 Hướng 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 69
5.2 Lựa chọn giải pháp tiếp cận 71
5.2.1 Tiếp cận theo phương pháp học không giám sát trong học có giám sát 71
5.2.1.1 Tiền xử lý văn bản 72
5.2.1.2 Biểu diễn văn bản trong mô hình vector 74
5.2.1.3 Phân nhóm các lớp văn bản mẫu 77
5.2.1.4 Phân lớp văn bản dựa trên tiếp cận phân nhóm 78
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 80
5.2.2.1 Mô hình tiếp cận 80
5.2.2.2 Tiền xử lý và vector hóa văn bản 81
5.2.2.3 Quản lý độ liên quan giữa các term và văn bản mẫu 81
5.2.2.4 Phân lớp văn bản với công thức cải tiến đề xuất 82
5.3 Kết chương 83
Trang 6CHƯƠNG 6 - THIẾT KẾ XÂY DỰNG HỆ THỐNG THỬ NGHIỆM 84
6.1 Xỏc định yờu cầu 85
6.2 Thiết kế xõy dựng hệ thống thử nghiệm 85
6.2.1 Thiết kế tổng thể 85
6.2.2 Chức năng phõn lớp văn bản 86
6.2.2.1 Hướng tiếp cận học khụng giỏm sỏt 86
6.2.2.2 Hướng tiếp cận theo đề xuất cải tiến cụng thức 88
6.2.3 Chức năng vector húa văn bản 89
6.2.4 Chức năng phõn nhúm cỏc lớp văn bản mẫu 91
6.2.5 Chức năng xỏc định trước độ liờn quan của cỏc term trong từ điển với tập văn bản mẫu 93
6.2.6 Chức năng Quản lý tập mẫu 94
6.2.7 Chức năng quản lý từ điển/ StopW Sto pW pW ords ords 95
6.3 Kết chương 95
phần iii cài đặt mô hình và kiểm thử kết quả 96
CHƯƠNG 7 CÀI ĐẶT Mễ HèNH VÀ KIỂM THỬ KẾT QUẢ– 97
7.1 Cài đặt chương trỡnh 98
7.1.1 Lựa chọn cụng nghệ và mụi trường cài đặt 98
7.1.2 Giao diện chương trỡnh Demo 98
7.1.2.1 Giao diện hướng tiếp cận học khụng giỏm sỏt trong học cú giỏm sỏt 98
7.1.2.2 Giao diện hướng tiếp cận theo cụng thức cải tiến 100
7.2 Cơ sở dữ liệu thử nghiệm 102
7.3 Kết quả thử nghiệm 102
7.3.1 Kết quả phõn tỏch cỏc thuật ngữ 103
7.3.1.1 Đỏnh giỏ tốc độ phõn tỏch cỏc thuật ngữ 103
7.3.1.2 Đỏnh giỏ hiệu quả phõn tỏch cỏc thuật ngữ 104
7.3.2 Kết quả phõn lớp văn bản 105
7.3.2.1 Kết quả thử nghiệm phõn lớp trờn tập mẫu VnExpress 105
7.3.2.2 Kết quả thử nghiệm phõn lớp trờn tập mẫu VietNamNet 107
Trang 77.4 Đánh giá thử nghiệm 109
7.5 Kết chương 109
KẾT LUẬN VÀ ĐỊNH HƯỚNG PHÁT TRIỂN 110
TÀI LIỆU THAM KHẢO 112
phÇn phô lôc 115
PHỤ LỤC 1 Tập các từ dừng (- Stopwords) tiếng Việt 116
PHỤ LỤC 2 Kết quả thử nghiệm phân lớp trên tập dữ liệu VnExpress- 121 PHỤ LỤC 3 Hướng dẫn cài đặt và sử dụng chương trình- 129
PHỤ LỤC 4 Mô tả nội dung đĩa CD kèm theo- 130
Trang 8Danh mục các thuật ngữ và ký hiệu viết tắt trong Luận văn
2 Cluster Nhóm (nhóm dữ liệu, nhóm văn bản)
6 Decision Tree Cây quyết định
7 Document vector Vector văn bản
8 Feature vector Vector thuộc tính đặc trưng
9 FIHC Hierarchical Frequent Item Based Clustering - Phân
nhóm có phân cấp dựa trên thuật ngữ xuất hiện thường xuyên
10 Frequent itemset Tập thuật ngữ xuất hiện thường xuyên trong văn bản
11 GFI Global frequent item - Một thuật ngữ thường xuyên toàn
cục
12 GFS Global frequent itemset -Tập thuật ngữ thường xuyên
toàn cục
13 GS Global support - Phần trăm tài liệu chứa tập thuật ngữ
14 hash- table bảng băm
15 HTML HyperText Markup Language - Ngôn ngữ đánh dấu siêu
văn bản
16 ICS inter cluster similarity - - Độ tương tự trong của nhóm
17 KDD Knowledge Discovery in Database - Tiến trình khai phá
dữ liệu và phát hiện tri thức
19 k- itemset tập thuật ngữ gồm k phần tử
20 k-NN k-Nearest Neighbor - Thuật toán k láng giềng gần nhất
Trang 921 Machine Learning học máy
25 prepruning Tỉa cây trước
26 recall Độ hồi tưởng (trong phân lớp)
27 Semi structured - Dạng bán cấu trúc
28 Sim(C a ←C b ), Similarity- Độ tương tự giữa hai nhóm văn bản C a và C b
32 Test set Tập dữ liệu kiểm thử
33 Text Catergorization Phân lớp văn bản
34 Text Classification Phân lớp văn bản
35 Text Clustering Phân nhóm văn bản
36 Text Mining Khai phá dữ liệu văn bản
37 TF × IDF Phương pháp biểu diễn văn bản dựa trên tần số thuật ngữ
TF và nghịch đảo tần số văn bản IDF
38 Training set Tập dữ liệu huấn luyện
39 unstructured Dạng phi cấu trúc
Trang 10Danh mục các bảng trong Luận văn
Bảng 1.1 Ví dụ về văn bản biểu diễn theo từ khóa và tần số xuất hiện 25
Bảng 1.2 Ví dụ biểu diễn vector thưa _ 28
Bảng 2.1 Dữ liệu đầu vào để xây dựng cây FP 38
Bảng 3.1 Các mẫu huấn luyện dùng cho cây quyết định class LÚA 49
Bảng 3.2 Ví dụ 1 về gán nhãn theo số đông _ 56
Bảng 3.3 Ví dụ 2 về gán nhãn theo số đông _ 57
Bảng 7.1 Thông tin mô tả một số thông số của các tập dữ liệu huấn luyện 102
Bảng 7.2 Kết quả thử nghiệm phân lớp 80 văn bản trên tập mẫu VnExpress 105
Bảng 7.3 Kết quả thử nghiệm phân lớp 35 văn bản trên tập mẫu VietNamNet _ 107
Trang 11Danh mục các hình vẽ trong Luận văn
Hình 1.1 Tiến trình khai phá dữ liệu và phát hiện tri thức (KDD) 17
Hình 1.2. Chức năng dẫn đường văn bản trong VNExpress _ 24
Hình 1.3 Ví dụ biểu diễn văn bản dựa trên khái niệm mờ 29
Hình 2.1 Ví dụ mô tả giải thuật k-means _ 34
Hình 2.2 Mô tả một giải thuật phân nhóm dựa trên lưới _ 35
Hình 2.3 Ví dụ về thuật toán Apriori 37
Hình 2.4 Ví dụ về xây dựng cây FP _ 38
Hình 3.1 Một ví dụ về cây quyết định cho phân lớp LÚA _ 49
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 ” 50
Hình 3.3 Đồ thị phân bố đại lượng Entropy _ 52
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 55
Hình 3.5 Minh họa cách tính precision và recall _ 57
Hình 5.1 Mô hình tiếp cận theo phương pháp học không giám sát _ 71
Hình 5.2 Thuật toán tách term tiếng Việt _ 74
Hình 5.3 Phân nhóm các lớp văn bản mẫu với thuật toán FIHC _ 78
Hình 5.4 Mô hình tiếp cận theo công thức cải tiến đề xuất _ 80
Hình 6.1 Sơ đồ chức năng tổng thể của hệ thống _ 85
Hình 6.2 Chức năng phân lớp văn bản theo hướng tiếp cận học không giám sát 86
Hình 6.3 Chức năng phân lớp văn bản theo hướng tiếp cận cải tiến công thức _ 88
Hình 6.4 Mô hình bộ vector hóa văn bản _ 90
Hình 6.5 Chức năng phân nhóm các lớp văn bản mẫu 91
Hình 6.6 Chức năng xác định độ liên quan của các term trong từ điển với tập mẫu 93
Hình 6.7 Chức năng Quản lý tập văn bản mẫu 94
Hình 6.8 Chức năng quản lý Từ điển/StopWords _ 95
Hình 7.1 Các giao diện chương trình cài đặt hướng tiếp cận học không giám sát 100
Hình 7.2 Các giao diện chương trình cài đặt hướng tiếp cận theo công thức cải tiến _ 101
Hình 7.3 Tốc độ tách thuật ngữ _ 103
Trang 12MỞ ĐẦU
Sự phát triển vượt bậc của khoa học và công nghệ trong một vài thập kỷ gần
đây đã mang lại cho con người nhiều tri thức hơn Thông tin, tri thức giờ đây không
chỉ còn được lưu giữ trên giấy tờ nữa mà còn được số hóa và cất giữ như các tài liệu
điện tử Thế kỷ 20 đánh dấu sự ra đời và phát triển mạnh mẽ của công nghệ thông
tin và công nghệ điện tử cùng với máy tính, mạng máy tính và mạng thông tin toàn
cầu có khả năng chia sẻ thông tin, an toàn, tốc độ trao đổi, khả năng xử lý thông tin
nhanh chóng, chính xác,… Con người không còn đáp ứng được với việc xử lý các
thông tin lưu trữ dạng văn bản điện tử theo các cách thủ công truyền thống Từ đó
nảy sinh các nhu cầu về xử lý thông tin văn bản tự động
MỤC ĐÍCH VÀ LÝ DO LỰA CHỌN ĐỀ TÀI
Trên thế giới đã có rất nhiều thành công trong lĩnh vực nghiên cứu xử lý văn
bản như của hãng IBM, trong các phòng thí nghiệm ở MIT [12], hay trong các viện
nghiên cứu của các trường đại học ở Mỹ, Pháp, Nhật bản, Canada, Tuy nhiên, các
thành công đó chủ yếu tập trung vào vấn đề nghiên cứu văn bản tiếng Anh, tiếng
Pháp, những ngôn ngữ tương đối đơn giản khi xử lý Trong khi đó, rất ít công cụ đã
được xây dựng thực sự thành công trong lĩnh vực xử lý văn bản tiếng Việt Do nhu
cầu hội nhập, nhu cầu phát triển về kinh tế, văn hóa, xã hội ngày càng tăng, các
thông tin được lưu trữ qua văn bản điện tử, qua web, qua email phát triển với tốc độ
Trang 13không ngừng, nhu cầu nghiên cứu và xây dựng các công cụ khai phá văn bản tiếng
Việt đang được hết sức coi trọng
Luận văn tốt nghiệp này được thực hiện với mục đích nghiên cứu tìm hiểu
các lý thuyết xử lý văn bản đã được nghiên cứu phát triển trong nước và trên thế
giới để từ đó xây dựng giải pháp cho các bài toán xử lý văn bản tiếng Việt Bài toán
xử lý cụ thể đặt ra trong luận văn này là Bài toán phân lớp văn bản tiếng Việt
NỘI DUNG VÀ PHẠM VI NGHIÊN CỨU CỦA ĐỀ TÀI
Trong luận văn nghiên cứu về bài toán phân lớp văn bản tiếng Việt, với
mục đích tăng độ chính xác cho kết quả phân lớp văn bản tiếng Việt, dựa trên cơ sở
lý thuyết đã nghiên cứu, tác giả đề xuất hai hướng tiếp cận bài toán và trình bày các
kết quả nghiên cứu thử nghiệm theo cả hai hướng tiếp cận này đã tiến hành trong
khoảng thời gian vừa qua
• Hướng tiếp cận thứ nhất: xuất phát từ ý tưởng rằng mặc dù kĩ thuật phân nhóm
là một phương pháp học không giám sát và kĩ thuật phân lớp là một phương
pháp học có giám sát nhưng chúng ta vẫn có thể sử dụng cách tiếp cận phân
nhóm để tăng hiệu quả cho bài toán phân lớp văn bản Với cách tiếp cận này
chúng ta sẽ giảm được kích thước, số chiều trong không gian vector đặc trưng và
mang lại hiệu quả rõ rệt
• Hướng tiếp cận thứ hai: tác giả đề xuất một sự cải tiến công thức tính độ liên
quan giữa các văn bản trong mô hình vector, công thức này được phát triển dựa
trên những nghiên cứu đã được chứng minh trong [6] Việc sử dụng công thức
cải tiến này kết hợp với các cấu trúc dữ liệu phù hợp nhằm mục đích tối ưu kiến
trúc cho mô hình thực hiện đã giảm được chi phí thời gian đáng kể trong quá
trình tiến hành phân lớp và cho một kết quả thực nghiệm tương đối tốt
Trong cả hai hướng tiếp cận tác giả đều sử dụng mô hình không gian vector để biểu
diễn văn bản
Trang 14BỐ CỤC TRÌNH BÀY CỦA LUẬN VĂN
Bố cục trình bày của luận văn bao gồm phần, chương.3 7
Phần I: Cơ sở lý thuyết
Chương I: Giới thiệu một khung nhìn tổng quan về lĩnh vực xử lý văn bản
Chương II: Đề cập đến kỹ thuật phân nhóm văn bản là một kỹ thuật học
không giám sát trong xử lý văn bản
Chương III: Tìm hiểu về phương pháp phân lớp văn bản là một kỹ thuật học
có giám sát trong xử lý văn bản
Chương IV: Mô tả bài toán nghiên cứu chính của Luận văn: Bài toán phân
lớp trên các văn bản tiếng Việt
Phần II: Thiết kế hướng tiếp cận
Chương V: Tác giả đề xuất hai hướng tiếp cận và lựa chọn giải pháp cho các
mô hình tiếp cận theo hai hướng đó
Chương VI: Thiết kế mô hình phần mềm cho chương trình kiểm thử
Phần III: Cài đặt mô hình và kiểm thử kết quả
Chương VII: Trình bày quá trình tiến hành thực nghiệm và các kết quả thực
nghiệm của cả hai hướng tiếp cận
Cuối cùng, trong phần kết luận và định hướng phát triển, tác giả nêu ra các
nhận xét về kết quả đạt được và một số định hướng phát triển tiếp theo của đề tài ■
Trang 15phÇn i c¬ së lý thuyÕt
Nội dung phần mô tả tổng quan cơ sở lý thuyết liên I
quan đến vấn đề nghiên cứu trong luận văn:
Chương I: Tổng quan về xử lý văn bản
Chương II: Phân nhóm – phương pháp học
Trang 16C HƯƠNG 1 - TỔNG QUAN VỀ XỬ LÝ VĂN BẢN
Néi dung:
1.1 Khai ph¸ vµ ph¸t hiÖn tri thøc trong d÷ liÖu 1.2 Text Mining – gãc nh×n nhËn quan träng trong Data mining 1.3 C¸c kh¸i niÖm c¬ b¶n trong xö lý v¨n b¶n
1.4 C¸c bµi to¸n c¬ b¶n trong xö lý v¨n b¶n 1.5 C¸c ph¬ng ph¸p biÓu diÔn v¨n b¶n 1.6 KÕt ch¬ng
Trang 171.1 Khai phá và phát hiện tri thức trong dữ liệu
1.1.1 Dữ liệu, Thông tin và Tri thức
Dữ liệu được hiểu là một chuỗi các bit, các con số hoặc các đối tượng mà
chúng ta thu thập được hàng ngày Ví dụ: dữ liệu là các file trong máy tính, dữ liệu
là các văn bản giấy tờ mà chúng ta phải xử lý hàng ngày, các tín hiệu,
Thông tin là dữ liệu đã được loại bỏ đi nhiễu, sự dư thừa và đã được biểu
diễn dưới dạng mà con người có thể nhận thức được Ví dụ: thông tin về tình hình
giá cổ phiếu, thông tin về nhiệt độ trong tháng,
Tri thức được hiểu là các thông tin đã được tích hợp lại, đã được nhận thức,
kiểm nghiệm, hay được đúc rút ra thành các quy luật có ý nghĩa đối với con người
Ví dụ: từ thông tin về nhiệt độ trong tháng, con người có thể đưa ra được những dự
báo thời tiết quan trọng, hoặc từ các thông tin về tình hình giá cổ phiếu, các nhà
kinh doanh có thể phân tích và nắm được diễn biến của thị trường để có các quyết
định đầu tư đúng đắn,
Tri thức chính là các dữ liệu, thông tin ở mức trừu tượng và khái quát cao
hơn So với dữ liệu và thông tin thì tri thức ở dạng cô đọng và dễ hiểu nhất đối với
con người Rõ ràng trong kỷ nguyên công nghệ thông tin này thì con người chỉ
muốn tìm kiếm và lĩnh hội các tri thức, đó là cách nhanh nhất và hợp lý nhất, so với
chi phí thời gian và khả năng để hiểu được các dữ liệu ở một dạng thô sơ nào đó
Điều đó cũng cho thấy vai trò quan trọng của lớp các bài toán khai phá dữ liệu và
phát hiện tri thức
1.1.2 Khai phá dữ liệu và phát hiện tri thức
hiện các tri thức từ các dữ liệu lớn được lưu trữ trong cơ sở dữ liệu, data warehouse
hay các kho chứa thông tin khác [1, 12, 17]
Thuật ngữ khai phá dữ liệu (data mining) chỉ việc tìm kiếm một tập hợp nhỏ
có giá trị từ một số lượng lớn các dữ liệu thô Một ví dụ hay được nhắc tới là việc
Trang 18khai thác vàng từ đá và cát, khai phá dữ liệu được ví như công việc “đãi cát tìm
vàng” trong một tập hợp lớn các dữ liệu cho trước
Có nhiều thuật ngữ hiện được dùng cũng có nghĩa tương tự với từ data
mining như knowledge mining (khai phá tri thức), knowledge extraction (chắt lọc tri
thức), data/patern analysis (phân tích dữ liệu/mẫu), data archaeology (khảo cổ dữ
liệu), data dredging (nạo vét dữ liệu) [12] Hiện nay, thuật ngữ khai phá dữ liệu
được dùng quen thuộc và thường đồng nhất với một thuật ngữ khác là phát hiện tri
thức trong cơ sở dữ liệu – Knowledge Discovery in Database (KDD) [1, 2] Thực
ra, khai phá dữ liệu chỉ là một bước trong các quá trình của KDD
Tiến trình phát hiện tri thức KDD nói chung bao gồm 7 quá trình cơ bản
sau đây [1, 2, 4, 12, 17]:
1. Làm sạch dữ liệu: Loại bỏ nhiễu và các dữ liệu không cần thiết.
2. Tích hợp dữ liệu: Tích hợp các nguồn dữ liệu khác nhau.
3. Lựa chọn dữ liệu: Chọn lựa các dữ liệu liên quan tới quá trình phân tích.
4 Chuyển đổi dữ liệu: Các dữ liệu được chuyển đổi sang các dạng phù hợp
cho việc xử lý
5 Khai phá dữ liệu: Là một trong những bước quan trọng nhất, ở đây sử
dụng những phương pháp thông minh để chắt lọc ra những mẫu dữ liệu
có giá trị
6 Ước lượng mẫu: Quá trình này nhằm đánh giá các kết quả tìm được thông
qua các độ đo nào ó đ
7 Biểu diễn tri thức: Sử dụng các kỹ thuật biểu diễn và thể hiện trực quan
các tri thức cho người dùng
Hình 1.1 mô tả bảy quá trình trên trong tiến trình KDD
Trang 19Hình 1.1 Tiến trình khai phá dữ liệu và phát hiện tri thức (KDD)
Việc áp dụng tiến trình KDD có thể thực hiện trên nhiểu kiểu, loại dữ liệu
khác nhau với các hình thức tổ chức lưu trữ khác nhau Hiện nay, có rất nhiều cách
tổ chức dữ liệu khác nhau: cơ sở dữ liệu văn bản, cơ sở dữ liệu quan hệ, cơ sở dữ
liệu hướng đối tượng, cơ sở dữ liệu không gian, cơ sở dữ liệu hướng thời gian,…
Đối với mỗi dạng cơ sở dữ liệu lại có các phương pháp xử lý và mục đích khai phá
dữ liệu khác nhau tùy theo tính chất và đặc thù của dữ liệu
Các kỹ thuật được sử dụng có thể là các phương pháp truyền thống như
học máy (Machine Learning), nhận dạng (Recognition), thống kê (Statistics),… và
các kỹ thuật được phát triển bởi ngành nghiên cứu trí tuệ nhân tạo như mạng nơ-ron
nhân tạo (Neural Network), thuật toán di truyền (Genetic Algorithm), quy nạp luật
(Rule Reduction),…
Trang 201.2 Text Mining - Góc nhìn nhận quan trọng trong
Data Mining
Trong các dạng dữ liệu thường xuyên được sử dụng thì văn bản là một trong
những dạng được dùng phổ biến nhất Văn bản có mặt ở mọi nơi và thường xuyên
bắt gặp hàng ngày Văn bản có thể là các bài báo, các tài liệu kinh doanh, các thông
tin kinh tế, các bài nghiên cứu khoa học, Dù việc áp dụng CSDL vào hoạt động
quản lý của các tổ chức là rất phổ biến và đem lại nhiều lợi ích trong lưu trữ cũng
như xử lý, nhưng trên thực tế còn rất nhiều thông tin khác được lưu trữ dưới dạng
văn bản Do đó, các bài toán xử lý văn bản đã được đặt ra từ khá lâu và cho đến nay
vẫn là một bài toán quan trọng trong khai thác dữ liệu văn bản
làm cho chúng dễ sử dụng hơn, thông tin trong chúng hữu ích hơn hoặc làm cho
chúng được lưu trữ tốt hơn
• Dạng phi cấu trúc (unstructured): là dạng văn bản chúng ta sử dụng hằng
ngày được thể hiện dưới dạng ngôn ngữ tự nhiên của con người và không có
một cấu trúc định dạng cụ thể nào Ví dụ: các văn bản lưu dưới dạng tệp tin
TXT,
• Dạng bán cấu trúc (semi-structured): là các loại văn bản không được lưu trữ
dưới dạng các bản ghi chặt chẽ mà được tổ chức qua các thẻ đánh dấu để thể
hiện nội dung chính của văn bản Ví dụ: dạng tệp tin HTML, e-Mail,…
Tùy từng mục đích sử dụng cụ thể mà việc xử lý văn bản được thực hiện trên dạng
cấu trúc nào Ví dụ, với bài toán phân lớp nội dung trang web thì dạng văn bản cần
xử lý là HTML Trong luận văn này, tác giả chỉ quan tâm xử lý các dữ liệu văn bản
ở dạng phi cấu trúc (biểu diễn dưới dạng tệp tin TXT) bài toán được giải quyết ,
theo hướng dữ liệu mở để tương lai có thể đáp ứng với các mục đích sử dụng khác
nhau
Trang 211.3 Các khái niệm cơ bản trong xử lý văn bản
Trong luận văn này nhắc nhiều đến các thuật ngữ: từ khóa (keyword) thuật ,
ngữ (term), khái niệm (concept), trọng số thuật ngữ, độ liên quan, Việc làm rõ
nghĩa của các thuật ngữ trên ngay từ đầu sẽ làm cho việc trình bày các nội dung
phần sau dễ dàng hơn
1.3.1 Từ khóa, Thuật ngữ và Khái niệm
Từ khóa (keyword): là các từ xuất hiện trong một văn bản ở dạng nguyên thể,
có nghĩa trong từ điển Ví dụ với văn bản: “Chú gà trống choai nhà em lớn
nhanh như thổi, càng lớn chú càng giống gà mái ”☺1, các từ khóa có thể được
tách ra là: “chú”, “gà trống”, “choai”, “nhà”, “em”, “lớn”, “ nhanh”, “như”,
“thổi”, “càng”, “lớn”, “chú”, “càng”, “giống”, “gà mái”
Thuật ngữ (term) :là các từ khóa có nghĩa liên quan đến một lĩnh vực nào đó, ví
dụ: “máy tính”, “công nghệ phần mềm”, “tính toán song song” Các thuật ngữ
này thuộc về lĩnh vực “tin học”
Khái niệm (concept ): là các thuật ngữ nhưng nó là sự khái quát hóa, tổng quát
hóa của nhiều thuật ngữ khác Ví dụ: khái niệm “máy tính” có thể chứa đựng các
thuật ngữ khác như “bàn phím”, “chuột”, “phần cứng”, “phần mềm”, “CPU”,
“ổ cứng”, “Internet”, “màn hình”, “số hóa”,… các từ này có một phần liên
quan đến khái niệm “máy tính”
Một khái niệm thường liên quan đến một dãy các thuật ngữ với mức độ khác
nhau Ví dụ: thuật ngữ “phần mềm” có mức độ liên quan đến khái niệm “tin học”
nhiều hơn so với thuật ngữ “số hóa” Một tiêu chuẩn để xem xét mức độ liên quan
là xác xuất đồng xuất hiện của cặp khái niệm thuật ngữ– trong các văn bản Khi
thuật ngữ “máy tính” xuất hiện nhiều trong các văn bản chứa thuật ngữ “tin học”
thì có nghĩa là độ liên quan giữa cặp “tin học”-“máy tính” càng cao Một lý do để
giải thích suy luận này là mức độ thay thế Ở đây, không chỉ hiểu đơn thuần giống
1 trích tài liệu “Những áng văn bất hủ của con em chúng ta”
Trang 22như sự thay thế 1 1 giữa hai từ (ví dụ:- “loài người” “nhân loại”- ) mà có thể xem
như giữa cặp khái niệm thuật ngữ - có sự thay thế bộ phận (ví dụ:“máy tính”-“bàn
phím”)
1.3.2 Từ dừng (StopWords)
Có thể quan sát thấy rằng trong các ngôn ngữ tự nhiên, rất nhiều từ được
dùng để biểu diễn cấu trúc câu nhưng hầu như không mang ý nghĩa về mặt nội
dung, chẳng hạn các loại từ: giới từ, liên từ,… Các loại từ này xuất hiện thường
xuyên trong các văn bản nhưng không hề mang bất cứ một thông tin nào về nội
dung hay chủ đề của văn bản Những từ đó được gọi là từ dừng (StopWords) Việc
loại bỏ các từ như vậy cũng đồng nghĩa với việc giảm số chiều của văn bản
bản vì nó xuất hiện trong hầu hết các văn bản Ví dụ: Có thể, nếu, vì vậy, sau khi,
thì, một số, với lại, quả thật, hầu như,
Có một số phương pháp để xác định các từ dừng:
• Xây dựng một thuật toán phát hiện các từ dừng Trong thuật toán này cần
đưa ra một ngưỡng để phát hiện từ dừng, ví dụ nếu phát hiện thấy một từ
xuất hiện trong quá 50% số văn bản thì có thể coi đó là từ dừng
• Sử dụng so sánh với một từ điển từ dừng đã được xây dựng
Bạn đọc có thể tham khảo bảng từ dừng tiếng Việt đầy đủ hơn trong Phụ lục 1
1.3.3 Trọng số của thuật ngữ
ngữ đó mang lại cho văn bản Nó là đại lượng dùng để đo sự khác biệt giữa văn bản
chứa nó với các văn bản khác Đại lượng này thường được xác định bằng tay hoặc
đánh giá bằng số lần xuất hiện của thuật ngữ trong văn bản và số lần xuất hiện của
thuật ngữ đó trong các văn bản khác Khi số lần xuất hiện của thuật ngữ trong văn
bản càng nhiều thì thông tin mà nó mang lại càng lớn Khi số lần xuất hiện của nó
trong các văn bản khác càng nhiều thì thông tin mà nó mang lại càng ít
Trang 231.3.4 Độ liên quan giữa các văn bản
mặt nội dung giữa hai văn bản đó Các phương pháp đánh giá độ liên quan chia
thành hai loại: đánh giá theo tần suất xuất hiện thuật ngữ và đánh giá theo ngữ
nghĩa
• Cách đánh giá độ liên quan theo tần suất xuất hiện thuật ngữ: không quan
tâm đến thứ tự sắp xếp của các thuật ngữ trong văn bản mà chỉ quan tâm đến
số lần nó xuất hiện trong văn bản đó Ví dụ: phương pháp sử dụng hệ số
Dice, hệ số Jaccard, hệ số consine,
• Cách đánh giá theo ngữ nghĩa: không chỉ chú ý đến số lần xuất hiện thuật
ngữ trong văn bản mà còn chú ý cả đến sự kết cấu giữa các từ trong từng câu
văn Phương pháp đánh giá thuộc loại này thường phức tạp hơn, yêu cầu có
các giải thuật phù hợp với từng ngôn ngữ cụ thể
Trong luận văn này, tác giả chủ yếu quan tâm đến phương pháp đánh giá độ liên
quan theo tần suất
1.4 Các bài toán cơ bản trong xử lý văn bản
Lewis [12] đã chia ra một số bài toán cơ bản trong xử lý văn bản, bao gồm:
bài toán tìm kiếm văn bản (Text Retrieval), bài toán phân lớp văn bản (Text
Catergorization), bài toán phân nhóm văn bản (Text Clustering), bài toán định
tuyến văn bản (Text Routing), bài toán tóm tắt văn bản (Text Summarization)
1.4.1 Tìm kiếm văn bản (Text Retrieval)
Tìm kiếm văn bản là quá trình tìm các văn bản trong một kho lưu trữ theo
các yêu cầu của người dùng Ở đây, các yêu cầu là các truy vấ và thường được n
biểu diễn dưới dạng thuật ngữ hay biểu thức logic giữa các thuật ngữ
Ví dụ: truy vấn “Text Mining” AND (“Categorization” OR “Classification”)
Ứng với truy vấn này search engine của hệ thống sẽ tìm tất cả các tài liệu về “Text
Trang 24Mining” có liên quan đến “Categorization” hoặc “Classification” Trên thực tế thì
hầu hết các hệ thống chỉ được thiết kế để hiểu các truy vấn tương tự như “Text
Mining” OR “Categorization” OR “Classification” Với câu truy vấn này hệ thống
sẽ tìm kiếm các tài liệu theo mức phù hợp với cả ba thuật ngữ “Text Mining”,
“Categorization” và “Classification”
Kết quả đầu ra của một phép truy vấn là danh sách các tài liệu được sắp xếp
giảm dần theo mức độ phù hợp với câu truy vấn đầu vào
1.4.2 Phân lớp văn bản (Text Categorization, Text
Classification)
Phân lớp văn bản được coi như quá trình gán các văn bản vào một hay
nhiều lớp văn bản đã được xác định trước dựa trên nội dung của văn bản đó [9, 12,
13]
Người ta có thể phân lớp các văn bản một cách thủ công, tức là đọc từng văn
bản và gán nó vào một lớp nào đó, cách này sẽ tốn rất nhiều thời gian và công sức
khi số lượng văn bản lớn nên không khả thi Do vậy cần phải có các phương pháp
phân lớp tự động Để phân lớp tự động người ta thường sử dụng các phương pháp
học máy trong trí tuệ nhân tạo Khi phân lớp, văn bản được gán vào một lớp theo
một giá trị ngưỡng nào đó Ngưỡng đặt ra tùy thuộc vào thuật toán và yêu cầu người
dùng
1.4.3 Phân nhóm văn bản (Text Clustering)
Phân nhóm văn bản là việc tự động sinh ra các nhóm văn bản dựa vào sự
tương tự về nội dung của các văn bản Số lượng các nhóm văn bản ở đây là chưa
biết trước, chẳng hạn số nhóm có thể là 2, 3, 5, Người dùng có thể chỉ ra số lượng
các nhóm cần phân nhóm hoặc hệ thống sẽ tự phân nhóm [9, 12]
Đối với bài toán này, không bao giờ có một kết quả thỏa mãn hoàn toàn theo
ý người dùng Một lý do đơn giản để giải thích là máy không được học trước
Chúng ta phải thừa nhận rằng ngay cả con người cũng giải quyết bài toán này không
Trang 25giống nhau Ví dụ lập nhóm các từ : “thầy giáo”, “diễn viên”, “phấn viết”, “vở
kịch”; một người sẽ lập thành 2 nhóm là: con người (“thầy giáo”, “diễn viên”) và
sự vật (“phấn viết”, “vở kịch”), trong khi đó người khác lại phân chúng thành 2
nhóm khác: giáo dục (“thầy giáo”, “phấn viết”) và văn hóa (“diễn viên”, “vở
kịch”) Do đó, việc đòi hỏi hệ thống tự động lập nhóm làm việc đúng tuyệt đối là
điều không tưởng
1.4.4 Tóm tắt văn bản (Text Summarization)
Tóm tắt văn bản là bài toán tìm ra thể hiện nội dung của một văn bản thông
qua một vài đoạn văn [9, 12]
Ứng dụng điển hình của bài toán này là trong tìm kiếm văn bản Các kho lưu
trữ bao gồm rất nhiều tài liệu và kích thước mỗi tài liệu có thể lên đến vài trăm
trang Giả sử khi bạn đọc muốn tìm một tài liệu về “Text Mining” và nhờ hệ thống
tìm kiếm văn bản tìm giúp, hệ thống tìm kiếm sẽ đưa ra một danh sách các tài liệu
với nội dung tương đối phù hợp với “Text Mining” Nhưng để biết thực sự tài liệu
đó có phù hợp với mình hay không, bạn đọc đành phải đọc toàn bộ hoặc đọc một
phần trong tài liệu Hệ thống tóm tắt văn bản sẽ làm cho việc tìm kiếm giảm nhẹ đi
rất nhiều bằng cách tự động tóm lược nội dung của toàn bộ văn bản bởi một vài
đoạn văn bản Sau khi đọc qua đoạn tóm lược này, bạn đọc có thể biết được đây có
phải là tài liệu chứa thông tin mà họ đang cần hay không
1.4.5 Dẫn đường văn bản (Text Routing)
Dẫn đường văn bản là sự tổ hợp giữa bài toán tìm kiếm văn bản và phân
lớp, nhóm văn bản Giống như phân lớp, nhóm văn bản, bài toán dẫn đường cũng
đưa các văn bản về các lớp, nhóm khác nhau và việc xử lý này yêu cầu trong thời
gian thực Tuy nhiên, nó cũng giống như bài toán tìm kiếm, mỗi lớp, nhóm văn bản
được gán với các thông tin cần thiết của một hay nhiều nhóm người dùng Mỗi
người dùng có thể thay đổi thêm bớt các yêu cầu của mình Quá trình phản hồi có
thể được sử dụng để nâng cao chất lượng tìm kiếm văn bản
Trang 26Một ứng dụng điển hình của bài toán dẫn đường văn bản là trong các trang
tin điện tử Khi đọc một tin mới, hệ thống sẽ đưa ra danh sách các tin khác có liên
quan đến nội dung đoạn tin đang đọc (hình 1.2) Người dùng có thể theo các thông
tin dẫn đường này để theo dõi toàn bộ diễn biến của sự kiện.
Hình 1.2. Chức năng dẫn đường văn bản trong VNExpress
1.5 Các phương pháp biểu diễn văn bản
Phần này sẽ trình bày về một số phương pháp biểu diễn văn bản thông dụng
trong đó đặc biệt chú ý đến phương pháp biểu diễn văn bản theo mô hình không
gian vector tần suất TF × IDF, đây là mô hình được tác giả sử dụng khi cài đặt mô
hình thử nghiệm trong luận văn này
1.5.1 Mô hình không gian vector (Vector Space Model - VSM)
Cách biểu diễn văn bản thông dụng nhất là thông qua mô hình không gian
vector Đây là một cách biểu diễn tương đối đơn giản Trước đây có một số nghiên
cứu nhận thấy phương pháp này gây tốn kém chi phí lưu trữ và công sức xử lý,
Trang 27nhưng khi các phương pháp xử lý vector thưa được áp dụng thì các nhược điểm trên
giảm đi rất nhiều và mang lại hiệu quả cho bài toán đặt ra
Bản chất của mô hình không gian vector:
• Mỗi văn bản được biểu diễn thành một vector
• Mỗi thành phần của vector là một từ khóa riêng biệt trong tập văn bản
gốc và được gán một giá trị là hàm của từng f từ khóa trong văn bản
Quan sát ví dụ:“Mạng máy tính là một tập hợp các máy tính được nối với nhau bởi
các đường truyền vật lý theo một kiến trúc nào đó”. Có thể biểu diễn văn bản trên
dưới dạng các từ khóa và hàm fbiểu diễn số lần xuất hiện của từ khóa trong văn bản
(bảng 1.1) Cách biểu diễn này gọi là biểu diễn văn bản theo tần số xuất hiện
Bảng 1.1 Ví dụ về văn bản biểu diễn theo từ khóa và tần số xuất hiện
Một mô hình biểu diễn vector với hàm f cho ra giá trị rời rạc có duy nhất hai
giá trị đúng và sai true ( và false, hoặc 0 và 1) gọi là mô hình Boolean Hàm f tương
ứng với thuật ngữ ti sẽ cho ra giá trị đúng nếu và chỉ nếu thuật ngữ ti xuất hiện
trong văn bản đó
Mô hình Boolean được mô tả như sau:
m
Giả sử có một cơ sở dữ liệu gồm văn bản, D= {d1, d2,… dm} Mỗi văn bản
được biểu diễn dưới dạng một vector gồm thuật ngữ n T= {t1, t2,…tn} Gọi W= {wij}
là ma trận trọng số, trong đó wijlà giá trị trọng số của thuật ngữ titrong văn bản dj
Mô hình Boolean là mô hình đơn giản nhất được xác định như sau [4, 9]:
Trang 28trongmÆt cã nÕu0
dt
1
1.5.1.2 Mô hình tần số
Trong mô hình tần số, ma trận W = {wij} được xác định dựa trên tần số xuất
hiện của thuật ngữ ti trong văn bản dj hoặc tần số xuất hiện của thuật ngữ ti trong
toàn bộ cơ sở dữ liệu
Có ba phương pháp [4, 5, 9]:
• Phương pháp dựa trên tần số thuật ngữ TF (Term Frequency)
• Phương pháp dựa trên nghịch đảo tần số văn bản IDF (Inverse Document
Frequency)
• Phương pháp TF × IDF: kết hợp của phương pháp TF và IDF
Phương pháp dựa trên tần số thuật ngữ TF (Term Frequency)
Các giá trị wij được tính dựa trên tần số xuất hiện của thuật ngữ trong văn
bản Gọi fij là số lần xuất hiện của thuật ngữ ti trong văn bản dj, khi đó wij được tính
Trong phương pháp này, trọng số wij tỷ lệ thuận với số lần xuất hiện của
thuật ngữ ti trong văn bản dj Khi số lần xuất hiện thuật ngữ ti trong văn bản dj càng
lớn thì điều đó có nghĩa là văn bản dj càng phụ thuộc vào thuật ngữ ti, hay nói cách
khác thuật ngữ ti mang nhiều thông tin trong văn bản dj Ví dụ: khi văn bản xuất
hiện nhiều thuật ngữ máy tính, điều đó có nghĩa là văn bản đang xét chủ yếu liên
quan đến lĩnh vực tin học
Phương pháp dựa trên nghịch đảo tần số văn bản IDF (Inverse Document
Frequency)
Trang 29Trong phương pháp này, giá trị wij được tính theo công thức (1.5) sau [4, 5, 9]:
liÖu tµi trong xuÊt hiÖn thuËt ng
nÕu 0
d t
h m
h
m
trong đó là số lượng văn bản và m hi là số văn bản mà thuật ngữ tixuất hiện
Trọng số wij trong công thức này được tính dựa trên độ quan trọng của thuật
ngữ ti trong văn bản dj Nếu ti xuất hiện trong càng ít văn bản, điều đó có nghĩa là
nếu nó xuất hiện trong dj thì trọng số của nó đối với văn bản dj càng lớn hay nó là
điểm quan trọng để phân biệt văn bản dj với các văn bản khác và hàm lượng thông
tin trong nó càng lớn Ví dụ: các thuật ngữ “tiền đạo” “hậu vệ” “thủ môn”, , chỉ
xuất hiện trong các bài báo nói về lĩnh vực bóng đá Như vậy, hàm lượng thông tin
về bóng đá chứa đựng trong các thuật ngữ trên là rất lớn
Phương pháp TF × IDF
Phương pháp này là tổng hợp của hai phương pháp TF và IDF, giá trị của ma
trận trọng số được tính như (1.6) (tổ hợp của các công thức (1.3) và (1.5)) [4, 5, 9]
=
l¹i ngîc nÕu
nÕu 1
0
h h
m f
i
ij ij
1 log
)]
log(
[
(1.6)
Phương pháp này kết hợp được ưu điểm của cả hai phương pháp trên Trọng
số wij được tính bằng tần số xuất hiện của thuật ngữ ti trong văn bản dj và độ hiếm
của thuật ngữ ti trong toàn bộ cơ sở dữ liệu Đây cũng chính là phương pháp biểu
diễn văn bản tác giả sử dụng trong luận văn nghiên cứu này
1.5.1.3 Phương pháp xử lý véc tơ thưa
Theo mô hình vector chuẩn, việc xử lý các phép toán trên vector sẽ phụ
thuộc vào độ lớn của ma trận Wnm, ở đây n là số lượng thuật ngữ hay số chiều của
vector và m là số lượng văn bản có trong cơ sở dữ liệu Trên thực tế, số lượng thuật
ngữ và số văn bản có thể lên đến vài chục nghìn Khi đó số lượng phần tử trong ma
trận Wnm sẽ lên đến con số trăm triệu và việc lưu trữ ma trận Wnm sẽ tốn quá nhiều
Trang 30tài nguyên bộ nhớ đồng thời các phép toán trên các vector sẽ rất phức tạp Để khắc
phục vấn đề này có thể sử dụng kỹ thuật xử lý trên vector thưa thay vì việc lưu trữ
và xử lý trên các vector chuẩn [9]
Các điều kiện để có thể áp dụng phương pháp vector thưa:
1 Các vector thực sự thưa: số phần tử có trọng số khác 0 nhỏ hơn rất nhiều so
với số thuật ngữ trong cơ sở dữ liệu
2. Phép xử lý vector là đơn giản nhất: số vector cùng bị tác động trong một
phép xử lý cơ bản là nhỏ nhất Thường số vector bị tác động này được quy
định tối đa là 3 hoặc 4
Trên thực tế, số thuật ngữ xuất hiện trong một văn bản thường dưới 1000 Đối với
các văn bản dài và đa chủ đề thì số thuật ngữ xuất hiện có thể nhiều hơn Trong khi
đó, số lượng thuật ngữ có trong từ điển có thể đến 100.000 từ Đây chính là điều
kiện để áp dụng phương pháp vector thưa đối với điều kiện đầu tiên Việc thỏa mãn
điều kiện thứ hai còn phụ thuộc vào thuật toán áp dụng trong quá trình xử lý
Một ví dụ biểu diễn vector thưa từ các vector chuẩn
Bảng 1.2 Ví dụ biểu diễn vector thưa
w ij Máy tính Internet Gia cầm Quần áo Lúa Ô tô
giá trị là mã biểu diễn thuật ngữ và giá trị trọng số tương ứng của thuật ngữ đó Ví
dụ: phần tử (6, 4) trong văn bản d2 chỉ ra thuật ngữ có mã 6 (“ô tô”) sẽ có trọng số
là 4
Trang 311.5.2 Phương pháp biểu diễn văn bản dựa trên các khái niệm
mờ
Trong phạm vi của đề tài này tác giả không đi chi tiết vào rất nhiều khái
niệm cơ bản trong tập mờ nên chỉ xin phép giới thiệu qua phương pháp này
Xét tập các văn bản D = {d1, d2,…dn} và tập các thuật ngữ K = {k1, k2,…km}
Sự liên quan của các thuật ngữ tới một văn bản được xác định tương ứng bằng cách
sử dụng một phương pháp đánh chỉ số thông qua một giá trị gọi là hàm thuộc
(membership function) μA(x) nào đó đã biết:
)}
( μ ),
( μ ), (
Giá trị của hàm µ thường được chuẩn hóa các vào khoảng [0,1] Dựa trên các hàm K
thuộc này người ta xây dựng hàm tích hợp khái niệm mờ F để biểu diễn văn bản [4,
9]
kế”, “cài đặt” trong văn bản sau
Hình 1.3 Ví dụ biểu diễn văn bản dựa trên khái niệm mờ
Giả sử với:
K = {“máy tính”, “phần cứng”, “phần mềm”, “CPU”, “chuột”, “thiết kế”, “cài đặt”}
Ngày nay, máy tính đã xâm
nhập rất sâu vào cuộc sống của
chúng ta Với sự phát triển mạnh
mẽ của khoa học kỹ thuật, các linh
kiện phần cứng như chuột,
CPU,…ngày càng rẻ đi đã làm cho
giá thành của máy tính rẻ hơn rất
“máy tính”
“phần cứng”
“phần mềm”
0.3 0.5 0.4
“CPU”
“chuột”
“thiết kế”
0.1 0.9 0.2
“cài đặt”
0.6
Trang 32 μ = { (μ “máy tính” ), μ(“phần cứng”), μ(“phần mềm”), μ(“CPU” ), μ(“chuột”), μ(“thiết
t= “linh kiện”= {“ máy tính”, “phần cứng”, “CPU”, “chuột”}
Độ quan trọng của khái niệm “linh kiện” đối với văn bản được xác định là:
μ(“linh kiện”) = F( (μ “máy tính”), μ(“phần cứng”), (μ “CPU”), μ(“chuột”))
μ(“linh kiện”)=AVEG(0.3, 0.5, 0.1, 0.9)=0.45 với hàm tích hợp trung bình( )
Xét khái niệm mờ
~
t= “phần mềm” := {“ máy tính”, “phần mềm”, “thiết kế”, “cài đặt”}.
Độ quan trọng của khái niệm “phần mềm” đối với văn bản được xác định là:
μ(“phần mềm”) = F( (μ “máy tính”), μ(“phần mềm”), μ(“thiết kế”), μ(“cài đặt”))
μ(“phần mềm”)=AVEG(0.3, 0.4, 0.2, 0.6)=0.375 F hàm tích hợp trung bình ( : )
Như vậy, bài toán xử lý văn bản trên tập mờ nói chính xác hơn chính là lưu
trữ và xử lý trên các khái niệm thay vì phải làm việc trên các thuật ngữ Việc lưu
trữ và xử lý trên các khái niệm sẽ cho ra các kết quả tốt hơn và hiệu quả hơn, giải
quyết rất nhiều vấn đề, chẳng hạn như từ đồng nghĩa, tuy nhiên vấn đề tính hàm phụ
thuộc giữa các khái niệm và thuật ngữ vẫn còn là một vấn đề không dễ giải quyết
1.6 Kết chương
Trong chương này, tác giả đã trình bày về các lý thuyết cơ bản trong lĩnh vực
xử lý văn bản và một số phương pháp biểu diễn văn bản Trong các phương pháp
biểu diễn văn bản, tác giả đặc biệt chú ý đến phương pháp vector tần suất TF × IDF
Cách biểu diễn này sẽ được sử dụng trong quá trình giải quyết bài toán chính
Trong chương sau, tác giả sẽ đi vào một vấn đề quan trọng liên quan đến ý
tưởng tiếp cận bài toán nghiên cứu chính được đặt ra trong đề tài Đó là kỹ thuật
phân nhóm văn bản ■
Trang 33C HƯƠNG 2 PHÂN NHÓM-PHƯƠNG PHÁP HỌC
KHÔNG GIÁM SÁT
Néi dung:
2.1 Giíi thiÖu bµi to¸n ph©n nhãm 2.2 C¸c yªu cÇu cña kÜ thuËt ph©n nhãm 2.3 C¸c thuËt to¸n ph©n nhãm c¬ b¶n hiÖn nay 2.4 §¸nh gi¸ hiÖu suÊt ph©n nhãm
2.5 KÕt ch¬ng
Trang 342.1 Giới thiệu bài toán phân nhóm
2.1.1 Phân nhóm dữ liệu
Kỹ thuật phân nhóm là một kỹ thuật học không giám sát thú vị trong các cơ
chế học và lĩnh vực thống kê Một cách tổng quát kỹ thuật phân nhóm sử dụng để
phân chia tập hợp các phần tử dữ liệu ban đầu thành các nhóm gồm các phần tử
tương tự nhau theo một, một số khía cạnh nào đó Phân nhóm dựa trên nguyên tắc
cực đại hoá tính tương đồng trong một nhóm và cực tiểu hoá tính tương đồng giữa
các nhóm [1, 8, 11, 20, 23]
Sự khác nhau giữa phân lớp dữ liệu và phân nhóm dữ liệu:
• Phân lớp dữ liệu: tên lớp và số lượng lớp được biết trước
• Phân nhóm dữ liệu: tên và số lượng nhóm là không biết trước
2.1.2 Bài toán “Phân nhóm văn bản”
Phân nhóm văn bản cũng là một kĩ thuật phân nhóm dữ liệu, thực hiện quá
trình tự động phân các văn bản, tài liệu thành các nhóm để các văn bản trong cùng
một nhóm có độ tương tự cao và khác với các văn bản trong nhóm khác [8, 11, 20]
Khái niệm tự động ở đây có thể hiểu như là một quá trình hoàn toàn tự động,
không có sự tham gia của con người vào bất cứ thời điểm nào của toàn bộ tiến trình
phân nhóm Bởi vậy, phân nhóm còn được gọi là học không giám sát (unsupervised
learning method) hay học không thầy dạy vì chúng ta chỉ học bằng “quan sát” hơn
là học từ “ví dụ”
Phân nhóm văn bản được nghiên cứu rộng rãi bởi các ứng dụng của nó là rất
lớn Chẳng hạn như khai phá dữ liệu văn bản (text mining), khai phá dữ liệu web
(web mining), tìm kiếm thông tin (information retrieval), phân tích hình học
(topological analysis),
Hiện nay các thuật toán phân nhóm phải chú trọng đáp ứng những yêu cầu sau [11]:
Trang 35• Tính phạm vi (Scalability): Nhiều thuật toán tỏ ra làm việc hiệu quả trên tập
dữ liệu nhỏ, tuy nhiên một vài trong số chúng lại không thể thực hiện khi tập
dữ liệu vượt quá 10000 đối tượng
• Tính đa chiều cao (High dimensionality): Một cơ sở dữ liệu có thể chứa
nhiều thuộc tính Hầu hết các thuật toán đều hoạt động hiệu quả với dữ liệu ít
thuộc tính nhưng có thể thất bại khi thực hiện trên các dữ liệu nhiều thuộc
tính Các thuộc tính này khi mã hoá được coi là các chiều Chẳng hạn, một
tập văn bản tiếng Anh có thể có 10000 từ sẽ tạo ra một cơ sở dữ liệu lên đến
10000 chiều
• Đảm bảo hình dạng Đại số của các nhóm (Arbitrary shape of cluster): Các
nhóm xác định cần đảm bảo vẫn giữ nguyên hình dạng Đại số tự nhiên
Ví dụ: một số thuật toán thực hiện phân nhóm đều dựa trên khoảng cách
Euclidean hay Manhattan để đo lường sự khác nhau về độ tương tự, hiển
nhiên, những thuật toán đó sẽ tạo ra những nhóm có dạng hình cầu Điều này
làm giới hạn độ chính xác
• Không nhạy cảm với dữ liệu đầu vào (Insensitivity to the order of input
data): Một số thuật toán rất nhạy cảm với trật tự dữ liệu vào Điều này làm
cho chất lượng của phân nhóm biến đổi và trở nên không dự đoán được
• Kiểm soát nhiễu (Noisy data handling): Dữ liệu có sai sót là một vấn đề
thường thấy Sai sót được gọi chung là nhiễu Một thuật toán phân nhóm tốt
cần cực tiểu hoá ảnh hưởng của nhiễu nếu không sẽ giảm độ chính xác
2.3 Các thuật toán Phân nhóm cơ bản hiện nay
Các thuật toán Phân nhóm dữ liệu cơ bản hiện nay [8, 11, 23]:
• Các giải thuật dựa trên tập thuật ngữ xuất hiện thường xuyên (Document
Clustering Using Frequent Itemsets)
• Các giải thuật phân vùng (Partitionning Algorithms)
• Các giải thuật dựa trên mật độ (Densit-based Algorithms)
• Các giải thuật dựa trên các lưới dữ liệu (Grid-based Algorithms),
Trang 36Phần dưới đây cung cấp một cái nhìn tổng quan về các giải thuật phân nhóm này và
tập trung đi sâu vào một giải thuật phân nhóm sẽ được sử dụng trong luận văn
2.3.1 Các phương pháp phân chia (Partitionning Algorithms)
Các phương pháp phân chia thực hiện chia một tập dữ liệu thành các nhóm
riêng rẽ [8, 11, 23] Ví dụ: để phân một tập các đối tượng dữ liệu thành k nhóm,
thuật toán tiến hành chia chúng ngay từ đầu thành nhóm Sau đó, liên tục cải tiến, k
xác định lại các nhóm bằng cách di chuyển các đối tượng dữ liệu ở nhóm này sang
nhóm khác cho đến khi thỏa mãn một số điều kiện
Thuật toán k-means do J.MacQueen đưa ra vào năm 1967 và các biến thể
của nó (k-means chia đôi - bisecting K-Means, ) được biết đến như là các thuật
toán phân chia nổi tiếng Chúng thường khác nhau trong việc xác định trọng tâm k
ban đầu, tính toán độ tương tự và phương pháp tính toán trọng tâm để giảm thời
gian tính toán
Hình
2.1 Ví dụ mô tả giải thuật k-means Hình 2.1 Ví dụ mô tả giải thuật k-means
a - Bước 1: khởi tạo ; b Vòng lặp đầu tiên; c Vòng lặp thứ hai (trạng thái dừng);- -
2.3.2 Phương pháp phân nhóm dựa trên hàm mật độ
(Density-Based)
Phương pháp phân nhóm dựa trên mật độ là các phương pháp dựa trên ý
tưởng: các nhóm ban đầu là các vùng dầy đặc trong không gian dữ liệu sẽ được tách
thành các vùng có mật độ đối tượng thấp hơn Tiếp tục đối với các nhóm mới tách
ra cho đến khi mật độ vùng lân cận vượt qua giá trị ngưỡng Nói cách khác, với mỗi
Trang 37điểm bất kì trong một nhóm, mật độ điểm địa phương xung quanh điểm đó phải
không vượt quá ngưỡng Một nhóm sẽ được xác định dựa trên 3 tiêu chí: mật độ
(density), các kết nối với những điểm khác (connectivity) và đường biên (boundary)
[8, 11, 23]
Có hai cách tiếp cận đối với các phương pháp phân nhóm dựa trên mật độ:
• Density-Based Connectivity: bao gồm các giải thuật được biết đến như
DBSCAN, GDBSCAN, OPTICS, và DBCLASD Hướng tiếp cận này dựa
trên giá trị mật độ và các kết nối giữa các điểm dữ liệu
• Density Functions: ví dụ giải thuật DENCLUE, tiếp cận theo một số hàm
mật độ
2.3.3 Phương pháp phân nhóm dựa trên lưới (Grid-Based
Method)
Các phương pháp phân nhóm dựa trên lưới thực hiện lượng tử hóa không
gian thành số lượng hữu hạn các ô (cell) để tạo thành cấu trúc lưới Sau đó tất cả các
thao tác phân nhóm được thực hiện trên cấu trúc lưới Độ phức tạp tính toán không
phụ thuộc vào số các đối tượng dữ liệu mà chỉ phụ thuộc vào số các cell trong mỗi
chiều trong không gian đã được lượng tử hoá [8, 11, 23]
Hình 2.2 Mô tả một giải thuật phân nhóm dựa trên lưới
Trong số các giải thuật phân nhóm dựa trên lưới thì STING (Statistical
Information Grid) là một phương pháp phân nhóm dựa trên lưới nổi tiếng dùng cho
dữ liệu không gian Ta không đi sâu vào chi tiết của giải thuật này trong luận văn
Trang 382.3.4 Phân nhóm dựa trên thuật ngữ xuất hiện thường xuyên
( Frequent Itemset )
Các phương pháp sử dụng thuật ngữ thường xuyên để phân nhóm được đánh
giá là nhiều hứa hẹn trong bài toán phân nhóm nói chung và phân nhóm văn bản nói
riêng Đây cũng là phương pháp phân nhóm tác giả đã lựa chọn khi tiếp cận bài
toán nghiên cứu của luận văn Nguyên nhân là nó khắc phục được những nhược
điểm mà một số giải thuật phân nhóm khác gặp phải như:
• Không thực sự giải quyết được vấn đề số chiều quá lớn trong bài toán phân
nhóm Không đáp ứng được khi số chiều lên đến 10000 thuật ngữ/ số chiều
• Bất lợi khi kích thước của cơ sở dữ liệu quá lớn
Quá trình phân nhớm dựa trên thuật ngữ xuất hiện thường xuyên gồm hai bước:
• Xác định tập các thuật ngữ xuất hiện thường xuyên
• Sử dụng một giải thuật phân nhóm dựa trên tập thuật ngữ thường xuyên đã
xác định
2.3.4.1 Các giải thuật xác định tập các thuật ngữ xuất hiện thường xuyên
Có nhiều giải thuật xác định tập các thuật ngữ xuất hiện thường xuyên nổi tiếng
như:
Thuật toán AIS
Thuật toán STM
Thuật toán Apriori
Thuật toán FP Growth,
Chúng ta sẽ xem xét hai thuật toán hay được sử dụng là thuật toán Apriori và FP
Growth
2.3.4.1.1 Giải thuật Apriori
Thuật toán này sử dụng các k-itemset (tập thuật ngữ gồm thuật ngữ xuất k
hiện thường xuyên) để thăm dò (k+1)-itemset và qua đó khai thác được toàn bộ các
tập thuật ngữ thường xuyên (FIs) trong tập dữ liệu [8, 11]
Trang 39 Đầu tiên tính 1-itemsets 2-itemsets, và sau đó là 3-itemsets…
Khi tính toán (k+1)-itemsets, chỉ xét những (k+1)-itemsets mà tất cả các tập
con có độ dài đã được xác định là thường xuyên ở bước trước.k
Mô tả giải thuật Apriori:
Biến Ck: Các tập thuật ngữ ứng cử có kích thước k
Biến Lk: Các tập thuật ngữ thường xuyên kích thước k
L 1 = {Các thuật ngữ thường xuyên mức 1};
For (k=1; L k !=Ø; k++) do
Begin
//Bước kết hợp: Kết hợp Lk với bản thân nó để tạo ra Ck+1
//Bước cắt tỉa: Loại bỏ (k+1)-itemsets từ Ck+1chứa k itemsets không thường xuyên
-C k+1 = các ứng cử viên được tạo ra từ Lk
For mỗi văn bản t trong cơ sở dữ liệu do
Tăng số lượng của tất cả các ứng cử viên trong Ck+1 có chứa trong t
L k+1 = các ứng cử viên trong Ck+1 có GS > min_support
end
Return k L k
Ví dụ:
Hình 2.3 Ví dụ về thuật toán Apriori
Phương pháp tạo và kiểm tra của giải thuật Apriori làm việc tốt Tuy nhiên,
một số lượng lớn itemset được tạo ra Nếu có tập m 1-FIs m ( tập 1-item frequent) thì
Trang 40có đến m*(m-1)/2 tập 2-FIs được tạo ra Ngoài ra, thuật toán đòi hỏi quét nhiều lần
toàn bộ dữ liệu để kiểm tra thuật ngữ thường xuyên, nó đòi hỏi (n+1) lần quét với n
là số lượng k-FIs lớn nhất Đây cũng là nhược điểm của giải thuật này
2.3.4.1.2 Giải thuật FP Growth
Thuật toán FP-growth thông qua ý tưởng chia để trị (divide & conquer
approach) để cực tiểu số lượng itemset tạo ra FP growth tránh lặp lại số lần quét cơ
-sở dữ liệu, chỉ quét hai lần toàn bộ cơ -sở dữ liệu và khai thác cấu trúc dữ liệu thành
cây FP để tìm kiếm tất cả FI [8, 11]
Ví dụ: Xây dựng cây FP với Min_support = 0.5
Bảng 2.1 Dữ liệu đầu vào để xây dựng cây FP
1 Quét cơ sở dữ liệu, tìm ra các tập thuật ngữ thường xuyên ở mức 1
2 Sắp xếp các thuật ngữ thường xuyên theo thứ tự giảm dần
3 Quét cơ sở dữ liệu lại và xây dựng cây FP
Hình 2.4 Ví dụ về xây dựng cây FP