Thuật toán K-Means và ứng dụng gom cụm tài liệu văn bản Tiếng Việt

16 2.7K 26
Thuật toán K-Means và ứng dụng gom cụm tài liệu văn bản Tiếng Việt

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Đại học Quốc gia TP Hồ Chí Minh Trường Đại học Công nghệ thông tin Chương trình đào tạo thạc sĩ CNTT qua mạng Lớp Cao học khóa 6 Bộ môn: Khai phá dữ liệu Bài tiểu luận: Thuật toán K-Means và ứng dụng gom cụm tài liệu văn bản Tiếng Việt. Giáo viên hướng dẫn: PGS.TS Đỗ Phúc Học viên: Lê Hoài Nam MSHV: CH1101106 Tháng 11 / 2012 Lê Hoài Nam – CH1101106 Mục lục Trang 2 Lê Hoài Nam – CH1101106 I. Giới thiệu chung 1. Bài toán gom cụm Phân cụm là kỹ thuật rất quan trọng trong khai phá dữ liệu, nó thuộc lớp các phương pháp Unsupervised Learning trong Machine Learning. Có rất nhiều định nghĩa khác nhau về kỹ thuật này, nhưng về bản chất ta có thể hiểu phân cụm là các qui trình tìm cách nhóm các đối tượng đã cho vào các cụm (clusters), sao cho các đối tượng trong cùng 1 cụm tương tự (similar) nhau và các đối tượng khác cụm thì không tương tự (Dissimilar) nhau. Mục đích của phân cụm là tìm ra bản chất bên trong các nhóm của dữ liệu. Các thuật toán phân cụm (Clustering Algorithms) đều sinh ra các cụm (clusters). Tuy nhiên, không có tiêu chí nào là được xem là tốt nhất để đánh hiệu của của phân tích phân cụm, điều này phụ thuộc vào mục đích của phân cụm như: data reduction, “natural clusters”, “useful” clusters, outlier detection Kỹ thuật phân cụm có thể áp dụng trong rất nhiều lĩnh vực như: - Marketing: Xác định các nhóm khách hàng (khách hàng tiềm năng, khách hàng giá trị, phân loại và dự đoán hành vi khách hàng,…) sử dụng sản phẩm hay dịch vụ của công ty để giúp công ty có chiến lược kinh doanh hiệu quả hơn; - Biology: Phận nhóm động vật và thực vật dựa vào các thuộc tính của chúng; - Libraries: Theo dõi độc giả, sách, dự đoán nhu cầu của độc giả…; - Insurance, Finance: Phân nhóm các đối tượng sử dụng bảo hiểm và các dịch vụ tài chính, dự đoán xu hướng (trend) của khách hàng, phát hiện gian lận tài chính (identifying frauds); - WWW: Phân loại tài liệu (document classification); phân loại người dùng web (clustering weblog);… Trang 3 Lê Hoài Nam – CH1101106 2. Thuật toán K-Means K-Means là thuật toán rất quan trọng và được sử dụng phổ biến trong kỹ thuật phân cụm. Tư tưởng chính của thuật toán K-Means là tìm cách phân nhóm các đối tượng (objects) đã cho vào K cụm (K là số các cụm được xác đinh trước, K nguyên dương) sao cho tổng bình phương khoảng cách giữa các đối tượng đến tâm nhóm (centroid ) là nhỏ nhất. Thuật toán K-Means được mô tả như sau Thuật toán K-Means thực hiện qua các bước chính sau: - Bước 1. Chọn ngẫu nhiên K tâm (centroid) cho K cụm (cluster). Mỗi cụm được đại diện bằng các tâm của cụm. - Bước 2. Tính khoảng cách giữa các đối tượng (objects) đến K tâm (thường dùng khoảng cách Euclidean) - Bước 3. Nhóm các đối tượng vào nhóm gần nhất - Bước 4. Xác định lại tâm mới cho các nhóm - Bước 5. Thực hiện lại bước 2 cho đến khi không có sự thay đổi nhóm nào của các đối tượng Trang 4 Lê Hoài Nam – CH1101106 3. Ví dụ minh họa thuật toán K-Mean: Giả sử ta có 4 loại thuốc A,B,C,D, mỗi loại thuộc được biểu diễn bởi 2 đặc trưng X và Y như sau. Mục đích của ta là nhóm các thuốc đã cho vào 2 nhóm (K=2) dựa vào các đặc trưng của chúng. Object Feature 1 (X): weight index Feature 2 (Y): pH Medicine A 1 1 Medicine B 2 1 Medicine C 4 3 Medicine D 5 4 - Bước 1. Khởi tạo tâm (centroid) cho 2 nhóm. Giả sử ta chọn A là tâm của nhóm thứ nhất (tọa độ tâm nhóm thứ nhất c1(1,1)) và B là tâm của nhóm thứ 2 (tạo độ tâm nhóm thứ hai c2 (2,1)) - - Bước 2. Tính khoảng cách từ các đối tượng đến tâm của các nhóm (Khoảng cách Euclidean) Trang 5 Lê Hoài Nam – CH1101106 Mỗi cột trong ma trận khoảng cách (D) là một đối tượng (cột thứ nhất tương ứng với đối tượng A, cột thứ 2 tương ứng với đối tượng B,…). Hàng thứ nhất trong ma trận khoảng cách biểu diễn khoảng cách giữa các đối tượng đến tâm của nhóm thứ nhất (c1) và hàng thứ 2 trong ma trận khoảng cách biểu diễn khoảng cách của các đối tượng đến tâm của nhóm thứ 2 (c2). Ví dụ, khoảng cách từ loại thuốc C=(4,3) đến tâm c1(1,1) là 3.61 và đến tâm c2(2,1) là 2.83 được tính như sau: Bước 3. Nhóm các đối tượng vào nhóm gần nhất Ta thấy rằng nhóm 1 sau vòng lặp thứ nhất gồm có 1 đối tượng A và nhóm 2 gồm các đối tượng còn lại B,C,D. Bước 4. Tính lại tọa độ các tâm cho các nhóm mới dựa vào tọa độ của các đối tượng trong nhóm. Nhóm 1 chỉ có 1 đối tượng A nên tâm nhóm 1 vẫn không đổi, c1(1,1). Tâm nhóm 2 được tính như sau: Trang 6 Lê Hoài Nam – CH1101106 Bước 5. Tính lại khoảng cách từ các đối tượng đến tâm mới Bước 6. Nhóm các đối tượng vào nhóm Bước 7. Tính lại tâm cho nhóm mới Trang 7 Lê Hoài Nam – CH1101106 Bước 8. Tính lại khoảng cách từ các đối tượng đến tâm mới Bước 9. Nhóm các đối tượng vào nhóm Trang 8 Lê Hoài Nam – CH1101106 Ta thấy G 2 = G 1 (Không có sự thay đổi nhóm nào của các đối tượng) nên thuật toán dừng và kết quả phân nhóm như sau: Object Feature 1 (X): weight index Feature 2 (Y): pH Group Medicine A 1 1 1 Medicine B 2 1 1 Medicine C 4 3 2 Medicine D 5 4 2 II. Chương trình gom cụm văn bản tiếng Việt 1. Đặt bài toán Gom cụm (clustering) là 1 bài toán phổ biến trong lĩnh vực khai phá dữ liệu (data mining), mục tiêu của gom cụm là phân loại 1 tập dữ liệu thành nhiều nhóm và mỗi nhóm sẽ có 1 đặc trưng khác nhau. Tương tự như vậy, văn bản cũng là 1 đối tượng dữ liệu và nhu cầu gom cụm đối tượng này rất phổ biến trong nhiều lĩnh vực như: phân loại tin tức tự động, phân loại email tự động, phân loại tài liệu trong thư viện v.v Để góp phần nghiên cứu giải quyết vấn đề trên, bài tiểu luân này sẽ dự trên thuật toán gom cụm K-means để cài đặt ứng dụng tự động gom cụm tài liệu được viết bằng ngôn ngữ Tiếng Việt, dữ liệu cần xử lý là hàm trăm bài báo, blog được thu thập từ nhiều lĩnh vực như công nghệ, xã hội, văn hóa, giáo dục v.v 2. Cài đặt chương trình bằng thuật toán K-Means a. Từ điển key words và stop words Key words là tập các danh từ có ý nghĩ trong ngôn ngữ tiếng Việt, thuật toán sẽ dựa vào tập từ khóa này để biểu diễn 1 tài liệu văn bản dưới dạng 1 vector nhiều chiều, thể hiện những đặc trưng của văn bản đó. Trang 9 Lê Hoài Nam – CH1101106 Stop words là những từ chức năng, nó không mang nội dung mà chủ yếu chứa thông tin cú pháp trong câu. b. Vector hóa văn bản. Mỗi văn bản tài liệu sẽ được biểu diễn dưới dạng vector n chiều. Mỗi chiều là 1 từ khóa (term) và độ lớn là số lần xuất hiện từ khóa đó trong văn bản. Trong lập trình, mỗi văn bản được biểu diễn thành 1 đối tượng gọi là DocVector, có các thuộc tính như sau: Dictionary<string, int> _vector; public int DocID { get; set; } public int ClusterID { get; set; } c. Cài đặt thuật toán K-Means Chú ý: Thuật toán K-Means được trình bày bên dưới sử dụng ngôn ngữ C# Định nghĩa và khởi tạo các biến: HashSet<string> _stopwords;//danh sách các stopwords HashSet<string> _terms; //danh sách các từ khóa keywords List<string> _allFiles; //danh sách tập tin văn bản cần phần loại Dictionary<int, DocVector> _allVector; //danh sách các vector văn bản List<DocsCluster> _clustersList; // danh sách các clusters Hàm xây dựng các DocVector từ nội dung của tập tin văn bản string filename = _allFiles[docID];//lấy tên tập tin văn bản DocVector docvector = new DocVector(); docvector.DocID = docID; StringBuilder sbContent = new StringBuilder(File.ReadAllText(filename).ToLower()); int i = 0; //xóa các ký tự đặc biệt, không phải chữ hoặc số for (i = 1; i < sbContent.Length; i++) Trang 10 [...]... thuật toán phụ thuộc vào việc chọn số nhóm K (phải xác định trước) và chi phí cho thực hiện vòng lặp tính toán khoảng cách lớn khi số cụm K và dữ liệu phân cụm lớn Ứng dụng demo đã thể hiện thành công việc gom cụm tài liệu văn bản tiếng Việt bằng thuật toán K-means dựa trên tập key words và stop word Với tập dữ liệu test dưới 500 tập tin, cho tốt độ thực thi và kết quả chấp nhận được Tuy nhiên, thuật toán. .. tin chia thành 6 cụm mất thời gian 0.73 giây - 100 tập tin chia thành 4 cụm trong thời gian 6.96 giây Trang 14 Lê Hoài Nam – CH1101106 4 Đánh giá ứng dụng demo Ứng dụng demo đã minh họa thành công thuật toán K-means trong bài toán gom cụm văn bản Tiếng Việt Với số lượng tài liệu dưới 500 và số cluster dưới 10 cho tốt độ thực thi khá tốt Do giới hạn về tập dữ liệu test, tập keyword và stopword chưa... toán K-Means cho thời gian thực thi khá lâu khi số tài liệu lên tới vài nghìn và kết quả gom cụm cũng chưa thật sự chính xác 2 Hướng phát triển Cập nhật và chuẩn hóa tập keywords và stopword cho ngôn ngữ tiếng Việt để có kết quả gom cụm chính xác hơn Trang 15 Lê Hoài Nam – CH1101106 Nghiên cứu phát triển và áp dụng thuật toán trên vào các nhu cầu thực tế như phân loại Email, phân loại tin tức và phân... quả gom cụm ở mức tương đối chấp nhận được Giao diện đồ họa trực quan, sử dụng công nghệ WPF của Microsoft viết bằng ngôn ngữ C#, giúp người sử dụng nhanh chóng nhận được kết quả gom cụm dưới dạng đồ thị cùng với dữ liệu thông kê bên cạnh III Kết luận và hướng phát triển 1 Kết luận Thuật toán K-Means có ưu điểm là đơn giản, dễ hiểu và cài đặt Tuy nhiên, một số hạn chế của K-Means là hiệu quả của thuật. .. dụng thuật toán trên vào các nhu cầu thực tế như phân loại Email, phân loại tin tức và phân loại văn bản tài liệu trong thư viện Nghiên cứu cải tiến và tối ưu thuật toán K-means cho trường hợp phân loại văn bản để có tốc độ nhanh hơn và kết quả tốt hơn IV Tài liệu tham khảo [1] http://en.wikipedia.org/wiki /K-means_ clustering [2] Giáo trình Data Mining – Đại học Công nghệ thông tin – Đại học Quốc gia... Trang 12 Lê Hoài Nam – CH1101106 3 Ứng dụng demo Tập dữ liệu dùng cho chương trình demo gồm có: - 567 stopword bằng Tiếng Việt 28.861 danh từ tiếng Việt phổ biến (terms) Bộ văn bản test chia làm 5 nhóm: o Nhóm 1: 28 tập tin o Nhóm 2: 313 tập tin o Nhóm 3: 100 tập tin o Nhóm 4: 80 tập tin o Nhóm 5: 500 tập tin Một vài hình ảnh kết quả sau khi gom cụm - 500 tập tin và 2 cụm mất thời gian 73.63 giây Trang... !Char.IsLetterOrDigit(sbContent[i])) { sbContent.Remove(i, 1); i ; } else if (sbContent[i] == '\n') sbContent[i] = ' '; //Lấy danh sách các từ có trong văn bản List words = sbContent.ToString().Split(' ').ToList(); //tách từ, vector hóa văn bảng dự vào stopwords và term while (words.Count > 0) { string term = ""; if (_stopwords.Contains(words[0])) { words.RemoveAt(0); continue; } if (words.Count >... i; j++) term += words[j] + " "; term = term.Trim(); if (_terms.Contains(term)) { words.RemoveRange(0, i); break; } if (i==1) words.RemoveAt(0); } docvector[term]++; } return docvector; Hàm gom cụm sử dụng thuật toán K-Means public List[] BuiltKCluster(int K) { Trang 11 Lê Hoài Nam – CH1101106 //Tạo k cluster ngẫu nhiên Random rd = new Random(); int i; for (i = 1; i maxCount) done = true; } List[] arrOfClusters = new List[K]; int index = 0; foreach (DocsCluster cluster in _clustersList) { arrOfClusters[index] = new List(); foreach (int docID in cluster.Keys) arrOfClusters[index].Add(_allFiles[docID]); index++; } return arrOfClusters; } Trang 12 Lê Hoài Nam – CH1101106 3 Ứng . sĩ CNTT qua mạng Lớp Cao học khóa 6 Bộ môn: Khai phá dữ liệu Bài tiểu luận: Thuật toán K-Means và ứng dụng gom cụm tài liệu văn bản Tiếng Việt. Giáo viên hướng dẫn: PGS.TS Đỗ Phúc Học viên: Lê. thành 4 cụm trong thời gian 6.96 giây Trang 14 Lê Hoài Nam – CH1101106 4. Đánh giá ứng dụng demo Ứng dụng demo đã minh họa thành công thuật toán K-means trong bài toán gom cụm văn bản Tiếng Việt. . thành công việc gom cụm tài liệu văn bản tiếng Việt bằng thuật toán K-means dựa trên tập key words và stop word. Với tập dữ liệu test dưới 500 tập tin, cho tốt độ thực thi và kết quả chấp

Ngày đăng: 10/04/2015, 00:25

Từ khóa liên quan

Mục lục

  • I. Giới thiệu chung

    • 1. Bài toán gom cụm

    • 2. Thuật toán K-Means

    • 3. Ví dụ minh họa thuật toán K-Mean:

    • II. Chương trình gom cụm văn bản tiếng Việt

      • 1. Đặt bài toán

      • 2. Cài đặt chương trình bằng thuật toán K-Means

        • a. Từ điển key words và stop words

        • b. Vector hóa văn bản.

        • c. Cài đặt thuật toán K-Means

        • 3. Ứng dụng demo

        • 4. Đánh giá ứng dụng demo

        • III. Kết luận và hướng phát triển

          • 1. Kết luận

          • 2. Hướng phát triển

          • IV. Tài liệu tham khảo

Tài liệu cùng người dùng

Tài liệu liên quan