Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 41 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
41
Dung lượng
0,99 MB
Nội dung
TRẦN HOÀNG TIẾN TRƢỜNG ĐẠI HỌC VINH TRẦN HOÀNG TIẾN THUẬT TOÁN K-MEANS ỨNG DỤNG TRONG BÀI TOÁN PHÂN LOẠI VĂN BẢN THUẬT TOÁN K-MEANS ỨNG DỤNG TRONG BÀI TOÁN PHÂN LOẠI VĂN BẢN LUẬN VĂN THẠC SĨ CÔNG NGHỆ THƠNG TIN KHĨA 24 NGHỆ AN, 7/2018 TRƢỜNG ĐẠI HỌC VINH TRẦN HỒNG TIẾN THUẬT TỐN K-MEANS ỨNG DỤNG TRONG BÀI TỐN PHÂN LOẠI VĂN BẢN CHUN NGÀNH: CƠNG NGHỆ THÔNG TIN MÃ SỐ: 8.48.02.01 LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Ngƣời hƣớng dẫn khoa học: TS Trần Xuân Sang NGHỆ AN, 7/2018 LỜI CẢM ƠN Trong suốt trình học tập nhƣ trình làm luận văn, em nhận đƣợc quan tâm Ban giám hiệu trƣờng Đại Học Vinh, Ban Giám Hiệu trƣờng Sƣ phạm kỹ thuật Vĩnh Long, giúp đỡ thầy cô giáo khoa Công Nghệ Thông Tin, khoa sau Đại Học trƣờng Đại học Trƣờng Đại học Vinh, khoa Liên kết Trƣờng Đại học Sƣ phạm kỹ thuật Vĩnh Long Đặc biệt hƣớng dẫn tận tình thầy giáo hƣớng dẫn TS Trần Xuân Sang Em xin gửi lời cảm ơn tới ban lãnh đạo, đồng nghiệp nơi em công tác tạo điều kiện giúp em, cảm ơn bạn ban cán lớp cao học CNTT khóa 24 Vĩnh Long em có khoảng thời gian học tập bổ ích Cuối cùng, em xin gửi lời cảm ơn tới gia đình, bạn bè, ngƣời thân động viên chia sẻ em suốt thời gian học tập LỜI CAM ĐOAN Tôi xin cam đoan luận văn tự thân thực sản phẩm riêng Các số liệu tài liệu luận văn trung thực, tin thứ cấp sử dụng luận văn có nguồn gốc đƣợc trích dẫn rõ ràng Tơi hồn tồn chịu trách nhiệm tính xác thực nguyên luận văn Học viên thực Tác giả Trần Hoàng Tiến MỤC LỤC LỜI CẢM ƠN LỜI CAM ĐOAN DANH MỤC C C BẢNG - DANH MỤC CÁC HÌNH Lý chọn đề tài Đối tƣợng phạm vi nghiên cứu 2.1 Đối tƣợng nghiên cứu 2.2 Phạm vi nghiên cứu Mục đích, nhiệm vụ nghiên cứu Nội dung nghiên cứu Đóng góp luận văn CHƢƠNG BÀI TOÁN PHÂN LOẠI VĂN BẢN 1.1 Đặt vấn đề 1.2 Các phƣơng pháp phân loại văn 10 1.3 Ứng dụng toán phân loại văn nghiên cứu liên quan 11 CHƢƠNG 13 THUẬT TOÁN K - MEANS 13 2.1 Giới thiệu thuật toán K-means 13 2.1.1 Phân tích tốn học 13 2.1.2 Hàm mát toán tối ƣu 14 2.1.3 Thuật toán tối ƣu hàm mát 14 2.1.4 Ƣu điểm thuật toán k-means 16 2.2 Phân loại văn thuật toán k-means 16 2.2.1 Các bƣớc thực 16 2.2.2 Ví dụ dùng thuật tốn K-means phân loại văn 19 CHƢƠNG 26 THỬ NGHIỆM VÀ Đ NH GI KẾT QUẢ PHÂN LOẠI VĂN BẢN VỚI THUẬT TOÁN K-MEANS 26 3.1 Tóm tắt thuật toán 26 3.2 Sử dụng thuật toán K-means để phân lớp văn 26 3.2.1 Thực việc tách từ 27 3.2.2 Chuẩn hóa liệu 27 3.2.3 Xây dựng từ điển 28 3.2.4 Mơ hình vector không gian 29 3.2.5 Xác định trọng số (tọa độ) hạn (term) văn 29 3.2.6 Xác định hạn (term) văn 30 3.3 Xây dựng chƣơng trình C# 31 3.4 Giao diện chƣơng trình 36 KẾT LUẬN 38 TÀI LIỆU THAM KHẢO 39 DANH MỤC CÁC BẢNG Tên Bảng Trang Bảng 2.1: Mƣời tài liệu cần phân nhóm với năm từ tần suất xuất 21 Bảng 2.2: Khoảng cách Euclidean từ điểm D2, D5, D7 đến tài liệu khác 21 Bảng 2.3: Khoảng cách từ tài liệu đến tài liệu đƣợc chọn làm điểm 22 Bảng 2.4: Giá trị điểm trung tâm nhóm 23 Bảng 2.5: Giá trị điểm trung tâm nhóm 23 Bảng 2.6: Giá trị điểm trung tâm nhóm 23 Bảng 2.7: Khoảng cách tài liệu đến điểm trung tâm 24 Bảng 2.8: Giá trị điểm trung tâm nhóm C1 25 Bảng 2.9: Giá trị điểm trung tâm nhóm C2 25 Bảng 2.10: Giá trị điểm trung tâm nhóm C3 25 Bảng 2.11: Tính lại khoảng cách tài liệu đến điểm trung tâm 26 DANH MỤC CÁC HÌNH Tên hình Trang Hình 3.1: Sơ đồ khối chƣơng trình 27 Hình 3.2: Tách từ phần mềm VnTokenizer 28 Hình 3.3: Giao diện chƣơng trình 37 Hình 3.4: Khai báo tham số hệ thống 38 Hình 3.5: Kết sau phân loại 38 MỞ ĐẦU Lý chọn đề tài Ngày đối mặt với khối lƣợng tài liệu văn khổng lồ, chúng xuất internet với tốc độ chóng mặt Các tài liệu thƣ viện số, kho lƣu trữ, thơng tin cá nhân đƣợc số hóa viết blog email đƣợc xếp chồng lên ngày nhiều Chúng mang thách thức lớn cho việc lƣu trữ tìm kiếm văn cho hiệu Vì việc phân loại văn vấn đề quan trọng lĩnh vực xử lý ngôn ngữ Đây đề tài đƣợc nhiêu nhà nghiên cứu xây dựng phát triển thời gian dài Nhiệm vụ toán nhóm tài liệu văn tƣơng tự vào chủ đề cho trƣớc để tạo thành cụm kết hợp Phân cụm xác định gần gũi cặp đối tƣợng mặt tƣơng tự khoảng cách đƣợc ghép nối Một loạt biện pháp tƣơng tự khoảng cách đƣợc đề xuất áp dụng rộng rãi, chẳng hạn nhƣ độ tƣơng tự cosin hệ số tƣơng quan Jaccard Trong đó, giống thƣờng đƣợc hình thành mặt giống khoảng cách Các biện pháp khoảng cách nhƣ Euclide entropy tƣơng đối đƣợc áp dụng phân cụm để tính tốn khoảng cách hai chiều Với đa dạng giống biện pháp tính khoảng cách có sẵn, tính hiệu chúng phân cụm tài liệu văn chƣa rõ ràng… Từ thực tế đó, tơi thực luận văn tốt nghiệp với đề tài “Thuật toán k-means ứng dụng toán phân loại văn bản” Đối tƣợng phạm vi nghiên cứu 2.1 Đối tƣợng nghiên cứu Nghiên cứu lý thuyết: - Nghiên cứu tài liệu toán phân loại văn cơng bố ngồi nƣớc; - Nghiên cứu tài liệu đặc trƣng loại văn tiếng việt xây dựng hệ thống phân loại - Nghiên cứu thuật toán K-means để ứng dụng toán phân loại văn Nghiên cứu thực nghiệm: - Nghiên cứu xây dựng sở liệu phân loại văn - Nghiên cứu ngơn ngữ lập trình C# cài đặt cho toán phân loại văn - So sánh, đánh giá hiệu thuật toán 2.2 Phạm vi nghiên cứu Bài toán phân loại văn đƣợc thực nhiều thuật tốn khác nhƣ: thuật tốn Nạve Bayes, K-NN (K-Nearest-Neighbor), Cây định (Decision Tree), Mạng Neuron nhân tạo (Artificial Neural Network) SVM (Support Vector Machine) Mỗi phƣơng pháp cho kết tốt cho toán Trong phạm vi luận văn này, tập trung vào nghiên cứu thuật toán K-means nhằm so sánh với thuật toán khác xây dựng phần mềm ứng dụng ngơn ngữ lập trình C# cho tốn phân loại văn Mục đích, nhiệm vụ nghiên cứu Luận văn tập trung vào mục tiêu sau: (1) Nắm vững kiến thức phƣơng pháp học máy, nắm rõ ý tƣởng, chế hoạt thuật toán phân loại văn ứng dụng toán cụ thể (2) Nghiên cứu toán phân loại văn thuật toán kmeans (3) Nghiên cứu ngơn ngữ lập trình C# để cài đặt hệ thống phân loại văn đánh giá hiệu thuật toán K-means Nội dung nghiên cứu - Nghiên cứu tổng quan hệ thống phân loại văn đƣợc công bố - Nghiên cứu thuật toán tiền xử lý để nâng cao chất lƣợng văn cần xử lý - Nghiên cứu phƣơng pháp để tìm đặc trƣng tách từ tiếng việt - Nghiên cứu thuật toán k-means để phân loại văn - Nghiên cứu ngơn ngữ lập trình C# để cài hệ thống phân loại Đóng góp luận văn Trong Luận văn thuật toán K-means, có nhiều hạn chế nhƣng quan trọng machine learning (học máy) tảng cho nhiều thuật toán phức tạp khác Tuy nhiên luận văn nhấn mạnh phạm vi phân loại văn 25 Nhóm = (D1, D2, D3, D6, D9, D10) Nhóm = (D5, D8) Nhóm = (D4, D7) Có thể thấy ba nhóm khơng có thay đổi thành viên, nên ta dừng việc lặp cho việc chia 10 tài liệu thành nhóm 26 Chƣơng THỬ NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ PHÂN LOẠI VĂN BẢN VỚI THUẬT TỐN K-MEANS 3.1 Tóm tắt thuật tốn Input: X = xi| i = 1, 2, …, N},và số lƣợng cluster cần tìm K Output: trọng tâm M, cụm tách rời tƣơng ứng cho hàm tiêu chuẩn E đạt giá trị tối thiểu * Mô tả thuật toán: Khởi tạo số cụm K Begin False Trọng Tâm End True Các đối tƣợng k K/C trọng tâm đến đối tƣợng Gom nhóm đối tƣợng theo cụm Hình 3.1: Sơ đồ khối chương trình 3.2 Sử dụng thuật toán K-means để phân lớp văn Muốn áp dụng thuật toán K-means vào phân lớp văn cần phải thực vector hóa văn cho văn đƣợc biểu diễn dƣới dạng vector , nhƣ việc vector hóa văn 27 sử dụng mơ hình vector khơng gian Sau có tập vector ta áp dụng thuật toán K-means để tách văn 3.2.1 Thực việc tách từ Sau có văn bản, đƣợc đánh số từ đến 50 Tôi thực việc tách từ câu văn phần mềm VnTokenizer Một số kết tách từ đƣợc minh họa hình sau Hình 3.2: Tách từ phần mềm VnTokenizer 3.2.2 Chuẩn hóa liệu Dữ liệu sau tách từ cịn chứa từ không cần thiết, không quan trọng tốn phân loại văn Ví dụ ta loại bỏ ký hiệu đặc biệt, dấu câu, khoảng trống, số Giả sử liệu sau tách ta đƣợc nhƣ sau: [Mở_cửa/CAPITAL, lúc/WORD, 8h30/MIX, sáng/WORD, 5/6/DATE_1, ,/PUNCT, giá/WORD, vàng/WORD, miếng/WORD, trong/WORD, nước/WORD, được/WORD, Tập_Đoàn_Vàng_bạc/NAME, đá_quý/WORD, Doji/CAPITAL, niêm_yết/WORD, ở/WORD, mức/WORD, :/PUNCT, 36,58/NUMBER, triệu/WORD, đồng/WORD, //PUNCT, lượng/WORD, (/PUNCT, mua/WORD, vào/WORD, )/PUNCT, và/WORD, 36,67/NUMBER, triệu/WORD, đồng/WORD, //PUNCT, lượng/WORD, (/PUNCT, bán/WORD, ra/WORD, ),/PUNCT, giảm/WORD, 10/NUMBER, 28 ngàn/WORD, đồng/WORD, vào/WORD, so/WORD, chiều/WORD, phiên/WORD, ở/WORD, chiều/WORD, mua/WORD, với/WORD, cuối/WORD, giờ/WORD, liền/WORD, trước/WORD, /PUNCT, Cơng_ty/CAPITAL, vàng_bạc/WORD, đá_q/WORD, Sài_Gịn/NAME, niêm_yết/WORD, giá/WORD, vàng/WORD, SJC/ALLCAP, ở/WORD, mức/WORD, 36,54/NUMBER, triệu/WORD, đồng/WORD, //PUNCT, lượng/WORD] Bây ta giữ lại phần mà có từ WORD, NAME, CAPITAL sau Các loại khác loại bỏ Ta đƣợc kết tách từ sau chuẩn hóa nhƣ sau: [Mở_cửa, lúc, sáng, giá, vàng, miếng, trong, nước, được, Tập_Đoàn_Vàng_bạc, đá_quý, Doji, niêm_yết, ở, mức, triệu, đồng, lượng, (, mua, vào, ), và, triệu, đồng, lượng, (, bán, ra, ), giảm, ngàn, đồng, ở, chiều, mua, vào, so, với, cuối, giờ, chiều, phiên, liền, trước, , Công_ty, vàng_bạc, đá_quý, niêm_yết, giá, vàng, ở, mức, , triệu, đồng, lượng] Từ từ tách bƣớc trên, ta xây dựng đƣợc từ điển chứa từ khác nhau, tạo nên văn Với đoạn văn đƣợc tách ta có từ điển bao gồm từ sau: [Mở_cửa, lúc, sáng, giá, vàng, miếng, trong, nước, được, Tập_Đoàn_Vàng_bạc, đá_quý, Doji, niêm_yết, ở, mức, triệu, đồng, lượng, (, mua, vào, ), và, triệu, đồng, lượng, (, bán, ra, ), giảm, ngàn, đồng, ở, chiều, mua, vào, so, với, cuối, giờ, chiều, phiên, liền, trước, , Công_ty, vàng_bạc, đá_quý, niêm_yết, giá, vàng, ở, mức, , triệu, đồng, lượng] 3.2.3 Xây dựng từ điển Từ từ tách bƣớc trên, ta xây dựng đƣợc từ điển cho từ khác nhau, tạo nên văn Với đoạn văn đƣợc tách ta có từ điển bao gồm từ sau: [Mở_cửa, lúc, sáng, giá, vàng, miếng, trong, nước, được, Tập_Đoàn_Vàng_bạc, đá_quý, Doji, niêm_yết, ở, mức, triệu, đồng, lượng, 29 (, mua, vào, ), và, triệu, đồng, lượng, (, bán, ra, ), giảm, ngàn, đồng, ở, chiều, mua, vào, so, với, cuối, giờ, chiều, phiên, liền, trước, , Công_ty, vàng_bạc, đá_quý, niêm_yết, giá, vàng, ở, mức, , triệu, đồng, lượng] 3.2.4 Mơ hình vector khơng gian Có thể nói mơ hình vector khơng gian (mơ hình vector hạn) mơ hình đại số cho đại diện tài liệu văn đƣợc gọi vector định danh, cụ thể nhƣ số Nó thƣờng đƣợc sử dụng lọc thông tin, thu hồi thông tin, lập mục bảng xếp hạng có liên quan Sử dụng hệ thống truy hồi thơng tin SMART Mỗi kích thƣớc thƣờng tƣơng ứng với thuật ngữ riêng biệt Vì hạn xảy tài liệu, giá trị vector khơng Có nhiều cách tính trọng lƣợng (hạn) nhƣng cách tính tối ƣu phải kể đến tf-idf Thông thƣờng điều kiện từ đơn, từ khoá cụm từ dài Nếu đƣợc lựa chọn điều kiện, số chiều vector số từ từ vựng (số lƣợng từ riêng biệt xảy ngữ liệu).Vector hoạt động đƣợc sử dụng để so sánh tài liệu với truy vấn Bên cạnh q trình chọn vector trọng tâm ban đầu quan trọng, ta tìm đƣợc trọng tâm nhóm phân biệt tối ƣu nhất, nhƣng điều lại khó thực đƣợc Trong chƣơng trình, tơi thực khởi tạo ngẫu nhiên trọng tâm ban đầu số nhóm xác định trƣớc 3.2.5 Xác định trọng số (tọa độ) hạn (term) văn Trong mơ hình vector khơng gian cổ điển, trọng lƣợng cụ thể hạn vectơ tài liệu văn tích biến số địa phƣơng tồn cục Cũng gọi mơ hình nhƣ nghịch đảo tần số hạn tần số tài liệu mơ hình Vector trọng lƣợng cho tài liệu d vector 30 Khi ta xác định tọa độ wt,d theo công thức dƣới đây: Trong đó, tft,d tần số xuất hạn t tài liệu d nghịch đảo tần số tài liệu |D| tổng tài liệu tập số tài liệu chứa hạn t 3.2.6 Xác định hạn (term) văn Việc xác định hạn văn thực chất xác định từ văn Tuy nhiên việc tách từ văn khơng phải tốn dễ, đặc biệt tiếng Việt Đối với việc xác định hạn văn từ tối nghĩa đƣợc loại bỏ đầu tiên, từ tối nghĩa thƣờng giới từ, mạo từ nhƣ: “thì”, “là”, “mà”, “và”, “rằng”, “sẽ”,… Các từ đƣợc gọi stopwords Còn văn tiếng anh việc tách từ tƣơng đối dễ hầu hết từ tiếng Anh từ đơn áp dụng việc tách khoảng trắng ký tự đặc biệt Mặt khác gần nhƣ từ tiếng việt từ ghép việc tách từ đơn nhƣ làm cho việc gom nhóm giảm độ xác Ví dụ: “họa sĩ”, “ca sĩ”, “thi sĩ”, “bác sĩ”,… việc tách thành từ đơn làm cho việc gom nhóm khơng hiệu Vì báo cáo sử dụng việc tách từ theo từ điển Một từ điển gồm từ ghép thƣờng đƣợc sử dụng hàng ngày tiếng Việt đƣợc chọn lọc gồm từ thƣờng dùng hầu hết danh từ Từ điển đƣợc xếp theo thứ tự giảm dần số âm tiết Điều giúp việc tách từ xác hiệu Giai đoạn tách từ đƣợc tiến hành lần lƣợt từ từ nhiều âm tiết trƣớc sau tới từ âm tiết Ví dụ: “Khoa học cơng nghệ ngày đƣợc coi trọng” 31 Mẫu từ điển: “Khoa học công nghệ”, “khoa học” “công nghệ”, 3.3 Xây dựng chƣơng trình C# Code chƣơng trình đƣợc viết Visual Studio 2013 Khai báo lớp DocumentVector vectơ không gian (vectơ hạn) public class DocumentVector { public string Content { get; set; } public float[] VectorSpace { get; set; } } Bƣớc ta định nghĩa lớp DocumentCollection để chứa tài liệu đƣợc gom nhóm class DocumentCollection { public List DocumentList { get; set; } } Tiếp đến ta xác định tần số nghịch đảo hạn tần số TF-IDF đƣợc tính cơng thức sau: TF-IDFt,d = TFt,d*IDFt t hạn tài liệu d Tính tốn trọng số TF-IDF cho thuật ngữ t tài liệu d //Tinh so TF-IDF cho moi tu xuat hien o tai lieu d private static float FindTFIDF(string document, string term) { float tf = FindTermFrequency(document, term); float idf = FindInverseDocumentFrequency(term); return tf * idf; } private static float FindTermFrequency(string document, string term) { 32 int count = r.Split(document).Where(s => s.ToUpper() == term.ToUpper()).Count(); //Xac dinh ty le xuat hien cua mot tu t tai lieu d return (float)((float)count / (float)(r.Split(document).Count())); } private static float FindInverseDocumentFrequency(string term) { //Khong tim duoc tu co tai lieu int count = documentCollection.ToArray().Where(s => r.Split( s.ToUpper()).ToArray().Contains(term.ToUpper())).Count(); return (float)Math.Log((float)documentCollection.Count() / (float)count); } Tiếp đến tìm giống (tƣơng đồng tài liệu) việc sử dụng phƣơng thức FindCosineSimilarity ublic static float FindCosineSimilarity(float[] vecA, float[] vecB) { var dotProduct = DotProduct(vecA, vecB); var magnitudeOfA = Magnitude(vecA); var magnitudeOfB = Magnitude(vecB); float result = dotProduct / (magnitudeOfA * magnitudeOfB); //tra ve truong hop mau so la if (float.IsNaN(result)) return 0; else return (float)result; } để chuẩn bị ta phân cụm cho văn ta định nghĩa thêm lớp entroid public class Centroid { public List GroupedDocument { get; set; } } chuẩn bị cụm tài liệu public static List PrepareDocumentCluster(int k, List documentCollection,ref int _counter) { 33 globalCounter = 0; //Khoi tao k ban dau va lay ngau nhien diem lam tam List centroidCollection = new List(); Centroid c; HashSet uniqRand = new HashSet(); GenerateRandomNumber(ref uniqRand,k,documentCollection.Count); foreach(int pos in uniqRand) { c = new Centroid(); c.GroupedDocument = new List(); c.GroupedDocument.Add(documentCollection[pos]); centroidCollection.Add(c); } Boolean stoppingCriteria; List resultSet; List prevClusterCenter; InitializeClusterCentroid(out resultSet, centroidCollection.Count); { prevClusterCenter = centroidCollection; foreach (DocumentVector obj in documentCollection) { int index = FindClosestClusterCenter(centroidCollection, obj); resultSet[index].GroupedDocument.Add(obj); } InitializeClusterCentroid(out centroidCollection, centroidCollection.Count()); centroidCollection = CalculateMeanPoints(resultSet); stoppingCriteria = CheckStoppingCriteria(prevClusterCenter, centroidCollection); if (!stoppingCriteria) { //Khoi tao ket qua cho lan lap tiep theo InitializeClusterCentroid(out resultSet, centroidCollection.Count); } } while (stoppingCriteria == false); 34 _counter = counter; return resultSet; } Xây dựng trọng tâm cho cụm ta khởi tạo trọng tâm cho lần lặp private static void InitializeClusterCentroid(out List centroid,int count) { Centroid c; centroid = new List(); for (int i = 0; i < count; i++) { c = new Centroid(); c.GroupedDocument = new List(); centroid.Add(c); } } Tìm trọng tâm cho cụm gần rivate static int FindClosestClusterCenter(List clusterCenter,DocumentVector obj) { float[] similarityMeasure = new float[clusterCenter.Count()]; for (int i = 0; i < clusterCenter.Count(); i++) { similarityMeasure[i] = SimilarityMatrics.FindCosineSimilarity( clusterCenter[i].GroupedDocument[0].VectorSpace, obj.VectorSpace); } int index = 0; float maxValue = similarityMeasure[0]; for (int i = 0; i < similarityMeasure.Count(); i++) { //neu tai lieu co diem tuong dong thi gan vao cum cung tam 35 //sao cho chi muc thap nhat de vong lap khong bi lap lai if (similarityMeasure[i] >maxValue) { maxValue = similarityMeasure[i]; index = i; } } return index; } Xác định vị trí trọng tâm cụm Sau lần văn đƣợc gán cho trọng tâm cụm gần tính tốn lại giá trị trung bình trọng tâm cụm để xác định vị trí trọng tâm cụm (centroid) rivate static List CalculateMeanPoints(List _clusterCenter) { for (int i = 0; i < _clusterCenter.Count(); i++) { if (_clusterCenter[i].GroupedDocument.Count() > 0) { for (int j = 0; j < _clusterCenter[i].GroupedDocument[0].VectorSpace.Count(); j++) { float total = 0; foreach (DocumentVector vSpace in _clusterCenter[i].GroupedDocument) { total += vSpace.VectorSpace[j]; } _clusterCenter[i].GroupedDocument[0].VectorSpace[j] = total / _clusterCenter[i].GroupedDocument.Count(); } } } return _clusterCenter; } 36 3.4 Chƣơng trình demo Hình 3.3: Giao diện chương trình - Chạy tập tin TextClustering.exe - Khai báo tham số cần thiết cho hệ thống nhƣ: + Nhập số phân nhóm ban đầu vào ô số cụm K + Chép hay nhập văn cần phân loại vào textbox bên dƣới - Nhấn vào nút thêm để ghi nhận - Nhấn nút xóa để xóa thơng số vừa ghi nhận - Nhấn nút làm lại để khai báo lại từ đầu - Sau thiết lập xong hết thông số bắt đầu phân loại văn cách nhấn vào nút phân loại Ta nhấn nút phân loại kết bên tay phải khơng có thay đổi kết tối ƣu sau phân loại: 37 Hình 3.4: Khai báo tham số hệ thống Hình 3.5: Kết sau phân loại 38 KẾT LUẬN Phân loại văn tốn lĩnh vực xử lý ngơn ngữ tự nhiên Đây tốn có tính ứng dụng cao, nên thu hút đƣợc quan tâm nhà nghiên cứu Tuy nhiên, kết nghiên cứu tốn cịn nhiều hạn chế, ngơn ngữ tự nhiên phức tạp Điểm đạt đƣợc Trong khuôn khổ luận văn tốt nghiệp Tôi tìm hiểu đƣợc thuật tốn phân cụm liệu K-means Tôi đƣa đƣợc bƣớc cần thực phân loại văn thuật tốn k-means Tơi thu thập liệu văn tiến hành thử nghiệm với liệu thực Hƣớng phát triển Tiếp tục nghiên cứu thuật toán phân cụm khác, áp dụng vào toán phân loại văn để phân tích so sánh kết thuật tốn Do thời gian kiến thức cịn hạn chế nên nội dung nghiên cứu chƣa sâu nhiều thiếu sót Xin q thầy cơ, thầy hƣớng dẫn bạn đóng góp ý kiến 39 TÀI LIỆU THAM KHẢO Vũ Hữu Tiệp, Machine Learning bản, Ebook, 2018 [2] Đinh Điền, Giáo trình xử lý ngôn ngữ tự nhiên, Đại học Khoa Học Tự Nhiên Tp.HCM, 2004 Hƣớng dẫn sử dụng thƣ viện xử lý ngôn ngữ tự nhiên scikit, website: http://scikit-learn.org Cao Thanh Sơn, Bài giảng Khai phá liệu, 2017 ... toán phân loại văn ứng dụng toán cụ thể (2) Nghiên cứu toán phân loại văn thuật toán kmeans (3) Nghiên cứu ngơn ngữ lập trình C# để cài đặt hệ thống phân loại văn đánh giá hiệu thuật toán K- means. .. sử ta cần phân loại nhiều văn theo chủ đề khác Thuật toán K- means đƣợc sử dụng để phân loại văn theo chủ đề khác nhƣ: Giáo dục, thể thao, y tế, khoa học Để phân loại văn thuật toán K- means, ta... đặc trƣng loại văn tiếng việt xây dựng hệ thống phân loại - Nghiên cứu thuật toán K- means để ứng dụng toán phân loại văn Nghiên cứu thực nghiệm: - Nghiên cứu xây dựng sở liệu phân loại văn - Nghiên