ĐẠI ĐẠI HỌ HỌC QUỐ QUỐC GIA HÀ NỘ NỘI TR ƯỜ NG ĐẠI HỌC CÔNG NGH Ệ ƯỜ NG
Nguyễn Thị Thu Hằng
PHƯƠ NG NG PHÁP PHÂN CỤM TÀI LIỆU WEB VÀ ÁP DỤNG VÀO MÁY TÌM KIẾM
LUẬ LUẬ N VĂ VĂ N THẠ THẠC SỸ SỸ
Hà Nộ Nội – 2007
ĐẠI ĐẠI HỌ HỌC QUỐ QUỐC GIA HÀ NỘ NỘI TR ƯỜ NG ĐẠI HỌC CÔNG NGH Ệ ƯỜ NG
Nguyễn Thị Thu Hằng
PHƯƠ NG NG PHÁP PHÂN CỤM TÀI LIỆU WEB VÀ ÁP DỤNG VÀO MÁY TÌM KIẾM Ngành: Công nghệ ngh ệ thông tin. Mã số số: 1.01.10
LUẬ LUẬ N VĂ VĂ N THẠ THẠC SỸ SỸ
NGƯỜ NGƯỜII HƯỚ HƯỚ NG DẪ DẪ N KHOA HỌ HỌC: PGS.TS HÀ QUANG THỤ THỤY
Hà Nộ Nội - 2007
ĐẠI ĐẠI HỌ HỌC QUỐ QUỐC GIA HÀ NỘ NỘI TR ƯỜ NG ĐẠI HỌC CÔNG NGH Ệ ƯỜ NG
Nguyễn Thị Thu Hằng
PHƯƠ NG NG PHÁP PHÂN CỤM TÀI LIỆU WEB VÀ ÁP DỤNG VÀO MÁY TÌM KIẾM Ngành: Công nghệ ngh ệ thông tin. Mã số số: 1.01.10
LUẬ LUẬ N VĂ VĂ N THẠ THẠC SỸ SỸ
NGƯỜ NGƯỜII HƯỚ HƯỚ NG DẪ DẪ N KHOA HỌ HỌC: PGS.TS HÀ QUANG THỤ THỤY
Hà Nộ Nội - 2007
Nguyễ n Thị Thu H ằ n ng Đạ ằng-Lu g-Luận vă n cao học-Tr ườ ườ ng Đại học Công nghệ-2007.
Nhữ ng ng lờ i đầu tiên
Vớ i nhữ những dòng chữ chữ đầu đầu tiên này, tôi xin dành để gửi lờ lờ i cả cảm ơ n chân thành và sâu sắ sắc nhấ nhất tớ i thầ thầy giáo, tiế tiến sỹ Hà Quang Thụ Thụy - ngườ ngườ i đã tậ t ận tình hướ hướ ng ng dẫn, chỉ chỉ bảo và tạ tạo cho tôi nhữ những điều kiệ kiện tốt nhấ nhất từ khi bắ bắt đầu đầu cho tớ tớ i khi hoàn thành công việ việc củ của mình. Đồng Đồng thờ thờ i xin cả cảm ơ n tất cả nhữ những ngườ ngườ i thân yêu trong gia đình tôi cùng toàn thể thể bạn bè, nhữ những ngườ ngườ i đã luôn giúp đỡ và động động viên tôi mỗ mỗi khi vấ vấ p phả phải nhữ những khó khă khăn, bế bế tắc. Cuố Cuối cùng, xin chân thành cả cảm ơ n đồng đồng nghiệ nghiệ p của tôi tạ tại Trung tâm CNTT, NHNo&PTNT VN nhữ những ngườ ngườ i đã đem đến đến cho tôi nhữ những lờ i khuyên vô cùng bổ bổ ích để giúp tháo gỡ gỡ nh nhữững khó khă khăn, vướ ng ng mắc trong quá trình làm luậ luận vă văn.
-1-
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
LỜI CAM ĐOAN Tôi xin cam đoan k ết quả đạt đượ c trong luận văn là sản phẩm của riêng cá nhân, không sao chép lại của ngườ i khác. Trong toàn bộ nội dung của luận văn, những điều đượ c trình bày hoặc là của cá nhân hoặc là đượ c tổng hợ p từ nhiều nguồn tài liệu. Tất cả các tài liệu tham khảo đều có xuất xứ rõ ràng và đượ c trích dẫn hợ p pháp. Tôi xin hoàn toàn chịu trách nhiệm và chịu mọi hình thức k ỷ luật theo quy định cho lờ i cam đoan của mình. Hà Nội, ngày 01 tháng 11 năm 2007
Nguyễn Thị Thu Hằng
-2-
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
MỤC LỤC DANH MỤC CHỮ VIẾT TẮT ........................................................................................ 5 DANH MỤC HÌNH VẼ, BẢ NG BIỂU............................................................................ 6 MỞ ĐẦU .......................................................................................................................... 7 CHƯƠ NG 1 - KHÁI QUÁT VỀ KHAI PHÁ DỮ LIỆU WEB ................................... 9 1.1. Khai phá dữ liệu Web ....................................................................................... 9 1.1.1. Giớ i thiệu về Khai phá dữ liệu.................................................................. 9 1.1.2. Dữ liệu Web và nhu cầu khai thác thông tin........................................... 11 1.1.3. Đặc điểm của dữ liệu Web ...................................................................... 12 1.1.4. Các hướ ng tiế p cận khai phá dữ liệu Web .............................................. 13 1.1.5. Nhu cầu Phân cụm tài liệu Web .............................................................. 14 1.2. Mô hình tìm kiếm thông tin ............................................................................ 15 1.2.1. Giớ i thiệu ................................................................................................ 15 1.2.2. Quy trình tìm kiếm thông tin trong hệ thống .......................................... 15 1.2.3. Ứ ng dụng phân cụm vào hệ thống tìm kiếm ........................................... 18 1.3. K ết luận chươ ng 1 ........................................................................................... 19 CHƯƠ NG 2 - THUẬT TOÁN PHÂN CỤM WEB ................................................... 20 2.1. Một số nội dung cơ bản về thuật toán phân cụm tài liệu ................................ 20 2.2. Tiêu chuẩn đánh giá thuật toán phân cụm ...................................................... 22 2.3. Các đặc tính của các thuật toán phân cụm web .............................................. 24 2.3.1. Mô hình dữ liệu....................................................................................... 24 2.3.2. Độ đo về sự tươ ng tự .............................................................................. 27 2.3.3. Mô hình phân cụm .................................................................................. 29 2.4. Một số k ỹ thuật Phân cụm Web điển hình ...................................................... 30 2.4.1. Phân cụm theo thứ bậc............................................................................ 30 2.4.2. Phân cụm bằng cách phân mảnh............................................................. 33 2.5. Các yêu cầu đối vớ i các thuật toán phân cụm Web ........................................ 35 2.5.1. Tách các thông tin đặc tr ưng................................................................... 35 2.5.2. Phân cụm chồng lặ p ................................................................................ 36 2.5.3. Hiệu suất ................................................................................................. 36 2.5.4. Khả năng khử nhiễu ................................................................................ 36 2.5.5. Tính tăng ................................................................................................. 37 2.5.6. Việc biểu diễn k ết quả ............................................................................ 37 2.6. Bài toán tách từ tự động tiếng Việt ................................................................. 37 2.6.1. Một số khó khăn trong phân cụm trang Web tiếng Việt ......................... 37 2.6.2. Tiếng và Từ trong tiếng Việt .................................................................. 39 2.6.3. Phươ ng pháp tách từ tự động tiếng Việt fnTBL ..................................... 39 2.6.4. Phươ ng pháp Longest Matching ............................................................. 43 2.6.5. K ết hợ p giữa fnTBL và Longest Matching............................................. 44 2.7. K ết luận chươ ng 2 ........................................................................................... 44 CHƯƠ NG 3 - THUẬT TOÁN PHÂN CỤM CÂY HẬU TỐ VÀ THUẬT TOÁN CÂY PHÂN CỤM TÀI LIỆU ........................................................................................ 45 3.1. Giớ i thiệu về thuật toán phân cụm trang Web có tính tăng ............................ 45 3.2. Thuật toán phân cụm cây hậu tố ..................................................................... 46 3.2.1. Mô tả ....................................................................................................... 46 3.2.2. Thuật toán STC ....................................................................................... 47
-3-
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
3.3. Thuật toán phân cụm sử dụng cây phân cụm tài liệu...................................... 51 3.3.1. Giớ i thiệu ................................................................................................ 51 3.3.2. Trích chọn đặc tr ưng và phân cụm tài liệu ............................................. 51 3.3.3. Cây phân cụm tài liệu –DC Tree ............................................................ 55 3.4. K ết luận chươ ng 3 ........................................................................................... 60 CHƯƠ NG 4 - PHẦ N MỀM THỬ NGHIỆM VÀ K ẾT QUẢ THỰ C NGHIỆM ...... 61 4.1. Giớ i thiệu ........................................................................................................ 61 4.2. Thiết k ế cơ sở dữ liệu ..................................................................................... 62 4.3. Chươ ng trình thử nghiệm................................................................................ 65 4.4. K ết quả thực nghiệm ....................................................................................... 66 4.5. K ết luận chươ ng 4 ........................................................................................... 69
-4-
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
DANH MỤC CHỮ VIẾT TẮT AHC: Phân cụm tích tụ theo thứ bậc (Agglomerative Hierarchical Clustering) CSDL: Cơ sở dữ liệu DF: tần suất xuất hiện tài liệu (Document Frequency) DC-tree: Cây phân cụm tài liệu (Document Clustering Tree) fnTBL: Học dựa trên sự biến đổi (Fast Transformation-based learning) FCM: Fuzzy C-means FCMdd: Fuzzy C-Medoids IR: Mô hình tìm kiếm thông tin (Information Retrieval) IDF: tần suất nghịch đảo tài liệu (inverse document frequency) KDD: Khai phá tri thức (Knowledge Discovery in Databases) STC: Phân cụm cây hậu tố (Suffix tree clustering) TF: tần suất xuất hiện (term frequency) UPGMA: (Unweighter Pair-Group Method using Arithmetic averages)
-5-
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
DANH MỤC HÌNH VẼ, BẢNG BIỂU
-6-
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
MỞ ĐẦU World Wide Web là một kho thông tin khổng lồ vớ i tiềm năng đượ c coi là không có giớ i hạn. Khai phá Web là vấn đề nghiên cứu thờ i sự trong thờ i gian gần đây, đã thu hút nhiều nhóm nhà khoa học trên thế giớ i tiến hành nghiên cứu, đề xuất các mô hình, phươ ng pháp mớ i nhằm tạo ra các công cụ hiệu quả hỗ tr ợ ngườ i dùng trong việc tổng hợ p thông tin và tìm kiếm tri thức từ tậ p hợ p các trang Web khổng lồ trên Internet. Phân cụm tài liệu Web là một bài toán điển hình trong khai phá Web, nhằm phân hoạch tậ p văn bản thành các tậ p con có tính chất chung, trong đó bài toán phân cụm các trang Web là k ết quả tr ả về từ máy tìm kiếm là r ất hữu dụng [4-6, 8-15, 18, 19, 22, 24]. Như đã biết, tậ p hợ p các trang Web đáp ứng một câu hỏi tr ả về từ máy tìm kiếm nói chung là r ất lớ n, vì vậy, thuật toán phân cụm văn bản ở đây cần có đượ c một tính chất r ất quan tr ọng là tính "tăng" theo ngh ĩ a thuật toán phân cụm không phải thực hiện chỉ trên toàn bộ tậ p dữ liệu mà có thể đượ c thực hiện theo cách từ bộ phận dữ liệu tớ i toàn bộ dữ liệu [4, 6, 11, 14, 15, 24]. Điều đó cho phép thuật toán tiến hành ngay trong giai đoạn máy tìm kiếm đưa các trang web k ết quả về. Luận văn tậ p trung khảo sát các phươ ng pháp phân cụm trong Web có tính chất tăng và thực hiện một số thử nghiệm tích hợ p các k ết quả nghiên cứu nói trên vào một phần mềm tải trang Web theo dạng máy tìm kiếm. Đồng thờ i, luận văn triển khai một số bướ c đầu tiên trong việc áp dụng phân cụm cho các trang Web tiếng Việt. Luận văn xây dựng một phần mềm thử nghiệm và tiến hành các thử nghiệm phân cụm Web tiếng Việt. Ngoài Phần Mở đầu, Phần K ết luận và các Phụ lục, nội dung luận văn đượ c chia thành 4 chươ ng chính:
Chươ ng 1 – Khái quát về khai phá dữ liệu Web. Chươ ng này giớ i thiệu những nội dung cơ bản nhất, cung cấ p một cái nhìn khái quát về Khai phá dữ liệu Web. Đồng thờ i, luận văn cũng mô tả sơ bộ một hệ thống thông tin tìm kiếm và nhu cầu phân cụm áp dụng cho hệ thống này.
-7-
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
Chươ ng 2 – Thuật toán phân cụm Web. Chươ ng này trình bày một cách khái quát về các thuật toán phân cụm Web, những đặc tr ưng và yêu cầu đối vớ i các thuật toán phân cụm Web. Những yêu cầu và độ đo áp dụng cho các thuật toán phân cụm Web cũng đượ c trình bày trong chươ ng này. Một số kiến thức cơ bản về tiếng Việt cũng đượ c giớ i thiệu ở đây. Chươ ng 3 – Thuật toán phân cụm cây hậu tố và thuật toán cây phân cụm tài liệu. Chươ ng này đi sâu vào phân tích các thuật toán phân cụm Web có tính chất tăng. Luận văn tậ p trung vào hai thuật toán phân cụm Web có tính “tăng” là thuật toán STC và thuật toán phân cụm có sử dụng cấu trúc cây DC (DC-tree). Chươ ng 4 – Phần mềm thử nghiệm và k ết quả thự c nghiệm. Chươ ng này trình bày k ết quả thực nghiệm phân cụm Web theo phần mềm thử nghiệm trên cơ sở thuật toán phân cụm DC-tree. Chươ ng trình cài đặt thử nghiệm đượ c viết trên ngôn ngữ lậ p trình C# trên nền tảng .Net Framework của Microsoft sử dụng SQL Server 2000 để lưu tr ữ cơ sở dữ liệu. Phần mềm đã hoạt động, cho k ết quả phân cụm, tuy nhiên, do thờ i gian hạn chế nên luận văn chưa tiến hành đánh giá k ết quả phân cụm một cách chính thống. Phần K ết luận trình bày tổng hợ p các k ết quả thực hiện luận văn và phươ ng hướ ng nghiên cứu tiế p theo về các nội dung của luận văn. Luận văn đã đạt một số k ết quả khả quan bướ c đầu trong việc nghiên cứu và triển khai các thuật toán phân cụm Web có tính chất tăng, tuy nhiên, luận văn không tránh khỏi những sai sót. R ất mong đượ c sự đóng góp ý kiến, nhận xét để tác giả có thể hoàn thiện đượ c k ết quả nghiên cứu.
-8-
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
CHƯƠNG 1 - KHÁI QUÁT VỀ KHAI PHÁ DỮ LIỆU WEB 1.1. Khai phá d ữ li ệu Web
1.1.1. Giới thiệu về Khai phá dữ liệu Khai phá d ữ li ệu (Data Mining) Khái ni ệm Khai phá dữ liệu đượ c định ngh ĩ a như một quá trình chắt lọc hay khám phá tri thức từ một lượ ng lớ n dữ liệu. Thuật ngữ Data Mining ám chỉ việc tìm một tậ p nhỏ có giá tr ị từ một lượ ng lớ n các dữ liệu thô. Có sự phân biệt giữa khái niệm "Khai phá dữ liệu" vớ i khái niệm "Phát hiện tri thức" (Knowledge Discovery in Databases - KDD) mà theo đó, khai phá dữ liệu chỉ là một bướ c trong quá trình KDD. Quá trình KDD gồm một số bướ c sau: • Làm sạch dữ liệu: Loại bỏ nhiễu và các dữ liệu không cần thiết • Tích hợ p dữ liệu: Các nguồn dữ liệu khác nhau tích hợ p lại • Lựa chọn dữ liệu: Các dữ liệu có liên quan đến quá trình phân tích
đượ c lựa chọn từ cơ sở dữ liệu • Chuyển đổi dữ liệu: Các dữ liệu đượ c chuyển đổi sang các dạng
phù hợ p cho quá trình xử lý • Khai phá dữ liệu: Là một trong những bướ c quan tr ọng nhất, trong
đó sử dụng những phươ ng pháp thông minh để lựa chọn ra những mẫu dữ liệu. • Ướ c lượ ng mẫu: Quá trình đánh giá k ết quả thông qua một độ đo
nào đó • Biểu diễn tri thức: Biểu diễn các k ết quả một cách tr ực quan cho
ngườ i dùng.
-9-
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
Hình 1. Các bướ c trong KDD cận và các k ỹ thuật trong khai phá d ữ li ệ u Các hướ ng ti ế p Khai phá dữ liệu đượ c chia nhỏ thành một số hướ ng chính như sau: • Mô tả khái niệm (concept description): thiên về mô tả, tổng hợ p và
tóm tắt khái niệm. Ví dụ: tóm tắt văn bản. • Luật k ết hợ p (association rules): là dạng luật biểu diễn tri thứ ở
dạng khá đơ n giản. Ví dụ: “50% những ngườ i mua máy tính thì cũng mua máy in”. Luật k ết hợ p đượ c ứng dụng nhiều trong l ĩ nh vực kính doanh, y học, tin-sinh, tài chính & thị tr ườ ng chứng khoán, .v.v. • Phân lớ p và dự đoán (classification & prediction): xế p một đối
tượ ng vào một trong những lớ p đã biết tr ướ c. Ví dụ: phân lớ p vùng địa lý theo dữ liệu thờ i tiết. Hướ ng tiế p cận này thườ ng sử dụng một số k ỹ thuật của machine learning như cây quyết định ( decision tree), mạng nơ ron nhân tạo (neural network ), .v.v. Ngườ i ta còn gọi phân l ớ p là học có giám sát (học có thầy). • Phân cụm (clustering): xế p các đối tượ ng theo từng cụm (số lượ ng cũng như tên của cụm chưa đượ c biết tr ướ c. Ngườ i ta còn gọi phân cụm
là học không giám sát (học không thầy). • Khai phá chuỗi (sequential/temporal patterns): tươ ng tự như khai
phá luật k ết hợ p nhưng có thêm tính thứ tự và tính thờ i gian. Hướ ng tiế p cận này đượ c ứng dụng nhiều trong l ĩ nh vực tài chính và thị tr ườ ng chứng khoán vì nó có tính dự báo cao.
- 10 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
Ứ ng d ụng của khai phá d ữ li ệu Khai phá dữ liệu tuy là một hướ ng tiế p cận mớ i nhưng thu hút đượ c sự quan tâm của r ất nhiều nhà nghiên cứu và phát triển nhờ vào những ứng dụng thực tiễn của nó. Chúng ta có thể liệt kê ra đây một số ứng dụng điển hình [7,16]: • Phân tích dữ liệu và hỗ tr ợ ra quyết định (data analysis & decision
support) • Điều tr ị y học (medical treatment) • Text mining & Web mining • Tin-sinh (bio-informatics) • Tài chính và thị tr ườ ng chứng khoán (finance & stock market) • Bảo hiểm (insurance) • Nhận dạng (pattern recognition) • .v.v.
1.1.2. Dữ liệu Web và nhu cầu khai thác thông tin Sự phát triển nhanh chóng của mạng Internet và Intranet đã sinh ra một khối lượ ng khổng lồ các dữ liệu dạng siêu văn bản (dữ liệu Web). Cùng vớ i sự thay đổi và phát triển hàng ngày hàng giờ về nội dung cũng như số lượ ng của các trang Web trên Internet thì vấn đề tìm kiếm thông tin đối vớ i ngườ i sử dụng lại ngày càng khó khăn. Có thể nói nhu cầu tìm kiếm thông tin trên môt cơ sở dữ liệu phi cấu trúc (bao gồm dữ liệu văn bản) đã đượ c phát triển chủ yếu cùng vớ i sự phát triển của Internet. Thực vậy vớ i Internet, con ngườ i đã làm quen vớ i các trang Web cùng vớ i vô vàn các thông tin. Trong những năm gần đây, Intrnet đã tr ở thành một trong những kênh về khoa học, thông tin kinh tế, thươ ng mại và quảng cáo. Một trong những lý do cho sự phát triển này là giá cả thấ p cần tiêu tốn khi công khai một trang Web trên Internet. So sánh vớ i những dịch vụ khác như mua bản hay quảng cáo trên một tờ báo hay tạ p chí, thì một trang Web "đòi" chi phí r ẻ hơ n r ất nhiều mà lại đượ c cậ p nhật nhanh chóng hơ n tớ i hàng triệu ngườ i dùng khắ p mọi nơ i trên thế giớ i. Có thể nói không gian Web như là cuốn từ điển Bách khoa toàn thư. Thông tin trên các trang Web đa dạng về mặt nội dung cũng như hình thức. Có thể nói Internet như một xã hội ảo, nó bao gồm các
- 11 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
thông tin về mọi mặt của đờ i sống kinh tế, xã hội đượ c trình bày dướ i dạng văn bản, hình ảnh, âm thanh,... Tuy nhiên cùng vớ i sự đa dạng và số lượ ng lớ n thông tin như vậy đã nảy sinh vấn đề quá tải thông tin. Ngườ i ta không thể tìm tự kiếm địa chỉ trang Web chứa thông tin mà mình cần, do vậy đòi hỏi cần phải có một trình tiện ích quản lý nội dung của các trang Web và cho phép tìm thấy các địa chỉ trang Web có nội dung giống vớ i yêu cầu của ngườ i tìm kiếm. Các tiện ích này quản lý dữ liệu trang Web như các đối tượ ng phi cấu trúc. Hiện nay chúng ta đã làm quen vớ i một số các tiện ích như vậy, đó là Yahoo, Google, Alvista, ... Mặt khác, giả sử chúng ta có các trang Web về các vấn đề Tin học, Thể thao, Kinh tể-Xã hội và Xây dựng...Căn cứ vào nội dung của các tài liệu mà khách hàng xem hoặc download về, sau khi phân lớ p các yêu cầu như thế của khách hàng, chúng ta sẽ biết đượ c khách hàng hay tậ p trung vào nội dung gì trên trang Web của chúng ta, mà từ đó chúng ta sẽ bổ sung thêm nhiều các tài liệu về các nội dung mà khách hàng quan tâm. Ngượ c lai, về phía khách hàng, sau khi đượ c phục vụ phù hợ p yêu cầu, khách hàng sẽ hướ ng sự quan tâm tớ i hệ thống của chúng ta hơ n. Từ những nhu cầu thực tế trên, phân lớ p và tìm kiếm trang Web vẫn là bài toán thờ i sự và cần đượ c phát triển nghiên cứu. Như vậy, chúng ta có thể hiểu r ằng khai phá Web như là việc trích chọn ra các thành phần đượ c quan tâm hay đượ c đ ánh giá là có ích cùng các thông tin tiề m n ă ng t ừ các tài nguyên hoặ c các hoạt động liên quan t ớ i World-Wide Web
[25, 26]. Một cách tr ực quan có thể quan niệm khai phá Web là sự k ết hợ p giữa Khai phá dữ liệu, Xử lý ngôn ngữ tự nhiên và Công nghệ Web: Khai phá web = Khai phá dữ liệu + Xử lý ngôn ngữ tự nhiên + World Wide Web.
1.1.3. Đặc điểm của dữ liệu Web * Web dườ ng như quá lớ n để tổ chức thành một kho dữ liệu phục vụ Khai phá dữ liệu. * Độ phức tạ p của trang Web lớ n hơ n r ất nhiều so vớ i những tài liệu văn bản truyền thống khác.
- 12 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
* Web là một nguồn tài nguyên thông tin có độ thay đổi cao * Web phục vụ một cộng đồng ngườ i dùng r ộng lớ n và đa dạng * Chỉ một phần r ất nhỏ của thông tin trên Web là thực sự hữu ích
1.1.4. Các hướng tiếp cận khai phá dữ liệu Web Như đã phân tích về đặc điểm và nội dung các siêu văn bản ở trên, từ đó khai phá dữ liệu Web cũng sẽ tậ p trung vào các thành phần có trong trang Web. Đó chính là: 1. Khai phá nội dung trang Web (Web Content mining)
Khai phá nội dung trang Web gồm hai phần: a. Web Page Content Ngh ĩ a là sẽ sử dụng chỉ các từ trong văn bản mà không tính đến các liên k ết giữa các văn bản. Đây chính là khai phá dữ liệu Text (Textmining) b. Search Result Tìm kiếm theo k ết quả. Trong các máy tìm kiếm, sau khi đã tìm ra những trang Web thoả mãn yêu cầu ngườ i dùng, còn một công việc không kém phần quan tr ọng, đó là phải sắ p xế p k ết quả theo thứ tự dộ gần nhau vớ i nội dung cần tìm kiếm. Đây cũng chính là khai phá nội dung trang Web. 2. Web Structure Mining
Khai phá dựa trên các siêu liên k ết giữa các văn bản có liên quan. 3. Web Usage Mining
a. General Access Partern Tracking: Phân tích các Web log để khám phá ra các mẫu truy cậ p của ngườ i dùng trong trang Web. b. Customize Usage Tracking: Phân tích các mẫu truy cậ p của ngườ i dùng tại mỗi thờ i điểm để biết xu hướ ng truy cậ p trang Web của từng đối tượ ng ngườ i dùng tại mỗi thờ i điểm khác nhau
- 13 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
Luận văn này tậ p trung chủ yếu vào nội dung “khai phá phá nội dung trang Web” và định hướ ng vào phân cụm tậ p trang web là k ết quả tìm kiếm của các máy tìm kiếm.
1.1.5. Nhu cầu phân cụm tài liệu Web Một trong những bài toán quan tr ọng trong l ĩ nh vực khai phá Web là bài toán phân cụm Web. Phân cụm Web - nói một cách khái quát - là việc tự động sinh ra các "cụm" (lớ p) tài liệu dựa vào sự tươ ng tự của các tài liệu. Các lớ p tài liệu ở đây là chưa biết tr ướ c, ngườ i dùng có thể chỉ yêu cầu số lượ ng các lớ p cần phân loại, hệ thống sẽ đưa ra các tài liệu theo từng tậ p hợ p, từng cụm, mỗi tậ p hợ p chứa các tài liệu tươ ng tự nhau. Phân cụm Web – hiểu một cách đơ n giản - là phân cụm trên tậ p các tài liệu đượ c lấy từ Web. Có hai tình huống phân cụm tài liệu. Tình huống thứ nhất là việc phân cụm trên toàn bộ một CSDL có sẵn gồm r ất nhiều tài liệu Web. Thuật toán phân cụm cần tiến hành việc phân cụm toàn bộ tậ p dữ liệu thuộc CSDL đó. Tình huống này thườ ng đượ c gọi là phân cụm không tr ực tuyế n (offline). Tình huống thứ hai thườ ng đượ c áp dụng trên một tậ p tài liệu nhỏ là tậ p hợ p các tài liệu do máy tìm kiếm tr ả về theo một truy vấn của ngườ i dùng. Trong tr ườ ng hợ p này, giải pháp phân cụm đượ c tiến hành kiểu phân cụm tr ực tuyế n (on-line) theo ngh ĩ a việc phân cụm tiến hành theo từng bộ phận các tài liệu nhận đượ c. Khi đó, thuật toán phải có tính chất “gia tăng” để tiến hành phân cụm ngay khi chưa có đủ tài liệu và phân cụm tiế p theo không cần phải tiến hành vớ i dữ liệu đã đượ c phân cụm tr ướ c đó. Do tậ p tài liệu trên Web là vô cùng lớ n cho nên cách phân cụm tr ực tuyến là thích hợ p hơ n và phải đòi hỏi tính "gia tăng" của thuật toán phân cụm. Quá trình xử lý truy vấn và k ết quả phân hạng đượ c phản hồi từ các máy tìm kiếm phụ thuộc vào việc tính toán độ tươ ng tự giữa truy vấn và các tài liệu. Mặc dù các truy vấn liên quan phần nào đến các tài liệu cần tìm, nhưng nó thườ ng quá ngắn và dễ xảy ra sự nhậ p nhằng. Như đã biết, trung bình các truy vấn trên Web chỉ gồm hai đến ba từ do đó gây nên độ nhậ p nhằng. Chẳng hạn, truy vấn star dẫn đến sự nhậ p nhằng r ất cao, các tài liệu lấy đượ c liên quan đến astronomy, plants, animals, popular media and sports figures… Độ tươ ng tự giữa các tài liệu của một truy từ đơ n như vậy là có sự khác nhau r ất lớ n. Vì lẽ đó,
- 14 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
nếu máy tìm kiếm phân cụm các k ết quả theo từng chủ đề thì ngườ i dùng có thể nhanh chóng hiểu k ết quả truy vấn hoặc tìm vào một chủ đề xác định. 1.2. Mô hình tìm ki ếm thông tin
1.2.1. Giới thiệu Vớ i sự phát triển nhanh chóng của công nghệ tin học, khối lượ ng thông tin lưu tr ữ trên máy tính ngày càng nhiều, vì vậy cần có các hệ thống tìm kiếm thông tin (IR: Information Retrieval) cho phép ngườ i dùng tìm kiếm một cách chính xác và nhanh nhất các thông tin mà họ cần trên kho dữ liệu khổng lồ này, trong đó, Internet chính là một kho dữ liệu như thế. Mục tiêu của hệ thống tìm kiếm là cung cấ p công cụ để tr ả về cho ngườ i dùng các tài liệu trong kho dữ liệu có liên quan tớ i câu truy vấn [3,23,25,26]. Đó là nhu cầu chung của hầu hết các ngôn ngữ và tiếng Việt của chúng ta cũng phải là một ngoại lệ. Khác vớ i các ngôn ngữ khác, tiếng Việt có nhiều đặc điểm riêng biệt và r ất khó xử lý bằng máy tính, nên các đề tài liên quan đến các hệ thống tìm kiếm tiếng Việt còn r ất ít. Mà nhu cầu tìm kiếm tài liệu trên kho tàng kiến thức của ngườ i Việt là r ất lớ n.
1.2.2. Quy trình tìm kiếm thông tin trong hệ thống Quy trình của một hệ thống tìm kiếm thông tin như sau [3,23,26]: • Ngườ i dùng muốn xem những tài liệu liên quan tớ i một chủ đề nào
đó. • Ngườ i dùng cung cấ p một mô tả về chủ đề đó dướ i dạng câu truy
vấn • Từ câu truy vấn này hệ thống sẽ lọc ra những cụm từ chỉ mục • Những cụm từ chỉ mục này sẽ đượ c so khớ p vớ i những cụm từ chỉ
mục của các tài liệu đã đượ c xử lý tr ướ c đó. • Những tài liệu nào có mức độ liên quan cao nhất sẽ đượ c tr ả về cho
ngườ i sử dụng. Mục đích của hệ thống tìm kiếm thông tin là tìm kiếm và hiển thị cho ngườ i dùng một tậ p các thông tin thoả mãn nhu cầu của họ. Chúng ta định ngh ĩ a
- 15 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
chính xác cho thông tin cần thiết là “câu truy vấn” (query), và các thông tin đượ c chọn là “tài liệu” (documents). Mỗi cách tiế p cận trong IR bao gồm hai thành phần chính (1) các k ỹ thuật để biểu diễn thông tin (câu truy vấn, tài liệu), và (2) phươ ng pháp so sánh các cách biểu diễn này. Mục đích là để tự động quy trình kiểm tra các tài liệu bằng cách tính toán độ tươ ng quan giữa các câu truy vấn và tài liệu. Quy trình này đượ c đánh giá là thành công khi nó tr ả về các k ết quả giống vớ i các k ết quả đượ c con ngườ i tạo ra khi so sánh câu truy vấn vớ i các tài liệu. Có một vấn đề thườ ng xảy ra đối vớ i hệ thống tìm kiếm là những từ mà ngườ i dùng đưa ra trong câu truy vấn thườ ng khác xa những từ trong tậ p tài liệu chứa thông tin mà họ tìm kiếm. Tr ườ ng hợ p như thế gọi là “paraphrase problem” (vấn đề về diễn giải). Để giải quyết vấn đề này, hệ thống đã tạo ra các hàm biểu diễn xử lý các câu truy vấn và các tài liệu một cách khác nhau để đạt tớ i một độ tươ ng thích nào đó.
Hình 2. Mô hình hệ thống tìm kiếm thông tin Gọi miền xác định của hàm biểu diễn câu truy vấn q là Q, tậ p hợ p các câu truy vấn có thể có; và miền giá tr ị của nó là R , không gian thống nhất biểu diễn
- 16 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
thông tin. Gọi miền xác định của hàm biểu diễn tài liệu d là D, tậ p hợ p các tài liệu; và miền giá tr ị của nó là R 2. Miền xác định của hàm so sánh c là R × R và miền giá tr ị của nó là [0,1] là tậ p các số thực từ 0 đến 1. Trong một hệ thống tìm kiếm lí tưở ng: c(q(query),d (doc)) = j(query,doc), ∀
query ∈ Q, ∀ doc ∈ D,
khi j: Q × D → [0,1] biểu diễn việc xử lý của ngườ i dùng giữa các mối quan hệ của 2 thông tin, đượ c tính dựa trên một tiêu chuẩn nào đó(ví dụ: sự giống nhau về nội dung hay sự giống nhau về kiểu,...). Hình 2 minh hoạ mối quan hệ này. Có hai kiểu hệ thống tìm kiếm: tìm kiếm dựa trên so khớ p chính xác và dựa trên sắ p xế p. Mô hình trên đây có thể mô tả cả hai cách tiế p cận như thế. Trong hệ thống tìm kiếm dựa trên so khớ p chính xác, miền giá tr ị của c đượ c giớ i hạn hai lựa chọn là 0 và 1, và nó đượ c chuyển sang nhị phân để quyết định liệu 1 tài liệu có thoả biểu thức bool đượ c xác định bở i câu truy vấn hay không? Các hệ IR dựa trên sự so khớ p chính xác thườ ng cung cấ p các tài liệu không sắ p xế p thoả mãn câu truy vấn của ngườ i sử dụng, hầu hết các hệ thống tìm kiếm hiện nay đều dùng cách này. Cách hoạt động chi tiết của hệ thống sẽ đượ c mô tả ở phần sau. Đối vớ i hệ thống IR dựa trên sắ p xế p, thì các tài liệu sẽ đượ c sắ p xế p theo thứ tự giảm dần về mức độ liên quan. Có 3 loại hệ thống tìm kiếm dựa trên sắ p xế p: “ranked Boolean”, “probabilistic” và “similarity base”. Trong 3 cách này thì miền giá tr ị của c là [0, 1], tuy nhiên chúng khác nhau ở cách tính “giá tr ị tr ạng thái tìm kiếm” (“retrieval status value”): • Trong hệ thống dựa trên “ranked Boolean” giá tr ị này là mức độ mà thông
tin thoả mãn biểu thức Bool đượ c chỉ ra bở i các thông tin còn lại. • Trong hệ thống dựa trên “probabilistic”, khái niệm này hơ i khác một chút,
giá tr ị này là xác suất mà thông tin có liên quan đến một câu truy vấn. R ất nhiều hệ thống tìm kiếm dựa trên xác suất đượ c thiết k ế để chấ p nhận câu truy vấn đượ c diễn tả bằng ngôn ngữ tự nhiên hơ n là một biểu thức bool. • Trong hệ thống tìm kiếm dựa trên sự giống nhau, giá tr ị tr ạng thái tìm
kiếm đượ c tính bằng cách tính mức độ giống nhau của nội dung thông tin. Trong các hệ thống tìm kiếm dựa trên sự so khớ p chính xác, việc đánh giá hệ thống chủ yếu dựa trên việc đánh giá mức độ liên quan. Giả sử j là giá tr ị nhị
- 17 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
phân và đượ c cho tr ướ c. Nói cách khác, ta giả sử r ằng các tài liệu hoặc có hoặc không có liên quan đến câu truy vấn, và độ liên quan giữa tài liệu và câu truy vấn do con ngườ i xác định là chính xác. Theo giả định này, tính hiệu quả của các hệ thống tìm kiếm dựa trên so khớ p chính xác đượ c đánh giá dựa trên hai đại lượ ng thống kê là “độ chính xác” ( precision) và “độ hồi tưở ng” (recall). Độ chính xác là tỷ lệ các tài liệu đượ c chọn, các tài liệu thực sự có liên quan đến các thông tin mà ngườ i dùng cần, độ hồi t ưở ng là tỉ lệ tài liệu có liên quan đượ c sắ p xế p chính xác theo độ liên quan bở i hệ thống tìm kiếm. Nói cách khác, độ chính xác bằng 1 tr ừ đi tỷ lệ cảnh báo sai, trong khi đó độ hồi tưở ng đo mức độ hoàn chỉnh của việc tìm kiếm. Về hai độ đo đánh giá này cũng sẽ đượ c đề cậ p chi tiết trong phần tiêu chuẩn đánh giá phân cụm cho thuật toán phân cụm ở phía sau. Việc đánh giá tính hiệu quả của hệ thống tìm kiếm dựa trên sắ p xế p là phức tạ p hơ n. Một cách tính độ hiệu quả phổ biến cho các hệ thống này “độ chính xác trung bình”. Nó đượ c tính bằng cách chọn 1 tậ p lớ n hơ n các tài liệu ở đầu danh sách có giá tr ị hồi tưở ng giữa 0 và 1. Phươ ng pháp thườ ng đượ c sử dụng là phươ ng pháp tính dựa trên 5,7,11 điểm theo độ hồi tưở ng. Độ chính xác sau đó sẽ tính cho từng tậ p một. Quy trình sẽ đượ c lặ p lại cho từng câu truy vấn, và tươ ng ứng vớ i mỗi độ chính xác trung bình sẽ cho một độ hồi tưở ng. Mỗi giá tr ị trung bình của những số này sau đó sẽ đượ c tính toán và ghi nhận như một đặc tr ưng của hệ thống. Độ chính xác trung bình càng lớ n thì càng tốt, và việc so sánh chỉ thực sự có ý ngh ĩ a khi chúng ta sử dụng cùng một tậ p tài liệu và câu truy vấn. Tuy nhiên độ chính xác trung bình cũng làm giảm đi mức độ thay đổi của các câu truy vấn có các đặc tính khác nhau (ví dụ như số lượ ng tài liệu có liên quan khác nhau). Hơ n thế nữa, các tài liệu có liên quan thườ ng tậ p trung ở đầu danh sách sắ p xế p nên thông thườ ng độ chính xác sẽ giảm mỗi khi tậ p tài liệu đượ c mở r ộng để tăng độ hồi tưở ng.
1.2.3. Ứng dụng phân cụm vào hệ thống tìm kiếm Như vậy, vớ i việc phân tích nhu cầu phân cụm đối vớ i các tài liệu Web, khi ta xây dựng một hệ thống tìm kiếm thì đồng thờ i ta cũng sẽ tiến hành tích hợ p module phân cụm vào hệ thống này. Việc phân cụm văn bản như một phươ ng thức tổ chức các dữ liệu tr ả lại khác giúp ngườ i sử dụng thay vì phải xem xét chọn lọc danh sách dài các văn bản theo thứ tự để tìm kiếm các văn bản liên
- 18 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
quan thì chỉ cần xem xét trong các l ĩ nh vực mà ngườ i sử dụng quan tâm mà thôi. Như vậy hệ thống tìm kiếm sẽ tr ở nên hữu dụng hơ n cho ngườ i sử dụng. 1.3. K ết luận chươ ng 1
Sự phát triển của Internet dẫn đến nhu cầu tìm kiếm, khai thác, tổ chức, truy cậ p và duy trì thông tin đối vớ i ngườ i sử dụng thườ ng xuyên hơ n. Những ngườ i sử dụng các máy tìm kiếm Web thườ ng bị bắt buộc xem xét chọn lọc thông qua một danh sách thứ tự dài của các mẩu thông tin văn bản đượ c tr ả tr ở lại bở i các máy tìm kiếm. Yêu cầu phân cụm tài liệu, cụ thể hơ n là tài liệu Web tr ở thành bài toán cho các nhà khoa học nghiên cứu và giải quyết. Sau đây chúng ta sẽ nghiên cứu tiế p các vấn đề liên quan tớ i bài toán phân cụm nêu trên.
- 19 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
CHƯƠNG 2 - THUẬT TOÁN PHÂN CỤM WEB 2.1. Khái quát v ề các thuật toán phân c ụm tài li ệu
Như đã trình bày ở chươ ng 1, phân cụm tài liệu đã và đang đượ c nghiên cứu như là một cách cải tiến hiệu năng cho cách máy tìm kiếm bằng cách phân cụm tr ướ c toàn bộ tậ p hợ p. M. Steinbach và các đồng tác giả [4] đã cung cấ p một số nội dung khái quát về các thuật toán phân cụm tài liệu. Theo các tác giả [4], r ất nhiều thuật toán phân loại tài liệu đã xuất hiện trong các tài liệu. Các thuật toán Agglomerative Hierarchical Clustering (AHC – Phân cụm tích tụ có thứ bậc) đượ c sử dụng thườ ng xuyên nhất. Những thuật toán này thườ ng là chậm khi đượ c áp dụng vớ i một tậ p lớ n các tài liệu. Các phươ ng thức liên k ết đơ n (Single-link) và trung bình nhóm (group-average) thườ ng có độ phức tạ p thờ i gian khoảng O(n2) trong khi liên k ết đầy đủ thườ ng mất khoảng O(n3). Có nhiều điều kiện k ết thúc cho các thuật toán AHC đượ c đưa ra, nhưng chúng thườ ng là đượ c dựa trên các các quyết định cứng. Những thuật toán này r ất nhạy cảm vớ i các điều kiện dừng – khi thuật toán tr ộn lỗi nhiều phân cụm tốt, k ết quả có thể là vô ngh ĩ a đối vớ i ngườ i dùng. Trong l ĩ nh vực phân cụm web những k ết quả của các câu truy vấn có thể là cực k ỳ nhiều (theo số lượ ng, độ dài, kiểu và độ quan hệ vớ i tài liệu), việc nhạy cảm vớ i các điều kiện dừng r ất dễ dẫn đến các k ết quả nghèo nàn. Một thuộc tính nữa của phân cụm Web đó là chúng ta thườ ng xuyên nhận đượ c nhiều phần ko cần thiết. Đó là một kiểu nhiễu có thể gây giảm độ ảnh hưở ng của các tiêu chí ngừng thườ ng đượ c sử dụng hiện nay. Các thuật toán phân cụm có thờ i gian tuyến tính là các ứng cử viên cho yêu cầu về tốc độ đối vớ i các phân cụm online [11]. Những thuật toán này bao gồm thuật toán K -Means có độ phức tạ p thờ i gian là O(nkT ), trong đó k là số lượ ng của các phân cụm và T là số lượ ng chu trình lặ p và phươ ng thức Single Pass – O(nK ) vớ i K là số lượ ng phân cụm đã đượ c tạo ra. Một điểm mạnh của K -Means đó là không giống vớ i các thuật toán AHC, nó có thể hoạt động trên các phân cụm chồng chéo. Bất lợ i chính của nó đó là nó đượ c coi như là hiệu quả nhất khi các phân cụm đã đượ c tạo ra gần như
- 20 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
làm tròn xấ p xỉ trên đơ n vị đo đạc đượ c sử dụng. Điều này có ngh ĩ a là không có lý do để tin r ằng những tài liệu đó nên đượ c phân loại vào các phân cụm xấ p xỉ. Phươ ng thức Single Pass cũng gặ p phải vấn đề này cũng như gặ p phải sự phụ thuộc thứ tự và có xu hướ ng đưa ra các phân cụm lớ n. Theo [4,11], đây là một thuật toán phân cụm tăng nổi tiếng nhất. Buckshot và Fractionation là 2 thuật toán phân cụm nhanh, thờ i tuyến tính do Cutting phát triển năm 1992 [4]. Factionation là một sự xấ p xỉ vớ i AHC vớ i việc tìm kiếm cho hai phân cụm gần nhau nhất không đượ c thực hiện một cách tổng thể thay vào đó là thực hiện một cách cục bộ hoặc trong các vùng giớ i hạn. Thuật toán này hiển nhiên sẽ vấ p phải cùng nhượ c điểm vớ i AHC – các điều kiện dừng độc đoán và hiệu năng thấ p khi có nhiều phần không liên quan. Buckshot là một giải thuận K -Means vớ i việc các phân cụm trung tâm đượ c tạo ra bở i việc áp dụng phân cụm AHC vớ i một tậ p mẫu các tài liệu. Việc sử dụng tậ p mẫu là có r ủi ro khi có thể có ngườ i có hứng thú vớ i các phân cụm nhỏ mà có thể không có trong các mẫu. Tuy nhiên, tuy là các thuật toán nhanh song chúng không phải là thuật toán phân cụm tăng. Tất cả các thuật toán đượ c nói ở trên coi một tài liệu là một tậ p các từ và không phải một tậ p các từ có thứ tự, do đó có mất đi các thông tin quan tr ọng. Các cụm từ đã đượ c sử dụng từ lâu để cung cấ p các chỉ mục từ trong các hệ thống IR. Việc sử dụng các phân tử từ vựng và các cụm từ có cú pháp đã đượ c đưa ra để làm tăng khả năng dự đoán mà không cần đến việc phân tích lại tài liệu. Các cụm từ đượ c sinh ra bở i các phươ ng thức thống kê đơ n giản đã và đang đượ c sử dụng một cách thành công. Nhưng những phươ ng pháp trên chưa đượ c áp dụng r ộng rãi trong việc phân cụm tài liệu. Ngoài ra, thuật toán sử dụng DC-tree [24] (Document Clustering Tree: cây phân cụm tài liệu) có thể phân cụm các tài liệu mà không cần tậ p huấn luyện. Vớ i DC-tree, một đối tượ ng dữ liệu đưa vào không bắt buộc phải chèn vào mức(vị trí) thấ p khi không tồn tạo một nút con tươ ng tự cho đối tượ ng dữ liệu. Điều này ngăn cản một vài dữ liệu không tươ ng tự từ việc đặt cùng nhau. K ết quả là thuật toán phân cụm dựa trên cấu trúc DC-tree là ổn định vớ i yêu cầu đưa thêm tài liệu và dễ chấ p nhận các tài liệu “nhiễu”.
- 21 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
Trên Web, có một vài nỗ lực để kiểm soát số lượ ng lớ n tài liệu đượ c tr ả lại bở i các máy tìm kiếm. Nhiều máy tìm kiếm cung cấ p các tính năng tìm kiếm chọn lọc. Ví dụ, AltaVista gợ i ý các từ nên đượ c thêm hoặc loại bỏ khỏi câu truy vấn. Những từ này đượ c tổ chức theo nhóm, nhưng các nhóm này không đại diện cho các phân cụm của tài liệu. Máy tìm kiếm Northern Light (www.nlsearch.com) cung cấ p “Custom Search Folders” (Các thư mục tìm kiếm quen thuộc), các thư mục này đượ c đặt tên bằng một từ hoặc một từ kép và bao gồm tất cả các tài liệu có chứa cái tên đó. Northern Light không tiết lộ cách thức sử dụng để tạo ra các thư mục đó cũng như chi phí của nó. Trong chươ ng 3, luận văn đi sâu nghiên cứu hai thuật toán phân cụm có tính tăng thích hợ p cho việc phân cụm trang Web và hơ n nữa là dễ dàng áp dụng cho phân cụm Tiếng Việtthuật toán phân cụm câu hậu tố (STC) và thuật toán phân cụm sử dụng DC-Tree. 2.2. Tiêu chuẩn đ ánh giá thuật toán phân c ụm
Các k ết quả của bất cứ một thuật toán phân cụm nào cũng nên đượ c đánh giá sử dụng một thướ c đo chất lượ ng thông tin để chỉ ra “độ tốt” của các phân cụm k ết quả. Việc đánh giá phụ thuộc vào tri thức nào ta ưu tiên trong việc phân loại đối tượ ng dữ liệu (Ví dụ, chúng ta đã gán nhãn các dữ liệu hoặc không có sự phân loại dữ liệu). Nếu dữ liệu chưa đượ c phân loại tr ướ c đó, chúng ta cần phải sử dụng các tiêu chuẩn chấ t l ượ ng bên trong để cho phép so sánh giữa các tậ p phân cụm mà không phải tham khảo các tri thức bên ngoài. Nói theo cách khác, nếu dữ liệu đã đượ c gán nhãn, chúng ta sử dụng việc phân loại này để so sánh k ết quả phân cụm vớ i các phân loại gốc; độ đo này đượ c biết đến như một độ đ o chấ t l ượ ng ngoài. Chúng ta sẽ xem qua hai tiêu chuẩn chất lượ ng ngoài là Entropy và F-measure) và một tiêu chuẩn chất lượ ng trong là Overall Similarity.
Entropy Một độ đo chất lượ ng ngoài đó là entropy, nó cung cấ p một độ đo về “độ tốt” cho các phân cụm đượ c lấy ra hoặc cho các phân cụm tại một cấ p độ của một phân cụm theo thứ bậc. Entropy cho chúng ta biết sự đồng nhất của một phân cụm. Một phân cụm càng đồng nhất thì entropy của nó càng giảm và ngượ c lại. Entropy của một phân cụm mà chỉ chứa một đối tượ ng (cân bằng hoàn hảo) là 0.
- 22 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
Coi P là một k ết quả phân chia của một thuật toán phân cụm bao gồm m phân cụm. Vớ i tất cả phân cụm j trong P , chúng ta cần tính toán pij , vớ i pij là khả năng một thành viên của phân cụm j thuộc vào lớ p i. Entropy của mỗi phân cụm j đượ c tính toán sử dụng công thức chuẩn: E j = −∑ pij log( pij ) , trong đó việc tính i
tổng đượ c thực hiện vớ i tất cả các lớ p. Tổng entropy của một tậ p các phân cụm đượ c tính toán như là tổng cộng entropy của mỗi phân cụm đượ c tính toán dựa ⎞ × E j ⎟⎟ , trong đó N j là kích cỡ của j =1 ⎝ N ⎠ m
⎛ N j
theo kích cỡ của mỗi phân cụm: E P = ∑ ⎜⎜
phân cụm j và N là tổng số lượ ng đối tượ ng dữ liệu. Như đã nói ở trên, chúng ta cần phải tạo ra các phân cụm vớ i các entropy càng nhỏ càng tốt và entropy là một thướ c đo về độ đồng nhất (tươ ng tự) của các đối tượ ng dữ liệu trong phân cụm.
F-measure Độ đo chất lượ ng ngoài thứ hai là độ đo F (F-measure), một độ đo gộ p ý tưở ng về sự chính xác và khả năng nhớ lại từ thông tin thu về. Sự chính xác và khả năng nhớ lại của một phân cụm j đối vớ i lớ p i đượ c định ngh ĩ a là: P = precision(i , j ) =
R = recall (i, j ) =
N ij N i
N ij N j
trong đó N ij là số lượ ng thành viên của lớ p I trong phân cụm j, N j là số lượ ng thành viên của phân cụm j và N i là số lượ ng thành viên của lớ p i. Độ đo F của một lớ p i đượ c định ngh ĩ a là: F (i ) =
2 PR P + R
Trong các mối liên hệ vớ i lớ p i, chúng ta tìm ra giá tr ị độ đo F lớ n nhất trong các phân cụm j đối vớ i nó và giá tr ị này là điểm của lớ p i. Giá tr ị độ đo F của k ết quả phân cụm P là trung bình tr ọng số của các độ đo F vớ i mỗi lớ p i. F P =
∑ (i × F (i)) ∑i i
i
- 23 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
Trong đó |i| là số lượ ng đối tượ ng tr ọng lớ p i. Giá tr ị độ đo F càng cao thì việc phân cụm càng tốt vì độ chính xác càng lớ n của việc gắn k ết các lớ p gốc.
Overall Similarity Một độ đo chất lượ ng trong r ất hay đượ c sử dụng là độ đo tươ ng tự toàn diện (Overall Similarity) và đượ c sử dụng khi không có bất cứ thông tin nào từ bên ngoài như các lớ p đã gán nhãn. Độ đo này phân cụm đo sự k ết nối của các phân phân cụm bằng việc sử dụng tr ọng số tươ ng tự của phân cụm trong 1 2
S
∑ sim( x, y ) , trong đó S là phân cụm đượ c xem xét, và sim(x,y) là độ tươ ng x∈S y∈S
tự giữa 2 đối tượ ng x và y. 2.3. Các đặc tính c ủa các thuật toán phân c ụm web
Tr ướ c khi chúng ta phân tích và so sánh các thuật toán khác nhau, chúng ta cần phải định ngh ĩ a một số thuộc tính của các thuật toán và tìm ra các vùng vấn đề của các thuộc tính này. Phân tích về các phươ ng pháp phân cụm tài liệu Web sẽ đượ c giớ i thiệu ở ngày sau phần này.
2.3.1. Mô hình dữ liệu Hầu hết các thuật toán phân cụm đều yêu cầu tậ p dữ liệu cần đượ c phân cụm ở dạng một tậ p các véc tơ X = {x1, x2, …, xn} trong đó véc tơ xi, i= 1, …, n đại diện cho một đối tượ ng đơ n lẻ trong tậ p dữ liệu và đượ c gọi là véc t ơ đặ c g (feature vector). Việc tách lọc các đặc tr ưng cần thiết thông qua véc tơ đặc tr ưn tr ưng phụ thuộc nhiều vào từng l ĩ nh vực. Số chiều của véc tơ đặc tr ưng là nhân tố chủ chốt trong thờ i gian chạy của thuật toán cũng như độ lớ n của nó. Tuy nhiên, một vài l ĩ nh vực mặc định phải chấ p nhận số chiều lớ n. Tồn tại một vài phươ ng pháp làm giảm các vấn đề liên quan đến cỡ , như việc phân tích nguồn gốc thành phần. Phươ ng pháp Krishnapuram [8] đã có thể làm giảm véc tơ đặc tr ưng 500 chiều thành véc tơ 10 chiều; tuy nhiên độ chính xác của nó chưa đượ c kiểm chứng. Từ bây giờ ta tậ p trung vào việc biểu diễn dữ liệu tài liệu và làm thế nào để bóc tách các đặc tr ưng chính xác. a, Mô hình dữ liệu tài liệu
- 24 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
Hầu hết các phươ ng thức phân cụm tài liệu sử dụng mô hình không gian véc tơ (Vector Space) để biểu diễn các đối tượ ng tài liệu. Mỗi tài liệu đượ c biểu diễn bằng một véc tơ d, trong không gian véc tơ , d = {tf 1, tf 2, …, tf n} trong đó tf i (i=1,…,n) là tần suất xuất hiện (term frequency – TF) của từ t i trong tài liệu. Để biểu diễn tất cả các tài liệu vớ i cùng 1 tậ p từ, chúng ta cần tách tất cả các từ tìm đượ c trên tổng các tài liệu và sử dụng chúng như véc tơ đặc tr ưng của chúng ta. Thỉnh thoảng, một vài phươ ng pháp đượ c sử dụng đã gộ p tần suất xuất hiện từ và tần suất nghịch đảo tài liệu (inverse document frequency TF-IDF). Tần suất xuất hiện tài liệu df i là số lượ ng tài liệu trong tậ p N tài liệu mà từ t i xuất hiện. Một thành phần tấn suất nghịch đảo tài liệu (idf ) đượ c định ngh ĩ a là log( N /df i). Tr ọng số của từ t i trong tài liệu đượ c định ngh ĩ là wi= tf i × log( N /df i) [24]. Để cỡ của véc tơ đặc tr ưng là chấ p nhận đượ c, chỉ n từ có tr ọng số lớ n nhất trong tất cả các tài liệu đượ c sử dụng như là n đặc tr ưng. Wong và Fu [24] đã chỉ ra r ằng họ có thể làm giảm số lượ ng từ đại diện bằng việc chỉ chọn những từ mà mức độ hồi tưở ng (coverage) đủ trong tậ p dữ liệu. Một vài thuật toán [9,24] lặ p lại việc sử dụng các tần suất xuất hiện từ (hoặc tr ọng số từ) bằng việc sử dụng véc tơ đặc tr ưng nhị phân, trong đó mỗi tr ọng số từ là 1 hoặc 0, phụ thuộc vào từ đó có trong tài liệu hay không. Wong và Fu [24] phản đối r ằng tần suất xuất hiện từ trung bình trong tài liệu web là nhỏ hơ n 2 (dựa theo các thí nghiệm, thống kê), vì nó không chỉ ra độ quan tr ọng thực sự của từ, do đó một sự phối vớ i tr ọng số nhị phân sẽ là thích hợ p hơ n vớ i vùng vấn đề này. Tr ướ c khi nói về tách đặc tr ưng, tậ p tài liệu sẽ đượ c làm sạch bằng cách loại bỏ các từ dừng (stop-word: các từ có tần suất xuất hiện nhiều nhưng không có ý ngh ĩ a như: và, vớ i, …) và áp dụng một thuật toán làm đầy để chuyển đổi các mẫu từ khác nhau thành một mẫu chuẩn tươ ng đươ ng.
- 25 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
Một ví dụ về các stop-word Một mô hình khác về vấn đề biểu diễn tài liệu đượ c gọi là N-gram. Mô hình N-gram giả sử r ằng tài liệu là một chuỗi các ký tự, và sử dụng một cửa sổ tr ượ t vớ i kích cỡ n ký tự để quét và tách tất cả các chuỗi n ký tự liên tiế p trong tài liệu. N-gram là có thể chấ p nhận đượ c vớ i các lỗi phát âm nhỏ bở i vì sự r ườ m rà trong các k ết quả tr ả về của nó. Mô hình này cũng xử lý đượ c các vấn đề nhỏ về phụ thuộc ngôn ngữ khi đượ c sử dụng vớ i thuật toán làm đầy. Vấn đề tươ ng tự trong phươ ng pháp tiế p cận này đượ c dựa trên số lượ ng n-gram giữa hai tài liệu. Cuối cùng, một mô hình mớ i đượ c giớ i thiệu bở i Zamir và Etzioni [5] là một phươ ng pháp tiế p cận về cụm từ. Mô hình này tìm kiếm các cụm hậu tố giữa các tài liệu và xây dựng một cây hậu tố trong đó mỗi nút biểu diễn một phần của cụm từ (một nút hậu tố) và gắn vớ i nó là các tài liệu chứa cụm từ hậu tố này. Phươ ng pháp tiế p cận này rõ ràng là nắm đượ c các thông tin quan hệ giữa các từ, r ất có giá tr ị trong việc tìm kiếm độ tươ ng tự giữa các tài liệu. b, Mô hình dữ liệu số Một mô hình trong sáng hơ n về dữ liệu đó là mô hình số. Dựa trên ngữ cảnh vấn đề là có nhiều đặc tr ưng đượ c tách, trong đó mỗi đặc tr ưng đượ c biểu diễn như là một khoảng các giữa các số. Véc tơ đặc tr ưng luôn luôn ở trong một
- 26 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
cỡ chấ p nhận đượ c, và nó phụ thuộc vào vấn đề đang đượ c phân tích. Các khoảng cách đặc tr ưng thườ ng đượ c bình thườ ng hóa vì thế mỗi đặc tr ưng có tác dụng như nhau khi tính toán độ đo khoảng cách. Độ tươ ng tự trong tr ườ ng hợ p này là minh bạch vì việc tính toán khoảng cách giữa 2 véc tơ là r ất đơ n giản [17]. c, Mô hình phân loại dữ liệu Mô hình này thườ ng đượ c tìm thấy trong các vấn đề về phân cụm cơ sở dữ liệu. Thườ ng thì các thuộc tính của bảng cơ sở dữ liệu là đượ c phân loại và có một vài thuộc tính là kiểu số. Các phươ ng pháp tiế p cận về phân cụm dựa trên thống kê đượ c dùng để làm việc vớ i kiểu dữ liệu này. Thuật toán ITERATE có thể coi là một ví dụ về việc làm việc vớ i dữ liệu phân loại trên các dữ liệu thống kê [18]. Thuật toán K-modes cũng có thể coi là một ví dụ tốt [19]. d, Mô hình dữ liệu k ết hợ p Dựa vào các vùng vấn đề, thỉnh thoảng các đối tượ ng biểu diễn dữ liệu đặc tr ưng không có cùng kiểu. Một sự k ết hợ p giữa các kiểu dữ liệu số, phân loại, không gian hoặc text có thể đượ c sử dụng. Trong tr ườ ng hợ p này, vấn đề quan tr ọng là ngh ĩ ra một phươ ng pháp có thể nắm giữ tất cả các thông tin một cách hiệu quả. Một quy trình chuyển đổi nên đượ c áp dụng để chuyển đổi từ một kiểu dữ liệu này thành một kiểu dữ liệu khác. Thỉnh thoảng một kiểu dữ liệu không thể áp dụng vào đượ c, lúc đó thuật toán phải đượ c chỉnh sửa để làm việc vớ i các kiểu dữ liệu khác [18].
2.3.2. Độ đo về sự tương tự Nhân tố chính trong thành công của bất k ỳ một thuật toán phân cụm nào đó chính là độ đo về sự tươ ng tự của nó. Để có thể nhóm các đối tượ ng dữ liệu, một ma tr ận xấ p xỉ đã đượ c sử dụng để tìm kiếm những đối tượ ng (hoặc phân cụm) tươ ng tự nhau. Có một số lượ ng lớ n các ma tr ận tươ ng tượ ng đã đượ c đề cậ p đến trong các tài liệu, ở đây, chúng ta chỉ xem qua một số ma tr ận thông thườ ng nhất. Việc tính toán độ (không) tươ ng tự giữa 2 đối tượ ng đượ c thực hiện thông qua các hàm tính khoảng cách (distance), thỉnh thoảng cũng có thể sử
- 27 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
dụng các hàm tính về độ không t ươ ng t ự (dissimilarity). Vớ i 2 véc tơ đặc tr ưng x và y, cần phải tìm ra độ tươ ng tự (hoặc không tươ ng tự) giữa chúng. Một lớ p r ất hay đượ c sử dụng của các hàm khoảng cách đó là “ gia đ ình các khoảng cách Minkowski” [7], đượ c mô tả như phía dướ i: x − y = p
n
∑1 x
i
− y i
p
i=
Trong đó x,y ∈ R n. Hàm khoảng cách này thực ra là mô tả một họ vô số các khoảng cách đượ c đưa ra bở i p. Thông số này giả thiết là các giá tr ị lớ n hơ n hoặc bằng 1. Một vài giá tr ị chung của p và các hàm khoảng cách là: n
p = 1: Khoảng cách Hamming x − y = ∑ xi − yi i =1
p = 2: Khoảng cách Euclidean x − y =
n
∑1 x
i
− yi
2
i=
p = ∞: Khoảng cách Tschebyshev x − y = maxi=1,2,...,n xi − y i
Một độ đo độ tươ ng tự hay đượ c dùng, đặc biệt là trong phân cụm tài liệu đó là độ đo liên quan cosine (cosine correlation) (đượ c sử dụng trong [4], [15], và [13]), đượ c định ngh ĩ a là: cos( x, y ) =
x. y x y
trong đó . biểu thị việc nhân vector và ||.|| biểu thị cho độ dài của vector. Một độ đo hay đượ c dùng khác đó là độ đo Jaccard (đượ c sử dụng trong [8], [9]), đượ c định ngh ĩ a là:
∑ 1 min( x , y ) d ( x, y ) = ∑ 1 max( x , y ) n
i= n
i
i
i=
i
i
trong tr ườ ng hợ p các vector đặc tr ưng nhị phân, có thể đơ n giản hóa thành: d ( x, y ) =
x ∩ y x ∪ y
- 28 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
Cần phải chú ý r ằng từ “khoảng cách” không có gì nhậ p nhằng vớ i “tươ ng tự”. Những từ này là trái ngh ĩ a vớ i nhau, cho chúng ta biết độ tươ ng tự giữa 2 đối tượ ng. Độ tươ ng tự giảm khi khoảng cách tăng. Thêm một điểm cần chú ý khác đó là nhiều thuật toán sử dụng hàm khoảng cách (hoặc tươ ng tự) để tính toán sự tươ ng tự giữa 2 phân cụm, một phân cụm và một đối tượ ng, hai đối tượ ng. Việc tính toán khoảng cách giữa 2 phân cụm (hoặc các phân cụm và các đối tượ ng) yêu cầu một vector đặc tr ưng đại diện cho phân cụm. Thườ ng thì các thuật toán phân cụm thườ ng sử dụng một ma tr ận t ươ ng t ự (similarity matrix). Một ma tr ận tươ ng tự cỡ N × N ghi nhận các khoảng cách (hoặc độ tươ ng tự) giữa từng cặ p đối tượ ng. Hiển nhiên ma tr ận tươ ng tự là một ma tr ận đối xứng do đó chúng ta chỉ cần lưu phần trên bên phải hoặc phần dướ i bên trái của nó.
2.3.3. Mô hình phân cụm Bất cứ thuật toán phân cụm nào cũng thừa nhận một cấu trúc phân cụm nào đó. Đôi khi cấu trúc phân cụm không thực sự rõ ràng tùy theo nhu cầu của bản thân thuật toán phân cụm. Ví dụ, thuật toán k -means sử dụng các phân cụm hình cầu (hoặc các phân cụm lồi). Đó là vì theo cách k -means tìm kiếm phân cụm trung tâm và cậ p nhật các đối tượ ng thành viên. Nếu như không cẩn thận, chúng ta có thể k ết thúc việc phân cụm vớ i các phân cụm kéo dài (elongated cluster ), trong đó k ết quả là có ít phân cụm lớ n và có nhiều phân cụm r ất nhỏ. Wong và Fu [16] đã đưa ra một giải pháp để giữ kích cỡ phân cụm trong một khoảng nào đó, nhưng việc giữ kích cỡ phân cụm trong một khoảng nào đó không phải bao giờ cũng đáng thực hiện. Một mô hình động để tìm kiếm các phân cụm không thích hợ p vớ i cấu trúc của chúng đó là CHAMELEON, đượ c đưa ra bơ i Karypis [13]. Tùy theo vấn đề, chúng ta có thể có các phân cụm tách r ời (disjoint) hoặc các phân cụm chồng chéo (overlapping). Trong ngữ cảnh phân cụm tài liệu thườ ng mong muốn có các phân cụm chồng chéo bở i vì tài liệu có xu hướ ng có nhiều hơ n một chủ đề (ví dụ một tài liệu có thể chứa thông tin về đua ô tô và các công ty ô tô). Một ví dụ khác về việc tạo ra các phân cụm chồng chéo là hệ thống cây hậu tố (STC) đượ c đưa ra bở i Zamir và Etzionin [5]. Một cách khác để tạo ra các phân cụm chồng chéo đó là phân cụm mờ trong đó các đối tượ ng có thể
- 29 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
thuộc vào các phân cụm khác nhau dựa vào các cấ p độ khác nhau của tư cách thành viên [8]. 2.4. M ột số k ỹ thuật Phân c ụm Web đ i ển hình
K ỹ thuật phân cụm đượ c chia thành 2 nhóm chính: Phân cụm theo thứ bậc và phân cụm bằng cách phân mảnh.
2.4.1. Phân cụm theo thứ bậc Các k ỹ thuật phân cụm theo thứ bậc đưa ra một chuỗi các phần chia lồng vào nhau vớ i một phân cụm gốc ở trên cùng và các phân cụm đơ n của các đối tượ ng đơ n lẻ ở phía dướ i. Các phân cụm ở cấ p độ trên chứa các phân cụm phía dướ i chúng theo thứ bậc. K ết quả của thuật toán phân cụm theo thứ bậc có thể xem như một cây, đượ c gọi là một dendogram (Hình 3).
Hình 3: Một ví dụ dendogram của phân cụm sử dụng phân cụm có thứ bậc
Tùy thuộc vào định hướ ng của việc xây dựng thứ tự, chúng ta có thể chỉ ra các phươ ng thức của phân cụm theo thứ bậc: tích tụ (Agglomerative) hay chia xẻ (Divisive). Phươ ng thức tích tụ đượ c sử dụng trong hầu hết các phân cụm theo thứ bậc.
a, Phân cụm tích tụ theo thứ bậc (AHC) Phươ ng thức này bắt đầu vớ i tậ p các đối tượ ng là các phân cụm đơ n lẻ, tiế p đó, tại mỗi bướ c k ết nối 2 phân cụm giống giau nhất vớ i nhau. Quá trình này
- 30 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
đượ c lặ p lại cho đến khi số lượ ng phân cụm còn lại đạt đến một ngưỡ ng cho phép hoặc là nếu cần phải hoàn thành toàn bộ thứ bậc thì quá trình này sẽ tiế p tục cho đến khi chỉ còn 1 phân cụm. Phân cụm tích tụ làm việc theo mô hình tham ă n ( greedy), trong đó cặ p nhóm tài liệu đượ c chọn cho việc tích tụ là cặ p mà đượ c coi là giống nhau nhất theo một số tiêu chuẩn nào đó. Phươ ng thức này tươ ng đối đơ n giản nhưng cần phải định ngh ĩ a rõ việc tính khoảng cách giữa 2 phân cụm. Có 3 phươ ng thức hay đượ c dùng nhất để tính toán khoảng cách này đượ c liệt kê ở phía dướ i. • Phươ ng thứ c k ết nối đơ n (Single Linkage Method): Độ tươ ng tự giữa 2 phân cụm S và T đượ c tính toán dựa trên khoảng cách ng ắn nhấ t (minimal )
giữa các thành phần nằm trong các phân cụm tươ ng ứng. Phươ ng thức này còn đượ c gọi là phươ ng pháp phân cụm “láng giềng gần nhất” (“nearest neighbour). T − S = min x∈T x − y y∈S
• Phươ ng thứ c k ết nối toàn bộ (Complete Linkage Method): Độ tươ ng tự giữa 2 phân cụm S và T đượ c tính toán dựa trên khoảng cách l ớn nhấ t
(maximal ) giữa các thành phần thuộc vào các phân cụm tươ ng ứng. Phươ ng thức này còn đượ c gọi là phươ ng pháp phân cụm “láng giềng xa nhất” (“furthest neighbour”). T − S = max x∈T x − y y∈S
• Phươ ng thứ c k ết n ối trung bình (Average Linkage Method): Độ tươ ng tự
giữa 2 phân cụm S và T đượ c tính toán dựa trên khoảng cách trung bình (average) giữa các thành phần của các phân cụm tươ ng ứng. Phươ ng thức này xét tất cả các cặ p khoảng cách các đối tượ ng trong các 2 phân cụm. Phươ ng thức này còn đượ c gọi là UPGMA (Unweighter Pair-Group Method using Arithmetic averages ) T − S =
∑
x∈T y∈S
x − y
S . T
- 31 -
Nguyễ n Thị Thu H ằ n ng Đạ ằng-Lu g-Luận vă n cao học-Tr ườ ườ ng Đại học Công nghệ-2007.
Karypis [13] đã phả phản đối đối các phươ phươ ng ng thứ thức trên vì cho r ằng chúng sử sử dụng mộ một mô hình t ĩ ĩ nh nh củ c ủa các liên k ết và gầ gần gũ gũi củ c ủa dữ d ữ liliệệu, và đã đưa đưa ra mộ một mô hình động động để tránh đượ c nhữ những vấn đề trên. Hệ Hệ thố thống đó đượ c gọi là CHAMELEON, chỉ chỉ gộ p 2 phân cụ cụm nế nếu sự sự liên k ết và gầ gần gũ gũi củ của các phân cụ cụm là có quan hệ hệ mật thiế thiết vớ vớ i sự sự liên k ết và gầ gần gũ gũi bên trong các phân cụ cụm. Các k ỹ thu thuậật chấ chất đống đống thườ thườ ng ng sử dụng thờ thờ i gian cỡ cỡ Ω Ω(n2) vì đặc đặc tr ưng của nó là xem xét tấ tất cả các cặ cặ p phân cụ cụm có thể thể. Hệ thố thống Phân tán/T ậ p hợ p (Scatter/Gather ) đượ c giớ giớ i thiệ thiệu trong cuố cuốn Cutting [15], đã sử dụng một nhóm tích tụ tụ trung bình để tìm kiế kiếm các phân cụ cụm hạt nhân (seed) để sử dụng cho thuậật toán chia phân cụ thu cụm. Tuy nhiên, để tránh thờ thờ i gian chạ chạy bình phươ phươ ng, ng, họ họ chỉ chỉ sử dụng nó vớ vớ i một ví dụ dụ nhỏ nhỏ của các tài liệ liệu để phân cụ cụm. Ngoài ra, phươ phươ ng ng thứ thức trung bình nhóm đã đượ c giớ gi ớ i thiệ thiệu trong Steinbach [4] đượ c coi là tố tốt hơ h ơ n hầu hế hết các phươ phươ ng ng thứ thức đo độ tươ ng ng tự tự khác do tính ổn định định củ của nó.
b, Phươ ng ng pháp phân cụm chia xẻ cấp bậc Nhữ Những phươ phươ ng ng thứ thức này làm việ việc từ trên xuố xuống dướ i,i, bắt đầu đầu vớ i việ việc coi toàn bộ bộ các tậ tậ p dữ liliệệu là mộ một phân cụ cụm và tạ tại mỗi bướ c lại phân chia mộ một phân cụ cụm cho đến đến khi chỉ chỉ còn nhữ những phân cụ cụm đơ n của các đối đối tượ ng ng riêng lẻ lẻ còn lạ lại. Chúng thườ thườ ng ng khác nhau bở bở i 2 điểm: (1) phân cụ cụm nào đượ c phân chia k ế titiếế p và (2) làm thể thể nào để phân chia. Thườ Thườ ng ng thì mộ một tìm kiế kiếm toàn diệ diện đượ c thự thực hiệ hiện để tìm ra phân cụ cụm để phân tách dự dựa trên mộ một vài tiêu chuẩ chuẩn khác nhau. Mộ Một cách đơ n giả giản hơ hơ n có thể thể đượ c sử sử dụng đó là chọ chọn phân cụ cụm lớ lớ n nhấ nhất để chia tách, phân cụ cụm có độ tươ ng ng tự t ự trung bình ít nhấ nhất hoặ ho ặc sử dụng một tiêu chuẩ chuẩn dự dựa trên cả cả kích cỡ cỡ và và độ tươ ng ng tự tự trung bình. Trong Steinbach [4] đã làm một thí nghiệ nghiệm dự dựa trên nhữ những chiế chiến thuậ thuật này và phát hiệ hiện ra r ằng sự sự khác nhau giữ giữa chúng là r ất nhỏ nh ỏ, do đó họ h ọ đã sắ s ắ p xế x ế p lạ l ại bằ b ằng việ việc chia nhỏ nhỏ phân cụ cụm lớ l ớ n nhấ nhất còn lạ lại. Chi nhỏ nhỏ một phân cụ cụm cầ c ần đưa đưa ra quyế quyết định định xem nhữ những đối đối tượ t ượ ng ng nào đượ c đưa đưa vào phân cụ cụm con. Một phươ phươ ng ng pháp đượ c dùng để tìm 2 phân cụ c ụm con sử sử dụng k -means -means tr ả lại k ết quả quả là mộ một k ỹ thu thuậật lai ghép đượ c gọ gọi là k ỹ thu thuậật chia cắ cắt k -means -means (bisecting k-means) [4]. Cũ Cũng có mộ một cách khác dự dựa trên thố thống kê đượ c sử sử dụng bằ bằng thuậ thuật toán ITERATE [18], tuy nhiên, không cầ cần thiế thiết phả phải
- 32 -
Nguyễ n Thị Thu H ằ n ng Đạ ằng-Lu g-Luận vă n cao học-Tr ườ ườ ng Đại học Công nghệ-2007.
chia mộ một phân cụ cụm thành 2 phân cụ cụm con, chúng ta có thể th ể chia nó thành nhiề nhiều phân cụ cụm con, tùy theo k ết cấ cấu củ của các đối đối tượ tượ ng. ng.
2.4.2. Phân cụm bằng cách phân mảnh Lớ p thuậ thuật toán phân cụ cụm này làm việ việc bằ b ằng cách nhậ nhận ra các phân cụ cụm titiềềm nă n ăng cùng mộ một lúc trong khi lặ lặ p lạ l ại việ việc cậ p nhậ nhật các phân cụ cụm để làm tố tố i ưu mộ một vài chứ chức nă năng. Lớ Lớ p các thuậ thuật toán nổ nổi tiế tiếng củ của nó là thuậ thuật toán K -means -means và các biế biến thể thể của nó. K -means -means bắ bắt đầu đầu bằng việ việc chọ chọn lựa ngẫ ngẫu nhiên k phân cụm hạt nhân, sau đó đưa đưa các đối đối tượ ng ng vào phân cụ cụm có ý ngh ĩ ngh ĩ a gần nó nhấ nhất. Thuậ Thuật toán lặ lặ p lạ l ại việ vi ệc tính toán ý ngh ĩ ngh ĩ a củ c ủa các phân cụ cụm và cấ cấ p độ thành viên của các đối đối tượ tượ ng ng mớ mớ i.i. Quá trình xử xử lý tiế tiế p tụ tục cho đến đến mộ một số số lần lặ lặ p nhấ nhất định định hoặ hoặc khi không còn sự sự thay đổi đổi nào đượ c phát hiệ hiện trong ý ngh ĩ ngh ĩ a của các phân cụm [17]. Các thuậ thuật toán K -means -means có kích cỡ cỡ O(nkT ) trong đó T là số số lượ ng ng vòng lặ p. Dù sao, mộ một nhượ nhượ c điểm chính củ của K -means -means là nó giả giả định định mộ một cấ cấu trúc phân cụm cầ c ầu và không thể thể đượ c áp dụ dụng vớ v ớ i các miề miền dữ d ữ liliệệu mà các cấ cấu trúc phân cụm không phả phải là hình cầ cầu. Một biế biến thể thể của K -means -means cho phép sự sự chồ chồng lặ lặ p củ của các phân cụ cụm đó là C-means mờ mờ (FCM: (FCM: Fuzzy C-means). Thay vì có các quan hệ h ệ thành viên kiể kiểu nhị nhị phân giữ giữa các đối đối tượ ng ng và các phân cụ cụm tiêu biể biểu, FCM cho phép các cấ cấ p độ khác nhau củ của cấ cấ p độ thành viên [17]. Krishnapuram [8] đã đưa đưa ra mộ một phiên bả bản đã chỉ chỉnh sửa của FCM đượ c coi là Fuzzy C-Medoids (FCMdd) trong đó các ý ngh ĩ a đượ c thay bằ bằng các ngữ ngữ cảnh. Thuậ Thuật toán này tươ tươ ng ng đối đối nhanh và có cỡ cỡ là là O(n2 ) và có cườ cườ ng ng độ hoạ hoạt động động nhanh hơ hơ n FCM. Do sự sự lựa chọ chọn ngẫ ngẫu nhiên củ của các phân cụ cụm hạ hạt nhân nhữ những thuậ thuật toán này, chúng đối đối lậ lậ p vớ vớ i phân cụ cụm có thứ thứ bậc. Do đó k ết quả quả của các lầ lần chạ chạy củ c ủa thuậật toán là không thự thu thực sự sự ổn định. định. Mộ Một vài phươ phươ ng ng pháp đã đượ c cả cải tiế tiến bằ bằng cách tìm ra các phân cụ cụm hạ h ạt nhân ban đầu đầu “tố “tốt” sau đó mớ i sử dụng các thuậ thuật toán này. Có mộ một ví dụ dụ r ất hay trong hệ hệ thố thống Phân chia/Thu thậ p [15]. Có mộ m ột cách tiế tiế p cậ c ận gộ g ộ p cả c ả việ việc phân cụ cụm phân mả mảnh và phân cụ cụm lai ghép đó là thuậ thuật toán chia cách K -means -means ( Bisecting K-means) đã nói ở phầ phần tr ướ ướ c. c. Thuậ Thuật toán này là mộ một thuậ thuật toán phân chia trong đó việ việc phân chia phân cụm sử dụng K -means -means để tìm kiế kiếm 2 phân cụ c ụm con. Trong Steinbach đã chỉ chỉ ra
- 33 -
Nguyễ n Thị Thu H ằ n ng Đạ ằng-Lu g-Luận vă n cao học-Tr ườ ườ ng Đại học Công nghệ-2007.
r ằng hiệ hiệu suấ suất củ của thuậ thuật toán Bisecting K -means -means là tuyệ tuyệt vờ vờ i so vớ vớ i K -means -means bình thườ thườ ng ng cũ cũng như như UPGMA [4] Cần phả phải chú ý r ằng mộ m ột đặc đặc tr ưng quan tr ọng củ c ủa các thuậ thuật toán có thứ thứ bậ bậc là hầ hầu hết đều đều có cậ cậ p nhậ nhật theo tính tă tăng và các đối đối tượ ng ng mớ i có thể thể đượ c đưa đưa vào các phân cụ cụm liên quan r ất dễ dàng bằ bằng việ việc lần theo mộ một đườ ng ng dẫn nào đó tớ tớ i vị vị trí thích hợ hợ p. STC [5] và DC- tree [24] là hai ví dụ dụ về các thuậ thuật toán này. Nói theo cách khác các thuậ thuật toán phân chia đồng đồng loạ loạt thườ th ườ ng ng yêu cầ cầu việ vi ệc cậ p nhậ nhật đồng đồng loạ loạt về ý ngh ĩ ngh ĩ a của các phân cụ cụm và thậ thậm chí là các đối đối tượ ng ng thành viên. Việ Việc cậ cậ p nhậ nhật có tính tă tăng là r ất cầ cần thiế thiết vớ vớ i các ứng dụ dụng hoạ hoạt động động on-line. Một phươ phươ ng ng pháp nhằ nhằm thi hành thuậ thuật toán phân cụ cụm là phân hoạ hoạch tậ tậ p tài liệ liệu vào k tậ p con hoặ hoặc các cụ cụm D1 , …, Dk để làm cự cực titiểểu khoả khoảng cách bên trong cụ cụm cụm
d 1 , d 2 ∈ D i
d 1 , d 2 ∈Di
ρ ( d 1 , d 2 ) .
i
∑∑ i
∑∑
δ ( d 1 , d 2 ) hoặ hoặc
làm cự cực đại đại sự tươ ng ng tự bên trong
Nế Nếu mộ một biể biểu diễ diễn bên trong củ của các tài liệ liệu là có giá tr ị thì biể biểu diễ diễn này cũng đượ c dùng để xác định định một biể biểu diễ di ễn của các cụ cụm liên quan đến đến cùng mô hình. Chẳ Chẳng hạn, nếu các tài liệ liệu đượ c biể biểu diễ diễn sử dụng mô hình không gian vector, mộ một cụ cụm củ của các tài liệ liệu có thể thể đượ c biể biểu diễ diễn bở bở i tr ọng tâm (trung bình) của các tài liệ liệu vector. Khi mộ một biể biểu diễ di ễn cụ c ụm là có giá tr ị, mộ m ột mục tiêu có thể thể phân hoạ hoạch D thành D1 , …,Dk để cực ti t iểu hóa đại đại hóa
∑∑ i
∑∑ i
d ∈ D i
δ ( d , D i ) hoặ hoặc cự c ực
d ∈ Di
ρ ( d , D i ) trong đó D là biể biểu diễ diễn vector củ của cụm i. Có thể thể i
xem xét tớ tớ i việ việc gán tài liệ liệu d cho cụ cụm i như như việ việc đặt đặt mộ một giá tr ị Boolean zd,i là 1. Điều này có thể thể phát sinh ra việ việc phân cụ cụm mềm tạ t ại đó zd,i là một số thự thực từ 0 đến đến 1. Trong bố bối cảnh như như vậy, ta có thể thể mu muốốn tìm zd,i để cực titiểểu hóa
∑∑ i
δ (d , Di ) hoặ hoặc cự cực đại đại hóa d ∈Di
∑∑ i
d ∈ Di
ρ ( d , D i ) .
Việ Việc phân hoạ hoạch có thể thể thự thực hiệ hiện theo hai cách. Bắ Bắt đầu đầu vớ vớ i mỗ mỗi tài liệ liệu trong mộ một nhóm củ của nó và k ết hợ h ợ p các nhóm tài liệ liệu lạ lại vớ v ớ i nhau cho đến đến khi số số các phân hoạ hoạch là phù hợ hợ p; cách này gọ g ọi là phân cụ cụm bottom-up. Cách khác là có
- 34 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
thể khai báo số các phân hoạch mong muốn và gán các tài liệu vào các phân hoạch; cách này gọi là phân cụm top-down. Có thể xem xét một k ỹ thuật phân cụm bottom-up dựa vào quá trình lặ p lại việc tr ộn các nhóm của các tài liệu tươ ng tự nhau cho đến khi đạt đượ c số cụm mong muốn, và một k ỹ thuật top-down sẽ làm mịn dần bằng cách gắn các tài liệu vào các cụm đượ c thiết đặt tr ướ c. K ỹ thuật bottom-up thườ ng chậm hơ n, nhưng có thể đượ c sử dụng trên một tậ p nhỏ các mẫu để khở i tạo các cụm ban đầu tr ướ c khi thuật toán top-down tiến hành 2.5. Các yêu c ầu đối v ới các thuật toán phân c ụm Web
Trong các thảo luận tr ướ c đó về các thuật toán phân cụm việc cần phải nhận ra các yêu cầu cho các thuật toán phân cụm tài liệu là cần thiết, việc này sẽ giúp chúng ta thiết k ế ra các giải pháp hiệu quả và thiết thực hơ n hướ ng tớ i các yêu cầu này. Tiế p đây là một danh sách của các yêu cầu này.
2.5.1. Tách các thông tin đặc tr ưng Vấn đề cốt lõi của bất cứ vấn đề phân cụm nào nằm hầu hết ở việc lựa chọn các tậ p đại diện của các đặc tr ưng của mô hình dữ liệu. Tậ p các đặc tr ưng đượ c tách ra cần phải có đủ thông tin để nó có thể biểu diễn dữ liệu thực sự đang đượ c phân tích. Ngượ c lại, dù thuật toán tốt đến mấy, nó sẽ vô dụng nếu như sử dụng những đặc tr ưng không chứa thông tin. Hơ n nữa, việc làm giảm số lượ ng đặc tr ưng là r ất quan tr ọng vì số chiều của không gian đặc tr ưng luôn có tác động đến hiệu suất của thuật toán. Một so sánh đượ c hoàn thành bở i Yang và Pedersen [20] về hiệu quả của các phươ ng pháp tách đặc tr ưng trong việc chia loại văn bản đã chỉ ra r ằng phươ ng pháp ngưỡ ng tần suất xuất hiện tài liệu (DF) cho những k ết quả tốt hơ n các phươ ng thức khác và cũng cần ít các xử lý tính toán hơ n. Hơ n nữa, như đã đề cậ p ở trên, Wong và Fu [24] đã chỉ ra r ằng họ có thể làm giảm số lượ ng từ đại diện bằng việc chỉ chọn các từ có ý ngh ĩ a trong tậ p tài liệu. Mô hình tài liệu cũng thực sự r ất quan tr ọng. Hầu hều các mô hình hay đượ c sử dụng đều dựa trên các từ khác nhau đượ c tách lọc từ tậ p tất cả các tài liệu và tính toán tần suất xuất hiện của từ cũng như tần suất xuất hiện của tài liệu như đã nói ở phần tr ướ c. Một mô hình tài liệu khác là mô hình dựa trên cụm từ,
- 35 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
như mô hình đượ c Zamir và Eztioni [5] đưa ra trong đó chúng tìm kiếm các cụm từ hậu tố có cùng điểm chung trong tài liệu sử dụng cấu trúc cây hậu tố.
2.5.2. Phân cụm chồng lặp Vớ i tậ p dữ liệu bất k ỳ, đặc biệt là trong l ĩ nh vực web, sẽ có xu hướ ng chứa một hoặc nhiều chủ đề. Khi phân cụm tài liệu, việc đưa những tài liệu vào các phân cụm liên quan vớ i nó là cần thiết, điều này có ngh ĩ a là vài tài liệu có thể thuộc vào nhiều hơ n một phân cụm. Một mô hình phân cụm chồng lặ p cho phép việc phân cụm tài liệu vớ i nhiều chủ đề này. Có r ất ít thuật toán cho phép phân cụm chồng lặ p trong đó có phân cụm mờ [8] và cây hậu tố [5]. Trong vài tr ườ ng hợ p nếu việc mỗi tài liệu bắt buộc phải thuộc một phân cụm, một thuật toán không chồng lặ p sẽ đượ c sử dụng hoặc một tậ p của các phân cụm độc lậ p có thể đượ c tạo ra bở i phân cụm mờ sau khi làm rõ các mối liên hệ giữa các phân cụm.
2.5.3. Hiệu suất Trong l ĩ nh vực web, mỗi một câu lệnh tìm kiếm có thể tr ả về hàng tr ăm và thỉnh thoảng là hàng nghìn trang web. Việc phân cụm các k ết quả này trong một thờ i gian chấ p nhận đượ c là r ất cần thiết. Cần phải chú ý r ằng một vài hệ thống đã giớ i thiệu chỉ phân cụm trên các đoạn tin đượ c tr ả lại trên hầu hết các máy tìm kiếm chứ không phải toàn bộ trang web [5]. Đây là một chiến thuật hợ p lý trong việc phân cụm k ết quả tìm kiếm nhanh nhưng nó không chấ p nhận đượ c vớ i phân cụm tài liệu vì các đoạn tin không cung cấ p đầy đủ thông tin về nội dung thực sự của những tài liệu này. Một thuật toán phân cụm online nên có khả năng hoàn thành trong thờ i gian tuyến tính nếu có thể. Một thuật toán offline thườ ng hướ ng tớ i việc đưa ra các phân cụm có chất lượ ng cao hơ n.
2.5.4. Khả năng khử nhiễu Một vấn đề có thể xảy ra vớ i nhiều thuật toán phân cụm đó là sự xuất hiện của nhiễu và các dữ liệu thừa. Một thuật toán phân cụm tốt phải có khả năng giải quyết những kiểu nhiễu này và đưa ra các phân cụm có chất lượ ng cao và không bị ảnh hưở ng bở i nhiễu. Trong phân cụm có thứ bậc, ví dụ các tính toán khoảng cách láng giềng gần nhất và láng giềng xa nhất, r ất nhạy cảm vớ i các dữ
- 36 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
liệu thừa do đó không nên đượ c sử dụng nếu có thể. Phươ ng thức trung bình k ết nối là thích hợ p nhất vớ i dữ liệu bị nhiễu.
2.5.5. Tính tăng Một đặc tr ưng r ất đáng quan tâm trong các l ĩ nh vực như web đó là khả năng cậ p nhật phân cụm có tính tăng. Những tài liệu mớ i cần phải đượ c đưa vào các phân cụm tươ ng ứng mà không phải phân cụm lại toàn bộ tậ p tài liệu. Những tài liệu đã đượ c chỉnh sửa nên đượ c xử lý lại và đưa đến các phân cụm tươ ng ứng nếu có thể. Thật đáng để nhớ r ằng tính tăng càng hiệu quả thì hiệu suất cũng đượ c cải thiện.
2.5.6. Việc biểu diễn kết quả Một thuật toán phân cụm là tốt nếu nó có khả năng biểu diễn một sự mô tả của các phân cụm mà nó đưa ra ngắn gọn và chính xác vớ i ngườ i sử dụng. Các tổng k ết của phân cụm nên có đủ tiêu biểu về nội dung tươ ng ứng để ngườ i sử dụng có thể đưa ra quyết định nhanh xem phân cụm nào mà họ cảm thấy quan tâm. 2.6. Bài toán tách t ừ t ự động ti ến g Vi ệt
Đối vớ i tiếng Anh, ta tách từ dựa vào khoảng tr ắng. Tuy nhiên đối vớ i tiếng Việt, công việc này tươ ng đối khó khăn. Cấu trúc tiếng Việt r ất phức tạ p, không chỉ đơ n thuần dựa vào khoảng tr ắng để tách từ. Hiện nay có r ất nhiều công cụ để tách từ tiếng Việt, mỗi phươ ng pháp có ưu, khuyết điểm riêng và tất nhiên, chưa thể coi r ằng là phươ ng pháp tách từ nào là tốt nhất. Phần này trình bày một vài phươ ng pháp tách từ tiếng Việt. Nhưng tr ướ c đó chúng ta sẽ xem xét một số khó khăn trong phân cụm trang Web tiếng Việt.
2.6.1. Một số khó khăn trong phân cụm trang Web tiếng Việt Hiện nay, chúng ta đã quen thuộc vớ i r ất nhiều công cụ hỗ tr ợ việc tìm kiếm thông tin như Google, Yahoo Search, AltaVista, ... Tuy nhiên, đây là công cụ của ngườ i nướ c ngoài nên chúng chỉ giải quyết tốt đối vớ i các yêu cầu của họ. Chúng ta cũng có một số công cụ hỗ tr ợ tìm kiếm thông tin tiếng Việt như: Vinaseek, Netnam, ... Các công cụ này cũng tách từ chủ yếu dựa vào khoảng
- 37 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
tr ắng nên việc tìm kiếm cũng chưa đượ c cải thiện. Nhìn chung, để xây dựng một hệ thống tìm kiếm thông tin Tiếng Việt, chúng ta gặ p khó khăn trong việc tách từ Tiếng Việt và xác định bảng mã tiếng Việt. Đồng thờ i đó cũng chính là khó khăn trong việc phân cụm các tài liệu bằng tiếng Việt vì bướ c đầu tiên của phân cụm cũng chính là tách từ tiếng Việt [1]. V ấn đề bảng mã Ti ến g Vi ệt
Không như tiếng Anh, tiếng Việt có r ất nhiều bảng mã đòi hỏi phải xử lý. Một số công cụ tìm kiếm tiếng Việt hỗ tr ợ bảng mã r ất tốt như Vinaseek, hỗ tr ợ mọi bảng mã (VNI, TCVN3, ViQR, ...) Khó khăn trong tách t ừ Ti ế ng Vi ệt
Có thể nói tách từ là giai đoạn khó khăn nhất khi xây dựng một hệ tìm kiếm thông tin Tiếng Việt và phân cụm tài liệu Tiếng việt. Đối vớ i tiếng Anh, việc xác định từ chỉ đơ n giản dựa vào khoảng tr ắng để tách từ. Ví dụ, câu “I am a student” sẽ đượ c tách thành 4 từ: I, am, a, student. Tuy nhiên, đối vớ i Tiếng Việt, tách dựa vào khoảng tr ắng chỉ thu đượ c các tiếng. Từ có thể đượ c ghép từ một hay nhiều tiếng. Từ phải có ý ngh ĩ a hoàn chỉnh và có cấu tạo ổn định. Câu “Tôi là một sinh viên” đượ c tách thành 4 từ: Tôi, là, một, sinh viên. Trong đó, từ “sinh viên” đượ c hình thành từ hai tiếng “sinh” và “viên”. Hiện nay có r ất nhiều phươ ng pháp đượ c sử dụng để tách từ Tiếng Vịêt. Tuy nhiên, vớ i sự phức tạ p của ngữ pháp Tiếng Việt nên chưa có phươ ng pháp nào đạt đượ c chính xác 100%. Và việc lựa chọn phươ ng pháp nào là tốt nhất cũng đang là vấn đề tranh cãi. Các khó kh ăn khác
Tiếng Việt có các từ đồng ngh ĩ a nhưng khác âm. Các công cụ hiện nay không hỗ tr ợ việc xác định các từ đồng ngh ĩ a. Vì vậy, k ết qủa tr ả về sẽ không đầy đủ. Ngượ c lại, có những từ đồng âm khác ngh ĩ a. Các hệ thống sẽ tr ả về các tài liệu có chứa các từ đã đượ c tách trong câu hỏi mà không cần xác định chúng có thực sự liên quan hay không. Vì vậy, k ết quả tr ả về sẽ không chính xác. Một số từ xuất hiện r ất nhiều nhưng không có ý ngh ĩ a trong tài liệu. Các từ như: và, vớ i, nhưng, ... có tần số xuất hiện r ất lớ n trong bất cứ văn bản nào.
- 38 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
Nếu tìm cách tr ả về các tài liệu có chứa những từ này sẽ thu đượ c k ết quả vô ích, không cần thiết. Do đó, chúng ta cần tìm cách loại bỏ các từ này tr ướ c khi tìm kiếm. 2.6.2. Tiếng và Từ trong tiếng Việt
g là âm tiết. Âm tiết bao gồm những đơ n vị ở bậc Về mặt ngữ âm, ti ến thấ p hơ n gọi là âm vị. Mỗi âm vị đượ c ghi bằng một ký tự gọi là chữ. Về mặt ngữ ngh ĩ a, tiếng là đơ n vị nhỏ nhất có ngh ĩ a, nhưng cũng có một số tiếng không có ngh ĩ a. Về giá tr ị ngữ pháp, tiếng là đơ n vị cấu tạo từ. Sử dụng tiếng để tạo thành từ, ta có hai tr ườ ng hợ p sau: - Từ một tiếng: gọi là từ đơ n. Tr ườ ng hợ p này một từ chỉ có một tiếng. Ví dụ như: ông, bà, cha, mẹ, ... - Từ hai tiếng tr ở lên: gọi là từ phức. Tr ườ ng hợ p này một từ có thể có hai hay nhiều tiếng tr ở lên. Ví dụ như: xã hội, an ninh, hợ p tác xã, ... T ừ là
đơ n vị nhỏ nhất để tạo thành câu. Trong đặt câu chúng ta dùng từ chứ không dùng tiếng.
2.6.3. Phương pháp tách từ tự động tiếng Việt fnTBL Ý tưở ng chính của phươ ng pháp học dựa trên sự biến đổi (TBL) là để giải quyết một vấn đề nào đó ta sẽ áp dụng các phép biến đổi, tại mỗi bướ c, phép biến đổi nào cho k ết quả tốt nhất sẽ đượ c chọn và đượ c áp dụng lại vớ i vấn đề đã đưa ra. Thuật toán k ết thúc khi không còn phép biến đổi nào đượ c chọn. Hệ thống fnTBL (Fast Transformation-based learning) gồm hai tậ p tin chính [1]: - T ậ p tin d ữ liệu h ọc (Training): Tậ p tin dữ liệu học đượ c làm thủ công, đòi hỏi độ chính xác. Mỗi mẫu (template) đượ c đặt trên một dòng riêng biệt. Ví dụ: tậ p dữ liệu học cho việc xác định từ loại của một văn bản có thể đượ c định dạng như sau: Công ty danhtu ISA danhturieng bị dongtu
- 39 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
kiểm tra. dongtu Trong ví dụ này mỗi mẫu gồm hai phần: phần đầu tiên là từ, phần thứ hai là từ loại tươ ng ứng. - T ậ p tin chứ a các mẫ u lu ật (rule template): Mỗi luật đượ c đặt trên một dòng, hệ thống fnTBL sẽ dựa vào các mẫu luật để áp dụng vào tậ p dữ liệu học. Ví dụ: chunk_ -2 chunk_-1 => chunk Áp dụng đối vớ i việc xác định từ loại, vớ i chunk_-2 = động từ, chunk_-1 = số từ, chunk = danh từ thì luật trên có ý ngh ĩ a như sau: nếu hai từ tr ướ c đó là động từ và số từ thì chuyển từ loại hiện hành thành danh từ.
Áp dụng để tách từ Tiếng Việt: Ta có thể áp dụng phươ ng pháp fnTBL để tách từ Tiếng Việt, chỉ cần thay đổi một số định dạng cho phù hợ p. - Xây dựng tậ p tin dữ liệu học: Tậ p tin dữ liệu cho việc tách từ Tiếng Việt có dạng như sau: Vì B sao B công B ty I ISA B bị B đặt B vào B tình B tr ạng I ... Các ký tự B, I gọi là các chunk có ý ngh ĩ a như sau:
- 40 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
Tiếng có chunk = B ngh ĩ a là tiếng đó bắt đầu một từ (begin) Tiếng có chunk = I ngh ĩ a là tiếng đó nằm trong một từ (inside). - Xây dựng tậ p tin chứa các mẫu luật: Sau khi tìm hiểu về từ trong Tiếng Việt, ta xây dựng đượ c 3 luật áp dụng cho tách từ tiếng Việt như sau: chunk_0 word_0 => chunk chunk_0 word_-1 word_0 => chunk chunk_0 word_0 word_1 => chunk a, Quá trình học:
(1) Từ tậ p dữ liệu học xây dựng từ điển các từ (2) Khở i tạo các từ (3) Rút ra tậ p luật Ở bướ c (1) từ tậ p dữ liệu học đã có sẵn, sử dụng phươ ng pháp thống kê → ta sẽ có từ điển các tiếng (Lexicon). Các tiếng có thể xuất hiện trong các từ vớ i các chunk khác nhau, ta sẽ ghi nhận lại số lần xuất hiện của mỗi tiếng vớ i các chunk tươ ng ứng. Ví dụ, đối vớ i từ “công ty” thì tiếng “công” có chunk = B nhưng trong từ “của công” thì tiếng công có chunk=I. Ở bướ c (2) từ tậ p dữ liệu học, tạo ra tậ p dữ liệu học không có chunk bằng cách xoá hết các chunk tươ ng ứng. Tậ p dữ liệu mớ i này sẽ đượ c sử dụng để khở i tạo lại các chunk thông dụng nhất dựa vào từ điển. Ở bướ c (3) so sánh tậ p dữ liệu học vớ i tậ p dữ liệu đang xét, dựa vào các mẫu luật đã cho, ta sẽ rút ra đượ c các luật ứng viên, ứng vớ i mỗi luật ứng viên ta lại áp dụng vào tậ p dữ liệu đang xét và tính điểm cho nó (dựa vào số lỗi phát sinh khi so sánh vớ i tậ p dữ liệu học là tậ p dữ liệu chuẩn). Chọn luật có điểm cao nhất và lớ n hơ n một ngưỡ ng cho tr ướ c để đưa vào danh sách luật đượ c chọn. K ết quả ta sẽ đượ c một tậ p các luật đượ c chọn. Các luật có dạng như sau: SCORE: 414 RULE: chunk_0=B word_0=tế => chunk=I SCORE: 312 RULE: chunk_0=B word_-1=của word_0=công => chunk=I SCORE: 250 RULE: chunk_0=B word_0=hoá => chunk=I
- 41 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
SCORE: 231 RULE: chunk_0=B word_0=động => chunk=I SCORE: 205 RULE: chunk_0=B word_0=nghiệ p => chunk=I SCORE: 175 RULE: chunk_0=B word_-1=phát word_0=triển => chunk=I SCORE: 133 RULE: chunk_0=B word_-1=xã word_0=hội => chunk=I SCORE: 109 RULE: chunk_0=B word_-1=đầu word_0=tư => chunk=I SCORE: 100 RULE: chunk_0=B word_0 = thể => chunk=I Ở dòng 2 ta có luật: nếu từ hiện hành là “công” (word_0=công) và từ tr ướ c đó là “của” (word_-1=của) và chunk của từ hiện hành là B (chunk_0=B) thì chuyển chunk của từ hiện hành là I, ngh ĩ a là “của công” phải là một từ. Toàn bộ quá trình học đượ c mô tả như sau:
Hình 4. Quá trình học
- 42 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
b, Xác định t ừ cho tài liệu mớ i
(1) Tài liệu mớ i đưa vào phải có địng dạng giống như tậ p tin dữ liệu học, ngh ĩ a là mỗi tiếng trên một dòng. (2) Dựa vào từ điển, gán chunk thông dụng nhất cho các tiếng trong tài liệu mớ i. (3) Áp dụng các luật có đượ c từ giai đoạn học vào tài liệu đang xét ta sẽ tách đượ c các từ hoàn chỉnh. Giai đoạn xác định từ cho tài liệu mớ i đượ c mô tả như sau:
Hình 5. Giai đoạn xác định từ cho tài liệu mớ i
2.6.4. Phương pháp Longest Matching Phươ ng pháp Longest Matching tách từ dựa vào từ điển có sẵn [1]. Theo phươ ng pháp này, để tách từ tiếng Việt ta đi từ trái qua phải và chọn từ có nhiều âm tiết nhất mà có mặt trong từ điển, r ồi cứ tiế p tục cho từ k ế
- 43 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
tiế p cho đến hết câu. Vớ i cách này, ta dễ dàng tách đượ c chính xác các ngữ/câu như: “hợ p tác|mua bán”, “thành lậ p|nướ c|Việt Nam|dân chủ|cộng hoà”... Tuy nhiên, phươ ng pháp này sẽ tách từ sai trong tr ườ ng hợ p như: “học sinh học sinh học” đượ c tách thành “học sinh|học sinh|học”, “một ông quan tài giỏi” đượ c tách thành “một|ông|quan tài|giỏi” , “tr ướ c bàn là một ly nướ c” đượ c tách thành “tr ướ c|bàn là|một|ly|nướ c”,...
2.6.5. Kết hợp giữa fnTBL và Longest Matching Chúng ta có thể k ết hợ p giữa hai phươ ng pháp fnTBL và Longest Matching để có đượ c k ết quả tách từ tốt nhất. Đầu tiên ta sẽ tách từ bằng Longest Matching, đầu ra của phươ ng pháp này sẽ là đầu vào của phươ ng pháp fnTBL học luật. 2.7. K ết luận chươ ng 2
Trong chươ ng này, các nội dung liên quan tớ i phân cụm tài liệu Web đã đượ c trình bày một cách khái quát nhất giúp có một cái nhìn tổng quan để bắt tay vào thực hiện giải quyết bài toán. Đồng thờ i hướ ng giải quyết khó khăn khi phân cụm tài liệu Web tiếng Việt cũng đã đượ c trình bày. Trên cơ sở đó, luận văn nghiên cứu tậ p trung vào các thuật toán phân cụm Web có tính tăng điển hình.
- 44 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
CHƯƠNG 3 - THUẬT TOÁN PHÂN CỤM CÂY HẬU TỐ VÀ THUẬT TOÁN CÂY PHÂN CỤM TÀI LIỆU 3.1. Gi ới thi ệu v ề thuật toán phân c ụm trang Web có tính t ăng
Chúng ta đang quan tâm giải quyết bài toán phân cụm tài liệu cho các trang Web. Theo truyền thống, nhiệm vụ phân lớ p tài liệu đượ c tiến hành thủ công. Để gán một tài liệu vớ i một lớ p thích hợ p, ngườ i thực hiện đầu tiên sẽ phân tích các nội dung của tài liệu. Bở i vậy một số lượ ng lớ n nỗ lực của con ngườ i sẽ bị yêu cầu. Đã có một vài công việc nghiên cứu hướ ng dẫn việc phân cụm tự động văn bản text. Một hướ ng đi là phân lớ p văn bản text bằng cách sử dụng các k ỹ thuật học máy. Tuy nhiên, các thuật toán này dựa trên một bộ ví dụ huấn luyện đúng và sai cho học các lớ p văn bản. Chất lượ ng của k ết quả các lớ p muốn cao thì phải phụ thuộc vào các ví dụ huấn luyện phù hợ p. Có r ất nhiều thuật ngữ và các lớ p trên World Wide Web (hoặc chỉ là Web), và r ất nhiều thuật ngữ và khái niệm đượ c tạo ra hằng ngày. Thật là không thể để có các chuyên gia trong l ĩ nh vực này để định ngh ĩ a các ví dụ huấn luyện để học một ngườ i phân loại cho từng lớ p theo cách như trên. Để tiến hành xử lý phân lớ p tài liệu tự động, các k ỹ thuật phân cụm đã đượ c sử dụng. Sự thu hút của phân tích phân cụm là ở việc nó có thể tìm thấy các cụm tr ực tiế p từ dữ liệu đưa vào mà không cần nhờ vào bất cứ thông tin nào đã đượ c xác định tr ướ c, chẳng hạn như các ví dụ huấn luyện cung cấ p bở i các chuyên gia trong l ĩ nh vực. Trong chươ ng này, luận văn xin trình bày một số các thuật toán phân cụm thích hợ p cho việc phân cụm trang Web bở i các đặc tính tăng của chúng, cụ thể đó là thuật toán phân cụm cây hậu tố (STC) và thuật toán sử dụng cây phân cụm tài liệu (DC-Tree).
- 45 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
3.2. Thuật toán phân c ụm cây hậu t ố
3.2.1. Mô tả Cây hậu tố (hay còn gọi là cây PAT hoặc gần đây có thể đượ c gọi là cây vị trí) là một cấu trúc dữ liệu biểu diễn các hậu tố của xâu ký tự nhất định cho phép thực hiện một cách đặc biệt nhanh chóng nhất nhiều phép toán quan tr ọng trên xâu. Cây hậu tố cho một xâu ký tự S là một cây có cạnh và nhãn là các xâu, thí dụ hậu tố eAHC của S phù hợ p chỉ có một con đườ ng từ gốc của cây tớ i một lá. Do đó chỉ có một cây cơ số cho các hậu tố của S. Việc xây dựng một cây cho xâu ký tự S mất thờ i gian và không gian tuyến tính vớ i độ dài của S . Mỗi một lần xây dựng, một vài thao tác có thể đượ c thực hiện nhanh chóng, ví dụ như việc xác định vị trí một xâu con trong S , xác định vị trí của một xâu con nếu cho phép một số chắc chắn các lỗi, xác định vị trí các xâu tươ ng ứng cho một mẫu công thức thông thườ ng,... Các cây hậu tố cũng cung cấ p một trong các giải pháp có thờ i gian tuyến tính cho vấn đề tìm xâu con thông thườ ng. Tuy nhiên việc tăng tốc độ sẽ dẫn tớ i tăng chi phí không gian bộ nhớ do phải lưu tr ữ thêm cây hậu tố của một xâu hơ n so việc lưu tr ữ xâu đó.
Hình 6. Cây hậu tố cho xâu BANANA Cây hậu tố cho xâu BANANA đượ c thêm $ vào cuối. Có sáu con đườ ng từ gốc tớ i một lá (đượ c chỉ ở trên như các hộ p) tươ ng ứng vớ i 6 hậu tố A$, NA$,
- 46 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
, , và BANANA$. Các chữ số trong các hộ p chỉ ra vị trí bắt đầu của hậu tố tươ ng ứng. Hậu tố đượ c liên k ết bở i mũi tên kéo theo ANA$ NANA$ ANANA$
3.2.2. Thuật toán STC Thuật toán phân cụm cây hậu tố Suffix Tree Clustering (STC) [5] là một thuật toán phân cụm thờ i gian tuyến tính dựa trên việc nhận dạng các cụm từ chung của các văn bản. Một cụm từ trong ngữ cảnh này là một chuỗi thứ tự của một hoặc nhiều từ. Chúng ta định ngh ĩ a một cụm cơ bản (base cluster) là một tậ p các văn bản có chia sẻ một cụm từ chung. STC có 3 bướ c thực hiện logic: (1) “Làm sạch” văn bản, (2) định ngh ĩ a các cụm cơ bản sử dụng một cây hậu tố, và (3) k ết hợ p các cụm cơ bản vào các cụm.
Bướ c 1: Tiền xử lý (Pro-Precessing). Trong bướ c này, các chuỗi của đoạn văn bản biểu diễn mỗi tài liệu đượ c chuyển đổi sử dụng các thuật toán chặt (Chẳng hạn như loại bỏ đi các tiền tố, hậu tố, chuyển từ số nhiều thành số ít). Phân ra thành từng câu (xác định các dấu chấm câu, các thẻ HTML). Bỏ qua các từ tố không phải là từ (chẳng hạn như kiểu số, các thẻ HTML và các dấu câu). Các chuỗi tài liệu nguyên gốc đượ c giữ lại, cùng vớ i các con tr ỏ tại vị trí bắt đầu của mỗi từ trong chuỗi chuyển đổi đến vị trí của nó trong chuỗi gốc. Việc có các con tr ỏ nhằm giúp hiển thị đượ c đoạn văn bản gốc từ các nhóm từ khóa đã chuyển đổi. Bướ c 2: Xác định các cụm cơ sở . Việc xác định các cụm cơ sở có thể đượ c xem xét như việc tạo một chỉ số của các nhóm từ cho tậ p tài liệu. Điều này đượ c thực hiện hiệu quả thông qua việc sử dụng cấu trúc dữ liệu gọi là cây hậu tố. Cấu trúc dữ liệu này có thể đượ c xây dựng trong thờ i gian tuyến tính vớ i kích cỡ của tậ p tài liệu, và có thể đượ c xây dựng tăng thêm cho các tài liệu đang đượ c đọc vào. Một cây hậu tố của một chuỗi S là một cây thu gọn chứa đựng tất cả các hậu tố của S. Thuật toán coi các tài liệu như các chuỗi của các từ, không phải của các ký tự vì vậy các hậu tố chứa đựng một hoặc nhiều từ. Mô tả cụ thể về cây hậu tố như sau: 1. Một cây hậu tố là cây có gốc và đượ c định hướ ng. 2. Mỗi node trong có tối thiểu 2 con.
- 47 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
3. Mỗi cạnh đượ c gắn nhãn là một chuỗi con của S và chuỗi đó khác r ỗng. Nhãn của một node đượ c xác định thông qua chuỗi nối tiế p của các nhãn đượ c gắn cho các cạnh từ gốc tớ i node đó. 4. Không có hai cạnh từ một node đượ c gắn nhãn bắt đầu vớ i từ giống nhau. 5. Vớ i mỗi hậu tố s của S , tồn tại một suffix-node có nhãn là s. Cây hậu tố của một tậ p các chuỗi là một cây thu gọn chứa đựng tất cả các hậu tố của tất cả các chuỗi trong tậ p tài liệu. Mỗi suffix-node đượ c đánh dấu để chỉ ra chuỗi mà nó thuộc về. Nhãn của suffix-node chính là một hậu tố của chuỗi đó. Để phân cụm ta sẽ xây dựng cây hậu tố của tất cả các câu của tất cả các tài liệu trong tậ p tài liệu. Chẳng hạn có thể xây dựng cây hậu tố cho tậ p các chuỗi là {“cat ate cheese”, “mouse ate cheese too”, “cat ate mouse too”}. - Các node của cây hậu tố đượ c vẽ bằng hình tròn - Mỗi suffix-node có một hoặc nhiều hộ p gắn vào nó để chỉ ra chuỗi mà nó thuộc về. - Mỗi hộ p có 2 số (số thứ nhất chỉ ra chuỗi mà hậu tố thuộc về, số thứ hai chỉ ra hậu tố nào của chuỗi gắn nhãn cho suffix-node)
Hình 7: Cây hậu tố của các chuỗi “cat ate cheese”, “mouse ate cheese too”, “cat ate mouse too”.
Một số node đặc biệt a → f. Mỗi một node này biểu diễn cho một nhóm tài liệu và một nhóm từ chung đượ c thiết đặt cho tất cả tài liệu. Nhãn của node biểu diễn nhóm từ chung. Tậ p các tài liệu gắn nhãn suffix-node là k ế thừa của các node tạo bở i nhóm tài liệu. Do đó, mỗi node biểu diễn một cụm cơ sở (base
- 48 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
cluster). Ngoài ra, tất cả các cụm cơ sở có thể (chứa 2 hoặc nhiều tài liệu) xuất hiện như các node trong cây hậu tố. Bảng sau liệt kê các node a-> f trong hình 1 và các cụm cơ sở tươ ng ứng. Bảng 1: Sáu node từ hình 14 và các cụm cơ sở tương ứng. Node Phrase Documents a cat ate 1,3 b ate 1,2,3 c cheese 1,2 d mouse 2,3 e too 2,3 f ate cheese 1,2
Mỗi cụm cơ sở đượ c gán một điểm số là một hàm của số lượ ng các tài liệu cụm đó chứa đựng, và các từ hình thành nên nhóm từ của nó. Điểm số s(B) của cụm cơ sở B vớ i nhóm từ P là: s(B) = |B| . f(|P|) (*)
Trong đó: |B| là số lượ ng của các tài liệu trong cụm cơ sở B, |P| là số lượ ng các từ có trong nhóm từ P mà có điểm số khác 0. Việc xét đến điểm số của nhóm từ P theo ngh ĩ a như sau: Thuật toán cài đặt một danh sách stoplist bao gồm các từ đặc tr ưng trên internet dùng để xác định các từ khác. ( Ví dụ “previous”, “java”, “frames”, “mail”). Các từ xuất hiện trong danh sách stoplist đó hay các từ xuất hiện quá ít trong một nhóm từ (3 hoặc ít hơ n) hay quá nhiều (hơ n 40% của tậ p tài liệu) sẽ đượ c gán điểm số 0 cho nhóm từ. Hàm f trong công thức (*) thực hiện trên các nhóm từ đơ n, nó là tuyến tính cho các nhóm từ có độ dài từ 2 đến 6 và là hằng số vớ i các nhóm có độ dài lớ n hơ n.
Bướ c 3: K ết nối các cụm cơ sở Các tài liệu có thể chia sẻ nhiều hơ n một nhóm từ. K ết quả là, tậ p hợ p tài liệu của các cụm cơ sở khác nhau có thể trùng lặ p và thậm chí là có thể là giống nhau. Để tránh việc có nhiều các cụm gần giống nhau. Tại bướ c thứ 3 này của thuật toán việc tr ộn các cụm cơ sở vớ i một sự trùng lặ p cao trong tậ p tài liệu của chúng (chú ý là các nhóm từ chung không xem xét trong bướ c này)
- 49 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
Thuật toán đưa ra một độ đo tính tươ ng tự giữa các cụm dựa trên việc trùng lặ p của tậ p tài liệu của chúng. Giả sử có hai cụm cơ sở Bm và B n vớ i kích cỡ là |Bm| và |Bn| tươ ng ứng. Và | Bm ∩ Bn| thể hiện số tài liệu chung của cả hai cụm, độ tươ ng tự giữa Bm và Bn là 1 nếu: +) | Bm ∩ Bn| / |Bm| > 0.5 và +) | Bm ∩ Bn| / |Bn| > 0.5 Ngượ c lại, độ tươ ng tự là 0. Hãy xem minh họa tiế p theo của ví dụ trong Hình 7. Ở đây mỗi node là các cụm cơ sở . Hai node đượ c nối vớ i nhau khi độ tươ ng tự là 1. Một cụm đượ c xác định là các thành phần đượ c ghép nối trong đồ thị cụm cơ sở . Mỗi một cụm sẽ bao gồm tậ p của tất cả các tài liệu của các cụm cơ sở trong nó.
Hình 7: Đồ thị các cụm cơ sở của ví dụ trong Hình 6 và b ảng 1.
Trong ví dụ này có một thành phần k ết nối, do đó có 1 cụm. Nếu giả sử r ằng từ ‘ate’ có trong danh sách stoplist, thì cụm cơ sở b sẻ bị loại ra bở i vì nó có chỉ số của nhóm từ là 0. Và do đó sẽ có 3 thành phần k ết nối trong đồ thị, thể hiện 3 cụm. Chúng ta thấy r ằng thờ i gian của việc tiền xử lý các tài liệu tại bướ c 1 của thuật toán STC hiển nhiên là tuyến tính vớ i kích thướ c tậ p tài liệu. Thờ i gian của việc thêm các tài liệu vào cây hậu tố cũng tuyến tính vớ i kích thướ c tậ p tài liệu theo thuật toán Ukkonen cũng như số lượ ng các node có thể bị ảnh hưở ng bở i việc chèn này. Do vậy thờ i gian tổng cộng của STC tuyến tính vớ i kích thướ c tậ p tài liệu. Hay thờ i gian thực hiện của thuật toán STC là O(n) trong đó n là kích thướ c của tậ p tài liệu.
- 50 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
3.3. Thuật toán phân c ụm sử d ụng cây phân c ụm tài li ệu
3.3.1. Giới thiệu Trong thuật toán phân cụm sử dụng cây phân cụm tài liệu, một tài liệu thông thườ ng đượ c biểu diễn bở i một vector đặc tr ưng. Một cách đặc tính, từng đặc tr ưng tươ ng ứng vớ i một từ khoá hoặc cụm từ xuất hiện trong tậ p tài liệu. Mỗi entry của vector lưu một tr ọng số cho đặc tr ưng tươ ng ứng của tài liệu. Sau khi trích chọn các vector đặc tr ưng của các tài liệu, chúng ta có thể áp dụng thuật toán phân cụm trên tậ p các vector như trong phân cụm dữ liệu kích thướ c lớ n thông thườ ng. Các lớ p tài liệu k ết quả thu đượ c cũng vớ i các đặc tr ưng tiêu biểu (ví dụ các từ khoá hoặc cụm từ khóa vớ i đủ hỗ tr ợ tài liệu (document support ) cho cụm) do đó trình bày cho ngườ i sử dụng. Trong luận văn này, tôi xin giớ i thiệu một cấu trúc cây gọi là DC-tree (Document Clustering Tree: Cây phân cụm tài liệu) có thể phân cụm các tài liệu mà không cần tậ p huấn luyện [24]. Vớ i DC-tree, một đối tượ ng dữ liệu đưa vào không bắt buộc phải chèn vào mức (vị trí) thấ p khi không tồn tạo một nút con tươ ng tự cho đối tượ ng dữ liệu. Điều này ngăn cản một vài dữ liệu không tươ ng tự từ việc đặt cùng nhau. K ết quả là thuật toán phân cụm dựa trên cấu trúc DCtree là ổn định vớ i yêu cầu đưa thêm tài liệu và dễ chấ p nhận các tài liệu “nhiễu”. Phươ ng thức này có thể hữu ích trong một số cách: (1) Cho việc tiền xử lý trong việc phân lớ p trang Web để ngườ i sử dụng có thể chọn lớ p thích hợ p tr ướ c khi tìm kiếm, việc này giúp ích việc tìm kiếm tr ở nên có tr ọng tâm hơ n và hiệu quả hơ n. (2) Cho việc phân lớ p tr ực tuyến online, để khi số lượ ng lớ n các k ết qủa tr ả lại từ một tìm kiếm, K ỹ thuật này có thể phân lớ p các k ết quả và cung cấ p tốt hơ n hướ ng dẫn cho ngườ i sử dụng trong các tìm kiếm trong tươ ng lai. (3) Cho việc phân lớ p trang Web có tính tăng sau khi cậ p nhật trên kho dữ liệu.
3.3.2. Trích chọn đặc tr ưng và phân cụm tài liệu Nhiệm vụ đầu tiên là nhận biết một phươ ng pháp trích chọn đặc tr ưng tốt thích hợ p cho môi tr ườ ng Web. Trong phần này, luận văn trình bày một phươ ng
- 51 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
pháp trích chọn đặc tr ưng. Ngoài ra, tài liệu và sự biểu diễn phân cụm tài liệu cũng sẽ đượ c mô tả. Cuối cùng, phươ ng pháp ướ c lượ ng chất lượ ng phân cụm cũng sẽ đượ c trình bày. a, Trích chọn đặc tr ưn g tài li ệu
Phươ ng pháp trích chọn đặc tr ưng cho thuật toán phân cụm tài liệu Web đượ c đưa ra không phụ thuộc vào tần xuất xuất hiện từ. Phươ ng pháp này cân bằng các yếu tố khác nhau để đạt đượ c sự k ết hợ p tốt nhất giữa độ hồi tưở ng và số các đặc tr ưng sử dụng cho biểu diễn tài liệu. Trong vấn đề của chúng ta phạm vi phân cụm mục tiêu để giúp đỡ trong việc lấy thông tin trong việc tìm kiếm bằng cách thu hẹ p phạm vi tìm kiếm. Trong một viễn cảnh, ngườ i sư dụng có thể không muốn quá nhiều phân cụm trong k ết quả. Đồng thờ i, các cụm quá lớ n hoặc quá nhỏ là không đượ c mong muốn. Các cụm quá lớ n không thể giúp thu hẹ p phạm vi tìm kiếm. Các cụm qúa nhỏ có thể làm tăng tổng số các cụm,và nó có thể thậm chí gây nên tr ạng thái “nhiễu”. Tham số k đượ c sử dụng để thiết lậ p một số xấ p xỉ trên cỡ của cụm. Do đó số các phân cụm là xấ p xỉ N/k , trong đó N là tổng số các tài liệu. Phươ ng pháp đượ c đề xuất bao gồm các bướ c sau: 1. Lấy ngẫu nhiên một tậ p con của các tài liệu vớ i cỡ m từ tậ p sao lục. 2. Trích tậ p các từ có xuất hiện ít nhất một lần trong các tài liệu. Xoá các từ k ết thúc và k ết nối các từ vào cùng một gốc bằng cách sử dụng k ỹ thuật lấ p đầy. 3. Đếm tần xuất tài liệu của các từ đã đượ c trích trong bướ c 2. 4. Đặt lower=k và upper=k 5. Lấy tất cả các từ vớ i tần xuất tài liệu trong giá tr ị từ lower và upper . 6. Kiểm tra nếu coverage ( độ hồi tưở ng) của các từ là lớ n hơ n ngưỡ ng định ngh ĩ a tr ướ c. Nếu vậy, dừng. Nếu không, đặt lower=lower-1 và upper=upper+1, và quay lại bướ c 5. Để trích chọn các đặc tr ưng tiêu biểu từ các tài liệu, chúng ta lựa chọn ngẫu nhiên một tậ p các tài liệu mẫu cho bướ c trích chọn đặc tr ưng trong bướ c 1. Một vài thử nghiệm [24] chỉ ra r ằng phươ ng pháp trích chọn đặc tr ưng này có thể trích ra một tậ p các đặc tr ưng tốt cho phân cụm tài liệu Web. Một danh sách các
- 52 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
từ k ết thúc thườ ng đượ c sử dụng để xoá các từ ít có ý ngh ĩ a. K ỹ thuật lấ p đầy thườ ng đượ c sử dụng để k ết nối các từ này trong dạng tươ ng tự. Bở i vì các vector đặc tr ưng ngắn nhất dẫn tớ i thờ i gian phân cụm ngắn hơ n, bướ c 4 và 6 cố gắng để làm nhỏ nhất số các đặc tr ưng và thu đượ c độ hồi tưở ng hợ p lý cho các đặc tr ưng. Thừa nhận ngườ i sử dụng muốn cụm k ết quả bao gồm khoảng k tài liệu.Trong tr ườ ng hợ p lý tưở ng, một đặc tr ưng cho một cụm sẽ xuất hiện chỉ trong cụm và do đó tần xuất tài liệu của của đặc tr ưng là k . Bở i vậy, đầu tiên chúng ta chọn các đặc tr ưng vớ i tần xuất tài liệu là bằng k , bằng cách thiết lậ p lower và upper bằng k trong bướ c 4. Khoảng giá tr ị {lower, upper } là tăng lên một cách lặ p lại trong bướ c 6 để bảo đảm đủ bảo phủ cho tậ p đặc tr ưng k ết quả. Chúng ta thấy r ằng N/k chỉ là một hướ ng dẫn phỏng đoán, số lượ ng thực tế các phân cụm của k ết quả phân cụm có thể không giống như N/k . Phươ ng pháp cũng sử dụng một ng ưỡ ng hồi t ưở ng để đảm bảo r ằng các đặc tr ưng đượ c chọn có đủ độ hồi tưở ng. Vớ i các thử nghiệm ([24]), chúng ta thấy r ằng 0.8 là giá tr ị ngưỡ ng hồi tưở ng khá tốt. b, Bi ểu di ễn tài li ệu
Trong thuật toán của chúng ta, một tài liệu ( Di) đượ c biểu diễn theo dạng sau: Di=(W ,ID i i), trong đó IDi là sự nhận dạng tài liệu có thể đượ c sử dụng để lấy tài liệu ( Di), và W i là vector đặc tr ưng của tài liệu: W i=(wi1,wi2,...,win). Do đó n là số các đặc tr ưng đã đượ c trích chọn, và wij là tr ọng số của đặc tr ưng thứ j, trong đó j Є {1,2,..,n}. Trong thuật toán của chúng ta, sự sắ p xế p tr ọng số nhị phân đượ c sử dụng. Đó là, wij =1 nếu Di bao gồm đặc tr ưng thứ j, ngượ c lại, wij =0. Như đã đề cậ p tại phần trích chọn đặc tr ưng phía trên, một trang Web điển hình không bao gồm nhiều từ mà tần xuất xuất hiện của một từ không biểu thị sự quan tr ọng trong thực tế của từ này. Bở i vậy, lượ c đồ tr ọng số nhị phân là thích hợ p nhất cho phạm vi vấn đề của chúng ta. c, Phân cụm tài li ệu (DC)
Một giá tr ị phân cụm tài liệu (DC- Document Cluster) là một bộ ba thông tin mà chúng ta duy trì bở i một tậ p các tài liệu trong cùng một cụm: (1) số các tài liệu (2) tậ p các nhận dạng tài liệu
- 53 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
(3) vector đặc tr ưng của phân cụm Định ngh ĩ a1: (DC) Cho N tài liệu trong một phân cụm: { D1 ,D2 ,...D N }, giá tr ị DC của một nút đượ c định ngh ĩ a như một bộ ba: DC = (N,ID,W), trong đó N là số lượ ng các tài liệu trong cụm, ID là tậ p các nhận dạng tài liệu của các tài liệu trong cụm, ví dụ ID={ ID1 ,ID2 ,...ID N }, và W là vector đặc tr ưng của cụm tài N
liệu, ví dụ W =(w1,w2,..., wn), trong đó w j= ∑ wij , và n là số các đặc tr ưng đã đượ c i =1
trích chọn. Bộ ba này không chỉ ra tổng hợ p tần suất tài liệu trong cụm, nhưng có thể sử dụng để đánh giá sự giống nhau giữa hai cụm. Bổ đề sau cung cấ p một cách linh hoạt k ết nối hai cụm thành một và cho ra giá tr ị DC cho cụm k ết hợ p.
Bổ đề [24] (Phép cộng) Cho DC 1 = (N 1 ,ID1 ,W 1 ) and DC 2= (N 2 ,ID2 ,W 2 ) là b ộ giá tr ị DC c ủa hai cụm tài liệu tách r ờ i, trong đ ó tách r ời có nghĩ a là một tài liệu không thuộc v ề nhiề u hơ n một cụm t ại cùng một th ờ i đ iể m. Khi đ ó bộ giá tr ị DC mớ i, DC new , của cụm đượ c hình thành bằ ng cách k ết hợ p hai cụm tách biệt là: DC new = (N 1+N 2 , ID ∪ 1
ID1 , W 1+W 2 ), trong đ ó W 1+W 2=
(w11+w21 ,w12+w22 ,...,w1n+w2n ), và n là s ố các đặ c tr ưn g đ ã đượ c trích chọn.
ỹ thuật đ ánh giá d, Các k Để đánh giá chất lượ ng của k ết quả việc phân cụm, chúng ta chọn k ỹ thuật đánh giá F-Measure (độ đo lườ ng F) [23]. Chi tiết của phươ ng pháp đánh giá đượ c mô tả như sau: Cho từng topic đượ c gán nhãn bằng tay T trong tậ p tài liệu, giả sử r ằng một phân cụm X tươ ng ứng vớ i topic đó đượ c hình thành. N 1= số các tài liệu của topic T trong phân cụm X N 2=số các tài liệu trong phân cụm X N 3= tổng số các tài liệu của topic T P =Precision( X ,T )= N 1/ N 2 R=Recall( X ,T )= N 1/ N 3
F-measure cho topic T đượ c địng ngh ĩ a như sau:
- 54 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
F(T)=
2 PR P + R
Vớ i đánh giá cao vớ i một topic T , chúng ta quan tâm phân cụm vớ i độ đo F-measure cao nhất để phân cụm C cho T , và độ đo F-measure đó tr ở thành điểm số cho topic T . Độ đo overall F-measure[22] cho cây k ết quả phân cụm là giá tr ị trung bình của F-measure cho từng topic T : Overall_F_Measure=
∑
T ∈M
( T × F (T ))
∑
T ∈M
T
trong đó M là tậ p các topic, |T| là số các tài liệu của topic T , và F(T) là F-Measure cho topic T .
3.3.3. Cây phân cụm tài liệu –DC Tree Trong phần này xin giớ i thiệu một thuật toán phân cụm tài liệu Web bằng phươ ng tiện là cây phân cụm tài liệu (Document Cluster -DC-tree). Trong DCtree, mỗi nút có thể đượ c quan tâm như một phân cụm tài liệu. Cấu trúc cây đượ c sử dụng để hướ ng dẫn cách đưa đối tượ ng tài liệu vào một phân cụm tài liệu (DC) thích hợ p tại các nút lá. Nó là tươ ng tự vớ i B+-tree [2] trong đó các bản ghi chỉ số tại các nút lá bao gồm các con tr ỏ tr ỏ tớ i các đối tượ ng dữ liệu, nhưng nó không là cây có chiều cao cân bằng. Cấu trúc này đượ c thiết k ế bở i vì việc gán một tài liệu vào một phân cụm chỉ yêu cầu duyệt qua một số lượ ng nhỏ các nút. Một DC-tree là một cây vớ i 4 tham số: hệ số nhánh ( B), hai ngưỡ ng tươ ng tự (S 1 và S 2, trong đó 0 ≤ S 1 , S 2 ≤ 1) và số nhỏ nhất con của một nút (M ). Một nút không phải là lá của toàn bộ các chỉ mục của B có dạng ( DC i, Child i),
trong đó i=1, 2,..., B, “ Child i” là một con tr ỏ tớ i nút con thứ i hoặc một
tài liệu, và DC i là giá tr ị DC của phân cụm con tiêu biểu cho nút con thứ i hoặc một tài liệu của nó. Vì thế, một nút không phải là lá mô tả một cụm cấu tạo nên tất cả các cụm con đượ c mô tả bở i chỉ mục của nó.
- 55 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
Một nút lá DC của toàn bộ chỉ mục B là một chỉ mục có dạng ( DC i, Doci), trong đó i Є {1, 2, ..., B}, “ Doci” là một con tr ỏ tớ i một tài liệu hoặc một tậ p tài liệu, và DC i là chỉ mục DC của cụm con tươ ng ứng. Gọi tậ p tài liệu dướ i một con tr ỏ là một nút lá tài liệu ( document leaf
node), để phân biệt vớ i nó trong nút lá cây (tree leaf node) hoặc DC leaf node (xem hình 8). Một nút lá DC cũng mô tả một cụm cấu tạo nên tất cả các cụm con đượ c mô tả bở i các chỉ mục DC của nó. Cây DC cho phép một chỉ mục đưa tài liệu vào, để chèn vào một nút lá tài liệu mớ i tại các mức khác nhau của cây. Vì thế, Cây DC không phải là một cây có chiều cao cân bằng. Hình 8 biểu diễn một ví dụ cây DC vớ i chiều cao là 2, B=3, M =2. Chú ý r ằng cây là không cân bằng. Trong việc xây dựng cây, hai ngưỡ ng đượ c sử dụng:
Hình 8. Ví dụ của một cây DC Ngưỡ ng S 1: Để ngăn chặn k ết quả phân cụm tài liệu kém chất lượ ng (ví dụ: Các tài liệu trong các lớ p khác nhau đượ c đưa vào cùng 1 cây con hoặc phân cụm) đượ c gây ra bở i thứ tự chèn tài liệu, S 1 đượ c sử dụng để quyết định tài liệu đến E có thể đượ c chuyển tớ i cấ p độ tiế p theo hay không trong quá trình chèn tài liệu. Nếu tồn tại một tài liệu con của nút hiện tại mà độ tươ ng tự giữa tài liệu này và tài liệu sắ p đượ c đưa vào lớ n hơ n S 1, tài liệu mớ i sẽ đượ c chuyển đến nút con tươ ng ứng. Ngượ c lại, tài liệu mớ i sẽ đượ c thêm vào nút hiện tại như một nút lá mớ i.
- 56 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
Ngưỡ ng S 2: Do cây DC đượ c sử dụng cho việc phân cụm tài liệu mà không sử dụng đánh chỉ mục, do đó không cần thiết phải ép mỗi nút lá tr ỏ đến một tài liệu đơ n. Để làm giảm thờ i gian chèn, tài liệu mớ i có thế đượ c gộ p vớ i một nút lá, nếu độ tươ ng tự của nó lớ n hơ n một ngưỡ ng S 2. Việc gộ p nút này sử dụng phép gộ p đượ c mô tả trong bổ đề 1, nó giúp cho giảm bớ t việc chèn nút và các thao tác phân chia vì thế mà thờ i gian chèn có thể giảm đi. Có thể coi cây DC là một thể hiện của tậ p dữ liệu vì mỗi tài liệu ở nút lá không phải là một điểm dữ liệu đơ n mà là một phân cụm của các điểm dữ liệu (mỗi nút lá có thể có nhiều điểm dữ liệu miễn là thỏa mãn ngưỡ ng S 2). Vớ i định ngh ĩ a về cây DC như trên, cỡ của cây sẽ là một hàm dựa trên các ngưỡ ng S 1 và S 2. Nếu chúng ta
đặt S 1 = 0 và S 2 là một số nào đó lớ n hơ n 1, cây DC sẽ tươ ng tự
như một cây cân bằng như cây B+ hoặc một cây R [21]. Việc xóa dữ liệu cũng như thuật toán tr ộn là tươ ng tự như của cây B+.
A. Chèn Sau đây là thuật toán để chèn một đối tượ ng tài liệu vào cây DC. Đối tượ ng tài liệu ở đây có thể là một tài liệu đơ n hoặc một phân cụm của các tài liệu đượ c biểu diễn bở i một nhóm DC ( E ). Nếu như đối tượ ng tài liệu là một tài liệu đơ n, đầu tiên nó sẽ đượ c gói vào trong một nhóm DC ( E ). Thuật toán chèn đượ c tiến hành theo những bướ c sau đây: 1. Nhận d ạng nút lá thích hợ p: Bắt đầu từ gốc, E duyệt xuống dướ i cây DC bằng việc chọn nút con g ần nhấ t vớ i giá tr ị tươ ng tự lớ n hơ n S1. Nếu nút con này không tồn tại, E đượ c chèn vào như một nút lá tài liệu vào một nhóm r ỗng của nút. Nếu không có nhóm r ỗng nào, việc chia nhỏ nút cần đượ c thực hiện. 2. Thay đổ i nút lá: Khi chúng ta đang ở một nút lá của cây DC, chúng ta tìm ra nhóm ở nút lá gần nhất vớ i E , ký hiệu là Li và kiểm tra xem nó có thể gộ p vớ i E mà không vi phạm yêu cầu về ngưỡ ng tươ ng tự S 2 không. Nếu không vi phạm, nhóm chứa Li sẽ đượ c dùng để gộ p. Chú ý r ằng một nhóm DC của một phân cụm mớ i có thể đượ c tính từ những nhóm DC cho Li và E dựa vào bổ đề 1. Ngượ c lại, E sẽ đượ c cộng vào nút lá. Nếu có khoảng tr ống trong nút lá để thêm
- 57 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
đượ c nhóm này, coi như chúng ta đã hoàn thành, ngượ c lại, chúng ta phải chia nhỏ nút lá. 3.Thay đổ i đườ ng d ẫn t ừ nút lá đế n g ốc : Sau khi E đượ c chèn vào một nút lá, chúng ta phải cậ p nhật lại các nhóm không phải là lá trên đườ ng từ gốc đến nút lá. Do chưa có việc chia nhỏ, việc này đượ c thực hiện bằng cách thêm các nhóm DC để tươ ng ứng vớ i việc thêm vào E. Việc chia một nút lá yêu cầu chúng ta phải chèn một nhóm không phải là lá mớ i vào nút cha, việc này tươ ng ứng vớ i việc tạo ra một nút lá mớ i. Nếu như nút cha có khoảng tr ống để mục này có thể chèn vào thì tại tất cả các mức lớ n hơ n, chúng ta chỉ cậ p cậ p nhật các nhóm DC để tươ ng ứng vớ i việc thêm vào E . Một cách tổng quan, chúng ta có thể phải chia nhỏ cả nút cha và thậm chí cả nút gốc. Nếu nút gốc bị chia nhỏ, độ cao của cây sẽ đượ c tăng thêm 1 và một gốc mớ i sẽ đượ c tạo ra.
B. Chi nhỏ nút Để thêm một nhóm mớ i vào một nút đã đầy chứa B nhóm, cần thiết phải chia tậ p B+1 nhóm thành 2 nút. Sự chia sẻ này nên đượ c hoàn thành sao cho độ tươ ng tự giữa 2 nút mớ i sẽ là nhỏ nhất và độ tươ ng tự giữa các tài liệu trong cùng một nút sẽ là lớ n nhất. Chúng ta sẽ sử dụng một thuật toán chia nhỏ một tậ p B+1 nhóm vào 2 tậ p. Cách đơ n giản nhất là tạo ra tất cả các tậ p có thể và chọn tậ p tốt nhất. Tuy nhiên, số lượ ng tậ p này có thể là r ất lớ n, xấ p xỉ 2 B-1 . Phía dướ i là một thuật toán chia nút sử dụng thuật toán chèn. Thuật toán chia nút này tươ ng tự như phươ ng pháp đượ c sử dụng trong cây R: 1. Chọn một hạt nhân cho mố i nhóm: Mớ i mỗi cặ p nhóm E 1 và E 2, tính toán độ tươ ng tự giữa chúng. Chọn ra cặ p có độ tươ ng tự thấ p nhất như là các nhân tố đầu tiên của 2 tậ p. Để tránh hiệu ứng thắt nút, chúng ta nên chọn ra cặ p có số lượ ng tài liệu là lớ n nhất. 2. Kiể m tra đ iề u kiện k ết thúc: Nếu tất cả các nhóm đã đượ c đưa vào các tậ p, dừng ở đây. Nếu một tậ p có r ất ít nhóm thì tất cả các nhóm chưa đượ c xét sẽ đượ c đưa vào nó để thỏa mãn số nhóm nhỏ nhất M . 3. Chọn t ậ p t ươ ng ứ ng : Vớ i mỗi nhóm E chưa ở trong tậ p nào, tính toán độ tươ ng tự giữa E và một nhóm hạt nhân của mỗi tậ p. Đưa nhóm vào tậ p có giá tr ị tươ ng tự lớ n nhất vớ i nó. Quay lại bướ c 2.
- 58 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
C. Xóa và tr ộn nút Thuật toán xóa dữ liệu là tươ ng tự như trong cây B+. Nếu số lượ ng còn lại của các nhóm lớ n hơ n hoặc bằng số lượ ng nhóm tối thiểu M nào đó sau khi loại bỏ một nhóm, việc xóa nút đượ c hoàn thành. Ngượ c lại việc tr ộn nút sẽ đượ c sử dụng. Điều này có ngh ĩ a là nút sẽ đượ c tr ộn vớ i vớ i các anh em của nó. Hơ n nữa, việc tr ộn nút là cần thiết khi một nhóm xa lạ vớ i nút cha. Công việc này đượ c nhân ra tớ i nút gốc và độ cao của cây có thể bị giảm xuống nếu cần thiết.
D. Nhận dạng các phân cụm thú vị Quá trình nhận dạng phận cụm bắt đầu từ gốc của cây. Một thuật toán tìm kiếm “breath-first” đượ c áp dụng để khám phá ra các phân cụm thú vị. Một phân cụm thú vị đượ c định ngh ĩ a là một phân cụm mà chứa các nét đặc tr ưng tiêu biểu và kích cỡ ở trong một khoảng định tr ướ c. Chúng ta có thể sử dụng các giá tr ị chặn dướ i (lower ) và chặn trên (upper ) đượ c tìm thấy trong phươ ng thức bóc tách đặc tr ưng của chúng ta để quyết định khoảng giớ i hạn của cỡ phân cụm. Giả sử l và u là chặn dướ i và chặn trên của cỡ phân cụm, thì l và u có thể đượ c quyết định bằng công thức sau: (1)
l = lower ×
N m
và (2) u = upper ×
N m
Trong đó N là cỡ của tậ p dữ liệu và m là cỡ của tậ p dữ liệu mẫu đượ c sử dụng trong quá trình bóc tách đặc tr ưng. Phạm vi này cũng có thể đượ c điều chỉnh thủ công để đạt đượ c một k ết quả phân cụm tốt. Một khi chúng ta đã nhận diện đượ c một phân cụm thú vị, các phân cụm con trong các nút con của nó sẽ không cần phải duyệt nữa. Một đặc tr ư ng tiêu biểu đượ c định ngh ĩ a là một đặc tr ưng có sự hỗ tr ợ đủ trong phân cụm. Có ngh ĩ a là tần suất tài liệu của các nét đặc tr ưng tiêu biểu phải lơ n hơ n một ngưỡ ng định tr ướ c nào đó. Chúng ta có thể gọi ngưỡ ng này là ngưỡ ng tiêu biểu. Các đặc tr ưng này sau đó sẽ đượ c sử dụng làm đại diện cho phân cụm.
- 59 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
3.4. K ết luận chươ ng 3
Chươ ng này trình bày chi tiết hai thuật toán phân cụm có tính tăng là STC và DC-tree. Đồng thờ i đưa ra các nhận xét cho từng thuật toán, luận văn đưa ra nhận xét thuật toán phân cụm thích hợ p đối vớ i các tài liệu Web áp dụng vào máy tìm kiếm. Chươ ng trình cài đặt thử nghiệm cho thuật toán và việc đánh giá k ết quả thuật toán sẽ đượ c trình bày ở chươ ng tiế p theo.
- 60 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
CHƯƠNG 4 - PHẦN MỀM THỬ NGHIỆM VÀ KẾT QUẢ THỰC NGHIỆM 4.1. Gi ới thi ệu
Trong phạm vi của luận văn này, tôi áp dụng thuật toán phân cụm tài liệu sử dụng cấu trúc DC-tree vào chươ ng trình thử nghiệm của mình. Để thực nghiệm k ết quả của phân cụm DC Tree, tôi đã thể hiện thuật toán này bằng ngôn ngữ lậ p trình C# trên nền tảng .Net Framework của Microsoft sử dụng SQL Server 2000 để lưu tr ữ cơ sở dữ liệu. Các chức năng chính của chươ ng trình bao gồm:
- Lập dữ liệu từ điển Dựa trên ý tưở ng phân cụm sử dụng cụm từ, chươ ng trình đã xây dựng một hệ thống từ điển để phục vụ cho thuật toán tách từ Longest Matching. Ban đầu, các từ này đượ c xây dựng dựa trên các từ lấy từ dữ liệu từ điển Việt-Anh tại nguồn http://www.stardict.org. Các dữ liệu này có thể đượ c bổ sung, sửa chữa dần dần để nâng cao hiệu quả của phân cụm.
- Lấy dữ liệu từ Internet Dữ liệu phân cụm sẽ đượ c lấy từ Internet một cách độc lậ p vớ i việc phân cụm. Chươ ng trình sẽ đượ c định ngh ĩ a sẵn một ngưỡ ng n cho việc lấy dữ liệu từ Internet. Điều này có ngh ĩ a là, sau khi ngườ i quản tr ị cung cấ p cho chươ ng trình một URL, chươ ng trình tự động lấy nội dung trang web từ URL này về sau đó phân tích nội dung trang web, tìm các URL khác nằm trong trang web này. Quá trình trên đượ c lặ p lại vớ i URL tìm đượ c cho đến khi độ sâu n đượ c thỏa mãn. Như thế vớ i độ sâu n phù hợ p, ta có thể lấy đượ c toàn bộ nội dung của một trang Web.
- Tách từ và phân cụm Chức năng này cho phép chươ ng trình tách từ và phân cụm các dữ liệu mớ i đượ c lấy về.
- 61 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
Trong chức năng này, có 3 bướ c đượ c thực hiện: Bướ c 1: Tách từ sử dụng thuật toán Longest Matching vớ i từ điển dựng sẵn Bướ c 2: Tách từ sử dụng thuật toán fnTBL từ dữ liệu tr ả về từ thuật toán Longest Matching. Bướ c 3: Phân cụm dựa trên thuật toán DC-Tree sử dụng hàm tính độ tươ ng tự dựa trên các cụm từ tách đượ c.
- Tìm kiếm trên k ết quả phân cụm Việc tìm kiếm này sẽ đượ c áp dụng một thuật toán bao gồm 2 bướ c: Bướ c 1: Tính độ tươ ng tự của chuỗi tìm kiếm vớ i các đặc tr ưng của các phân cụm, nếu độ tươ ng tự lớ n hơ n một ngưỡ ng S1 nào đó, ta sẽ áp dụng bướ c 2 cho phân cụm đó. Bướ c 2: Tìm kiếm các tài liệu trong phân cụm có độ tươ ng tự cao hơ n một ngưỡ ng S2 vớ i chuỗi tìm kiếm. 4.2. Thi ết k ế c ơ sở d ữ li ệu
Cơ sở dữ liệu của chươ ng trình đượ c thiết k ế như trong hình phía dướ i. Trong đó chức năng của các bảng đượ c mô tả như sau:
Bảng: Dictionary – Đây là bảng chứa dữ liệu từ điển tiếng Việt Tên tr ườ ng
Kiểu dữ liệu
Mô tả
PhraseID
Int
Là khóa chính của bảng.
Phrase
Nvarchar
Là cụm từ cần lưu tr ữ
PhraseDescription Ntext
Là mô tả của cụm từ cần lưu tr ữ. Hiện tại chưa đượ c sử dụng. Chứa dữ liệu ngữ ngh ĩ a tiếng Anh sau khi đượ c convert từ từ điển StarDict.
- 62 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
Bảng Documents – Đây là bảng chứa các tài liệu đượ c chươ ng trình lấy về Tên tr ườ ng
Kiểu dữ liệu
Mô tả
DocID
Int
Là khóa chính của bảng.
Source
Nvarchar
Địa chỉ nguồn của tài liệu gốc. Dùng để đánh chỉ mục, tránh trùng lặ p tài liệu.
Snipet
Ntext
Là trích đoạn của tài liệu, phục vụ cho việc phân cụm.
IsTokenized
Bit
Cho biết tài liệu này đã đượ c tách từ hay chưa.
IsClustered
Bit
Cho biết tài liệu đã đượ c phân cụm hay chưa.
Bảng DocumentIndex – Đây là bảng liên k ết giữa các tài liệu và dữ liệu từ điển. Tên tr ườ ng
Kiểu dữ liệu
Mô tả
DocIndexID
Int
Là khóa chính của bảng.
PhraseID
Int
Khóa ngoài, liên k ết đến bảng Dictionary
DocID
Int
Khóa ngoài, liên k ết đến bảng Documents
Score
Float
Cho biết độ tươ ng tự/tần suất của từ khóa trong tài liệu dựa trên một hàm tính độ tươ ng tự.
- 63 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
Bảng Nodes – Chứa các nút của cây DC Tên tr ườ ng
Kiểu dữ liệu
NodeID
Int
NodeParentID ClusterID
Mô tả Là khóa chính ủa bảng. c
Int
Int
ứa nút cha Chcủa cây Cho biết phân cụm của nút thuộc vào.
Bảng Node-Document – Vì một nút có thể chứa nhiều tài liệu và ngượ c lại, một tài liệu có thể nằm trên nhiều nút. Bảng này thể hiện mối quan hệ nhiều-nhiều này Tên tr ườ ng
Kiểu dữ liệu
Mô tả
NodeDocumentID Int NodeID DocID
Là khóa chính ủa cbảng.
Int Int
Khóa ngoài, ết liên đếnk bảng Nodes Khóa ngoài, liên k ết đến bảng Documents
Bảng Clusters – Chứa các phân cụm tìm đượ c Tên tr ườ ng
Kiểu dữ liệu
Mô tả
ClusterID
Int
Là khóa chính của bảng. Cho biết số thứ tự của phân cụm.
- 64 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
Dướ i đây là sơ đồ liên k ết thực thể giữa các bảng:
Hình 7. Sơ đồ liên k ết thực thể của chươ ng trình thực nghiệm 4.3. Chươ ng trình thử nghi ệm
Áp dụng các nghiên cứu về lý thuyết phân cụm, trong chươ ng trình thử nghiệm của chúng tôi, mỗi một bướ c thực hiện sẽ đượ c tách thành từng phần riêng. Tươ ng ứng vớ i các chức năng chính đã mô tả ở trên, chươ ng trình bao gồm bốn module chính: Từ điển, Lấy dữ liệu, Phân cụm, Tìm kiếm.
- 65 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
- Module Từ điển: hiển thị tất cả các từ có trong từ điển Việt. Vớ i dữ liệu ban đầu đượ c lấy từ nguồn từ điển Việt-Anh tại địa chỉ http://www.stardict.org ta sẽ có một kho từ điển khá hoàn chỉnh các từ Tiếng Việt. Tuy nhiên ta cũng có thể thêm hoặc bớ t những từ đã có nếu thấy cần thiết. Tậ p các từ trong từ điển này sẽ đượ c sử dụng trong bướ c tách từ trong tài liệu cần phân cụm.
Hình: Màn hình hỗ tr ợ chức năng cậ p nhật chỉnh sửa Từ điển - Module Lấy dữ liệu: Để xây dựng kho dữ liệu các tài liệu Web, ta tiến hành lấy dữ liệu về. Ngườ i sử dụng sẽ nhậ p đườ ng dẫn URL của trang Web, hệ thống sẽ tự động tìm kiếm và lấy tất cả nội dung của trang Web vớ i một độ sâu n ( đã đượ c định tr ướ c)
- 66 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
Hình: Màn hình chức năng hỗ tr ợ lấy dữ liệu từ Internet - Module Phân cụm: Sau khi tiến hành lấy dữ liệu, ta thực hiện phân cụm tài liệu. Hệ thống sẽ tiến hành phân cụm một cách tự động. Trong lần phân cụm khác vớ i tậ p dữ liệu mớ i đượ c lấy về, việc phân cụm sẽ không cần phân cụm lại vớ i tậ p dữ liệu cũ mà ta đã phân cụm tr ướ c nữa. Việc phân cụm sẽ chỉ cần thực hiện trên tậ p dữ liệu mớ i vớ i k ết quả cũ của các lần phân cụm tr ướ c. Trong thuật toán có sử d ụng các tham số sau: M: S ố l ượ ng nhỏ nhấ t con của một nút M=8 B: H ệ số nhánh của cây B=20 S2:Ng ưỡ ng t ươ ng t ự 2 S2=1.0 S1: Ng ưỡ ng t ươ ng t ự 1 S1=0.3 repThreshold: Ng ưỡ ng của đặ c tr ưn g tiêu biể u repThreshold=0.4 MCS: C ỡ phân cụm nhỏ nhấ t MCS=100
- 67 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
Hình: Màn hình hỗ tr ợ chức năng Phân cụm vớ i dữ liệu đã lấy về từ Internet - Module Tìm kiếm: Ngườ i sử dụng sẽ nhậ p vào từ khoá cần tìm kiếm. Hệ thống sẽ tìm các tài liệu liên quan vớ i từ khoá.
- 68 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
Hình: Màn hình chức năng hỗ tr ợ Tìm kiếm. 4.4. K ết luận chươ ng 4
Chươ ng này là k ết quả cài đặt thử nghiệm của thuật toán phân cụm cho tài liệu Web Tiếng Việt sử dụng cấu trúc dữ liệu DC-tree đã đượ c trình bày ở chươ ng 3. Chươ ng trình cài đặt viết bằng ngôn ngữ lậ p trình C# trên nền tảng .Net Framework của Microsoft sử dụng SQL Server 2000 để lưu tr ữ cơ sở dữ liệu. Chươ ng trình đã thực hiện việc phân cụm vớ i k ết quả tươ ng đối hợ p lý.
- 69 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
KẾT LUẬN Luận văn cung cấ p một số nội dung về phân cụm Web, đã đạt đượ c một số k ết quả như sau: - Giớ i thiệu khái quát về bài toán phân cụm web, các giải pháp phân cụm web (các yêu cầu, k ỹ thuật, đánh giá) trong đó chú ý tớ i tính tăng của các thuật toán phân cụm wbe, - Trình bày hai thuật toán phân cụm web có tính tăng là STC và DC-tree. Đã phân tích các nội dung kiến thức cơ bản, nền tảng phát triển các thuật toán này. - Xây dựng phần mềm thử nghiệm phân cụm tài liệu theo thuật toán DCtree. Hệ thống máy tìm kiếm-DC tree do luận văn phát triển đã đượ c đưa lên web, có công cụ lưu các câu truy vấn của ngườ i dùng, các phân cụm tìm thấy và các liên k ết đượ c ngườ i dùng đi tớ i. Hệ thống đã hoạt động và thực hiện đượ c việc phân cụm các tài liệu Web. Do hạn chế về thờ i gian và năng lực, luận văn chưa tiến hành đánh giá chất lượ ng phân cụm của hệ thống. Trong tươ ng lai, chúng tôi sẽ tiến hành các đánh giá công phu hơ n. Chúng tôi dự kiến đưa ra các thống kê dựa trên hành vi của hệ thống trong thực tế. Ngoài ra, chúng tôi có thể nghiên cứu các hướ ng giải quyết vấn đề từ đồng ngh ĩ a trong tiếng Việt.
- 70 -
Nguyễ n Thị Thu H ằn g-Luận vă n cao học-Tr ườ ng Đại học Công nghệ-2007.
TÀI LIỆU THAM KHÁO Tiếng Việt [1].
Đinh Điền, X ử lý ngôn ng ữ t ự nhiên, NXB Giáo Dục.
Tiếng Anh [2]. Clement T.Yu và Weiyi Meng (1998), Principles of Database Query Processing for Advanced Application, Morgan Kaufmann Publisher, Inc. [3]. Gerard Salton/Michael J.McGill, Introduction to Modern Information Retrieval . [4]. M. Steinbach, G. Karypis, V. Kumar (2000), A Comparison of Document Clustering Techniques, TextMining Workshop, KDD. [5]. O. Zamir and O. Etzioni (1998), Web Document Clustering: A Feasibility Demonstration, Proc. of the 21st ACM SIGIR Conference, 46-54. [6]. O. Zamir, O. Etzioni, O Madani, R. M. Karp (1997), Fast and Intuitive Clustering of Web Documents, Proc. of the 3rd International Conference on Knowledge Discovery and Data Mining. [7]. K. Cios, W. Pedrycs, R. Swiniarski (1998), Data Mining – Methods for Knowledge Discovery, Kluwer Academic Publishers. [8]. R. Krishnapuram, A. Joshi, L. Yi (1999), A Fuzzy Relative of the k-Medoids Algorithm with Application to Web Document and Snippet Clustering , Proc. IEEE Intl. Conf. Fuzzy Systems, Korea. [9]. Z. Jiang, A. Joshi, R. Krishnapuram, L. Yi (2000), Retriever: Improving Web Search Engine Results Using Clustering , Technical Report, CSEE Department, UMBC. [10]. T. H. Haveliwala, A. Gionis, P. Indyk (2000), Scalable Techniques for Clustering the Web, Extended Abstract, WebDB’2000, Third International Workshop on the Web and Databases, In conjunction with ACM SIGMOD’2000, Dallas, TX. [11]. A. Bouguettaya (1996), On-Line Clustering , IEEE Trans. on Knowledge and Data Engineering. [12]. A. K. Jain và R. C. Dubes (1988), Algorithms for Clustering Data, John Wiley & Sons. [13]. G. Karypis, E. Han, V. Kumar (1999), CHAMELEON: A Hierarchical Clustering Algorithm Using Dynamic Modeling , IEEE Computer 32. [14]. O. Zamir và O. Etzioni (1999), Grouper: A Dynamic Clustering Interface to Web Search Results, Proc. of the 8th International World Wide Web Conference, Toronto, Canada. [15]. D. R. Cutting, D. R. Karger, J. O. Pedersen, J.W. Tukey (1993), Scatter/Gather: A Clusterbased Approach to Browsing Large Document th Collections, In Proceedings of the 16 International ACM SIGIR
Conference on Research and Development in Information Retrieval.
- 71 -