Đó là khởi nguồn cho bài toán rút trích thông tin và phân lớp văn bản và mở rộng hơn là bài toán phân đa lớpvăn bản dựa trên dữ liệu là nội dung các trang web trên internet.. TÔNG QUAN1.
PHƯƠNG PHÁPC .>2^ .c eeciee 12
Sử dụng Wrapper
Wrapper là phương pháp rút trích thông tin phổ biến từ các trang web Một wrapper được xem như một thủ tục thiết kế để rút trích nội dung của một nguồn thông tin cụ thể Trong môi trường web, wrapper chuyển đồi thông tin được lưu trữ dưới dang tài liệu HTML thành tài liệu được lưu trữ dưới dang dit liệu có cấu trúc để phục vụ cho những xử lý khác.
Một trong những giải pháp đầu tiên được sử dụng để tạo ra wrapper là phát triển ngôn ngữ xây dựng wrapper Trước khi phát triển giải pháp này, để xây dựng một wrapper thì ngôn ngữ Java thường được dùng Tuy nhiên việc tạo ra một thư viện các wrapper nhằm đề có thé rút trích những loại thông tin khác nhau thì đây là một cách rất mat nhiều công sức và thời gian Vì vậy người ta phát triển một lớp ngôn ngữ bên trên thân thiện, dễ dùng và không đòi hỏi những kiến thức sâu về kỹ thuật lập trình. Những công cụ theo hướng này có thé kể ra đây bao gồm: Lapis, Web-OQL, Tsimmis,
Mặc dù phát triển ngôn ngữ xây dung wrapper đã góp phan rất lớn giúp người sử dụng dễ dàng tạo wrapper rút trích thông tin mà mình quan tâm, tuy nhiên hiện nay các thông tin được trình bày theo phong cách và định dạng khác nhau ở các website khác nhau, thậm chí trên cùng một website nhưng cách trình bày thông tin của các trang web cũng khác nhau theo từng thời điểm khác nhau Điều này khiến cho người sử dụng phải liên tục cập nhật lại các wrapper mà mình đã viết, dé các wrapper này có thé rút trích những loại thông tin đã từng rút trích được nhưng bây giờ đã được trình bày theo định dạng khác.
Rút trích tự động nội dung liên quan đên từ khóa
Rút trích tự động từ khóa là xác định một tập hợp các từ, cụm từ khóa, từ khóa, phân đoạn quan trọng đại diện cho một văn bản.
Ta sử dụng phương pháp thống kê đơn giản Phương pháp này thực hiện tìm kiếm và tải về các trang web có nội dung liên quan đến từ khóa đó Nội dung tìm kiếm được lưu thành file dạng văn bản text, đã có sự sàng lọc, loại bỏ các phần không cần thiết như hình ảnh, quảng cao
“Thuật toán rút trích thông tin trong một trang web lấy ý tưởng từ thuật toán so sánh trùng hai cây html Dữ liệu biểu diễn mỗi trang web là một cây dang xml. Đối với mỗi trang web cần rút trích, chương trình sẽ quét các link trong trang đó để tìm link có cấp bậc gần nhất với nó và nhiều khả năng là trang chứa nội dung như nó, có cùng mẫu (template) với nó Khi được một cặp trang cần rút trích và trang mẫu, chương trình phân tích chúng thành cây, so sánh các nút của hai cây, từ gốc đến lá để tìm phan nội dung, loại bỏ phan trùng nhau giữa hai trang.
2.2.3 Xử lý ngôn ngữ tự nhiên Đây là phương pháp sử dụng các kỹ thuật xử lí ngôn ngữ tự nhiên được áp dụng cho những tài liệu mà thông tin trên đó là phi cấu trúc Các kỹ thuật này xem xét sự ràng buộc về mặt ngữ nghĩa và cú pháp dé từ đó có thé nhận dang ra các thông tin liên quan, cũng như dẫn xuất ra các luật rút trích thông tin Các công cụ sử dụng phương pháp này thích hợp cho việc rút trích thông tin trên những trang web có chứa những đoạn văn bản tuân theo qui luật văn phạm.
Tuy nhiên các thông tin trên web hiện nay đa phần là có cấu trúc hay bán cầu trúc và không phải lúc nào cũng được trình bày theo câu cú đúng văn phạm Một số công cụ áp dụng phương pháp này như: WHISK, RAPIER, SR [2.3].
Phương pháp rút trích thông tin này được thực hiện bằng cách so trùng trang web cần rút trích với trang web mẫu Việc này được thực hiện dễ dàng hơn đối với các trang web tin tức Nếu trang web cần rút trích có khung trình bày giống trang web mẫu, ta sẽ xác định được nội dung cần rút trích [3, 6, 7]
Cụ thể, ví dụ Hình 2.1 (nguồn [7]), phan thông tin trong khung nét liền là thông tin về khung trình bày chung của hai trang web, phần thông tin trong khung nét đứt là phần thông tin khác nhau mang nội dung chính của trang web, đây là nội dung cần rút trích.
Như vậy, để thực hiện phương pháp này Ta sử dụng các đoạn mã chương trình chạy trên web server để tạo ra đoạn mã Html thể hiện khung trình bày trang web mẫu, làm căn cứ so sánh với trang web cần rút trích dé tìm ra nội dung thông tin theo yêu câu.
Dé thực hiện việc rút trích thông tin người ta tuần tự làm những bước sau:
1 Tìm những trang web mà tiên liệu được rằng khuôn mẫu trình bày thông tin trên đó là giống nhau, sau đó nhóm chúng lại.
2 Đối với mỗi nhóm ở trên, người ta thực hiện so sánh các trang web dé đi tìm các điểm giống và khác nhau đề từ đó suy ra được khuôn mẫu trình bày chung của nhóm.
3 Từ khuôn mẫu tìm ra được của mỗi nhóm, thực hiện rút trích dữ liệu của các trang web thuộc nhóm đó.
Phương pháp này có điểm mạnh là có thể tự động rút trích thông tin mà kết quả không bị ảnh hưởng trong cả trường hợp cách trình bày thông tin khác nhau ở các trang web khác nhau và trường hợp cách trình bày thông tin trên một trang web luôn thay đổi Tuy nhiên kết quả rút trích của phương pháp này chỉ cho kết quả tốt với giả định rằng các trang web hiện nay thường trình bày thông tin theo một số mẫu và với mỗi mẫu sẽ được áp dụng lên một nhóm các trang Do đó nếu gặp các website không theo xu hướng này thì phương pháp đang trình bày sẽ thất bại.
Ngoài ra phương pháp này có thé được cải tiến bằng cách biến đổi hai trang web thành cây đa phân rồi tiến hành thực hiện việc so trùng trên cấu trúc của 2 cây đa phân này.
Kết quả nghiên cứu cho thấy phương pháp nhận dạng mẫu cải tiến bằng cách so trùng trên các cây da phân có độ chính xác cao khi rút trích thông tin trên các trang web Đặc biệt phương pháp này thích hợp cho việc rút trích thông tin trên các trang báo điện tử Vì hầu hết các trang báo điện tử hiện nay được tổ chức theo mô hình các trang tin tức trên một trang web đều có cùng cách trình bày như nhau [2,3].
Nhận dạng mẫu Chương 3 PHAN LỚP VĂN BẢN 222222222222222+22222222222222222222112221112XeY 17
Phương pháp rút trích thông tin này được thực hiện bằng cách so trùng trang web cần rút trích với trang web mẫu Việc này được thực hiện dễ dàng hơn đối với các trang web tin tức Nếu trang web cần rút trích có khung trình bày giống trang web mẫu, ta sẽ xác định được nội dung cần rút trích [3, 6, 7]
Cụ thể, ví dụ Hình 2.1 (nguồn [7]), phan thông tin trong khung nét liền là thông tin về khung trình bày chung của hai trang web, phần thông tin trong khung nét đứt là phần thông tin khác nhau mang nội dung chính của trang web, đây là nội dung cần rút trích.
Như vậy, để thực hiện phương pháp này Ta sử dụng các đoạn mã chương trình chạy trên web server để tạo ra đoạn mã Html thể hiện khung trình bày trang web mẫu, làm căn cứ so sánh với trang web cần rút trích dé tìm ra nội dung thông tin theo yêu câu.
Dé thực hiện việc rút trích thông tin người ta tuần tự làm những bước sau:
1 Tìm những trang web mà tiên liệu được rằng khuôn mẫu trình bày thông tin trên đó là giống nhau, sau đó nhóm chúng lại.
2 Đối với mỗi nhóm ở trên, người ta thực hiện so sánh các trang web dé đi tìm các điểm giống và khác nhau đề từ đó suy ra được khuôn mẫu trình bày chung của nhóm.
3 Từ khuôn mẫu tìm ra được của mỗi nhóm, thực hiện rút trích dữ liệu của các trang web thuộc nhóm đó.
Phương pháp này có điểm mạnh là có thể tự động rút trích thông tin mà kết quả không bị ảnh hưởng trong cả trường hợp cách trình bày thông tin khác nhau ở các trang web khác nhau và trường hợp cách trình bày thông tin trên một trang web luôn thay đổi Tuy nhiên kết quả rút trích của phương pháp này chỉ cho kết quả tốt với giả định rằng các trang web hiện nay thường trình bày thông tin theo một số mẫu và với mỗi mẫu sẽ được áp dụng lên một nhóm các trang Do đó nếu gặp các website không theo xu hướng này thì phương pháp đang trình bày sẽ thất bại.
Ngoài ra phương pháp này có thé được cải tiến bằng cách biến đổi hai trang web thành cây đa phân rồi tiến hành thực hiện việc so trùng trên cấu trúc của 2 cây đa phân này.
Kết quả nghiên cứu cho thấy phương pháp nhận dạng mẫu cải tiến bằng cách so trùng trên các cây da phân có độ chính xác cao khi rút trích thông tin trên các trang web Đặc biệt phương pháp này thích hợp cho việc rút trích thông tin trên các trang báo điện tử Vì hầu hết các trang báo điện tử hiện nay được tổ chức theo mô hình các trang tin tức trên một trang web đều có cùng cách trình bày như nhau [2,3].
PHAN LỚP VĂN BẢN . cc cv 17
Tổng quất -2222222222EEEEEEEEEEYEEYE222 2211121 xe 17
Phân lớp/phân loại văn bản (Document categorization/classification) là phân tích nội dung của văn bản và sau đó ra quyết định (hay dự đoán) văn ban này thuộc nhóm nào trong các nhóm văn bản đã cho trước Văn bản được phân loại có thể thuộc một nhóm, nhiều nhóm, hoặc không thuộc nhóm văn bản mà ta đã định nghĩa trước.
Sau khi thu được nội dung thông tin rút trích được từ trang web tin tức, ta đi vào phân loại thông tin này (như hình 3.1) để có được các văn bản đã được gán nhãn thuộc một lĩnh vực cụ thé.
(Rang chính chia các lên kết ‘Trang tin tức
Thu thap thong tin Phân loại thông tin
Hình 3 1 Rút trích và phân loại thông tin[7]
3.1.1.2 Cách tiếp cận a) Phân lớp văn bản dựa trên cách tiếp cận hệ chuyên gia
Theo cách tiếp cận này, việc phân lớp văn bản tự động được điều khiển bằng tay bởi các chuyên gia tri thức và hệ chuyên gia có khả năng đưa ra quyết định phân lớp Hệ chuyên gia bao gồm một tập các luật logic định nghĩa bằng tay, cho mỗi loại, có dạng:
If (DNF formula) then (category).
Công thức DNF (“Disjunctive Normal Form”) là hợp của các mệnh đề liên kết, tài liệu được phân lớp vào category nếu nó thỏa mãn công thức, nghĩa là, nếu nó thỏa mãn ít nhất một mệnh đề trong công thức.
Nhược điểm: Điều trở ngại của cách tiếp cận này là hạn chế trong quá trình thu nhận tri thức từ tài liệu của các hệ thống chuyên gia Nghĩa là, các luật phải được định nghĩa bằng tay bởi kỹ sư tri thức với sự giúp đỡ của chuyên gia về lĩnh vực được nêu trong tài liệu Nếu tập hợp của các loại được cập nhật, thì hai nhà chuyên gia phải can thiệp lại, và nếu phân lớp được chuyên hoàn toàn sang một phạm vi khác, một chuyên gia về lĩnh vực này cần thiết phải can thiệp vào và công việc phải được bắt đầu lại từ tập tài liệu hỗn tạp ban đầu. b) Phân lớp văn bản dựa trên cách tiếp cận máy học
Theo cách tiếp cận này, một quá trình xử lý quy nạp chung (cũng được gọi là quá trình học) xây dựng tự động một phân lớp cho một loại c; bằng quan sát các đặc trưng của tập hợp các tài liệu đã được phân bang tay vào ci hay “ bởi chuyên gia về lĩnh vực này Từ đó, quá trình qui nạp thu thập các đặc trưng đề phân lớp một tài liệu mới (không nhìn thấy) vào c; Trong kỹ thuật máy học, bài toán phân lớp là hoạt động học có giám sát, quá trình học được “giám sát” bởi tri thức của các phân lớp và của các mẫu huắn luyện thuộc chúng.
Học có giám sát là một kĩ thuật của ngành học máy để xây dựng một hàm (function) từ dữ liệu huấn luyện Dữ liệu huấn luyện bao gồm các cặp gồm đối tượng đầu vào (thường dạng vec-tơ), và đầu ra mong muốn Đầu ra của một hàm có thể là một giá trị liên tục (gọi là hồi qui), hay có thé là dự đoán một nhãn phân loại cho một đối tượng đầu vào (gọi là phân loại) Nhiệm vụ của chương trình học có giám sát là dự đoán giá trị của hàm cho một đối tượng bắt kì là đầu vào hợp lệ, sau khi đã xem xét một só ví dụ huấn luyện (nghĩa là, các cặp đầu vào và đầu ra tương ứng) Đề đạt được điều này, chương trình học phải tổng quát hóa từ các dữ liệu sẵn có để dự đoán được những tình huống chưa gặp phải theo một cách "hợp lí")
Một số thuật toán dựa trên tiếp cận máy học được sử dụng phổ biến hiện nay gồm:Cây quyết định, K-Nearest Neighbor (KNN), Support Vector Machine
(SVM), thuật toán Naive Bayes (NB), Neural Network (NNet).
Ngoài ra, còn mot số thuật toán được phát triên dựa trên các thuật toán đã nói ở trên ví dụ với SVM ta có các thuật toán cải tiến như Fuzzy Support Vector Machines Cũng có một số phương pháp người ta kết hợp các thuật toán lại với nhau như Support Vector Machines Nearest Neighbor (SVM-NN) việc kết hợp nay sẽ tận dụng những ưu điểm và bé xung những mặt yếu của các thuật toán mà ta sẽ thay ở phần trình bày về các thuật toán.
Xây dựng hệ thống phân loại văn bản
Dé xây dựng, thiết kế một hệ thống phân loại văn bản, cần phải trải qua ba giai đoạn: biểu diễn tài liệu, xây dựng bộ phân loại và đánh giá bộ phân loại [8].
+ Giai đoạn biểu diễn tài liệu: Chuyén tài liệu từ dang thô (ví dụ tài liệu có dang:
“doc, HTML, PDF ”) sang dạng thích hợp với thuật toán rút trích của giai đoạn sau.
+ Giai đoạn xây dựng bộ phân loại: Từ các thuật toán mà ta chọn trong hệ thống. phân loại văn ban ta sẽ xây dựng bộ phân loại cho hệ thống Ở đây có thé hiểu là xây dựng mẫu để làm mốc đánh giá cho quá trình phân loại.
+ Giai đoạn đánh giá bộ phân loại: Từ kết quả của bộ phân loại và kiểm thử ta đánh giá bộ phân loại đó dựa vào tỉ lệ đúng và chưa đúng của việc phân loại tài liệu.
Va đã được đã được an 2 x biéu dién phan loai ban
Hình 3 2 Hệ thống phân loại van ban
* Tiêu chuẩn đánh giá hệ thông phân văn bản: o Độ chính xác: Dựa vào phần trăm của văn bản đúng so với văn bản đưa vào phân loại Tỉ lệ càng cao thì hệ thống sẽ được đánh giá là tốt. o_ Tóc độ: Một hệ thống có tốc độ phân loại nhanh nhưng độ chính xác thấp hoặc hệ thống có tốc độ thấp nhưng độ chính xác cao thì không được cho là hệ thống tốt vì vậy phải đảm bảo tính tốc độ và chính xác cho hệ thống. o_ Dễ hiểu: Một hệ thống phân loại dễ hiểu sẽ tạo cho người sử dụng tin tưởng hơn vào hệ thống, đồng thời cũng giúp cho người sử dụng tránh được việc hiểu lầm kết quả của một luật được đưa ra bởi hệ thống. o Thời gian dé học: Yêu cầu hệ thống phải học rất nhanh một luật phân lớp hoặc nhanh chóng điều chỉnh một luật đã được học cho phù hợp với thực tế.
3.1.3 Các giai đoạn xứ lý văn bản của hệ thống phân loại văn bản
Bao gồm 4 giai đoạn: Tiền xử lý số liệu, tách từ, xác định trọng số cho từ và sử dụng thuật toán dé phân loại văn bản [8].
Văn bản dang text Từ ằ xử thuần túy lý
Hình 3 3 Quy trình xử lý văn bản của hệ thống phân loại văn bản
3.1.3.1 Tiền xử lý số liệu
Mục đích của giai đoạn này là xử lý ương đối sạch dữ liệu đọc vào dé các bước sau sẽ xử lý tốt hơn, do đó công việc của bước này sẽ chỉ là chuyển văn bản đã có thành chuỗi ký tự thuần túy (text), do đó sẽ có yêu cầu như sau:
Dau vào: Tệp văn bản cần phải phân tích (File PDF, TXT, DOC, HTML,
HTM) Đầu ra: chuỗi ky tự thuần túy (text only) với font chữ định dang đã định sẵn.
Nếu dữ liệu đầu vào là tệp văn bản dang text (txt) thì lấy tất cả số liệu Nếu dữ liệu đầu vào là tệp văn bản dạng rich-text-box (rif) thì số liệu lấy ra sẽ là dang text do sử dung control rft trong chương trình, control này sẽ có đầu vào là tên tệp ;/ (có chứa đường dẫn) và đầu ra là dang text thông thường.
Nếu dữ liệu đầu vào là tệp văn ban dang MS word (doc) thì sẽ sử dụng Microsoft.Office.Core dé chuyền đổi, với công cụ này việc chuyển đổi một file dạng Microsoft word sang text chỉ là một hàm.
Nếu dữ liệu đầu vào là tệp văn bản dạng PDF thì sẽ sử dụng controlPDFbox dé đọc và loại bỏ các thuộc tính không cần thiết cho chương trình như hình ảnh, âm thanh, định dạng và chỉ lấy giá trị text.
— Nếu dữ liệu đầu vào là các tệp văn bản (htm) hay (html) thì việc loại bỏ các dữ liệu là loại bỏ các đoạn tag định dạng, các link liên kết, các link hình ảnh.
Làm sạch số liệu tiếp theo bao gồm:
— Loại bỏ các khoảng trắng nhiều hơn | khoảng trắng
Dé máy tính có thé tự động phân loại văn bản, các văn bản được trình bày dưới dạng chuỗi các ký tự cần phải được biến đổi thành một biểu diễn thuận lợi cho thuật toán huấn luyện và bài toán phân loại, nghĩa là văn bản được chuyền từ dang không có cấu trúc (hoặc bán cấu trúc) sang dạng có cấu trúc Có rất nhiều cách biểu diễn văn bản, nhưng đều dựa vào sự xuất hiện của từ trong văn bản.
Công việc trong giai đoạn này là tách một van bản text thuần túy thành ti đảm bảo từ đó có ý nghĩa trong văn bản chứa nó Nhiệm vụ trong giai đoạn này gồm có :
+Tách loc (Filtration): Đây là quá trình quyết định những từ nào nên được sử dụng để biểu diễn cho các tài liệu vì thế nó có thể được sử dụng cho mô tả nội dung của văn bản, có sự phân biệt tài liệu từ những tài liệu khác trong bộ sưu tập Ở giai đoạn này ta loại bỏ các từ sopword (danh mục các từ không ảnh hưởng đến nội dung văn bản).
+ Stemming (gốc từ): là quá trình làm giảm đi số từ đối với gốc từ hay cội nguồn khác nhau của chúng Ví dụ: Trong tiếng Anh, những từ "computer",
"computing", "compute" được giảm lại thành từ "compute" và "walks",
"walking" và "walker" được giảm lại thành "walk"
Có một số kỹ thuật trích chọn đặc trưng văn bản [2] được nghiên cứu và sử dụng phổ biến như sau:
— Mutual Information (MI): là phương pháp thông tin tương hỗ giữa đặc trưng t; và chủ đề €¡ là độ đo về sự xuất hiện ngẫu nhiên của tị và CG trong tập dữ liệu Phương pháp nay thé hiện kha năng dự đoán độ thuộc về một chủ đề dựa trên sự xuất hiện của đặc trưng kết hợp với chủ đề cụ thê.
— Information Gain (IG): đại lượng dùng để do độ tốt cho các term trong lĩnh vực máy học dựa trên lý thuyết thông tin về entropy (độ hỗn loạn). Phương pháp này bao gồm sự ước lượng xác suất có điều điện của chủ đề khi biết sự có mặt và vắng mặt của term.
Các giai đoạn xử lý văn bản của hệ thống phân loại văn bản 20 1 Tiền xử lý số liệu
Docs Var Bit Class Docl 1 0 Math
=> Vậy van bản mới thuộc lớp Math.
3.1.4.1 Phương pháp Support Vector Machine (SVM) a) Giới thiệu Ý tưởng: Cho trước một tập huấn luyện được biểu diễn trong không gian vectơ Trong đó, mỗi văn bản (tài liệu) là một điểm Mục tiêu là tìm ra một siêu mặt phẳng tốt nhất chia các điểm trên không gian này thành hai phần (lớp).Chất lượng của siêu mặt phẳng này được quyết định bởi khoảng cách (gọi là biên) của điểm dữ liệu gần nhất ở mỗi lớp đến mặt phẳng này Khoảng cách biên càng lớn thì mặt phẳng quyết định càng tốt và đồng thời, việc phân loại càng chính xác Vậy, vấn đề cốt lõi của thuật toán SVM là tìm ra khoảng cách biên lớn nhất [5]. b) Phan lớp tuyến tính
Xét một ví dụ của bài toán phân lớp như hình 3.4 Ở đó, ta phải tìm một đường thẳng sao cho bên trái nó toàn là các điểm đỏ, bên phải nó toàn là các điểm xanh Bài toán dùng đường thẳng dé phân chia này được gọi là phân lớp tuyến tính (linear classification) [I]. f(x) =0
Hình 3 5 Phân lớp tuyến tính
Hàm tuyến tính phân biệt hai lớp được phát biểu như sau: y(x) = w' G(x) +b G.8.1)
Trong đó: weR" là vector trọng số hay vector chuẩn của siêu phẳng phân cách, T là kí hiệu chuyển vi. be# là độ lệch.
GO) ER" là véc to đặc trưng, là hàm ánh xạ từ không gian đầu vào sang không gian đặc trưng.
Tập dữ liệu đầu vào gồm N mẫu input vector {xị, xạ, X}, với các giá trị nhãn tương ứng là{tị, t}trong đó” € E 1}
Lưu ý: điểm dữ liệu, mẫu đều được hiểu là input vector xi; néu 1a không gian 2 chiều thì đường phân cách là đường thăng, nhưng trong không gian đa chiều thì gọi đó là siêu phẳng.
Giả sử tập dữ liệu của ta có thể phân tách tuyến tính hoàn toàn (các mẫu đều được phân đúng lớp) trong không gian đặc trưng (feature space), do đó sẽ tồn tại giá trị tham số w và b theo (3.8.1) thỏa y@,)>0
-1 cho những điêm có nhãn
, =+#T ya VO) 0 cho mọi n Vì thế khoảng cách từ điểm xn đến mặt phân cách được viết lại như sau:
Lễ là khoảng cách vuông góc đến điểm dữ liệu gần nhất xn từ tập dữ liệu, và chúng ta muốn tìm giá trị tối ưu của w và b bằng cách cực đại khoảng cách này. Van dé cần giải quyết sẽ được viết lại dưới dang công thức sau: arg max nh mịn ,[i,(' Al, il
Chúng ta có thé đem nhân tử Mra ngoài bởi vì w không phụ thuộc n Giải quyết vấn đề này một cách trực tiếp sẽ rất phức tạp, do đó ta sẽ chuyển nó về một vấn đề tương đương dễ giải quyết hơn Ta sẽ scale w=> ỉ0 và —> đ cho mọi điểm dữ liệu, từ đây khoảng cách lề trở thành 1, việc biến đổi này không làm thay đổi ban chất van đề.
Từ bây giờ, các điểm dữ liệu sẽ thỏa ràng buộc:
Van đề tối ưu yêu cầu ta cực đại ||w||”" được chuyển thành cực tiểu |Iw||, ta viết lại công thức: arg min walt (3.8.6)
'Việc nhân hệ số 1⁄2 sẽ giúp thuận lợi cho lấy đạo hàm về sau.
Lý thuyết Nhân tử Lagrange:
Vấn đề cực đại hàm f(x) thỏa điều kiện g(x) > 0 sẽ được viết lại dưới dạng tối ưu của ham Lagrange như sau: L(x,4)= ƒ(x)+ Ag(x)
Trong đó x và 2 phải thỏa điều kiện Karush-Kuhn-Tucker (KKT) như sau: s(x)>0
Nếu là cực tiểu hàm f(x) thì hàm Lagrange sẽ là
Dé giải quyết bai toán trên, ta viết lại theo ham Lagrange như sau:
Trong đú ứ =(q,, ,.a,)' là nhõn tử Lagrange.
Lưu ý dấu (—) trong ham Lagrange, bởi vì ta cực tiểu theo biến w và b, và là cực đại theo biến a.
Lấy đạo hàm L(w,b,a) theo w và b ta có: fF ~ Gat, P%,) (3.8.8) ow
Loại bỏ w và b ra khỏi L(w,b,a) bằng cách thé (3.15), (3.16) vào Điều này sẽ dẫn ta đến vấn đề tối ưu:
Sh aut, =0 (8.12) Ở day ham nhõn (kernel function) được định nghĩa là k(x,,x,,)= ỉ(x,Ÿ ỉ(x„)-
Van dé tạm thời gác lại ở đây, ta sẽ thảo luận kỹ thuật giải quyết (3.8.10) thỏa
(3.8.11), (3.8.12) này sau. Để phân lớp cho | điểm dữ liệu mới dùng mô hình đã huấn luyện, ta tính dau của y(x) theo công thức (3.8.1), nhưng thế w trong (3.8.11) vào: y= atk, 4b (3.8.13)
Thỏa các điều kiện KKT sau: a, 20 (3.8.14) 1,y(x%,)-120 (3.8.15)
Vi thé với mọi điểm dữ liệu, hoặc là a, =0 hoặc là¿,y(x,) =1 Những điểm dữ liệu mà cóa, =0 sẽ không xuất hiện trong (3.8.13) và do đó mà không đóng góp trong việc dự đoán điểm dữ liệu mới.
Những điểm dữ liệu còn lai Z0 được gọi là support vector, chúng thỏa 1,y(X,) = I đó là những điểm nằm trên lề của siêu phẳng trong không gian đặc trưng.
Support vector chính là cái mà ta quan tâm trong quá trình huấn luyện của SVM Việc phân lớp cho một điểm dữ liệu mới sẽ chỉ phụ thuộc vào các support vector.
Giả sử rằng ta đã giải quyết được vấn dé (3.8.10) và tìm được giá trị nhân tử a, bõy giờ ta cần xỏc định tham số b dựa vào cỏc support vector xn cú!:*Œ,)=ẽ, Thế
Trong đó S là tập các support vector Mặc dù ta chi cần thế một điểm support vector xn vào là có thé tìm ra b, nhưng để đảm bảo tính ồn định của b ta sẽ tính b theo cách lấy giá trị trung bình dựa trên các support vector. Đầu tiên ta nhân tn vào (3.8.17) (lưu ý: me 1) va gid tri b sé 1a:
Trong đó Ns là tổng số support vector.
Ban đầu để dễ trình bày thuật toán ta đã giả sử là các điểm dữ liệu có thể phân tách hoàn toàn trong không gian đặc trưng 46), Nhưng việc phân tách hoàn toàn này có thé dẫn đến khả năng tổng quát hóa kém, vì thực tế một số mẫu trong quá trình thu thập dữ liệu có thể bị gán nhãn sai, nếu ta cố tình phân tách hoàn toàn sẽ làm cho mô hình dự đoán quá khớp.
Hình 3 9 Trường hợp quá khớp
Dé chống lại sự quá khớp, chúng ta chấp nhận cho một vài điểm bị phân lớp sai. Để làm điều này, ta dùng các biến slack variables €,>0 với m = I W cho mọi điểm dữ liệu.
ế, >0 cho những điểm nằm trên lề hoặc phía trong của lề
ế, =|, = y(ô„)| cho những điểm cũn lại.
Do đó những điềm nằm trên đường phân cách y(x,)=0 sẽ cóế, =1
Còn những điểm phân lớp sai sẽ có ở, > I
Công thức (3.8.5) sẽ viết lại như sau:
PHAN DA LỚP VAN BAN W ssssssssssssssssssessssnsssssssssseeeeeeeseeeesnnunssssssssseeeeeetee 51
SVM đa lớp 88 2 S
Thực chất, SVM đa lớp là phương pháp phân loại văn bản dựa trên nhiều bộ phân loại SVM nhị phân [10] Có rất nhiều phương pháp phân đa lớp dựa trên nền tang SVM, phải ké đến là phương pháp one-against-all Phương pháp này xây dựng k mô hình SVM, trong đó k là số lượng lớp Mô hình SVM thứ i được huấn luyện với tất cả các dữ liệu trong lớp thứ i với các nhãn dương, còn các dit liệu khác mang nhãn âm Cho / dữ liệu huấn luyện (x; y¿, ,(%, yi), trong đó x; ER", j = 1, ,1 và y,€ £1, ,k} là lớp của x;, giải quyết những van đề sau ta được SVM thứ i: min su} +cy
Dữ liệu của lớp chưa xác định x là lớp có giá trị lớn nhất của hàm quyết định class of x= arg max, (b2 Ÿ d(x)+5') (3.12)
Một phương pháp khác được gọi là one-against-one Phuong pháp này xây dựng k(k-1)⁄2 mô hình SVM Trong đó mỗi mô hình được huấn luyện dựa trên dữ liệu của 2 lớp Phương pháp one-agaisnt-one sử dụng chiến lược bình chọn để quyết định lớp nào của x: nếu hàm quyết định cho biết x là lớp thứ I, sau đó bình chọn lớp thứ 1 được thêm một Sau đó, chúng ta dự đoán x trong lớp có số lượt bình chọn lớn nhất.
Phương pháp thứ ba là Directed Acyclic Graph Support Vector Machine
(DAGSVM) được mở rộng từ phương pháp one-agaisnt-one Pha huấn luyện xây dựng k(k-1)/2 mô hình SVM, nhưng DAGSVM sử dụng một đồ thị không tuần hoàn có hướng để dự đoán lớp x trong phase testing Kiểm tra thời gian ít hơn phương pháp one-agaisnt-one (Phương pháp này sẽ được trình bày rõ hơn ở phần
Hai SVM đa lớp khác là “cân nhắc tất cả các dữ liệu cùng lúc” (VApnik) và
“phương pháp C và S” (Crammer va Singer), xem xét trực tiếp tat cả các dữ liệu trong cùng một công thức tối ưu [13].
Bây giờ xét đến trường hợp phân nhiều lớp K > 2 Chúng ta có thể xây dựng việc phân K-class dựa trên việc kết hợp một số đường phân 2 lớp Tuy nhiên, điều này sẽ dẫn đến một vài khó khăn.
Hướng one-versus-the-rest, ta sẽ dùng K-/ bộ phân lớp nhị phân để xây dựng
Hướng one-versus-one, dùng K(K-/)⁄2 bộ phân lớp nhị phân để xây dựng K- class.
Cả 2 hướng đều dẫn đến vùng mập mờ (có nhiễu) trong phân lớp (như hình vẽ).
Ta có thể tránh được van dé này bằng cách xây dựng K-Class dựa trên K hàm tuyến tình có dạng:
Va một điểm x được gan vào lớp Cy khi y,(x) > yj (x) với moi j # k.
Mô tả vector đặc trưng của văn bản: La vector có số chiều là số đặc trưng trong toàn tập dữ liệu, các đặc trưng này đôi một khác nhau Nếu văn bản có chứa đặc trưng đó sẽ có giá trị 1, ngược lại là 0.
Việc cài đặt SVM khá phức tạp ta nên dùng các thư viện cài sẵn trên mạng như
Thuat toán gồm 2 giai đoạn huấn luyện va phân lớp:
Giai đoạn 1: Huấn luyện: Đầu vào:
= Các vector đặc trưng của văn bản trong tập huấn luyện (Ma trận MxN, với M là số vector đặc trưng trong tập huấn luyện, N là sé đặc trưng của vector).
= _ Tập nhãn/lớp cho từng vector đặc trưng của tập huan luyện.
"Các tham số cho mô hình SVM: C, y (tham số của ham kernel, thường dùng ham Gauss)
= Mô hình SVM (Các Support Vector, nhân tử Lagrange a, tham số b).
Giai đoạn 2: Phân lớp: Đầu vào:
"_ Vector đặc trưng của văn bản cần phân lớp.
* Nhãn/lớp của văn bản cần phân loại.
Half-against-half (HAH)
HAH được xây dựng dựa trên việc phân chia đệ quy tập dữ liệu huấn luyện có K lớp thành 2 tập con chứa các lớp Cấu trúc của HAH tương tự như một cây quyết định với các nút là một bộ phân lớp nhị phân SVM Mô hình phân lớp HAH huấn luyện bao. gồm 2!#; SVM nhị phân [12].
Cho bài toán 6 phân lớp khác nhau như trong hình:
D Decreasing trend E Upward shift F Downward shift
Hình 3 14 Ví dụ bài toán HAH 6 phân lớp.
Các lớp D,E và F có nét tương tự nhau[12]
Hình 3 15 Một cây quyết định của 6 lớp.[12]
1) Mỗi nút là một SVM nhị phân 2) Phân lớp HAH của 6 lớp.
Dựa vào trình tự của 3 phân lớp cuối có phần giống nhau như trong hình 1, vậy có thể nhóm chúng thành 2 phân lớp lớn hơn là {D, E, F} và {A, B, C}? Giả sử một văn bản đầu vào được phân vào lớp {D, E, F}, ta lại tiếp tục để biết chính xác nó được phân vào lớp nào Theo cách này, ta sẽ có một phân lớp nhị phân đệ quy thực hiện bằng SVM thông thường Cấu trúc của phân lớp tương tự như một cây quyết định mà mỗi nút là một SVM nhị phân Các bước phân lớp đi từ gốc cho đến các lá được định hướng bằng các SVM nhị phân cũng tương tự như trong một cây quyết định [2, 12].
Ist level ABDF vs CE, Ụ 2
Hình 3 16 Cây quyết định HAH giống cấu trúc gom cụm phân cấp của các lớp.
1) Cấu trúc phân cấp dựa trên khoảng cách giữa các lớp.
2) Cây quyết định tương ứng HAH.[12]
Với những tập huấn luyện có số lượng lớp nhỏ, có thé chia chúng thành các nhóm từ chưa tốt đến tốt tùy vào tri thức sẵn có Những lớp giống nhau hoặc tương đồng với nhau có thể phân cùng nhóm Nếu gặp phải vấn đề với K phân lớp, việc phân lớp sẽ diễn ra tự động Nói một cách dễ hiểu chúng ta có thé đệ quy việc phân lớp nhị phân của K phân lớp một cách ngẫu nhiên Vấn đề ở đây là nếu chia thành 2 nhóm một cách ngẫu nhiên thì độ chính xác sẽ không cao. Lựa chọn đáng quan tâm nhất ở đây là tìm 2 nhóm tối ưu nhất sao cho có lỗi xảy ra là nhỏ nhất Với SVM nhị phân, lỗi mong đợi được tính bằng công thức
Trong đó nSV là số lượng support vector (SV) và là số lượng mẫu huấn luyện Vì vậy, vấn đề chính ở đây là chia các phân lớp thành hai nửa mà SVM được huấn luyện có số lượng support vector nhỏ nhất Với K phân lớp sẽ có K? cách chia Việc huấn luyện SVM nhị phân trong mỗi cách chia có thể xảy ra dé chọn ra nSV nhỏ nhất là điều không khả thi.
Thách thức lớn nhất là xác định cách chia tối ưu Trong khi tìm ra cách chia tối ưu còn là một van đề chưa giải quyết được thì sắp xếp các nhóm phân lớp theo dạng phân cấp lại là một lựa chọn hay Mỗi lớp có thé xem như một phan tử Khoảng cách giữa hai phần tử xem như khoảng cách trung bình giữa các mẫu huấn luyện trong hai phân lớp Theo cách này có thể cây dựng một cấu trúc nhóm phân cấp từ K phân lớp Khi đó mô hình HAH được huấn luyện một cách phù hợp Hình 4.4 là một ví dụ về cây phân cấp 6 lớp và có log, 6=3 cấp.
Vi vậy, cây quyết định của HAH có 3 cấp.
Thời gian huấn luyện HAH tính bằng tổng thời gian của tất cả các nút trong
[log; (K)] cấp O cấp thứ ¡ có 2"! nút và mỗi nút dùng — mẫu huấn luyện Vì
2m vậy tổng thời gian huắn luyện là: log(CK) 2 lom(K) 2
Lưu ý: Tyan không bao gồm thời gian xây dựng cấu trúc cây phân cấp của
K lớp, vì vậy sẽ không tốn nhiều thời gian và bình phương thời gian tối ưu chiếm phần lớn thời gian huấn luyện SVM [2,12]
Decision Directed Acyclic Graph (DDAG) - -5555+c<<<<+ 57 Chương 4 XÂY DỰNG MÔ HÌNH THỬ NGHIỆM
Directed Acyclic Graph (DAG) là đổ thị có hướng không tuần hoàn có các cạnh hướng về gốc Gốc của DAG là một nút duy nhất, không có cạnh nào chỉ đến nó Mỗi nút ở DAG nhị phân có 0 hoặc 2 cạnh xuất phát từ nút đó Ta sử dụng DAG nhị phân để định nghĩa lớp các hàm dùng trong bài toán phân lớp [15, 16, 17].
Việc phân lớp từng cặp dựa trên cây quyết định được gọi là Decision Directed
Cho không gian X va tập các hàm logic F= {f: X > {0;1}} DDAG (F) là DAG nhị phân với N nút lá được gán nhãn cho các lớp thông qua ham F Bên trong có K=N (N-
1)/2 nút Các nút được sắp xếp thành hình tam giác với một nút gốc duy nhất ở trên đỉnh, hai nút con ở tầng thứ hai và các tầng tiếp theo cho đến tầng cuối cùng với N nút lá Nút thứ i ở tang thứ j