Tải bản đầy đủ (.pdf) (41 trang)

Thuật toán k means ứng dụng trong bài toán phân loại văn bản

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 (1017.5 KB, 41 trang )

TRẦN HỒNG TIẾN

TRƢỜNG ĐẠI HỌC VINH

TRẦN HỒNG TIẾN

THUẬT TỐN K-MEANS
ỨNG DỤNG TRONG BÀI TOÁN PHÂN LOẠI VĂN BẢN

THUẬT TOÁN K-MEANS ỨNG DỤNG TRONG BÀI TOÁN
PHÂN LOẠI VĂN BẢN

LUẬN VĂN THẠC SĨ CƠNG NGHỆ THƠNG TIN

KHĨA 24

NGHỆ AN, 7/2018


TRƢỜNG ĐẠI HỌC VINH

TRẦN HỒNG TIẾN

THUẬT TỐN K-MEANS ỨNG DỤNG TRONG BÀI TỐN
PHÂN LOẠI VĂN BẢN

CHUN NGÀNH: CƠNG NGHỆ THƠNG TIN
MÃ SỐ: 8.48.02.01

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN


Ngƣời hƣớng dẫn khoa học: TS. Trần Xuân Sang

NGHỆ AN, 7/2018


1

LỜI CẢM ƠN

Trong suốt quá trình học tập cũng nhƣ quá trình làm luận văn, em đã
nhận đƣợc sự quan tâm của Ban giám hiệu trƣờng Đại Học Vinh, Ban
Giám Hiệu trƣờng Sƣ phạm kỹ thuật Vĩnh Long, sự giúp đỡ của các thầy
cô giáo trong khoa Công Nghệ Thông Tin, khoa sau Đại Học trƣờng Đại
học Trƣờng Đại học Vinh, khoa Liên kết Trƣờng Đại học Sƣ phạm kỹ thuật
Vĩnh Long. Đặc biệt là sự hƣớng dẫn tận tình của thầy giáo hƣớng dẫn TS
Trần Xuân Sang.
Em cũng xin gửi lời cảm ơn tới ban lãnh đạo, các đồng nghiệp nơi
em đang công tác đã tạo điều kiện giúp em, cảm ơn các bạn ban cán sự lớp
cao học CNTT khóa 24 Vĩnh Long đã cùng em có khoảng thời gian học tập
rất bổ ích. Cuối cùng, em xin gửi lời cảm ơn tới gia đình, bạn bè, những
ngƣời thân đã luôn động viên và chia sẻ cũng em trong suốt thời gian học
tập.


2

LỜI CAM ĐOAN

Tôi xin cam đoan luận văn này là do tự bản thân thực hiện và là sản
phẩm của riêng tôi. Các số liệu và tài liệu trong luận văn là trung thực, các

tin thứ cấp sử dụng trong luận văn là có nguồn gốc và đƣợc trích dẫn rõ
ràng.
Tơi hồn tồn chịu trách nhiệm về tính xác thực và nguyên bản của
luận văn.
Học viên thực hiện
Tác giả

Trần Hoàng Tiến


3

MỤC LỤC
LỜI CẢM ƠN ............................................................................................... 1
LỜI CAM ĐOAN ......................................................................................... 2
DANH MỤC C C BẢNG - DANH MỤC CÁC HÌNH .............................. 5
1. Lý do chọn đề tài ....................................................................................... 6
2. Đối tƣợng và phạm vi nghiên cứu............................................................. 6
2.1. Đối tƣợng nghiên cứu............................................................................. 6
2.2. Phạm vi nghiên cứu ................................................................................ 7
3. Mục đích, nhiệm vụ nghiên cứu................................................................ 7
4. Nội dung nghiên cứu ................................................................................. 8
5. Đóng góp của luận văn .............................................................................. 8
CHƢƠNG 1................................................................................................... 9
BÀI TỐN PHÂN LOẠI VĂN BẢN .......................................................... 9
1.1. Đặt vấn đề............................................................................................... 9
1.2. Các phƣơng pháp phân loại văn bản. ................................................... 10
1.3. Ứng dụng của bài toán phân loại văn bản và các nghiên cứu liên quan
..................................................................................................................... 11
CHƢƠNG 2................................................................................................. 13

THUẬT TOÁN K - MEANS ...................................................................... 13
2.1. Giới thiệu thuật toán K-means ............................................................. 13
2.1.1. Phân tích tốn học ............................................................................. 13
2.1.2. Hàm mất mát và bài toán tối ƣu ........................................................ 14
2.1.3. Thuật toán tối ƣu hàm mất mát ......................................................... 14
2.1.4. Ƣu điểm thuật toán k-means ............................................................. 16
2.2. Phân loại văn bản bằng thuật toán k-means ......................................... 16
2.2.1. Các bƣớc thực hiện............................................................................ 16
2.2.2. Ví dụ về dùng thuật toán K-means trong phân loại văn bản............. 19
CHƢƠNG 3................................................................................................. 26
THỬ NGHIỆM VÀ Đ NH GI KẾT QUẢ PHÂN LOẠI VĂN BẢN VỚI


4

THUẬT TỐN K-MEANS ........................................................................ 26
3.1. Tóm tắt thuật tốn ................................................................................ 26
3.2. Sử dụng thuật toán K-means để phân lớp văn bản .............................. 26
3.2.1 Thực hiện việc tách từ ........................................................................ 27
3.2.2. Chuẩn hóa dữ liệu ............................................................................. 27
3.2.3. Xây dựng từ điển ............................................................................... 28
3.2.4. Mơ hình vector khơng gian ............................................................... 29
3.2.5. Xác định trọng số (tọa độ) của hạn (term) trong văn bản ................. 29
3.2.6. Xác định các hạn (term) trong văn bản ............................................. 30
3.3. Xây dựng chƣơng trình bằng C# .......................................................... 31
3.4 Giao diện chƣơng trình ......................................................................... 36
KẾT LUẬN ................................................................................................. 38
TÀI LIỆU THAM KHẢO ........................................................................... 39



5

DANH MỤC CÁC BẢNG
Tên Bảng

Trang

Bảng 2.1: Mƣời tài liệu cần phân nhóm với năm từ và tần suất
xuất hiện

21

Bảng 2.2: Khoảng cách Euclidean từ 3 điểm chính D2, D5, D7
đến các tài liệu khác

21

Bảng 2.3: Khoảng cách từ các tài liệu đến 3 tài liệu đƣợc chọn
làm điểm chính

22

Bảng 2.4: Giá trị điểm trung tâm của nhóm 1

23

Bảng 2.5: Giá trị điểm trung tâm của nhóm 2

23


Bảng 2.6: Giá trị điểm trung tâm của nhóm 3

23

Bảng 2.7: Khoảng cách các tài liệu đến 3 điểm trung tâm mới

24

Bảng 2.8: Giá trị điểm trung tâm của nhóm C1

25

Bảng 2.9: Giá trị điểm trung tâm của nhóm C2

25

Bảng 2.10: Giá trị điểm trung tâm của nhóm C3

25

Bảng 2.11: Tính lại khoảng cách các tài liệu đến 3 điểm trung
tâm mới

26

DANH MỤC CÁC HÌNH
Tên hình

Trang


Hình 3.1: Sơ đồ khối của chƣơng trình

27

Hình 3.2: Tách từ bằng phần mềm VnTokenizer

28

Hình 3.3: Giao diện chính của chƣơng trình

37

Hình 3.4: Khai báo các tham số hệ thống

38

Hình 3.5: Kết quả sau khi phân loại

38


6

MỞ ĐẦU
1. Lý do chọn đề tài
Ngày nay chúng ta đang đối mặt với khối lƣợng tài liệu văn bản khổng
lồ, chúng xuất hiện trên internet với tốc độ chóng mặt. Các tài liệu trong
thƣ viện số, kho lƣu trữ, và thơng tin cá nhân đƣợc số hóa trong các bài viết
trên blog hoặc email đƣợc xếp chồng lên ngày càng nhiều. Chúng đã mang
thách thức lớn cho việc lƣu trữ và tìm kiếm văn bản sao cho hiệu quả. Vì

thế việc phân loại văn bản là một vấn đề quan trọng trong lĩnh vực xử lý
ngôn ngữ. Đây là đề tài đƣợc nhiêu nhà nghiên cứu xây dựng và phát triển
trong thời gian khá dài. Nhiệm vụ của bài tốn này là nhóm các tài liệu văn
bản tƣơng tự vào các chủ đề cho trƣớc để tạo thành một cụm kết hợp. Phân
cụm là xác định sự gần gũi giữa một cặp đối tƣợng về mặt tƣơng tự hoặc
khoảng cách đƣợc ghép nối. Một loạt các biện pháp tƣơng tự hoặc khoảng
cách đã đƣợc đề xuất và áp dụng rộng rãi, chẳng hạn nhƣ độ tƣơng tự cosin
và hệ số tƣơng quan của Jaccard. Trong khi đó, sự giống nhau thƣờng đƣợc
hình thành về mặt giống nhau về khoảng cách. Các biện pháp khoảng cách
nhƣ Euclide và entropy tƣơng đối đã đƣợc áp dụng trong phân cụm để tính
tốn khoảng cách hai chiều. Với sự đa dạng về sự giống nhau và các biện
pháp tính khoảng cách có sẵn, thì tính hiệu quả của chúng trong phân cụm
tài liệu văn bản vẫn chƣa rõ ràng…
Từ các thực tế đó, tôi đã thực hiện luận văn tốt nghiệp với đề tài
“Thuật toán k-means ứng dụng trong bài toán phân loại văn bản”.
2. Đối tƣợng và phạm vi nghiên cứu
2.1. Đối tƣợng nghiên cứu
Nghiên cứu lý thuyết:
- Nghiên cứu các tài liệu về bài tốn phân loại văn bản đã cơng bố ở
trong và ngoài nƣớc;


7

- Nghiên cứu tài liệu về đặc trƣng các loại văn bản tiếng việt xây
dựng hệ thống phân loại.
- Nghiên cứu thuật toán K-means để ứng dụng trong bài toán phân
loại văn bản.
Nghiên cứu thực nghiệm:
- Nghiên cứu xây dựng cơ sở dữ liệu phân loại văn bản.

- Nghiên cứu ngơn ngữ lập trình C# và cài đặt cho bài toán phân loại
văn bản.
- So sánh, đánh giá hiệu quả của các thuật toán.
2.2. Phạm vi nghiên cứu
Bài toán phân loại văn bản có thể đƣợc thực hiện bằng nhiều thuật
tốn khác nhau nhƣ: thuật tốn Nạve Bayes, K-NN (K-Nearest-Neighbor),
Cây quyết định (Decision Tree), Mạng Neuron nhân tạo (Artificial Neural
Network) và SVM (Support Vector Machine). Mỗi phƣơng pháp đều cho
kết quả khá tốt cho bài toán này.
Trong phạm vi luận văn này, tơi tập trung vào nghiên cứu thuật tốn
K-means nhằm so sánh với các thuật toán khác và xây dựng phần mềm ứng
dụng bằng ngơn ngữ lập trình C# cho bài tốn phân loại văn bản.
3. Mục đích, nhiệm vụ nghiên cứu
Luận văn tập trung vào 3 mục tiêu chính sau:
(1) Nắm vững kiến thức về phƣơng pháp học máy, nắm rõ ý tƣởng,
cơ chế hoạt của thuật toán phân loại văn bản và ứng dụng trong bài toán cụ
thể.
(2) Nghiên cứu bài toán phân loại văn bản bằng các thuật tốn kmeans.
(3) Nghiên cứu ngơn ngữ lập trình C# để cài đặt hệ thống phân loại


8

văn bản và đánh giá hiệu quả của các thuật toán K-means.
4. Nội dung nghiên cứu
- Nghiên cứu tổng quan về các hệ thống phân loại văn bản đã đƣợc
công bố.
- Nghiên cứu các thuật toán tiền xử lý để nâng cao chất lƣợng văn bản
cần xử lý.
- Nghiên cứu các phƣơng pháp để tìm đặc trƣng tách từ tiếng việt.

- Nghiên cứu thuật toán k-means để phân loại văn bản.
- Nghiên cứu ngơn ngữ lập trình C# để cài hệ thống phân loại.
5. Đóng góp của luận văn
Trong Luận văn chỉ ra thuật tốn K-means, mặc dù có nhiều hạn chế
nhƣng nó vẫn cực kỳ quan trọng trong machine learning (học máy) và là
nền tảng cho nhiều thuật toán phức tạp khác. Tuy nhiên luận văn chỉ nhấn
mạnh trong phạm vi phân loại văn bản.


9

Chƣơng 1
BÀI TOÁN PHÂN LOẠI VĂN BẢN
1.1. Đặt vấn đề
Văn bản nói chung là một phƣơng tiện ghi và truyền đạt thông tin
bằng ngôn ngữ (hay ký hiệu). Tùy theo lĩnh vực văn hóa xã hội mà văn bản
có những hình thức và nội dung khác nhau. Chúng đƣợc hình thành và sử
dụng trong hoạt động quản lý, sử dụng nhƣ một phƣơng tiện để ghi lại và
truyền đạt các quyết định hoặc các thơng tin cần thiết hình thành trong
quản lý.
Việc phân loại văn bản có vai trị rất quan trọng, giúp cho ngƣời soạn
thảo văn bản lựa chọn văn bản phù hợp với mục đích sử dụng văn bản của
mình, vì mỗi loại văn bản khác nhau thƣờng có nội dung, hình thức và chức
năng khác nhau.
Dƣới sự phát triển mạnh mẽ của công nghệ thông tin hiện nay, hình
thức sử dụng giấy tờ,văn bản đã dần đƣợc số hoá và chuyển sang các dạng
văn bản lƣu trữ trên máy tính hoặc truyền tải trên mạng. Với tính năng ƣu
việt của tài liệu số nhƣ cách lƣu trữ gọn nhẹ, thời gian lƣu trữ lâu dài,
truyền tải dễ dàng trên Internet, nội dung chỉnh sửa dễ dàng... Ngày nay,
văn bản số tăng lên chóng mặt và đặc biệt là trên world-wide-web. Nhu cầu

tìm kiếm văn bản cũng tăng mạnh cùng với sự gia tăng về số lƣợng văn
bản. Với số lƣợng văn bản khổng lồ nhƣ vậy thì việc phân loại văn bản tự
động trở nên vô cùng cấp thiết.
Nhƣ vậy tại sao phải phân loại văn bản tự động? Việc phân loại văn
bản sẽ giúp chúng ta tìm kiếm thơng tin dễ dàng và nhanh chóng hơn rất
nhiều so với việc phải bới tung mọi thứ trong ổ đĩa lƣu trữ. Với lƣợng
thông tin ngày càng lớn nhƣ vậy, để tiết kiệm đƣợc nhiều thời gian và công


10

sức thì việc phân loại văn bản tự động đƣợc đặc biệt chú tâm. Chính vì thế,
việc nghiên cứu các phƣơng pháp phân loại văn bản nhằm phục vụ cho nhu
cầu cấp thiết đó.
1.2. Các phƣơng pháp phân loại văn bản.
Phân loại văn bản tự động trong hiện đã có rất nhiều cơng trình nghiên
cứu và đạt đƣợc nhiều kết quả tịch cực. Một số phƣơng pháp phân loại
thông dụng hiện nay là: Support Vector Machine [Joachims, 1998], kNearest Neighbor [Yang, 1994], Linear Least Squares Fit [Yang and
Chute, 1994] Neural Network [Wiener et al, 1995], Naïve Bayes [Baker
and Mccallum, 2000], Centroid- based [Shankar and Karypis, 1998]. Các
phƣơng pháp trên đều dựa vào xác suất thống kê hoặc thông tin về trọng số
của từ trong văn bản.
Mỗi phƣơng pháp phân loại văn bản đều có cách tính tốn khác nhau,
nếu nhìn một cách tổng quan thì các phƣơng pháp thì các phƣơng pháp đều
phải thực hiện một số bƣớc chung nhƣ sau:


Cleaning data là bƣớc làm sạch dữ liệu trƣớc khi bắt đầu bất kì xử lý

trên tập dữ liệu của chúng ta, nó bao gồm một số vấn đề về xử lý ngôn ngữ

tự nhiên nhƣ loại bỏ khoảng trắng hoặc kiểm tra chính tả...


Words segmentation hay cịn gọi là tách từ là một bƣớc cực kì quan

trọng nhất là đối với Tiếng Việt tơi sẽ trình bày cụ thể trong phần tiếp theo
đây.


Feature Extraction là bƣớc tìm ra đƣợc các đặc điểm từ tập dữ liệu

ban đầu hay nói cách khác là lựa chọn các đặc trƣng tiêu biểu có tính đại
diện cho tập dữ liệu để làm input cho thuật toán phân lớp.


Training là bƣớc chúng ta sử dụng các thuật tốn học máy để tìm ra

mơ hình tốt nhất nhằm tìm ra các thơng tin về sự xuất hiện của từ trong văn
bản (ví dụ tần số, số văn bản chứa từ...) để biểu diễn văn bản thành dạng


11

vector; sau đó, tuỳ từng phƣơng pháp mà ta sẽ áp dụng cơng thức và
phƣơng thức tính tốn khác nhau để thực hiện việc phân loại.
Thực tế trong lĩnh vực này việc phân loại văn bản tiếng anh rất tốt, tuy
nhiên đối với tiếng Việt, các cơng trình nghiên cứu về phân loại văn bản
gần đây vẫn còn nhiều hạn chế. Nguyên nhân là chúng ta đã gặp khó khăn
trong việc xử lý văn bản để rút ra tần số xuất hiện của từ. Trong khi đó, để
phân loại văn bản thì có thể nói bƣớc này là bƣớc quan trọng nhất bởi vì

nếu ở bƣớc tách từ đã sai thì việc phân loại hầu nhƣ khơng thể thành cơng
đƣợc. Phần sau chúng tơi sẽ trình bày việc tách từ tiếng việt cũng nhƣ
những đặc điểm của nó.
1.3. Ứng dụng của bài toán phân loại văn bản và các nghiên cứu liên quan
Từ trong tiếng Anh là một nhóm các ký tự có nghĩa đƣợc tách biệt
với nhau bởi khoảng trắng trong câu, do vậy việc tách từ trở nên rất đơn
giản. Tuy nhiên đối với tiếng Việt phức tạp hơn nhiều, thứ nhất ranh giới từ
không đƣợc xác định là khoảng trắng mà tùy thuộc vào ngữ cảnh dùng câu
tiếng Việt. Ví dụ từ trong tiếng Anh là “clock”, “pen”, “penguins” thì
trong tiếng Việt là “đồng hồ”, “cây bút”, “chim cánh cụt”, những từ đồng
âm “mĩ lệ” “Mỹ Lệ”, từ bao nhau “giầy” “giầy thể thao”, từ... Việc xác
định ranh giới các từ trong câu tiếng Việt càng khó khăn hơn nếu khơng
hiểu ngữ nghĩa hồn cảnh trong câu, nhƣ từ “nhà” và từ “nƣớc” đều có ý
nghĩa độc lập khi đứng riêng lẻ.
Trƣớc những khó khăn đó, nếu chúng ta giải quyết đƣợc bài tốn
tách từ thì thành quả mà chúng ta đạt đƣợc là một nền tảng để phát triển
cho các hƣớng nghiên cứu khác có liên quan đến việc xử lý ngôn ngữ tự
nhiên nhƣ: phân loại văn bản, dịch tự động, kiểm tra lỗi chính tả, kiểm tra
ngữ pháp... Đó là các ứng dụng rất thiết thực với đời sống con ngƣời và là
mục tiêu của con ngƣời đang chinh phục.
Một số nƣớc châu

nhƣ Trung Quốc, Nhật Bản, Hàn Quốc, Việt


12

Nam sử dụng loại hình ngơn ngữ gần nhƣ tƣơng tự nhau về mặt hình thái
và cú pháp. Do đó ta có thể áp dụng, cải tiến một số phƣơng pháp tách từ
của các nƣớc bạn đặc biệt là Trung Quốc vào việc tách từ tiếng Việt.

Theo Đinh Điền (2004), các phƣơng pháp tách từ sau có nguồn gốc
từ tiếng Hoa đã đƣợc thử nghiệm trên tiếng Việt: Maximum Matching:
forward/backward hay còn gọi LRMM (Left Right Maximum Matching);
giải thuật học cải biến TBL; mạng chuyển dịch trạng thái hữu hạn có trọng
số. WFST (Weighted finite-state Transducer); giải thuật dựa trên nén
(compression); Theo các cách tiếp cận trên, điều kiện quan trọng cần có là
một hệ thống từ điển (LRMM) và ngữ liệu đánh dấu (TBL, WFST) đầy đủ,
chuẩn xác. Một từ điển hay một tập ngữ liệu khơng hồn chỉnh sẽ làm
giảm hiệu suất của thuật tốn.
Tuy nhiên, khó có thể tạo ra đƣợc một từ điển hoàn chỉnh nhất là
trong thời đại ngày nay, ngơn ngữ cịn tiếp tục phát triển và thay đổi từng
ngày. Xét về mặt phổ biến, tiếng Anh là ngôn ngữ đƣợc dùng rộng rãi
trong giao dịch trên thế giới. Do đó để tạo ra một tập ngữ liệu tiếng Anh
thỏa các tiêu chí chọn mẫu ngữ liệu là không quá phức tạp. Trong khi đó,
Việt Nam chỉ mới cho phép truy cập Internet trong vịng chục năm trở lại
đây, do đó số lƣợng trang web tiếng Việt là không nhiều. Cho đến nay, vẫn
chƣa có một tập ngữ liệu huấn luyện chuẩn nào dành cho việc tách từ và
phân loại trang web tiếng Việt đƣợc công bố.
Gần đây, một phƣơng pháp tách từ mới đƣợc giới thiệu có ƣu điểm
là khơng cần dùng tập ngữ liệu hay từ điển để lấy thông tin thống kê hay
trọng số của từ, đó là phƣơng pháp Internet and Genetics Algorithm-based
Text Categorization (IGATEC) của H. Nguyen et al (2005). Điểm sáng tạo
của thuật toán là kết hợp thuật tốn di truyền với việc trích xuất thơng tin
thống kê từ Internet thơng qua một cơng cụ tìm kiếm (nhƣ Google chẳng
hạn) thay vì lấy từ tập ngữ liệu nhƣ các phƣơng pháp trƣớc.


13

Chƣơng 2

THUẬT TỐN K - MEANS

2.1. Giới thiệu thuật tốn K-means

2.1.1. Phân tích tốn học
Mục đích cuối cùng của thuật toán K-means là phân cụm từ dữ liệu
đầu vào và số lƣợng nhóm cần tìm, hãy xác định trọng tâm của mỗi nhóm
và phân các điểm dữ liệu vào các nhóm tƣơng ứng. Giả sử rằng thêm mỗi
điểm dữ liệu chỉ thuộc vào đúng một nhóm.
Giả sử N điểm dữ liệu trong tập huấn luyện đƣợc ghép lại thành X =
[xi, x2,..., xN]  RdxN và K < N là số cụm đƣợc xác định trƣớc. Ta cần tìm
các trọng tâm m1, m2,... , mK∈Rdx1 và nhãn của mỗi điểm dữ liệu. Ở đây,
mỗi cụm đƣợc đại diện bởi một nhãn, thƣờng là một số tự nhiên từ 1 đến K.
Nhắc lại rằng các điểm dữ liệu trong bài toán phân cụm K-means ban đầu
khơng có nhãn cụ thể, nhiệm vụ của ta là đi tìm nhãn của chúng sao cho
các điểm có cùng nhãn nằm gần nhau, tạo thành một cụm.
Với mỗi điểm dữ liệu xi, ta cần tìm nhãn yi = k của nó, ở đây k∈
1,2,…,K . Một kỹ thuật khác thƣờng đƣợc dùng để biểu diễn nhãn này có
tên là one-hot coding. Mỗi nhãn k đƣợc thay thế bằng một vector hàng
y i  R 1xk đƣợc gọi là nhãn vector, trong đó tất cả các phần tử của y i bằng 0,

ngoại trừ phần tử ở vị trí thứ k bằng 1. Cụ thể, yij=0, ∀j≠k, yik=1. Khi
chồng các vector yi lên nhau, ta đƣợc một ma trận nhãn Y  R NxK . Nhắc lại
rằng yij là phần tử hàng thứ i, cột thứ j của ma trận Y, và nó cũng là phần tử
thứ j của vector yi. Ví dụ, nếu một điểm dữ liệu có nhãn vector là
1,0,0,…,0 thì nó thuộc vào cụm thứ nhất, là 0,1,0,…,0 thì nó thuộc vào
cụm thứ hai, v.v. Ràng buộc của yi có thể viết dƣới dạng toán học nhƣ sau:


14

K

yij  0,1, i, j;  yij  1, i

(2.1)

j 1

2.1.2. Hàm mất mát và bài toán tối ƣu
Nếu gọi mk∈Rd là trọng tâm của mỗi cụm và thay thế tất cả các điểm
đƣợc phân vào cụm này bởi mk, một điểm dữ liệu xi đƣợc phân vào cụm k
sẽ bị sai số là (xi - mk). Chúng ta mong muốn vector sai số này gần với
vector không, tức xi gần với mk. Một đại lƣợng đơn giản giúp đo khoảng
cách giữa hai điểm là (bình phƣơng) khoảng cách Euclid xi  mk

2
2

Hơn

nữa, vì xi đƣợc phân vào cụm k nên yik = 1,yij = 0, j  k . Khi đó, biểu thức
khoảng cách Euclid có thể đƣợc viết lại thành
K

(2.2)

Nhƣ vậy, sai số trung bình cho tồn bộ dữ liệu sẽ là:

dxK


Trong đó M = [m1; m2,..., mK]∈R

(2.3)

là ma trận tạo bởi K trọng tâm.

Hàm mất mát trong bài toán phân cụm K-means là L(Y,M) với ràng buộc
nhƣ đƣợc nêu trong (2.1). Tóm lại, bài tốn cần tối ƣu là
(2.4)

2.1.3. Thuật toán tối ƣu hàm mất mát
Bài toán (2.4) là một bài tốn khó tìm điểm tối ƣu vì nó có thêm các
điều kiện ràng buộc. Bài tốn này thuộc loại mix-integer programming
(điều kiện biến là số nguyên) - là loại rất khó tìm nghiệm tối ƣu tồn cục.
Tuy nhiên, trong một số trƣờng hợp chúng ta vẫn có thể tìm đƣợc phƣơng
pháp để tìm đƣợc nghiệm gần đúng. Một kỹ thuật đơn giản và phổ biến để
giải bài toán (2.4) là xen kẽ giải Y và M khi biến còn lại đƣợc cố định tới
khi hàm mất mát hội tụ. Chúng ta sẽ lần lƣợt giải quyết hai bài toán sau.


15

Cố định M, tìm Y
Giả sử đã tìm đƣợc các trọng tâm, hãy tìm các nhãn vector để hàm
mất mát đạt giá trị nhỏ nhất. Điều này tƣơng đƣơng với việc tìm cụm cho
mỗi điểm dữ liệu. Khi các trọng tâm là cố định, bài tốn tìm nhãn vector
cho tồn bộ dữ liệu có thể đƣợc chia nhỏ thành bài tốn tìm nhãn vector
cho từng điểm dữ liệu xi nhƣ sau:
(2.5)


Vì chỉ có một phần tử của nhãn vector yj bằng 1 nên bài tốn (2.5)
2

chính là bài tốn đi tìm trọng tâm gần điểm xi nhất: j = argminj xi  m j 2 .
2

Vì xi  m j 2 chính là bình phƣơng khoảng cách Euclid từ điểm xi tới
trọng tâm mj, ta có thể kết luận rằng mỗi điểm xi thuộc vào cụm có trọng
tâm gần nó nhất. Từ đó ta có thể suy ra nhãn vector của từng điểm dữ liệu.
Cố định Y, tìm M
Giả sử đã tìm đƣợc cụm cho từng điểm, hãy tìm trọng mới cho mỗi
cụm để hàm mất mát đạt giá trị nhỏ nhất. Một khi nhãn vector cho từng
điểm dữ liệu đã đƣợc xác định, bài tốn tìm trọng tâm cho mỗi cụm đƣợc
rút gọn thành
(2.6)

Tới đây, ta có thể tìm nghiệm bằng phƣơng pháp giải phƣơng trình
đạo hàm bằng khơng, vì hàm cần tối ƣu là một hàm liên tục và có đạo hàm
xác định tại mọi điểm mj. Đặt l(mj) là hàm bên trong dấu argmin trong
(2.6), ta cần giải phƣơng trình

Nếu để ý một chút, chúng ta sẽ thấy rằng mẫu số chính là phép đếm


16

số lƣợng các điểm dữ liệu trong cụm j. Còn tử số chính là tổng các điểm dữ
liệu trong cụm j. Nói cách khác, mj là trung bình cộng (mean) của các điểm
trong cụm j.
Bài toán phân cụm K-means cũng xuất phát từ đây.

2.1.4. Ƣu điểm thuật toán k-means
- Độ phức tạp: O(K.N.l) với l: số lần lặp
- Có khả năng mở rộng, có thể dễ dàng sửa đổi với những dữ liệu mới.
- Bảo đảm hội tụ sau một số bƣớc lặp hữu hạn.
- Ln có K cụm dữ liệu.
- Ln có ít nhất một điểm dữ liệu trong một cụm dữ liệu.
- Các cụm không phân cấp và không bị chồng chéo dữ liệu lên nhau.
- Mọi thành viên của một cụm là gần với chính cụm đó hơn bất cứ một
cụm nào khác.
2.2. Phân loại văn bản bằng thuật toán k-means
2.2.1. Các bƣớc thực hiện
Giả sử ta cần phân loại rất nhiều văn bản theo các chủ đề khác nhau.
Thuật tốn K-means có thể đƣợc sử dụng để phân loại các văn bản theo các
chủ đề khác nhau nhƣ: Giáo dục, thể thao, y tế, khoa học..
Để phân loại văn bản bằng thuật toán K-means, ta thực hiện theo các
bƣớc sau:
Bƣớc 1. Thu thập các văn bản: Bƣớc này ta cần tập hợp các văn bản
mà ta cần phân loại theo chủ đề.
Bƣớc 2. Tách từ: Đây là một bƣớc quan trọng bậc nhất trong xử lý
ngôn ngữ tự nhiên. Việc tách từ cho tiếng Việt không đơn giản nhƣ tiếng
Anh vì nó có thêm các từ ghép. Ví dụ ta có câu sau:


17

Tách từ là một bài toán quan trọng trong việc tiền xử lý dữ liệu cho
các bài toán khác trong lĩnh vực xử lý ngôn ngữ tự nhiên. Trong luận văn
này tơi khơng đi sâu vào bài tốn này, mà tơi giả sử việc tách từ đã đƣợc
thực hiện chính xác bằng phần mềm VnTokenizer.
Bƣớc 3. Chuẩn hóa dữ liệu: đây là việc loại bỏ các từ không cần thiết,

không quan trọng đối với bài toán phân loại văn bản. Ví dụ ta có thể loại bỏ
các ký hiệu đặc biệt, dấu câu, khoảng trống ...
Bƣớc 4. Xây dựng từ điển các từ: Trong tập hợp văn bản mà ta cần
phân loại, ta sẽ xây dựng các từ đƣợc dùng để tạo nên các đoạn văn bản đó.
Việc này sẽ hỗ trợ cho việc mã hóa văn bản thành các con số là thứ tự các
từ trong từ điển.
Bƣớc 5. Tạo vector thuộc tính: sau khi có từ điển các từ, ta sẽ tạo
đƣợc vector thuộc tính bằng phƣơng pháp Bag of Word. Sử dụng phƣơng
pháp văn bản sẽ đƣợc biểu diễn thành tập các từ đi kèm với tần xuất xuất
hiện của mỗi từ này trong văn bản. Ví dụ: Giả sử chúng ta có hai văn bản
đơn giản:
(1) John likes to watch movies. Mary likes movies too.

(2) John also likes to watch football games.
Dựa trên hai văn bản này, ta có danh sách các từ đƣợc sử dụng, đƣợc


18

gọi là từ điển với 10 từ nhƣ sau:
["John", "likes", "to", "watch", "movies", "also", "football", "games",
"Mary", "too"]
Với mỗi văn bản, ta sẽ tạo ra một vector đặc trƣng có số chiều bằng
10, mỗi phần tử đại diện cho số từ tƣơng ứng xuất hiện trong văn bản đó.
Với hai văn bản trên, ta sẽ có hai vector đặc trƣng là:
(1) [1, 2, 1, 1, 2, 0, 0, 0, 1, 1]
(2) [1, 1, 1, 1, 0, 1, 1, 1, 0, 0]
Văn bản (1) có 1 từ “John”, 2 từ “likes”, 0 từ “also”, 0 từ
“football”,… nên ta thu đƣợc vector tƣơng ứng nhƣ trên.
Có một vài điều cần lƣu ý trong BoW [1]:

Với những ứng dụng thực tế, từ điển có nhiều hơn 10 từ rất nhiều, có
thể đến một trăm nghìn hoặc cả triệu, nhƣ vậy vector đặc trƣng thu đƣợc sẽ
rất dài. Một văn bản chỉ có 1 câu, và 1 tiểu thuyết nghìn trang đều đƣợc
biểu diễn bằng các vector có số chiều bằng 100 nghìn hoặc 1 triệu.
Có rất nhiều từ trong từ điển khơng xuất hiện trong một văn bản.
Nhƣ vậy các vector đặc trƣng thu đƣợc thƣờng có rất nhiều phần tử bằng 0.
Các vector có nhiều phần tử bằng 0 đƣợc gọi là vector thƣa.
Bƣớc 6. Áp dụng thuật toán K-means để phân loại văn bản
Sau khi đã vector hóa đƣợc các văn bản. Ta sẽ áp dụng thuật toán Kmeans để phân cụm các văn bản. Trong từng vector, ta cần so sánh sự
tƣơng đồng của 2 văn bản thơng qua việc tính tốn độ tƣơng đồng của 2
vector. Ví dụ dùng phƣơng pháp tính cosin góc giữa 2 vector, khi 2 vector
tƣơng đồng (đồng hƣớng) thì cosin của góc giữa 2 vector = 0. Trong một
tập hợp các văn bản (ngữ liệu — corpus), có một đặc điểm là rất nhiều từ


19

khơng quan trọng lại có tần số xuất hiện lớn và trong nhiều văn bản nhƣ a,
the, and,… Trong khi các từ quan trọng (liên quan đến chủ đề của văn bản)
thì chỉ xuất hiện nhiều trong văn bản đó, mà ít xuất hiện trong các văn bản
cịn lại.
Chúng ta sử dụng các chỉ số:
- Document Frequency của từ t: Là số văn bản có chứa từ t. Ký hiệu là
df_t
- Collection Frequency của từ t: là tần số xuất hiện của từ trong toàn
bộ ngữ liệu. Ký hiệu là cf_t
Với các từ không quan trọng, ta thấy df và cf sẽ lớn. Trong khi với các
từ quan trọng thì df nhỏ hơn, nhƣng cf sẽ lớn hơn df nhiều. Do các từ này
xuất hiện trong ít văn bản (rare globally), nhƣng với tần số cao trong 1 văn
bản (common locally)

2.2.2. Ví dụ về dùng thuật tốn K-means trong phân loại văn bản
Tơi xin trình bày một ví dụ nhỏ về việc dùng thuật toán k-means trong
phân loại văn bản nhƣ sau:
Giả sử ta có 10 tài liệu cần phân nhóm. Và có 5 từ và tần suất xuất
hiện các từ đƣợc cho ở bảng sau.
Tài liệu Trực tuyến Du lịch Sách Chuyến bay Hà nội
D1

1

0

1

0

1

D2

2

1

2

1

1


D3

0

0

1

1

1

D4

1

2

0

2

0

D5

3

1


0

0

0

D6

0

1

1

1

2

D7

2

0

1

2

1



20

D8

1

1

0

1

0

D9

1

0

2

0

0

D10

0


1

1

1

1

Bảng 2.1
Giả sử ta cần phân văn bản thành 3 nhóm. Ta phải chọn 3 điểm trung
tâm cho 3 nhóm. Giả sử đó là D2, D5, D7 đƣợc chọn làm 3 điểm chính
khởi đầu.
Sau đó ta cần tính khoảng cách Euclidean từ 3 điểm chính D2, D5,
D7 đến các tài liệu khác. Ta ký hiệu 5 từ có trong từ điển nhƣ sau:
Từ

Ký hiệu

Trực tuyến

T

Du lịch

D

Sách

S


Chuyến bay

C

Hà nội

H

Bảng 2.2
Giả sử ta tính khoảng cách Euclidean giữa 2 tài liệu D1 và D2
((T1-T2)^2+(D1-D2)^2+(S1-S2)^2+(C1-C2)^2+(H1-H2)^2)^0,5
Ta sẽ tính đƣợc khoảng cách từ các tài liệu đến 3 tài liệu đƣợc chọn
làm điểm chính và có kết quả nhƣ bảng sau:
Tài liệu D2 D5 D7 Min Nhóm
D1

2

2,6 2,2

2

D2

0

2,6 1,7

0


D2


21

D3

2,4 3,6 2,2

2,2

D7

D4

2,8 3,0 2,6

2,6

D7

D5

2,6

D6

2,4 3,9 2,6


D7

1,7 2,8

D8

2,4 2,2 2,2

D9
D10

2

0

2,8

0

3

2,6

2,2 3,5 2,4

0
2,4

D2


0
2,2

D5

2

D2

2,2

D2

Bảng 2.3
Từ 10 tài liệu ta chuyển thành 3 nhóm nhƣ sau:
Nhóm 1 = (D1, D2, D6, D9, D10)
Nhóm 2 = (D5, D8)
Nhóm 3 = (D3, D4, D7)
Ta sẽ xác định lại điểm trung tâm cho 3 nhóm. Giá trị của điểm trung
tâm là trung bình cộng giá trị của các điểm trong nhóm.
Giá trị điểm trung tâm của nhóm 1:
Tài liệu

Trực tuyến Du lịch Sách Chuyến bay Hà nội

D1

1

0


1

0

1

D2

2

1

2

1

1

D6

0

1

1

1

2


D9

1

0

2

0

0

D10

0

1

1

1

1

Điểm trung tâm C1

0,8

0,6


1,4

0,6

1

Bảng 2.4


22

Giá trị điểm trung tâm của nhóm 2:
Tài liệu

Trực tuyến Du lịch Sách Chuyến bay Hà nội

D5

3

1

0

0

0

D8


1

1

0

1

0

Điểm trung tâm C2

2

1

0,0

0,5

0,0

Bảng 2.5
Giá trị điểm trung tâm của nhóm 3:
Tài liệu

Trực tuyến Du lịch Sách Chuyến bay Hà nội

D3


0

0

1

1

1

D4

1

2

0

2

0

D7

2

0

1


2

1

Điểm trung tâm C3

1

0,67

0,67

1,67

0,67

Bảng 2.6
Sau khi có giá trị của 3 điểm trung tâm mới, ta thực hiện lại bƣớc
tính khoảng cách của 10 tài liệu đến 3 điểm trung tâm này. Quá trình này sẽ
đƣợc lặp cho đến khi khơng có tài liệu nào thay đổi nhóm nữa.
Ta tính lại khoảng cách các tài liệu đến 3 điểm trung tâm mới.
Tài liệu C1 C2 C3 Min Nhóm
D1

1,0 2,1 1,9

1,0

C1


D2

1,5 2,3 1,9

1,5

C1

D3

1,1 2,7 1,5

1,1

C1

D4

2,6 2,1 1,7

1,7

C3

D5

2,9 1,1 2,8

1,1


C2

D6

1,5 3,0 1,9

1,5

C1


23

D7

2,0 2,3 1,3

1,3

C3

D8

1,8 1,1 1,2

1,1

C2


D9

1,5 2,5 2,3

1,5

C1

D10

1,1 2,5 1,3

1,1

C1

Bảng 2.7
Ta đƣợc 3 nhóm mới nhƣ sau:
Nhóm 1 = (D1, D2, D3, D6, D9, D10)
Nhóm 2 = (D5, D8)
Nhóm 3 = (D4, D7)
Ta thấy có sự thay đổi nhóm của tài liệu D3; từ nhóm 3 chuyển sang
nhóm 1
Tiếp tục tính giá trị cho điểm trung tâm cho 3 nhóm mới.
Giá trị điểm trung tâm của nhóm C1:
Tài liệu

Trực tuyến Du lịch Sách Chuyến bay Hà nội

D1


1

0

1

0

1

D2

2

1

2

1

1

D3

0

0

1


1

1

D6

0

1

1

1

2

D9

1

0

2

0

0

D10


0

1

1

1

1

Điểm trung tâm C1

0,7

0,5

1,3

0,7

1,0

Bảng 2.8
Giá trị điểm trung tâm của nhóm C2:
Tài liệu

Trực tuyến Du lịch Sách Chuyến bay Hà nội



×