Ứng dụng thuật toán máy vector hỗ trợ trong phân loại thông tin văn bản trên hệ thống website tuyển dụng (tt) Ứng dụng thuật toán máy vector hỗ trợ trong phân loại thông tin văn bản trên hệ thống website tuyển dụng (tt) Ứng dụng thuật toán máy vector hỗ trợ trong phân loại thông tin văn bản trên hệ thống website tuyển dụng (tt) Ứng dụng thuật toán máy vector hỗ trợ trong phân loại thông tin văn bản trên hệ thống website tuyển dụng (tt)
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG - NGUYỄN KIM ANH ỨNG DỤNG THUẬT TOÁN MÁY VECTOR HỖ TRỢ TRONG PHÂN LOẠI THÔNG TIN VĂN BẢN TRÊN HỆ THỐNG WEBSITE TUYỂN DỤNG CHUYÊN NGÀNH : KHOA HỌC MÁY TÍNH MÃ SỐ: 60.48.01.01 LUẬN VĂN THẠC SĨ KỸ THUẬT (Theo định hướng ứng dụng) NGƯỜI HƯỚNG DẪN KHOA HỌC: TS PHAN THỊ HÀ HÀ NỘI - 2016 Luận văn hồn thành tại: HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THÔNG Người hướng dẫn khoa học: TS Phan Thị Hà Phản biện 1: ……………………………………………… Phản biện 2: ……………………………………………… Luận văn bảo vệ trước Hội đồng chấm luận văn thạc sĩ Học viện Cơng nghệ Bưu Viễn thông Vào lúc: ngày tháng năm … Có thể tìm hiểu luận văn tại: - Thư viện Học viện Cơng nghệ Bưu Viễn thơng MỞ ĐẦU 1.1 Tính cấp thiết đề tài Trong sống đại ngày nay, nhu cầu cập nhật sử dụng thông tin internet phần thiết yếu hoạt động hàng ngày người Tại Việt Nam, với bùng nổ công nghệ thơng tin, nhu cầu đọc báo, tìm kiếm thơng tin internet trở thành thói quen thường nhật, đó, tìm việc làm nhu cầu thiết yếu Một yêu cầu đặt là: Làm tìm kiếm thơng tin việc làm cách có hiệu nhất? Với khối lượng thơng tin q lớn địi hỏi phải xử lý nhanh việc phân loại thủ cơng điều Hướng giải đưa xây dựng giải pháp cho phép tự động phân loại thơng tin theo nhóm nghề nghiệp Kỹ thuật Support Vector Machines (SVM) đánh giá công cụ phân loại phổ biến cho toán phân lớp phi tuyến Nhiều ứng dụng xây dựng dựa kỹ thuật SVM hiệu Xuất phát từ yêu cầu thực tế, nhằm hướng tới việc phân loại nội dung văn tiếng Việt, luận văn có tựa đề: “Ứng dụng thuật tốn Máy vector hỗ trợ phân loại thơng tin văn hệ thống Website tuyển dụng” 1.2 Tổng quan vấn đề nghiên cứu Sự đời phát triển nhanh chóng World Wide Web tạo điều kiện thuận lợi cho việc phân phối chia sẻ thơng tin Internet, dẫn đến bùng nổ thông tin số lượng, chất lượng chủ đề thơng tin Trong luận văn này, em tập trung nghiên cứu phương pháp phân loại văn tiếng Việt, cụ thể thu thập tự động nội dung Website, thực tối ưu bước tiền xử lý, sau phân loại nội dung theo số lĩnh vực nghề nghiệp kỹ thuật phân loại tốt máy vector hỗ trợ SVM 1.3 Mục đích, đối tượng, phạm vi phương pháp nghiên cứu Mục đích nghiên cứu: Tìm hiểu tốn phân loại xử lý văn Tìm hiểu xử lý phân loại văn Tìm hiểu áp dụng thuật toán SVM việc phân loại thơng tin việc làm trích rút từ website Đối tượng nghiên cứu: Bài toán tiền xử lý phân loại văn Phương pháp SVM phân loại văn Phạm vi nghiên cứu Nghiên cứu tổng quan xử lý ngôn ngữ tự nhiên toán phân loại văn Sau đó, luận văn sâu tìm hiểu ứng dụng phương pháp học máy SVM việc phân loại thông tin tuyển dụng hệ thống website tuyển dụng Phương pháp nghiên cứu: Lý thuyết: Tìm hiểu tốn xử lý phân tích văn tiếng Việt, phương pháp học máy Phương pháp thực nghiệm: Cài đặt phương pháp học máy SVM cho việc phân lớp thông tin việc làm website 1.4 Cấu trúc luận văn Với mục tiêu đặt vậy, nội dung kết luận văn trình bày qua chương sau: CHƯƠNG I: BÀI TOÁN PHÂN LOẠI VĂN BẢN Giới thiệu chương: Chương giới thiệu toán phân loại văn bản, phương pháp phân loại văn bản, cách biểu diễn văn Chương so sánh phương pháp SVM với phương pháp phân loại khác từ đưa lý luận văn lại chọn sử dụng SVM Nội dung chương: Phát biểu toán phân loại văn Một số phương pháp phân loại văn Các mơ hình biểu diễn văn Lựa chọn đặc trưng biểu diễn văn Phương pháp đánh trọng số cho từ khóa Kết luận chương: Chương giới thiệu tổng quan toán phân loại văn bản, phương pháp phân loại, số kỹ thuật để biểu diễn văn đưa lý chọn thuật toán SVM luận văn CHƯƠNG II: ÁP DỤNG SVM VÀO BÀI TOÁN PHÂN LOẠI VĂN BẢN Giới thiệu chương: Chương trình bày chi tiết phương pháp máy vector hỗ trợ SVM phân loại văn Đồng thời, chương giới thiệu việc thu thập nội dung văn từ website, sau thực tiền xử lý văn cuối phân loại văn Nội dung chương: Thu thập tiền xử lý văn Trình bày chi tiết thuật toán Máy vector hỗ trợ SVM Kết luận chương: Chương giới thiệu chi tiết thuật tốn Máy vector hỗ trợ SVM trình bày cách thu thập, trích rút xử lý cách tự động tin tức tuyển dụng Sau đó, luận văn sử dụng SVM để thực việc huấn luyện phân loại cho tốn phân loại thơng tin tuyển dụng hệ thống website tuyển dụng CHƯƠNG III: THỬ NGHIỆM VÀ ĐÁNH GIÁ Giới thiệu chương: Chương xây dựng liệu huấn luyện thử nghiệm, sau dùng liệu thử nghiệm để thực phân lớp đưa đánh giá Nội dung chương: Xây dựng liệu huấn luyện thử nghiệm Giai đoạn phân lớp Kết luận hướng phát triển Kết luận chương: Dữ liệu huấn luyện kiểm thử xây dựng bán tự động Sau tiến hành giai đoạn phân lớp đánh giá kết Chương - BÀI TỐN PHÂN LOẠI VĂN BẢN 1.1 Phát biểu tốn phân loại văn Phân loại văn (hay Text Categorization Document Classificant) trình gán văn vào hay nhiều chủ đề biết tập hữu hạn chủ đề xác định từ trước Việc phân loại tiến hành cách thủ công: đọc nội dung văn gán vào lớp Tuy nhiên, hệ thống gồm nhiều văn phương pháp tốn nhiều thời gian cơng sức Do cần phải có phương pháp tự động để phân loại văn Để tiến hành phân loại văn nói chung, thực bước sau: Bước 1: Xây dựng liệu huấn luyện dựa vào tài liệu văn phân loại sẵn Tiến hành học cho liệu, xử lý thu thập liệu trình học đặc trưng riêng biệt cho chủ đề Bước 2: Dữ liệu cần phân loại xử lý, rút đặc trưng kết hợp với đặc trưng học trước để phân loại rút kết 1.2 Một số phương pháp phân loại văn 1.2.1 Thuật toán K–Nearest Neighbor (kNN) Khi cần phân loại văn mới, thuật tốn tính khoảng cách (khoảng cách Euclide, Cosine ) tất văn tập huấn luyện đến văn để tìm k văn gần (gọi k “láng giềng”), sau dùng khoảng cách đánh trọng số cho tất chủ đề Trọng số chủ đề tổng tất khoảng cách văn k láng giềng có chủ đề, chủ đề không xuất k láng giềng có trọng số Sau chủ đề xếp theo mức độ trọng số giảm dần chủ đề có trọng số cao chọn chủ đề văn cần phân loại 1.2.2 Thuật toán định (Decision tree) Cây định mơ tả cách tính tốn xác suất có điều kiện Cây định mơ tả kỹ thuật tính tốn hỗ trợ tốn học, kỹ thuật hỗ trợ việc mô tả, phân loại khái quát tập liệu đưa vào Thuật toán Cho tập ví dụ huấn luyện D Tìm định phù hợp với D Bước 1: Khởi tạo đỉnh gốc Tồn tập ví dụ huấn luyện D vào đỉnh Bước 2: Repeat Chọn đỉnh chưa gán nhãn để phát triển gọi đỉnh thời Giả sử tập ví dụ huấn luyện vào đỉnh S If (S = rỗng) Then (gán nhãn chung D) Else If (tất ví dụ S gán nhãn c) Then (đỉnh thời gán nhãn c) Else Đỉnh thời gán nhãn thuộc tính A A = argmax Gain (S, Ai) Ai: ứng viên nhãn đỉnh thời giá trị v A gán nhãn cho nhánh từ A tới đỉnh Tập ví dụ huấn luyện tới đỉnh Sv Sv = {s ∈ S | s có giá trị thuộc tính A v} Until (tất đỉnh gán nhãn) 1.2.3 Thuật toán SVM (Support vector machine) Ý tưởng thuật toán ánh xạ (tuyến tính phi tuyến) liệu vào không gian vector đặc trưng (space of feature vectors) mà siêu phẳng tối ưu tìm để tách liệu thuộc hai lớp khác Cho trước tập huấn luyện biểu diễn khơng gian vector tài liệu điểm, phương pháp tìm siêu mặt phẳng h định tốt chia điểm không gian thành hai lớp riêng biệt tương ứng lớp + lớp – Chất lượng siêu mặt phẳng định khoảng cách (gọi biên) điểm liệu gần lớp đến mặt phẳng Khoảng cách biên lớn mặt phẳng định tốt đồng thời việc phân loại xác Mục đích thuật tốn SVM tìm khoảng cách biên lớn 1.2.4 Thuật tốn Nạve Bayes Ý tưởng cách tiếp cận Naïve Bayes sử dụng xác suất có điều kiện từ chủ đề để dự đoán xác suất chủ đề văn cần phân loại Điểm quan trọng phương pháp chỗ giả định xuất tất từ văn độc lập với Với giả định NB không sử dụng phụ thuộc nhiều từ vào chủ đề, không sử dụng việc kết hợp từ để đưa phán đốn chủ đề việc tính toán NB chạy nhanh phương pháp khác với độ phức tạp theo hàm số mũ 1.3 Các mô hình biểu diễn văn 1.3.1 Mơ hình Boolean Một mơ hình biểu diễn vector với hàm f cho giá trị rời rạc với hai giá trị sai (true false, 1) gọi mơ hình Boolean Mơ hình Boolean xác định sau: Giả sử có tập gồm m văn D = {d1, d2, d3, , dm}, T tập từ vựng gồm n từ khóa T = {t1, t2, tn} Gọi w = (wịj) ma trận trọng số, wij trọng số từ khóa ti văn dj xác định sau: wij = { t i ∈ dj t i ∉ dj 1.3.2 Mơ hình khơng gian vector Theo mơ hình này, văn biểu diễn thành vector Mỗi thành phần vector từ khóa riêng biệt tập văn gốc gán giá trị hàm f mật độ xuất từ khóa văn 1.3.3 Mơ hình xác suất (Mơ hình túi từ) Mơ hình xác suất mơ hình toán học làm việc với biến ngẫu nhiên phân bố xác xuất Theo thuật ngữ tốn học, mơ hình xác suất coi cặp (Y, P), Y tập quan sát (biến ngẫu nhiên) P tập phân bố xác suất Y Khi đó, sử dụng suy diễn xác suất cho ta kết luận phần tử tập Y Văn mô hình xác suất coi quan sát tập Y, đó: Các từ xuất văn thể nội dung văn Sự xuất từ độc lập lẫn độc lập ngữ cảnh Dạng đơn giản: liệt kê từ Dạng chi tiết: liệt kê từ số lần xuất 1.4 Lựa chọn đặc trưng biểu diễn văn 1.4.1 Thu gọn đặc trưng biểu diễn Một giải pháp để khắc phục vấn đề thu gọn số lượng từ để biểu diễn văn thu gọn số lượng đặc trưng cách lựa chọn đặc trưng có khả ảnh hưởng đến chất lượng phân lớp giải thuật phân lớp, đặc trưng khác bỏ qua Việc thu gọn cần đảm bảo cho đặc trưng lại có khả "đại diện" cho tồn văn bản, không làm giảm chất lượng phân lớp 1.4.2 Định luật Zipf Luhn đưa phương pháp đơn giản cho việc lựa chọn từ để biểu diễn văn (lựa chọn đặc trưng) sau: Cho tập gồm n văn bản, tính tần số từ (xuất lần) văn Tính tần số xuất từ toàn tập n văn Sắp xếp tần số từ giảm dần Chọn giá trị ngưỡng để loại bỏ từ có tần số cao ngưỡng Việc loại bỏ từ có tần số cao khơng tác động tới đặc trưng cho chủ đề cần phân loại đồng thời chuyển từ vào danh sách stopword Cũng vậy, chọn giá trị ngưỡng để loại bỏ từ có tần số thấp Các từ cịn lại từ dùng q trình đánh số văn Việc chọn từ để đánh số văn hay gọi lựa chọn đặc trưng 1.5 Phương pháp đánh trọng số cho từ khóa 1.5.1 Phương pháp boolean Giả sử có tập gồm m văn D = {d1, d2, d3, , dm}, T tập từ vựng gồm n từ khóa T = {t1, t2, tn} Gọi w = (wịj) ma trận trọng số, wij trọng số từ khóa ti văn dj xác định sau: wij = { t i ∈ dj t i ∉ dj 1.5.2 Phương pháp dựa tần số a Phương pháp dựa tần số từ khóa TF – Term Frequency Các giá trị wij tính dựa tần số xuất từ khóa văn Gọi fij số lần xuất thuật ngữ ti văn dj, wij tính công thức sau: wij = fij Hoặc wij = + log(fij ) Hoặc wij = √fij Trong phương pháp này, trọng số wij tỷ lệ thuận với số lần xuất từ t i văn dj Khi số lần xuất từ khóa t i văn dj nhiều điều có nghĩa văn dj phụ thuộc vào từ khóa t i, hay nói cách khác từ khóa t i mang nhiều thơng tin văn dj Ví dụ: văn xuất nhiều từ khóa “phần mềm”, điều có nghĩa văn xét chủ yếu liên quan đến lĩnh vực công nghệ thông tin b Phương pháp dựa nghịch đảo tần số văn IDF Trong phương pháp này, giá trị wij tính theo cơng thức sau: 10 Chương - ÁP DỤNG SVM VÀO BÀI TOÁN PHÂN LOẠI VĂN BẢN 2.1 Thu thập tiền xử lý văn 2.1.1 Thu thập địa trang web URL a Thu thập URL phục vụ cho liệu huấn luyện Một cách hữu hiệu để thu thập data phục vụ cho việc huấn luyện sử dụng RSS (Really Simple Syndication – định dạng tài liệu) Thông qua RSS lấy tin nhất, tiêu đề, tóm tắt đường link để xem toàn tin b Thu thập URL phục vụ cho ứng dụng Các URL phục vụ cho ứng dụng thu thập từ website việc làm không hỗ trợ RSS Từ URL đưa vào ứng dụng để tiến hành phân loại 2.1.2 Lọc nội dung trang web Những trang tải bao hàm dấu HTML, văn ‘boilerplate’ – menu, quảng cáo Đó phần tài liệu không hợp lệ, tạm gọi phần đánh dấu Trong luận văn, em sử dụng JSOUP (Java HTML Parser) thư viện dùng để phân tích tài liệu HTML Jsoup cung cấp API dùng để lấy liệu thao tác liệu từ URL từ file HTML Các trang Web điển hình thường có mục tài liệu mà phần bắt đầu kết thúc nhiều ‘boilerplate’ dấu HTML, phần phần nội dung văn phần đánh dấu tương đối ít, ngơn ngữ mục tài liệu cần sử dụng JSOUP giúp loại bỏ phần đánh dấu trích rút văn kết nối 2.1.3 Tiền xử lý văn a Đặc điểm từ tiếng Việt Tiếng Việt ngôn ngữ đơn lập Đặc điểm bao quát tiếng Việt mặt ngữ âm, ngữ nghĩa, ngữ pháp Khác với ngôn ngữ châu Âu, từ nhóm ký tự có nghĩa cách khoảng trắng Còn tiếng Việt ngơn ngữ đơn lập khác khoảng trắng để nhận diện từ 11 Có nhiều quan niệm từ tiếng Việt, từ nhiều quan niệm từ tiếng Việt khác thấy đặc trưng "từ" hoàn chỉnh mặt nội dung, từ đơn vị nhỏ để đặt câu Người ta dùng "từ" kết hợp thành câu khơng phải dùng "tiếng", q trình tách câu thành "từ" cho kết tốt tách câu “tiếng” b Tách từ Bài toán tách từ Tách từ bước xử lý thông tin q trình xử lý ngơn ngữ tự nhiên, làm đầu vào cho chương trình ứng dụng xử lý ngơn ngữ, tách từ nhiệm vụ khó khăn việc phân loại văn bản, gán nhãn từ loại ngôn ngữ châu Á tiếng Hoa, tiếng Thái, tiếng Việt Bài toán tách từ đặt nhằm phân tích dãy các từ đưa vào máy tính tách thành tập từ có nghĩa Trong năm gần cơng trình nghiên cứu toán tách từ tiếng Việt thường tập trung vào hướng tiếp cận để giải tốn cho tiếng Việt là: Hướng tiếp cận giải toán tách từ tiếng Việt dựa từ (Word based): Từ điển, thống kê,… Hướng tiếp cận giải toán tách từ tiếng Việt dựa âm tiết (Character-based): Unigram, bigram, trigram, n-gram… Công cụ vnTokenizer Đặt toán: Đối với văn tiếng Việt, dấu cách đặt âm tiết từ Một từ có một, hai nhiều âm tiết nên có nhiều cách phân chia âm tiết thành từ, gây nhập nhằng Việc phân giải nhập nhằng gọi toán tách từ Bài toán: Cho câu tiếng Việt bất kỳ, tách câu thành đơn vị từ vựng (từ), âm tiết khơng có từ điển (phát đơn vị từ vựng mới) Giới thiệu công cụ vnTokenizer: vnTokenizer công cụ tách từ tiếng Việt nhóm tác giả Nguyễn Thị Minh Huyền, Vũ Xuân Lương Lê Hồng Phương 12 phát triển dựa phương pháp so khớp tối đa (Maximum Matching) với tập liệu sử dụng bảng âm tiết tiếng Việt từ điển từ vựng tiếng Việt Công cụ xây dựng ngôn ngữ Java, mã nguồn mở Có thể dễ dàng sửa đổi nâng cấp tích hợp vào hệ thống phân tích văn tiếng Việt khác c Loại bỏ stop-word Từ dừng (stop-word) dùng để từ xuất nhiều văn toàn tập kết quả, thường khơng giúp ích việc phân biệt nội dung tài liệu văn Ví dụ, từ “và”, “thì”, “là”, “mà” thường xuất hầu hết văn gọi stop-word Vì đặc điểm từ dừng nên chúng loại bỏ mà không ảnh hưởng đến việc biểu diễn văn d Làm văn Tiếp theo, ta cần phải “làm sạch” văn để tạo tập liệu thiết thực Ví dụ: Loại bỏ dấu câu: “.”, “,”,“?”,“!”,“-”,“(”,“)”,“:”,“[”,“]” Loại bỏ kí tự đặc biệt: [ ],[.], [,], [:], [“], [”], [;], [/], [[]], [~], [`], [!], [@], [#], [$],[%],[^],[&],[*],[(],[)] Các chữ số, phép tính tốn số học: ký tự số thường loại không mang lại nhiều ý nghĩa cho văn (trừ số trường hợp đặc biệt, ví dụ thơng tin lĩnh vực lịch sử, tài – ngân hàng) Ngồi ra, cần phải loại bỏ dịng trống, khoảng trắng có nhiều khoảng trắng, ký tự đặc biệt (@, #, $, %, ^, /, \,…) 2.2 Trình bày chi tiết thuật tốn Máy vector hỗ trợ SVM 2.2.1 Giới thiệu thuật toán Máy vectơ hỗ trợ (SVM - viết tắt tên tiếng Anh support vector machine) khái niệm thống kê khoa học máy tính cho tập hợp phương pháp học có giám sát liên quan đến để phân loại phân tích hồi quy 2.2.2 Ý tưởng thuật toán Cho trước tập huấn luyện, biểu diễn khơng gian vector, tài liệu điểm, phương pháp tìm siêu phẳng h định tốt 13 chia điểm không gian thành hai lớp riêng biệt tương ứng lớp + lớp - Chất lượng siêu phẳng định khoảng cách (gọi biên) điểm liệu gần lớp đến mặt phẳng Khi đó, khoảng cách biên lớn mặt phẳng định tốt, đồng thời việc phân loại xác Mục đích phương pháp SVM tìm khoảng cách biên lớn để tạo kết phân lớp tốt, điều minh họa sau: Hình 2.9: Siêu phẳng h phân chia liệu huấn luyện thành lớp + – với khoảng cách biên lớn Các điểm gần h vector hỗ trợ (Support Vector khoanh trịn) 2.2.3 Thuật tốn Ban đầu, thuật toán SVM thiết kế cho toán phân lớp nhị phân Xét ví dụ tốn phân lớp hình vẽ; ta phải tìm đường thẳng cho bên trái tồn điểm đỏ, bên phải tồn điểm xanh Bài toán mà dùng đường thẳng để phân chia gọi phân lớp tuyến tính (linear classification) Hình 2.10: Phân lớp nhị phân 14 Hàm tuyến tính phân biệt hai lớp sau: 𝑦 (𝑥 ) = 𝑤 𝑇 𝛷 (𝑥 ) + 𝑏 (1) Trong đó: 𝑤 ∈ 𝑅𝑚 vector trọng số hay vector chuẩn siêu phẳng phân cách, T kí hiệu chuyển vị 𝑏 ∈ 𝑅 độ lệch 𝜙(𝑥) ∈ 𝑅𝑚 vector đặc trưng, 𝜙 làm hàm ánh xạ từ không gian đầu vào sang không gian đặc trưng Tập liệu đầu vào gồm N mẫu input vector {x1, x2, ,xN}, với giá trị nhãn tương ứng {t1,…,tN} 𝑡𝑛 ∈ {−1,1} Lưu ý cách dùng từ đây: điểm liệu, mẫu… hiểu input vector xi; không gian chiều đường phân cách đường thẳng, khơng gian đa chiều gọi siêu phẳng Giả sử tập liệu ta phân tách tuyến tính hồn tồn (các mẫu phân lớp) không gian đặc trưng (feature space), tồn giá trị tham số w b theo (1) thỏa 𝑦(𝑥𝑛 ) > cho điểm có nhãn 𝑡𝑛 = +1 𝑦(𝑥𝑛 ) < cho điểm có 𝑡𝑛 = −1, mà 𝑡𝑛 𝑦(𝑥𝑛 ) > cho điểm liệu huấn luyện SVM tiếp cận giải vấn đề thông qua khái niệm gọi lề, đường biên… (margin) Lề chọn khoảng cách nhỏ từ đường phân cách đến điểm liệu khoảng cách từ đường phân cách đến điểm gần Trong SVM, đường phân lớp tốt đường có khoảng cách margin lớn (tức tồn nhiều đường phân cách xoay theo phương khác nhau, ta chọn đường phân cách mà có khoảng cách margin lớn nhất) 15 2.3 Phân loại đa lớp nội dung văn với SVM Bây xét đến trường hợp phân nhiều lớp K > Chúng ta xây dựng việc phân K-class dựa việc kết hợp số đường phân lớp Ý tưởng toán phân lớp đa lớp chuyển toán phân lớp hai lớp cách xây dựng nhiều phân lớp hai lớp để giải Các chiến lược phân lớp đa lớp phổ biến là: One-against-One (OAO), One-against-Rest (OAR) Chiến lược One-against-Rest Trong chiến lược OAR, ta dùng K-1 phân lớp nhị phân để xây dựng Kclass Bài toán phân lớp K lớp chuyển thành K-1 tốn phân lớp hai lớp Trong phân lớp hai lớp thứ I xây dựng lớp thứ i tất lớp lại Hàm định thứ I dùng để phân lớp thứ i lớp cịn lại có dạng: 𝑦𝑖 (𝑥) = 𝑤𝑖𝑇 (𝑥) + 𝑏𝑖 Siêu phẳng yi(x) = hình thành siêu phẳng phân chia tối ưu, support vector thuộc lớp i thỏa yi(x) = support vector thuộc lớp lại thỏa yi(x) = -1 Nếu vector liệu x thỏa mãn điều kiện yi(x)>0 I, x phân vào lớp thứ i Chiến lược One-against-One Chiến lược OAO, dùng K(K-1)/2 phân lớp nhị phân xây dựng cách bắt cặp hai lớp nên chiến lược gọi pairwise sử dụng theo phương pháp đa số kết lợp phận lớp để xác định kết phân lớp cuối Số lượng phân lớp không vượt K(K-1)/2 Chiến lược OAR cần K-1 phân lớp cho K lớp Trong chiến lược OAO lại cần đến K(K-1)/2 phân lớp Nhưng số mẫu huấn luyện cho phân lớp OAO lại việc phân lớp đơn giản Vì chiến lược OAO có độ xác cao chi phí để xây dựng lại tương đương với chiến lược OAR Hàm định phân lớp lớp i lớp j chiến lược OAO là: yij (x) = wijT (x) + bij Tuy nhiên hai chiến lược dẫn đến vùng mập mờ phân lớp (như hình 2.13) 16 Hình 2.13: Vùng mập mờ phân lớp Ta tránh vấn đề cách xây dựng K-Class dựa K hàm tuyến tính có dạng: 𝑦𝑘 (𝑥) = 𝑤𝑘𝑇 𝑥 + 𝑏𝑘0 Và điểm x gán vào lớp Ck 𝑦𝑘 (𝑥) > 𝑦𝑗 (𝑥) với 𝑗 ≠ 𝑘 2.4 Các tham số SVM SVM có tham số sau: svm->setType svm->setKernel svm->setDegree Kết luận chương: Chương giới thiệu chi tiết thuật toán Máy vector hỗ trợ SVM trình bày cách thu thập, trích rút xử lý cách tự động tin tức tuyển dụng Sau đó, luận văn sử dụng SVM để thực việc huấn luyện phân loại cho tốn phân loại thơng tin tuyển dụng hệ thống website tuyển dụng 17 Chương - THỬ NGHIỆM VÀ ĐÁNH GIÁ 3.1 Xây dựng liệu tiền xử lý văn Trong phạm vi luận văn, em sử dụng lấy tin tự động từ RSS để cập nhật việc làm ngày nhằm xây dựng liệu huấn luyện Dữ liệu lấy từ trang web: https://www.careerlink.vn/ http://www.vinawork.com/ Hình 3.2: Danh sách RSS thu thập phục vụ giai đoạn huấn luyện Các báo việc làm thu thập thông qua RSS từ tháng 8/2016 Các báo lấy sau tiến hành tiền xử lý, cuối lưu dạng file phục vụ cho huấn luyện kiểm tra Dữ liệu thu thập gồm có 1409 báo, chọn 800 dùng cho huấn luyện 609 dùng cho việc kiểm tra Cụ thể số liệu sau: Bảng 3.1: Số lượng tập liệu huấn luyện kiểm tra Chủ đề Tập liệu huấn luyện Tập liệu kiểm tra Kinh doanh/Bán hàng 200 233 Công nghệ thông tin 200 179 Nhân (CNTT) Khách sạn/Du lịch 200 117 200 80 Sau bước tiền xử lý, văn biểu diễn dạng: : : : Trong đó: classi nhãn phân loại chủ đề 18 labeli số từ đặc trưng thứ i khơng gian đặc trưng có xuất phản hồi valuei trọng số indexi tính cơng thức TF.IDF, valuei = khơng cần phải ghi đặc trưng Định dạng tuân theo định dạng liệu đầu vào chương trình SVMMulticlass Đánh giá độ xác thuật tốn: Chúng ta khẳng định phương pháp phân lớp văn cụ thể xác hồn tồn Vì việc đưa độ đo để đánh giá hiệu thuật toán phân lớp giúp xác định độ xác thuật tốn, từ áp dụng thuật tốn vào việc phân lớp Độ xác tính theo công thức: Công thức đánh giá số 1: Độ 𝑐ℎí𝑛ℎ 𝑥á𝑐 = 𝑆ố 𝑣ă𝑛 𝑏ả𝑛 𝑝ℎâ𝑛 𝑙𝑜ạ𝑖 đú𝑛𝑔 𝑇ổ𝑛𝑔 𝑠ố 𝑣ă𝑛 𝑏ả𝑛 𝑝ℎâ𝑛 𝑙𝑜ạ𝑖 Công thức đánh giá số 2: ∑ Độ 𝑐ℎí𝑛ℎ 𝑥á𝑐 = 𝑆ố 𝑣ă𝑛 𝑏ả𝑛 𝑝ℎâ𝑛 𝑙𝑜ạ𝑖 đú𝑛𝑔 𝑡ℎ𝑢ộ𝑐 𝑐ℎủ đề 𝐶𝑖 𝑇ổ𝑛𝑔 𝑠ố 𝑣ă𝑛 𝑏ả𝑛 𝑡ℎ𝑢ộ𝑐 𝑐ℎủ đề 𝐶𝑖 𝑇ổ𝑛𝑔 𝑠ố 𝑐ℎủ đề Sau kết thực nghiệm test gồm 609 văn bản: Hình 3.5: Kết độ xác việc phân loại 3.2 Giai đoạn phân lớp 3.2.1 URL phục vụ cho ứng dụng Mục đích ứng dụng tìm kiếm thơng tin việc làm lấy thông tin việc làm từ website đưa vào hệ thống, sau tiến hành phân loại việc làm 19 theo chủ đề có Danh sách URL em sử dụng để phục vụ cho ứng dụng sau: http://worklink.vn http://careerbuilder.vn/tim-viec-lam.html https://www.timviecnhanh.com/ https://www.vietnamworks.com/tim-viec-lam https://mywork.com.vn/ 3.2.2 Triển khai ứng dụng Mục đích ứng dụng xây dựng danh sách việc làm lấy từ website liệt kê phần 3.2.1 tiến hành phân loại chúng vào category có sẵn Kinh doanh/Bán hàng, Công nghệ thông tin, Nhân Khách sạn/Du lịch Bước 1: Input URL từ danh sách website việc làm không support RSS Bước 2: Trích xuất văn từ URL Bước 3: Tiền xử lý văn Tách từ Loại bỏ từ dừng Làm văn Vector hóa văn theo định dạng đầu vào thuật toán SVM Bước 4: Thực phân loại theo bốn chủ đề Hình 3.6: Phân loại URL input vào ứng dụng 20 Kết luận chương Chương trình bày cụ thể việc xây dựng liệu huấn luyện thử nghiệm, từ tính tốn độ xác thuật tốn; đưa ứng dụng việc phân loại URLs website việc làm vào nhãn tương ứng 21 KẾT LUẬN Kết đạt Luận văn tiến hành nghiên cứu giải toán phân loại văn tiếng Việt dựa vào đặc trưng Bài toán tảng cho nhiều ứng dụng quan trọng thực tế lọc thư rác, hệ thống khuyến cáo/quan điểm người dùng,… Những kết mà đồ án đạt được: Nghiên cứu tìm hiểu tốn phân lớp, trình bày số thuật tốn phân lớp tiêu biểu Tìm hiểu số đặc điểm văn tiếng Việt phục vụ cho trình tiền xử lý Tìm hiểu áp dụng công cụ tiền xử lý liệu đầu vào Nghiên cứu tìm hiểu thuật toán Support Vector Machine hai lớp nhiều lớp Xây dựng chương trình lấy tin RSS hàng ngày Xây dựng chương trình huấn luyện kiểm thử với liệu lấy từ chương trình lấy tin RSS Xây dựng chương trình phân loại việc làm vào category có sẵn từ website khơng hỗ trợ RSS Hạn chế: Một văn đầu vào sau phân loại thuộc loại nhãn Hạn chế số lượng chất lượng kho liệu tin tức ảnh hưởng đến chất lượng phân loại hệ thống Cần xác định giá trị chuẩn để văn thuộc vào nhiều thể loại, không thuộc thể loại Hướng phát triển Xây dựng liệu lớn hoàn chỉnh, phong phú lĩnh vực việc làm chia lĩnh vực nhỏ tốt Cần xác định giá trị chuẩn để văn thuộc vào nhiều thể loại, không thuộc thể loại 22 Cải thiện hiệu xuất, tăng tốc độ xử lý liệu Kiểm soát thông tin lấy theo ngày tháng năm mong muốn đảm bảo tính cập nhật việc làm 23 DANH MỤC TÀI LIỆU THAM KHẢO Tài liệu Tiếng Việt [1] Phan Thị Hà, Hà Hải Nam (2012), “Automatic main text extraction from web pages”, Tạp chí Khoa học Cơng nghệ, Viện Hàn lâm Khoa học Việt Nam [2] Phạm Nguyên Khang, Trần Cao Đệ (2012), “Phân loại văn với máy học vector hỗ trợ định”, Tạp chí Khoa học [3] Lê Văn Long, “Tìm hiểu xây dựng thư viện điện tử với phương pháp support vector machine” [4] Lê Hồng Phương “Nghiên cứu từ vựng Tiếng Việt với hệ thống SKETCH ENGINE” [5] Từ Minh Phương (2010), “Bài giảng Nhập mơn trí tuệ nhân tạo”, Học Viện Cơng nghệ bưu viễn thơng [6] Trần Thị Thu Thảo, Vũ Thị Chinh “Xây dựng hệ thống phân loại tài liệu tiếng Việt” Tài liệu Tiếng Anh [7] Aidan Finn, Nicholas Kushmerick & Barry Smyth: Content classification for digital libraries [8] Ian H.Witten, Eibe Frank (2005), “Data Mining: Practical Machine Learning Tools and Techniques” [9] Joachims T (1998), “Text categorization with Support Vector Machines: Learning with many relevant features”, in Proc of the European Conference on Machine Learning (ECML) [10] Steven Bird, Ewan Klein, and Edward Loper, “Natural Language Processing with Python”, Chapter Website tham khảo [11] http://www.nltk.org/book_1ed/ [12] http://en.wikipedia.org/wiki/Support_vector_machine [13] http://svmlight.joachims.org/ 24 [14] http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/#libsvm_data_sets [15] http://www.cs.cornell.edu/people/tj/svm_light/svm_multiclass.html [16] http://mim.hus.vnu.edu.vn/phuonglh/softwares/vnTokenizer [17] https://github.com/stopwords/vietnamese-stopwords [18] http://www.uet.vnu.edu.vn/~thuyhq/Courses_PPT/KPW_C5_Bieu_dien_K52.ppt [19] http://mvnrepository.com/artifact/org.jsoup/jsoup ... thực tế, nhằm hướng tới việc phân loại nội dung văn tiếng Việt, luận văn có tựa đề: ? ?Ứng dụng thuật toán Máy vector hỗ trợ phân loại thông tin văn hệ thống Website tuyển dụng? ?? 1.2 Tổng quan vấn đề... thiệu tổng quan toán phân loại văn bản, phương pháp phân loại, số kỹ thuật để biểu diễn văn đưa lý chọn thuật toán SVM luận văn CHƯƠNG II: ÁP DỤNG SVM VÀO BÀI TOÁN PHÂN LOẠI VĂN BẢN Giới thiệu... tiết thuật toán Máy vector hỗ trợ SVM trình bày cách thu thập, trích rút xử lý cách tự động tin tức tuyển dụng Sau đó, luận văn sử dụng SVM để thực việc huấn luyện phân loại cho toán phân loại thông