Quá trình gom nhóm hướng tới phát hiện ra các nhóm tựnhiên, và từ đó giới thiệu một cái nhìn tổng quan của các phân lớp chủ đề trongmột tập hợp tài liệu văn bản.. Trong một vấn đề ph
Trang 1Đại Học Quốc Gia Tp Hồ Chí Minh Trường Đại Học Công Nghệ Thông Tin
Trang 2M C L C ỤC LỤC ỤC LỤC
LỜI GIỚI THIỆU 3
I Tổng quan về gom nhóm văn bản 4
1 Giới thiệu 4
2 Thuật toán K- means và các mở rộng: 5
II Demo thực hiện gom nhóm văn bản bằng thuật toán k-means 8
1 Thuật toán K-means 8
a) Phát biểu bài toán phân lớp với K-means: 8
b) Ví dụ hiện thực: 9
2 Áp dụng thuật toán K-mean vào phân lớp văn bản 17
a) Giới thiệu: 17
b) Mô hình vector không gian 17
c) Xác định trọng số (tọa độ) của hạn (term) trong văn bản: 18
d) Xác định các hạn(term) trong văn bản: 18
3 Chương trình demo: 19
a) Giao diện: 19
b) Hướng dẫn sử dụng chương trình demo: 19
III Kết Luận 20
Tài liệu Tham Khảo: 21
Trang 3LỜI GIỚI THIỆU
Ngày nay, cùng với sự phát triển của công nghệ thông tin và internet, việclưu trữ và xử lý thông tin trở nên cần thiết hơn bao giờ hết Nhưng phần lớn thôngtin mà chúng ta lưu trữ và trao đổi hằng ngày lại được lưu trữ dưới các dạng dữliệu bán cấu trúc (semi-structured data) hoặc phi cấu trúc (non-structured data), ví
dụ như trong các nhà xuất bản, hệ thống các trang web trên một website, tập cáccông văn, giấy tờ, báo cáo, thư tín điện tử trong một công ty Thậm chí ta có thểnhận thấy rằng trong một hệ quản trị cơ sở dữ liệu (nơi mà dữ liệu được lưu trữ cócấu trúc) thì dữ liệu kiểu text vẫn chiếm một tỷ lệ cao Do đó một vấn đề đặt ra làlàm thế nào để có thể tìm kiếm và khai thác tri thức từ nguồn dữ liệu như vậy
Khai phá dữ liệu trở nên vần đế cấp bách, và bài toán phân nhóm dữ liệuvăn bản là một trong những hướng giải quyết cho nhu cầu phân loại và xử lý thôngtin Trong đồ án nhỏ này em xin giới thiệu một số kỹ thuật gom nhóm văn bản(document clustering) và giới thiệu, áp dụng thuật toán K-means trong gom nhómvăn bản
Trang 4I Tổng quan về gom nhóm văn bản:
1 Giới thiệu
Gom nhóm văn bản (document clustering) là một lĩnh vực của gom nhóm
dữ liệu (data clustering) Quá trình gom nhóm hướng tới phát hiện ra các nhóm tựnhiên, và từ đó giới thiệu một cái nhìn tổng quan của các phân lớp (chủ đề) trongmột tập hợp tài liệu văn bản Trong lĩnh vực trí tuệ nhân tạo, đây được xem là mộtphương pháp máy học không giám sát Gom nhóm không nên bị nhầm lẫn với quátrình phân lớp (Classification) Trong một vấn đề phân lớp văn bản, số lượng phânlớp (và các tính chất của nó) được biết trước, và các tài liệu văn bản được phânphối vào các lớp này Ngược lại, trong gom nhóm, bất kỳ cả số lượng, thuộc tính,hoặc tính chất thành viên của các phân lớp đếu không được biết trước Sự phânbiệt này được minh họa ở hình 1 Phân lớp nên được xem là một ví dụ của phươngpháp máy học có giám sát
Hình 1 Phân lớp và gom nhómMột phương pháp gom nhóm tốt có thể được xem như là một cách tổ chứcmột tập tài liệu vào các nhóm, mà trong đó các tài liệu văn bản trong cùng mộtnhóm đều có sự tương tự nhau và có một sự khác biệt so với những tài liệu ởnhóm khác Quá trình gom nhóm có khả năng sẽ sinh ra cả các phân nhóm táchbiệt hoặc các phân nhóm giao (chồng) lên nhau Trong các phân nhóm giao nhau,
có khả năng một tài liệu sẽ xuất hiện trong nhiều nhóm
Trang 52 Thuật toán K- means và các mở rộng:
Trong lĩnh vực khai phá dữ liệu, thuật toán gom nhóm k-means là mộtphương pháp của phân tích nhóm Mục tiêu của thuật toán là chia n đối tượng mụctiêu (được biểu diễn thành các điểmtrong không gian đa chiều) thành k nhóm,trong đó mỗi đối tượng mục tiêu thuộc về nhóm cótrung điểm gần nó nhất.K-means là thuật toán tiêu biểu cho loại thuật toán gom nhóm tách biệt(discriminative algorithms)
Phiên bản thông dụng nhất của k-means sử dụng một kỹ thuật tinh chỉnhtuần hoàn Vì sự tính phổ biến rộng của nó mà thuật ngữ k-means thường đượcliên tưởng đến phiên bản này, nhưng chính xác hơn thì đây là thuật toán Lloyd(mang tên của người phát minh), cái tên được giới khoa học máy tính nhắc đếnthường xuyên hơn.Chi tiết thuật toán này như sau:
Cho một tập k trung điểm m1(1),…,mk(1), thuật toán thực thi bằng cách lặptuần hoàn hai bước sau:
- Bước gán nhóm: gán mỗi đối tượng mục tiêu vào nhóm có trung điểm gần
Trang 6- Thuật toán k-means cầu (spherical k-means): đây là thuật toán tương tự
với thuật toán k-means truyền thống Khi sử dụng thuật toán này, dữ liệu văn bảnđược chuyển thành các vectơ đa chiều và được tối giản hóa.Thêm nữa, nó sử dụnghàm cosin thay vì khoảng cách Euclid để tìm tính tương đồng cho các đổi tượngcần phân nhóm
Mặc dù nó phổ biến, một phần do tính dễ cài đặt, nhưng k-means cầu cónhiều điểm hạn chế như: nó phụ thuộc phần lớn vào sự khởi tạo ngẫu nhiên cácnhóm một cách chung chung, điều đó có thể dẫn đến thuật toán hội tụ về các điểmtối ưu địa phương; các phân nhóm sẽ có thể chứa nhiều thành phần ngoại lại vànhiễu; và độ phức tạp của nó là O(nkl), trong đó n là số lượng tài liệu văn bảntrong tập dữ liệu, k là số nhóm mong muốn, và l là số vòng lặp Thuật toánnàythông thường phù hợp áp dụng cho các tập dữ liệu văn bản lớn và ít thay đổi
- Thuật toán k-means cầu trực tuyến (online spherical k-means): đây là
thuật toán mở rộng của k-means cầu Nó sử dụng kỹ thuật họccạnh tranh để làmtăng tốc quá trình gom nhóm trong khi vẫn đạt được độ chính xác tương tự hoặctốt hơn
Với khuôn mẫu học cạnh tranh trực tuyến, các văn bản được truyền đến liêntục Hoàn toàn trái ngược với một thuật toán chạy hoàn toàn trên một tập dữ liệumột lần như thuật toán k-means cầu Khi các văn bản được đưa vào quá trình phânnhóm, các nhóm sẽ cạnh tranh để giành lấy dữ liệu đầu vào để được phân bổ chonhóm của mình Và nhóm chiến thắng sẽ tự điều chỉnh mình dựa vào một tỉ lệ họcnhất định để có thể phản ứng mạnh hơn cho các dữ liệu đầu vào tiếp theo Thuậttoán này thường được áp dụng để phân nhóm bản sau khi được trả về từ một trìnhtìm kiếm, hoặc truy xuất thông tin (ví dụ Google)
- Thuật toán k-means nhân hay kernel kmeans: hình 2 minh họa một tập dữ
liệu mà k-means không thể gom nhóm chính xác bởi vì các điểm không tách biệtmột cách tuyến tính Ý tưởng đằng sau kernel kmeans là tìm một ánh xạ cho cácđiểm này đến một không gian nhiều chiều hơn, nơi mà các dữ liệu văn bản có sựkhác biệt một cách tuyến tính
Trang 7Hình 2: (a) cho thấy một hình dạng phân bố dữ liệu không lồi mà thuật toán k-means gặp vấn đề khi gom nhóm Trong (b) là thuật toán kernel kmeans đã thành công phân biệt rõ hai nhóm như là kết quả của việc chiếu các vectơ văn bản lên một không gian có nhiều chiều hơn.
Trang 8II Demo thực hiện gom nhóm văn bản bằng thuật toán k-means
1 Thuật toán K-means
a) Phát biểu bài toán phân lớp với K-means:
Trang 9- Bước 3 - Cập nhật lại trọng tâm
- Bước 4 – Điều kiện dừng: lặp lại các bước 2 và 3 cho tới khi không có
sự thay đổi trọng tâm của cụm
Hình 3 Sơ đồ khối chương trình b) Ví dụ hiện thực:
Thực hiện thuật toán K-means phân thành 3 cụm cho tập vector A(x,y) nhưsau:
A1(2, 10) A2(2, 5) A3(8, 4) A4(5, 8) A5(7, 5) A6(6, 4) A7(1, 2) A8(4, 9)
Khoản cách 2 vector:a=(x1, y1),b=(x2, y2) được định nghĩa: ρ(a, b) = |x2 – x1|x2 – x1|x2 – x1|
+ |x2 – x1|y2 – y1|x2 – x1| (trong ví dụ này chúng ta dùng công thức tính khoản cách này thay vì
Trang 10Vector Khoản cách 1 Khoản cách 2 Khoản cách 3 ClusterA
ρ(a, b) = |x2 – x1| + |y2 – y1|
ρ(vector, trọng tâm cụm 1) = |x2 – x1| + |y2 – y1|
= |2 – 2| + |10 – 10|
= 0 + 0 = 0
Trang 11vector trọng tâm cụm 2
x1, y1 x2, y2
(2, 10) (5, 8)
ρ(a, b) = |x2 – x1| + |y2 – y1|
ρ(vector, trọng tâm cụm 2) = |x2 – x1| + |y2 – y1|
= |5 – 2| + |8 – 10|
= 3 + 2 = 5vector trọng tâm cụm 3
x1, y1 x2, y2
(2, 10) (1, 2)
ρ(a, b) = |x2 – x1| + |y2 – y1|
ρ(vector, trọng tâm cụm 2) = |x2 – x1| + |y2 – y1|
= |1 – 2| + |2 – 10|
= 1 + 8 = 9Cập nhật khoản các của vector A tới các vector trọng tâm trong từng cụm:
(2, 10) (5, 8) (1, 2)Vecto
r
Khoản cách1
Khoản cách2
Khoản cách3
ClusterA
Trang 12Như vậy khoản cách từ A1 tới cụm 1 là ngắn nhât A1 thuộc cụm 1.
Cluster 1 Cluster 2 Cluster 3
ρ(a, b) = |x2 – x1| + |y2 – y1|
ρ(vector, trọng tâm cụm 1) = |x2 – x1| + |y2 – y1|
= |2 – 2| + |10 – 5|
= 0 + 5 = 5
Trang 13vector trọng tâm cụm 2
x1, y1 x2, y2
(2, 5) (5, 8)
ρ(a, b) = |x2 – x1| + |y2 – y1|
ρ(vector, trọng tâm cụm 2) = |x2 – x1| + |y2 – y1|
= |5 – 2| + |8 – 5|
= 3 + 3 = 6vector trọng tâm cụm 3
x1, y1 x2, y2
(2, 5) (1, 2)
ρ(a, b) = |x2 – x1| + |y2 – y1|
ρ(vector, trọng tâm cụm 2) = |x2 – x1| + |y2 – y1|
= |1 – 2| + |2 – 5|
= 1 + 3 = 4Khoản các từ vetor A2 tới các cụm (dựa vào vector trọng tâm của từng cụm) là: 5,
6, 4
Iteration 1
(2, 10) (5, 8) (1, 2)Vector Khoản cách 1 Khoản cách 2 Khoản cách 3 Cluster
A3 (8, 4)
Trang 14Như vậy khoản cách từ A2 tới cụm 3 là ngắn nhât A1 thuộc cụm 3.
Cluster 1 Cluster 2 Cluster 3
Tương tự cho các vector khác ta được bảng sau:
Iteration 1
(2, 10) (5, 8) (1, 2)Vector Khoản cách 1 Khoản cách 2 Khoản cách 3 ClusterA
Trang 15(6, 4)(4, 9)Bước 3: Cập nhật lại trọng tâm
Cụm1: có 1 vector A1(2, 10) nên trọng tâm không đổi
Trang 16Các vector trọng tâm ban đầu của từ cụm được biểu diễn bằng chấm đỏ.
Trọng tâm sau khi cập nhật được biểu diễn bằng dấu x đỏ
Bước 4:lặp lại bước 2 và bước 3 tới khi không có sự thay đổi trọng tâm trong cụm.Lần lặp thứ 2:
Trang 182 Áp dụng thuật toán K-mean vào phân lớp văn bản
b) Mô hình vector không gian
Mô hình vector không gian hay mô hình vector hạn là một mô hình đại sốcho đại diện các tài liệu văn bản (và bất kỳ đối tượng nào, nói chung) là vectơ địnhdanh, chẳng hạn như, ví dụ về chỉ số Nó được sử dụng trong lọc thông tin, thu hồithông tin, lập chỉ mục và bảng xếp hạng liên quan Sử dụng đầu tiên của nó là hệthống truy hồi thông tin SMART
Tài liệu và các truy vấn được biểu diễn như là vectơ
Mỗi kích thước tương ứng với một thuật ngữ riêng biệt.Nếu hạn xảy ratrong tài liệu, giá trị của nó trong vector là không.Một số cách khác nhau tính toáncác giá trị này, còn được gọi là trọng lượng (hạn), đã được phát triển Một trongnhững phương án tốt nhất được biết đến là tf-idf trọng (xem ví dụ dưới đây) Địnhnghĩa của thuật ngữ phụ thuộc vào ứng dụng Thông thường điều kiện là những từđơn, từ khoá hoặc cụm từ dài Nếu được lựa chọn là các điều khoản, số chiều củavector là số từ trong từ vựng (số lượng các từ riêng biệt xảy ra trong ngữliệu).Vector hoạt động có thể được sử dụng để so sánh các tài liệu với các truyvấn
Thứ hai quá trình chọn vector trọng tâm ban đầu rất quan trọng, nếu ta tìmđược các trọng tâm trong từng nhóm phân biệt đầu tiên thì là rất tốt, tuy nhiên điềunày khó thực hiện được Trong chương trình, chúng em chỉ thực hiện Randomtrọng tâm ban đầu Số nhóm ban đầu cũng là một vấn đề, chúng ta cần phải xácđịnh được từ đầu số nhóm, trong khi các ứng dụng thực tế thì số nhóm này cần rút
ra được từ tập dữ liệu
Trang 19c) Xác định trọng số (tọa độ) của hạn (term) trong văn bản:
Trong mô hình vector không gian cổ điển, trọng lượng cụ thể hạn trong cácvectơ tài liệu văn bản là tích của các biến số địa phương và toàn cục Mô hình nàyđược biết đến như là nghịch đảo tần số của hạn tần số tài liệu mô hình Vectortrọng lượng cho tài liệu d là vector
Trong đó tọa độ wt,d được tính bởi công thức:
- Trong đó, tft,d là tần số xuất hiện của hạn t tromg tài liệu d
là nghịch đảo tần số tài liệu |D| là tổng tài liệu trong
tập số tài liệu chứa hạn t trong demo nhỏ này chúng em xemtrọng số của các hạn là tần số xuất hiện của hạn đó trong văn bản
d) Xác định các hạn(term) trong văn bản:
Xác định các hạn trong văn bản chính là việc xác định các từ trong vănbản.Tách từ trong văn bản là một bải toán khó, đặc biệt trong tiếng Việt Đối vớiviệc xác định các hạn trong văn bản thì các từ tối nghĩa sẽ được loại bỏ đầu tiên,các từ tối nghĩa thường là các giới từ, mạo từ như: “thì”, “là”, “và”, “sẽ”,… Các từnày được gọi là stopwords
Đối với văn bản tiếng anh việc tách từ tương đối dễ vì hầu hết các từ trongtiếng Anh là từ đơn chúng ta có thể áp dụng việc tách các khoảng trắng và ký tựđặc biệt Tuy nhiên hầu hết các từ trong tiếng việt là các từ ghép việc tách các từđơn như vậy sẽ làm cho việc gom nhóm không chính xác
Ví dụ: “Bác sĩ”, “ca sĩ”, “nhạc sĩ”, “nha sĩ”,… thì việc tách thành từ đơn có thể
làm cho việc gom nhóm không chính xác
Trong ứng dụng nhỏ này chúng em sử dụng việc tách từ theo từ điển Mộttừ điển gồm các từ ghép phổ biến trong tiếng Việt được chọn lọc gồm các từ
Trang 20thường dùng hầu hết là các danh từ Từ điển được sắp xếp theo thứ tự giảm dầncủa số âm tiết Việc sắp xếp giảm dần số âm tiết sẽ giúp việc tách từ chính xáchơn.Việc tách từ sẽ đươc thực hiện lần lượt từ các từ nhiều âm tiết tới các từ ít âmtiết.
Ví dụ:
“Công nghệ thông tin ngày càng phát triển”
Mẫu từ điển: “Công nghệ thông tin”, “Công nghệ”, “Thông tin”
3 Chương trình demo:
a) Giao diện:
Hình 4 Giao diện chương trình b) Hướng dẫn sử dụng chương trình demo:
- Thực thi tập tin exe chương trình
- Nhấn nút Browser để chọn đến thư mục chứa các tập tin dữ liệu văn bản chokiểm tra gom nhóm
- Nhập số phân nhóm ban đầu vào ô textbox Set K và nhấn nút Apply để ghi nhận
Trang 21- Nhấn nút Start để bắt đầu thực thi gom nhóm.
Trang 22III Kết Luận
Trong bài viết này chúng ta đã tìm hiểu được những vấn đề và các thuậttoán cho việc gom nhóm văn bản Tuy đã có rất nhiều kết quả nghiên cứu, nhưnghiện nay chưa có một giải pháp nào thực sự thực hiện được quá trình gom nhómvăn bản một cách hoàn hảo Mỗi hướng tiếp cận và giải pháp điều có ưu thế vàhạn chế trong những trường hợp khác nhau Và hoàn toàn chưa có một trường hợpnào có thể sinh ra các nhóm chính xác và tự nhiên hoàn chỉnh
Chương trình demo đã hiện thực và minh họa được đầy đủ các bước cơ bảntrong quá trình gom nhóm văn bản Tuy nhiên vì thời gian nghiên cứu có hạn chonên chương trình chỉ dừng ở mức trãi nghiệm Kết quả đầu ra của chương trình có
độ chính xác vẫn còn tương đối thấp và thiếu ổn định Nhưng đây là những tiền đềquan trọng để có thể nghiên cứu sâu hơn trong lĩnh vực này
Trong thời đại thông tin số phát triển như vũ bão hiện nay Lượng dữ liệu
số cũng như văn bản đều tăng theo cấp số nhân sau từng giây Điều đó cũng tỉ lệthuận với lượng thông tin quí giá rất lớn đang ẩn giấu khối dữ liệu khổng lồ cầnđược thu nhận Từ thực trạng này, ta thấy được các kỹ thuật trong ngành rút tríchthông tin như gom nhóm dữ liệu cũng như gom nhóm văn bản là các ngành nghiêncứu rất hấp dẫn và hứa hẹn, bởi chúng vẫn còn nhiều vấn đề còn tồn tại đồng thờilại là những bước xử lý quan trọng nhất
Trang 23Tài liệu Tham Khảo:
[1] Giáo trình khai thác dữ liệu, TS Đỗ Phúc, NXB ĐH Quốc gia, Tp HCM
[2] Recent Developments in Document Clustering, Nicholas O Andrews and
Edward A Fox,
[3] Introduction to Information Retrieval, Christopher D Manning, Prabhakar
Raghavan and Hinrich Schütze, Cambridge University Press 2008
[4] http://en.wikipedia.org/wiki/Data_mining
[5] http://en.wikipedia.org/wiki/Knowledge_engineering
[6] http://en.wikipedia.org/wiki/Machine_learning