Luận văn Tự động tổng hợp và phân loại tin trong hệ thống trang tin điện tử

Nghiên cứu cơ sở lý thuyết về trích chọn thông tin tài liệu Web, giới hiệu mô hình phân lớp văn bản entropy cực đại. Chỉ ra thế mạnh của phương pháp này trong phân lớp văn bản phù hợp với nội dung phân lớp tin tức. Giới thiệu các đại lượng sử dụng cho việc đánh giá kết quả phân lớp.

pdf59 trang | Chia sẻ: lylyngoc | Lượt xem: 3306 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Luận văn Tự động tổng hợp và phân loại tin trong hệ thống trang tin điện tử, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ua kém nhiều so với SVM [15],[16]. Khóa luận cũng trình bày phương pháp đánh giá hiệu quả của cây phân lớp dựa vào các độ đo là độ chính xác (P), độ hồi tưởng (R) và độ đo (F1). 2.1. Xây dựng crawler 2.1.1. Khái niệm crawler Kích thước quá lớn và bản chất thay đổi không ngừng của Web đặt ra một nhu cầu mang tính nguyên tắc là, cần phải cập nhật không ngừng tài nguyên cho các hệ thống trích chọn thông tin trên Web. Thành phần crawler đáp ứng được nhu cầu này bằng cách đi theo các siêu liên kết trên các trang Web để tải về một cách tự động nội dung các trang Web. Web crawler khai thác sơ đồ cấu trúc của Web để duyệt không gian Web bằng cách chuyển từ trang Web này sang trang Web khác. 9 Hình 3. Sơ đồ cơ bản của một crawler đơn luồng [12] Hình vẽ biểu diễn sơ đồ khối một crawler đơn luồng. Chương trình crawler yêu cầu một danh sách các URL chưa được thăm (frontier). Ban đầu frontier chứa các URL hạt nhân do người dùng hoặc chương trình khác cung cấp. Mỗi vòng lắp crawling bao gồm: lấy ra các URL tiếp theo cần được tải về từ frontier, nạp trang Web tương ứng với URL đó bằng giao thức HTTP, chuyển nội dung trang Web vừa được tải về cho phục vụ kho chứa trang Web. Quá trình crawling được kết theo theo hai tình huống: - Đạt được điều kiện dừng cho trước, chẳng hạn như số lượng các trang Web được tải về đã đáp ứng được yêu cầu đặt ra. - Danh sách các URL tại frontier rỗng, không còn trang Web yêu cầu crawler phải tải về. Lưu ý rằng, điều kiện frontier rỗng được tính với một độ trễ nào đó, bởi có [done] [no URL] Cr aw lin g Lo o p Initialize frontier with seed URLs start Check for termination [not done] Fetch page Parse page Add URLs to frontier [URL] Pitch URL from frontier end 10 một số trường hợp, bộ điều khiển crawling chưa chuyển kịp các dánh sách URL sẽ tới thăm. Hoạt động của thành phần crawler có thể được xem như một bài toán duyệt đồ thị. Toàn bộ thế giới được Web xem như một đồ thị lớn với các đỉnh là các trang Web và các cung là các siêu liên kết. Quá trình tải một trang Web và đi tới một trang Web mới tương tự như quá trình mở rộng một đỉnh trong bài toán tìm kiếm trên đồ thị [2]. 2.1.2. Xây dựng crawler Đối với một trang Web X, muốn tổng hợp được những tin tức mới nhất của nó, trước tiên cần gieo cho frontier một hạt giống là URL trang Home (hoặc trang Portal) của Web X đó. Ví dụ đối với vnexpress.net thì trang Home có URL là: Dùng giao thức HTTP để tải về mã html - gọi là Y - của URL hạt giống. Mã html Y chứa rất nhiều các URL, trong đó chỉ một bộ phận nhỏ URL là siêu liên kết đến các detail-page của một tin bài cụ thể là có giá trị, còn phần lớn các URL có trong Y đều là liên kết không liên quan, chủ yếu là các liên kết quảng cáo... Nếu đưa tất cả các siêu liên kết này vào frontier thì sẽ là không tối ưu, do frontier phải duyệt qua các URL không chứa nội dung thông tin, như vậy sẽ ảnh hưởng đến tốc độ cập nhật tin mới của hệ thống, có thể gặp phải trường hợp như tin247.com ở trên. Để lấy được các URL chứa nội dung thông tin cần thiết (phù hợp), khóa luận đưa ra một tập mẫu cho phép nhận dạng thẻ HTML chứa siêu liên kết tới detail-page. Ví dụ đối với báo vnexpress.net, từ mã html của trang Home có thể dễ dàng nhận biết được các tin có nội dung thông tin được chứa trong các thẻ HTML với tên class như là link-topnews, folder-topnews, other-foldernews, link-othernews hay link-title. Tập dữ liệu đặc trưng này giúp dễ dàng nhận diện và lấy ra các siêu liên kết chứa nội dung thông tin đưa vào frontier. Để lấy được các tin mới một cách nhanh nhất, crawler dừng quá trình thêm vào URL vào frontier sau chỉ một lần duyệt frontier hạt giống. Sau khi toàn bộ URL thuộc frontier được xử lý hết, crawler được tạm dừng (delay) trong một khoảng thời gian xác định trước khi lặp lại quá trình. 11 Việc xây dựng crawler cũng chính là xây dựng luật lấy URL từ tập các đặc trưng. 2.2. Xây dựng bộ trích chọn thông tin 2.2.1. Trích chọn thông tin trên tài liệu Web Web là dữ liệu điển hình trong dữ liệu bán cấu trúc. Trích xuất thông tin Web đó là vấn đề trích xuất các thành phần thông tin mục tiêu từ những trang Web. Một chương trình hay một luật trích xuất thường được gọi là một wrapper [4]. Bài toán trích xuất thông tin cho dữ liệu bán cấu trúc là rất hữu dụng bởi vì nó cho phép thu thập và tích hợp dữ liệu từ nhiều nguồn để cung cấp cho những dịch vụ giá trị gia tăng như : thu được những thông tin Web một cách tùy ý, meta-search, hay các hệ thống tổng hợp tin tức. Ngày càng nhiều các công ty, các tổ chức phổ cập các thông tin ở trên Web, thì khả năng trích xuất dữ liệu từ các trang Web đó ngày càng trở nên quan trọng. Bài toán này đã được bắt đầu nghiên cứu vào giữa những năm của thập niên 1990 bởi nhiều công ty và các nhà nghiên cứu [4]. Thông tin bán cấu trúc trên Web rất đa dạng và phụ thuộc vào cách lưu trữ và trình bày của từng webstie cụ thể Trích trọng trông tin, dữ liệu từ những tài liệu Web bán cấu trúc là một vấn đề rất quan trọng trong trích chọn dữ liệu nói chung. Các Website thường được trình bày theo nhiều cách rất đa dạng, sử dụng nhiều định dạng về bảng biểu, màu sắc, font chữ, hình ảnh,... nhằm tạo ra sự bắt mắt, thoải mái cho bạn đọc. Đặc điểm của các thông tin, dữ liệu tồn tại ở dạng bán cấu trúc là ngoài những từ khóa (ngôn ngữ tự nhiên) thì còn những cứ liệu (evidence) khác như bảng biểu, danh sách, kích thước font chữ, màu sắc, định dạng, các thẻ HTML... giúp quá trình trích chọn dễ dàng khả thi hơn. Các phương pháp trích chọn thông tin dạng bán cấu trúc cũng thường phải tận dụng được hết các căn cứ này. 2.2.2. Xây dựng bộ trích chọn tài liệu Web Đối với một trang tổng hợp tin tức, việc trích chọn tài liệu cần phải lấy ra được các phần nội dung sau: - Phần bắt đầu và kết thúc bài báo từ đó trích rút ra các nội dung kế tiếp. 12 - Tiêu đề bài báo - Tóm tắt - Ảnh minh họa - Phần thân bài báo Tương tự với việc trích rút ra các URL để đưa vào frontier như phần crawler (2.1.2). Xậy dựng bộ trích chọn tài liệu cũng là việc tạo ra một tập gồm các đặc trưng, cho phép nhận biết để trích rút được các nội dung cần thiết như trình bày ở trên. Chính tập các đặc trưng này, kết hợp với URL hạt giống và tập các đặc trưng nhận biết URL chứa nội dung thông tin (được trình bày trong phần 2.1.2) tạo nên một tập dữ liệu đầu vào, cho phép crawling, trích chọn ra nội dung thông tin của một trang Web bất kì. 2.3. Xây dựng bộ phân lớp 2.3.1. Khái niệm phân lớp văn bản Phân lớp là một trong những mối quan tầm nhiều nhất của con người trong quá trình làm việc với một tập hợp đối tượng. Điều này giúp con người có thể tiến hành việc sắp xếp, tìm kiếm các đối tượng, một cách thuận lợi. Khi biểu diễn đối tượng vào hệ thống thông tin, tính chất lớp vốn có của đối tượng trong thực tế thường được biểu diễn bằng một thuộc tính “lớp” riêng biệt. Chẳng hạn, trong hệ thống thông tin quản lý tư liệu thuộc thư viện, thuộc tính về loại tư liệu có miền giá trị là tập tên chuyên nghành của tư liệu, gồm các giá trị như “Tin học”, “Vật lý”,... Trước đây các công việc gán các giá trị của thuộc tính lớp thường được làm một cách thủ công. Nhưng hiên nay, với sự bùng nổ của thông tin và các loại dữ liệu, việc đánh thuộc tính lớp một cách thủ công là rất khó khăn, có thể nói là không thể. Do vậy, cácphương pháp phân lớp tự động, trong đó có phân lớp văn bản là rất cần thiết và là một trong những chủ đề chính của khai phá dữ liệu. Phân lớp văn bản được các nhà nghiên cứu định nghĩa thống nhất như là việc gán tên các chủ đề (tên lớp/nhãn lớp) đã được xác định cho trước vào các văn bản dựa trên nội dung của nó. Phân lớp văn bản là công việc được sự dụng để hỗ trợ trong quá trình tìm kiếm thông tin (Information Retrieval), chiết lọc thông tin (Information Extraction), lọc văn bản hoặc tự động dẫn đường cho các văn bản tới những chủ đề xác định trước. 13 Hình 4. Lược đồ chung xây dựng bộ phân lớp văn bản Hình 4 biểu diễn một lược đồ chung cho hệ thống phân lớp văn bản, trong đó bao gồm ba thành phần chính: thành phần đầu tiên là biểu diễn văn bản, tức là chuyển các dữ liệu văn bản thành một dạng có cấu trúc nào đó. Thành phần thứ hai là học quy nạp – sử dụng các kỹ thuật học máy để phân lớp văn bản vừa biểu diễn. Thành phần thứ ba là tri thức ngoài – bổ sung các kiến thức thêm vào do người dung cung cấp để làm tăng độ chính xác trong biểu diễn văn bản hay trong quá trình học máy. Trong nhiều trường hợp, các phương pháp học hệ thống phân lớp có thể bỏ qua thành phần thứ ba này. Thành phần thứ hai được coi là trung tâm của một hệ thống phân lớp văn bản. Trong thành phần này, có nhiều phương pháp học máy được áp dụng như mô hình học Bayes, cây quyết định, phương pháp k láng giềng gần nhất, SVM, entropy cực đại (maximum entropy),... là phù hợp [2]. Dữ liệu văn bản Tri thức ngoài Học quy nạp Các công cụ phân lớp Biểu diễn ban đầu Biểu diễn ban Biểu diễn cuối Làm giảm số chiều hoặc lựa chọn thuộc tính (1) 14 2.3.2. Áp dụng thuật toán phân lớp entropy cực đại xây dựng bộ phân lớp văn bản Rất nhiều bài toán trong lĩnh vực xử lý ngôn ngữ tự nhiên (NLP) có thể được xem xét dưới dạng các bài toán phân lớp với việc ước lượng xác suất có điều kiện ( ),p a b của “lớp” a (class) xuất hiện trong “ngữ cảnh” b (context) hay nói cách khác là ước lượng xác suất xuất hiện của a với điều kiện b. Ngữ cảnh thường bao gồm các từ và việc chọn ngữ cảnh phụ thuộc theo từng bài toán cụ thể. Ngữ cảnh b có thể là một từ đơn lẻ, cũng có thể chứa một số từ xung quanh hoặc các từ cùng với các nhãn cú pháp tương ứng. Một lượng văn bản lớn sẽ cung cấp rất nhiều thông tin về sự xuất hiện đồng thời của các lớp a và ngữ cảnh b, nhưng lượng văn bản đó chắc chắn sẽ không đủ để chỉ ra một cách chính xác xác suất ( ),p a b của mọi cặp ( ),a b vì các từ trong b thường nằm rải rác. Do đó cần phải tìm một phương pháp ước lượng (có thể tin tưởng được) mô hình xác suất có điều kiện ( ),p a b sử dụng các cứ liệu về sự xuất hiện đồng thời của lớp a và ngữ cảnh b. Mô hình xác suất entropy cực đại cung cấp một cách đơn giản để kết hợp các cứ liệu ngữ cảnh khác nhau để ước lượng xác suất của một số lớp ngôn ngữ xuất hiện cùng với một số ngữ cảnh ngôn ngữ. 2.3.2.1. Biểu diễn các đặc trưng Theo [1],[7] các đặc trưng (feature) được biểu diễn bằng các mệnh đề biểu diễn thông tin ngữ cảnh (context predicate). Nếu A là tập các lớp thực hiện phân lớp và B là tập các ngữ cảnh mà quan sát được, thì mệnh đề biểu diễn thông tin ngữ cảnh là một hàm được mô tả như sau: : { , }cp B true false→ Hàm này trả về giá trị true hoặc false, phụ thuộc vào sự xuất hiện hoặc không xuất hiện của các thông tin hữu ích trong một số ngữ cảnh b B∈ . Tập các mệnh đề biểu diễn thông tin ngữ cảnh được sử dụng rất nhiều trong các bài toán tuy nhiên với mỗi bài toán thì người thực nghiệm phải cung cấp một tập thông tin ngữ cảnh riêng. Các mệnh đề biểu diễn thông tin ngữ cảnh được sử dụng trong các đặc trưng – đó là một hàm có dạng như sau: : {0,1}f A B× → 15 Và được mô tả dưới dạng: ( ) ( ) , ' 1 ' and , 0cp a if a a cp b truef a b other  = = =   Hàm này kiểm tra sự xuất hiện đồng thời của lớp dự đoán a' với mệnh đề biểu diễn thông tin ngữ cảnh cp. Ví dụ nếu trong bài toán xuất hiện: - a' là lớp “THETHAO”, b là văn bản hiện tại. - cp = [ văn bản hiện tại chứa cụm từ “bóng_đá” ]. thì hàm đặc điểm này sẽ trả về giá trị 1 nếu như lớp dự đoán a là “THETHAO”. 2.3.2.2. Cách tiếp cận theo ngữ liệu Cho rằng tồn tại một tập dữ liệu huấn luyện 1 1{( , ),..., ( , )}N NT a b a b= trong đó một tập hợp lớn các ngữ cảnh 1{ , , }Nb b… được gắn nhãn tương ứng trong tập hợp các lớp 1{ , , }Na a… , sau đó tiến hành học cho mô hình phân lớp entropy cực đại trên tập dữ liệu huấn luyện đó. Ý tưởng tập dữ liệu huấn luyện bao gồm các cặp, mỗi cặp là một véc-tơ giá trị logic cùng với một lớp tương ứng rất phổ biến và được sử dụng với rất nhiều các thuật toán được mô tả trong các tài liệu về học máy.  Học với ước lượng likelihood cực đại trên mô hình mũ Để kết hợp các cứ liệu ta có thể đánh trọng số cho các đặc trưng bằng cách sử dụng một mô hình log-linear hay mô hình mũ: ( ) ( ) ( ), 1 1 , i k f a b i i p a b Z b λ = = ∏ (1) ( ) ( ), 1 i k f a b i a i Z b λ = =∑∏ trong đó k là số lượng các đặc trưng và ( )Z b là biểu thức chuẩn hóa để đảm bảo điều kiện ( | ) 1 a p a b =∑ . Mỗi tham số iλ tương ứng với một đặc điểm if và có thể được hiểu là “trọng số” của đặc điểm tương ứng ( iλ > 0). Khi đó xác suất ( ),p a b là kết quả được chuẩn hoá của các đặc trưng có ý nghĩa với cặp ( ),a b , tức là với các đặc điểm if mà 16 ( , ) 1if a b = . Các trọng số 1{ , , }kλ λ… của phân phối xác suất *p là phân phối xác suất phù hợp nhất với tập dữ liệu huấn luyện có thể xác định thông qua một kĩ thuật phổ biến của ước lượng likelihood cực đại: ( , ) 1 1{ | ( | ) }( ) i k f a b i i Q p p a b Z b λ = = = ∏ , ( ) ( , ) log ( , ) a b L p p a b p a b=∑ * arg max ( ) q Q p L q ∈ = trong đó Q là tập hợp các mô hình của dạng log-linear, ( | )p a b là xác suất thực nghiệm trên tập T, ( )L p là log-likelihood có điều kiện của tập dữ liệu huấn luyện T (được chuẩn hoá bởi số lượng sự kiện huấn luyện) và *p là phân phối xác suất tối ưu phụ thuộc theo tiêu chuẩn likelihood cực đại.  Học dưới mô hình entropy cực đại Trong khi có rất nhiều cách để kết hợp các cứ liệu dưới dạng nào đó của một mô hình phân phối xác suất, dạng (1) có tính tích cực riêng dưới hình mẫu entropy cực đại. Nguyên lý entropy cực đại trong [17] chỉ ra rằng mô hình xác suất tốt nhất cho dữ liệu là mô hình làm cực đại giá trị entropy trong số các mô hình phân phối xác suất thoả mãn các cứ liệu. 2.3.2.3. Mô hình entropy cực đại có điều kiện Trong hình mẫu được dùng để giải quyết bài toán đặt ra, có k đặc trưng và khi cho trước một lớp a A∈ cùng với một ngữ cảnh b B∈ thì công việc là phải tìm một ước lượng cho xác suất có điều kiện ( ),p a b . Trong các hình mẫu entropy cực đại có điều kiện được sử dụng trong các nghiên cứu [5],[8],[11],[13],[16],[18], lời giải tối ưu *p là phân phối “không chắc chắn nhất” (entropy đạt cực đại) thoả mãn k ràng buộc trên các kì vọng của các đặc điểm: * arg max ( ) p P p H p ∈ = , ( ) ( , ) log ( , ) a b H p p a b p a b=∑ 17 { | , {1... }}p i ipP p E f E f i k= = = , ( , ) ( , )i ip a b E f p a b f a b=∑ , ( ) ( , ) ( , )p i i a b E f p b p a b f a b=∑ Ở đây ( )H p kí hiệu cho entropy có điều kiện được tính trung bình trên tập huấn luyện, khác với entropy kết hợp, và xác suất biên của b sử dụng ở đây là xác suất thực nghiệm ( )p b , khác với xác suất mô hình ( )p b . p iE f là kì vọng của mô hình p của if , nó sử dụng ( )p b làm một xác suất biên. Tương tự như vậy ipE f là kì vọng thực nghiệm của p của if . ( , )p a b kí hiệu cho xác suất thực nghiệm của ( ),a b trong một số mẫu huấn luyện nhất định. Và cuối cùng P kí hiệu cho tập các mô hình xác suất thoả mãn các cứ liệu quan sát được. 2.3.2.4. Mối quan hệ với likelihood cực đại Thông thường hình mẫu likelihood cực đại và entropy cực đại là hai cách tiếp cận khác nhau trong mô hình hoá thống kê, nhưng chúng có cùng câu trả lời trong trường hợp này. Có thể thấy rằng việc ước lượng tham số của likelihood cực đại cho mô hình của dạng (1) tương đương với việc ước lượng tham số của entropy cực đại trên tập các mô hình thoả mãn. Điều đó có nghĩa là: * arg max ( ) arg max ( ) q Q p P p L q H p ∈ ∈ = = Điều này được mô tả trong [3] sử dụng lý thuyết thừa số nhân lagrange và trong [11] với các đối số lý thuyết thông tin (đối với trường hợp *p là một mô hình kết hợp). Dưới tiêu chuẩn likelihood cực đại, *p sẽ phù hợp với dữ liệu ở mức gần nhất có thể, trong khi đó dưới tiêu chuẩn entropy cực đại, *p sẽ không giả định bất kì điều gì vượt quá những trông tin trong các ràng buộc tuyến tính định nghĩa ra P. Trong [18] trình bày các chứng minh cho thấy rằng điều kiện * arg max ( ) q Q p L q ∈ = là tương đương với điều kiện * arg max ( ) p P p H p ∈ = . Điều này rất quan trọng để thấy rằng dạng (1) không phải là đưa ra 18 một cách không có căn cứ, lời giải cho entropy cực đại * arg max ( ) p P p H p ∈ = phải có dạng này. Sự tương đương này đã cung cấp một phương pháp mới cho phép ước lượng tham số cho các mô hình dựa trên nguyên lý entropy cực đại bằng cách sử dụng các phép ước lượng tham số cho likelihood cực đại. 2.3.2.5. Các thuật toán ước lượng tham số Cho tập huấn luyện 1 1{( , ),..., ( , )}N NT a b a b= . Phân phối mũ: ( ) ( ) ( ), 1 1| i k f a b i i p a b Z b λ = = ∏ trong đó 1{ ... }kλ λ λ= là tập trọng số, ( ) ( ), 1 i k f a b i a i Z b λ = =∑∏ là thừa số chuẩn hoá. Huấn luyện mô hình entropy cực đại chính là ước lượng tập trọng số 1{ ... }kλ λ λ= để cho phân phối ở trên đạt entropy cao nhất. Các thuật toán phổ biến được sử dụng bao gồm: Thuật toán GIS – Generalized Iterative Scaling – được đưa ra trong [8]; Thuật toán IIS – Improved Iterative Scaling – được đưa ra trong [11] là thuật toán ước lượng tham số của mô hình mũ do các thành viên trong nhóm nghiên cứu tại IBM’s T. J. Watson Research Center đưa ra vào những năm đầu của thập kỉ 90; Thuật toán L-BFGS – Limited memory BFGS – là phương pháp giới hạn bộ nhớ cho phương pháp quasi-Newton. 2.3.3. Phương pháp đánh giá hiệu suất phân lớp Việc đánh giá độ phân lớp dựa trên việc áp dụng mô hình đối với các dữ liệu thuộc tập dữ liệu kiểm tra testD , sử dụng mô hình cho từng trường hợp dữ liệu ở testD mà kết quả ra là lớp c dự báo cho từng dữ liệu. Hai độ đo được dùng phổ biến để đánh giá chất lượng của thuật toán phân lớp là độ hồi tưởng (recall) R và đọ chính xác (precision) P. Ngoài ra, một số độ đo kết hợp được xây dựng từ các độ đo này cũng được sử dụng, trong đó điển hình nhất là độ đo F1. Phần dưới đây trình bày các tính toán chi tiết giá trị của các độ đo hồi tưởng và độ chính xác trong bài toán phân lớp văn bản. 19 Xét trường hợp lực lượng của tập C các lớp trong bài toán lớn hơn hai (|C| > 2) với lưu ý rằng, trường hợp tập C chỉ gồm có hai lớp là đơn giản. Đối với lớp c, cho thực hiện mô hình phân lớp vừa được xác định với các dữ liệu thuộc testD nhận được các đại lượng cTP , cTN , cFP , cFN như bảng dưới đây: Giá trị thực tế Lớp c Thuộc lớp c Không thuộc lớp c Thuộc lớp c cTP cTN Giá trị qua bộ phân lớp Không thuộc lớp c cFP cFN Diễn giải bằng lời cho từng giá trị trong bảng: - cTP (true positives): số lượng ví dụ dương (tài liệu thực sự thuộc lớp c) được thuật toán phân lớp gán cho giá trị đúng thuộc lớp c. - cTN (true negatives): số lượng ví dụ âm (tài liệu thực sự không thuộc c) nhưng lại được thuật toán phân lớp gán cho giá trị đúng thuộc lớp c. - cFP (false positives): số lượng ví dụ dương được thuật toán phân lớp gán cho giá trị sai là không thuộc lớp c. - cFN (false negatives): số lượng ví dụ âm được thuật toán phân lớp gán cho giá trị sai là không thuộc lớp c. Khi đó, với mỗi lớp c, giá trị các độ đo cR và cP được tính như sau: c c c c TPR TP FP = + và c c c c TPP TP TN = + Với bài toán phân lớp nhị phân, các độ đo nói trên cho một lớp trong hai lớp là đủ để đánh giá chất lượng bộ phân lớp, tuy nhiên, trong trường hợp bài toán phân lớp K lớp, các Bảng 1. Các nhóm tài liệu sau phân lớp 20 độ đo trung bình được sử dụng bao gồm trung bình mịn (microaveraging) và trung bình thô (macroaveaging). Độ hồi tưởng trung bình thô (macroaveraging recall): 1 1 KM c c R R K = = ∑ và độ chính xác trung bình thô (macroaveaging precision): 1 1 KM c c P P K = = ∑ Độ hồi tưởng trung bình mịn (microaveraging recall): 1 1 ( ) K c M c K c c c TP P TP FP = = = + ∑ ∑ và độ chính xác trung bình mịn (microaveraging precision): 1 1 ( ) K c M c K c c c TP P TP TN = = = + ∑ ∑ Các độ đo trung bình mịn được coi là các độ đo tốt hơn để đánh giá chất lượng thuật toán phân lớp đa lớp tài liệu [2]. 21 Chương 3. Xây dựng hệ thống tổng hợp và phân loại tin tự động Việc xây dụng hệ thống tổng hợp và phân loại tin tự động là vấn đề quan trọng nhất của khóa luận. Ở chương này, khóa luận sẽ trình bày các bước xây dựng mô hình hệ thống trên cơ sở lý thuyết được trình bày trong chương 2. 3.1. Cơ sở thực tiễn Hiện nay, các trang Web đều được xây dựng bởi các ngôn ngữ lập trình Web như PHP, ASP.NET,... Nó cho phép sinh ra siêu văn bản một cách tự động. Khi một tin tức được đăng tải trên một báo điện tử, thì nó tuân theo định dạng HTML nhất định được sinh ra tự động. Điều này có nghĩa là, khi biết mẫu để trích xuất một tin trong một khuôn mẫu, thì cũng có thể trích xuất được tin ở trang có cùng khuôn mẫu đó. Ví dụ: Ở trang tin vnexpress.net, hai bài báo ở hình 5a và 5b là hai tin bài trong hai mục báo khác nhau Hình 5a. Mô tả phần nội dung cần lấy trên trang tin 1 22 Hình 5b. Mô tả phần nội dung cần lấy trên trang tin 2 Mặc dù detail-pages của chúng khác nhau nhưng chúng có cùng một câu DOM => có nghĩa là có cùng một khuôn mẫu. Hình 6. Mô hình cây DOM của 2 detail-pages HTML TABLE TD DIV TD BODY BODY TR TR Nội dung bài báo Quảng cáo 23 2 detail-pages này có cùng một cây DOM, nhưng khóa luận không sử dụng trích chọn thông tin dựa trên mô hình cây DOM mà sử dụng đặc trưng mẫu để tìm ra các nội dung thông tin cần thiết. Các đặc trưng này được thể hiện như trong hình 7a và 7b. Hình 7a. Các đặc trưng cho phép trích chọn thông tin bài báo 1 24 Hình 7b. Các đặc trưng cho phép trích chọn thông tin bài báo 2 Từ mẫu tìm được, dễ dàng nhận ra phần nội dung thông tin cần thiết, điều đó khiến việc trích chọn ra nội dung thông tin cần thiết là hết sức đơn giản. 3.2. Xây dựng mô hình hệ thống Trên cơ sở thực tiễn và mô hình lý thuyết đã phân tích ở chương 2, tiếp theo khóa luận sẽ trình bày mô hình hóa hệ thống tổng hợp và phân loại tin tức. Các module cấu thành sẽ cho thấy tính mở của hệ thống, cho phép dễ dàng mở rộng khi cần. 25 3.2.1. Mô hình tổng quan Hình 8. Mô hình tổng quan của hệ thống tổng hợp và phân loại tin tức Mô tả bài toán Đầu vào: File cấu hình hệ thống xnews.conf Đầu ra: Các tin tức đã được phân tích và tách thành các phần bao gồm: tiêu đề, tóm tắt, ảnh minh họa, nội dung... ghi vào CSDL. File cấu hình xnews.conf chứa tập các URLs hạt giống, tương ứng với mỗi URL hạt giống là một loạt các mẫu, cho phép trích xuất thông tin như mong đợi. Định dạng xnews.conf được trình bày như sau: Dòng 1: Chứa số nguyên dương N, với N là số nguồn sẽ sử dụng để tổng hợp tin tức. 8 dòng tiếp theo được trình bày theo định dạng cố định và lặp lại N lần 26 1. URL hạt giống 2. Dấu hiệu nhận biết link con cần lấy 3. Bắt đầu phần nội dung 4. Kết thúc phần nội dung 5. Tiêu đề bài báo 6. Đoạn tóm tắt nội dung chính 7. Tác giả bài báo 8. Dòng trống Đối với cụm 8 dòng này thì: 7 dòng đầu tiên chứa thông tin về một Web tin tức, nó cho phép crawl, trích xuất tất cả các tin bài cần lấy của Web tin tức đó. Dòng thứ 8 được để trống. Ví dụ đối với báo vnexpress.net để có thể lấy được đầy đủ các tin bài cần thiết, khóa luận xây dựng một bộ gồm các mẫu như sau: ~ ~class="link-topnews"~class="folder-topnews fl"~class="other-folder fl"~<a class="link-othernews"~<a class="link-title"~ ~class="content"~ ~style="margin-top:5px;margin-bottom:5px;"~ ~class=Title~ ~~ ~ormal align=right~ Mỗi một dòng được bắt đầu và kết thúc bởi dấu “~”, đồng thời dấu “~” cũng được sử dụng để làm phân cách cho các mẫu trên cùng một dòng. Đường đi của mô hình hệ thống 27 Trước hết, “module sinh file huấn luyện” được chạy để sinh ra file huấn luyện, cũng là dữ liệu vào, thành phần chính của “module phân lớp”. Tiếp theo, chương trình đọc file cấu hình xnews.conf để thu được các URLs hạt giống và các mẫu đi cùng với nó như được trình bày ở trên. Tạo một yêu cầu (request) HTTP để lấy về mã HTML của trang tin Home tương ứng với URL hạt giống. Đọc và trích xuất ra các siêu liên kết có trong mã HTML này dựa vào mẫu “Dấu hiệu nhận biết link con cần lấy” để thu được danh sách URLs. Truy vấn đến CSDL để kiểm tra các URLs thuộc danh sách này xem đã được thăm chưa, từ đó đưa ra được danh sách các URLs chưa thăm. Ở đây, khóa luận sử dụng lưu trữ trong CSDL bảng băm MD5 của URL thay cho việc lưu trữ trực tiếp URL, đồng thời sử dụng mã MD5 làm khóa chính của bảng tương ứng trong CSDL (sẽ được trình bày chi tiết hơn trong chương 4). Đối với mỗi URL trong danh sách URLs chưa thăm, lặp lại việc gửi yêu cầu HTTP để thu được mã HTML tương ứng. Sử dụng công cụ UnicodeConverter để chuẩn hóa Unicode mã HTML lấy về, và sau đó tiến hành trích xuất thông tin nhờ vào tập mẫu của file cấu hình xnews.conf. Thông tin trích xuất được, được đưa vào dữ liệu “các thông tin đầy đủ về bài báo” bao gồm bảng băm MD5 của URL, URL, tiêu đề bài báo, phần tóm tắt nội dung, link ảnh minh họa, và phần nội dung bài báo, đồng thời cung cấp “toàn bộ nội dung bài báo” (từ phần bắt đầu đến kết thúc của bài báo đó trong mã HTML) cho “module chuẩn hóa dữ liệu huấn luyện/kiểm tra mô hình”. Qua bước này, chương trình thu được xâu đã được chuẩn hóa, làm dữ liệu vào cho “module phân lớp”, qua module thu được nhãn tương ứng của bài báo. Cung cấp nhãn này cho “các thông tin đầy đủ về bài báo” và cuối cùng là tiến hành ghi các thông tin này vào CSDL. Xử lý các văn bản không thuộc các lớp quan tâm Trên thực tế, xảy ra trường hợp tập các lớp mà bài toán phân lớp của chương trình quan tâm tới không bao quát hết các trường hợp văn bản, tin tức của hệ thống trang tin điện tử. Một phương pháp giải quyết với vấn đề này, là xây dựng thêm một phân lớp, là phân lớp “khác”. Tất cả các văn bản không thuộc các phân lớp văn bản thông thường sẽ được xếp vào phân lớp “khác”. Để giải quyết vấn đề theo cách đơn giản hơn, khóa luận đã áp dụng một số phương pháp để loại bỏ các trường hợp này từ danh sách URLs dựa vào đặc điểm URL và một số yếu tố khác. Làm như vậy cũng đồng thời tiết kiệm được công sức phải xử lý (từ lấy mã HTML, chuẩn hóa, phân lớp,…) một lượng các văn bản không thuộc lớp nào góp phần tăng tốc độ chung cho toàn hệ thống. 28 Ví dụ 1: Trên trang báo điện tử vnexpress.net có phân lớp “Tâm sự” là phân lớp không thuộc nhóm được quan tâm của nội dung khóa luận. Một số URL bài viết thuộc lớp này: - - Dễ dàng nhận thấy đặc điểm chung URL của các bài viết thuộc lớp này. Như vậy với báo điện tử vnexpress.net để loại các bài viết thuộc lớp “Tâm sự” đơn giản chỉ cần loại các URL có chứa xâu “vnexpress.net/GL/Ban-doc-viet/Tam-su/”. Ví dụ 2: Trong trường hợp của báo phapluattp.vn. Xuất hiện các bài báo thuộc lớp “Đô thị” là phân lớp chưa được khóa luận quan tâm tới. Dựa vào đặc điểm này, các bài báo thuộc lớp “Đô thị” cũng sẽ dễ dàng bị loại trước khi chương trình thực hiện trích xuất các nội dung thông tin cần thiết. Hình 9. Đặc điểm giúp loại tin thuộc lớp chưa quan tâm 29 Kiểm soát các trang trùng nhau Một vấn đề không kém phần quan trọng trong nội dung tổng hợp tin tức là kiểm soát các bài báo có cùng nội dung. Đối với hệ thống trang tin điện tử của Việt Nam, nhiều trang báo thực hiện việc tổng hợp từ các báo khác bằng phương pháp thủ công, và đi kèm với đó có một số vấn đề cần được xử lý như sau: - Tiêu đề của tin tức có thể được thay đổi. - Phần tóm tắt có thể được thêm bớt. - Ảnh minh họa có thể bị thay đổi. - Nội dung có thể được thêm bớt ít nhiều. Để xử lý trường hợp này phương pháp thường được sử dụng là Jaccard Index (chỉ số Jaccard) – còn được gọi là hệ số tương tự Jaccard, là một số thống kê được sử dụng để so sánh sự giống nhau và đa dạng của các bộ mẫu. Nhưng do có nhiều hạn chế về mặt thời gian, nên vấn đề này sẽ là định hướng phát triển trong tương lai. 3.2.2. Module chuẩn hóa dữ liệu huấn luyện/kiểm tra mô hình Hình 10. Module chuẩn hóa dữ liệu huấn luyện/kiểm tra mô hình 30 Mô tả bài toán Đầu vào: Xâu dữ liệu nội dung bài báo và file danh sách từ dừng1 Đầu ra: Xâu dữ liệu đã được gán nhãn “Xâu dữ liệu nội dung bài báo” là phần nội dung từ bắt đầu đến kết thúc bài báo dưới mã HTML đã được chuẩn hóa Unicode (là phần dữ liệu được trích xuất từ mã HTML của bài báo tương ứng). Đường đi của mô hình hệ thống Từ xâu dữ liệu vào, xóa bỏ các thẻ HTML để thu được tài liệu dạng văn bản phi cấu trúc thông thường. Sử dụng công cụ vnTokenizer phân tích dữ liệu thu được ra dạng từ đơn, từ ghép. Xóa bỏ các ký tự đặc biệt như dấu chấm, dấu phẩy, chấm phẩy, hai chấm, ba chấm,… thu được xâu dữ liệu chỉ bao gồm các từ đơn từ ghép ngoài ra không còn ký hiệu đặc biệt hay nào khác. Loại bỏ từ dừng ở xâu thu được bằng phương pháp khớp biểu thức chính quy. Từ file danh sách từ dừng sinh ra một mẫu biểu thức chính quy, cho phép khớp tất cả các từ dừng có trong danh sách. Sau khi loại bỏ từ dừng, chuẩn hóa xâu thu được, xóa bỏ các dấu trống đầu và cuối, thay tất cả các ký tự trống (ký tự tab, cuối dòng) bằng dấu khoảng cách, giữa hai từ bất kỳ chỉ giữ một dấu khoảng cách duy nhất. Thu được xâu đã được chuẩn hóa, thực hiện gán nhãn và trả ra xâu đã được gán nhãn. Ở đây, đối với mô hình huấn luyện, nhãn của dữ liệu đã được biết trước, thực hiện gán nhãn trên xâu đã được chuẩn hóa. Còn với mô hình kiểm tra, nhãn ở đây được gán theo dạng câu hỏi (dấu chấm hỏi “?”). 3.2.3. Module phân lớp Mô tả bài toán Đầu vào: File huấn luyện và xâu cần phân lớp đã được chuẩn hóa Đầu ra: Xâu được phân lớp và gán nhãn File huấn luyện được tạo bởi “module sinh file huấn luyện” và xâu cần được phân lớp được sinh bởi “module chuẩn hóa dữ liệu huấn luyện/kiểm tra mô hình”. Đường đi của mô hình hệ thống 1 31 Từ file huấn luyện, sử dụng công cụ maxent cho việc học mô hình. Sau quá trình học, mô hình thu được được sử dụng để kiểm tra mô hình trên “xâu vào đã được chuẩn hóa” (sử dụng công cụ maxent) thu được xâu được gán nhãn. 3.2.4. Module sinh file huấn luyện Mô tả bài toán Đầu vào: Tập dữ liệu huấn luyện Đầu ra: File huấn luyện Tập dữ liệu huấn luyện được lấy từ báo vnexpress.net riêng biệt theo 10 phân lớp bao gồm: - XAHOI - THEGIOI - KINHDOANH Hình 11. Module phân lớp 32 - VANHOA - THETHAO - PHAPLUAT - ĐOISONG - KHOAHOC - VITINH - XE Mỗi phân lớp sử dụng 1.000 bài báo cho việc học mô hình. Như vậy file huấn luyện sẽ bao gồm nội dung được lấy từ 10.000 bài báo đã biết trước nhãn. Đường đi của module Đọc tập dữ liệu huấn luyện để thu được xâu, làm dữ liệu đầu vào cho “module chuẩn hóa dữ liệu huấn luyện/kiểm tra mô hình” thu được xâu đã được gán nhãn ghi lại thành file huấn luyện. 3.3. Khả năng mở rộng của hệ thống Theo mô hình hệ thống của chương trình thể hiện tính module hóa cao. Các module làm việc ăn khớp với nhau, mỗi module đều có một chức năng rõ ràng và tương đối độc Hình 12. Module sinh file huấn luyện 33 lập với các module còn lại, các module chỉ tương tác với nhau theo dạng đầu vào của module này là đầu ra của module khác làm cho chương trình dễ dàng kiểm soát được lỗi phát sinh nếu có. Đồng thời việc nâng cấp toàn bộ hệ thống lấy tin cũng chỉ ảnh hưởng đến từng module riêng biệt chứ không tác động tới tất cả các module trong hệ thống. Ví dụ hệ thống cần được nâng cấp về số phân lớp, để mở rộng quy mô ra những lĩnh vực chưa được quan tâm trước đó, hệ thống chỉ cần nâng cấp làm việc với “module sinh file huấn luyện” để có thể phân lớp các văn bản thuộc các lớp mới đó. 34 Chương 4. Thực nghiệm và đánh giá kết quả Ở chương này, khóa luận sẽ trình bày thực nghiệm và kết quả để đánh giá chất lượng của hệ thống tổng hợp và phân loại tin tự động, khóa luận sẽ đưa ra hai nội dung đánh giá là chất lượng tổng hợp tin và hiệu suất của việc phân loại tin tự động. 4.1. Môi trường phần cứng và phần mềm 4.1.1. Môi trường phần cứng Thành phần Thông số CPU Intel Core 2 Duo T7600 2.0GHz RAM 3GB OS Ubuntu 9.04 Bộ nhớ ngoài 120GB 4.1.2. Công cụ phần mềm STT Tên phần mềm Giấy phép Nguồn 1 Netbean 6.5 GPL Bảng 2. Cấu hình phần cứng sử dụng trong thực nghiệm Bảng 3. Các công cụ phần mềm sử dụng trong thực nghiệm 35 2 mysql 5.0.75- 0ubuntu10.3 GPL 3 OpenJDK 1.6.0_0 GPL 4 mysql-connector- java-5.1.12-bin.jar GPL 5 maxent-2.5.2.jar GPL 6 vn.hus.nlp.tokenizer- 4.1.1.jar GPL php 7 UnicodeConverter.jar v2.0 GPL Sử dụng các công cụ phần mềm trên khóa luận đã xây dựng chương trình tự động tổng hợp và phân loại tin trong hệ thống trang tin điện tử. Cấu trúc của chương trình gồm có 3 gói (packages) chính như sau:  J_Lib: Cung cấp các chức năng cần thiết ở mức thư viện cung cấp các chức năng tiện dụng nhất và có mức độ độc lập tương đối với các packages khác.  J_NLP: Cung cấp các chức năng tách từ tiếng Việt (sử dụng vnTokenizer) và học cũng như kiểm tra mô hình với phân lớp văn bản entropy cực đại (sử dụng maxent)  xnews: Sử dụng J_Lib và J_NLP để lấy tin, xử lý trích xuất, chuẩn hóa, phân lớp, ghi nội dung tin tức vào CSDL, làm và đánh giá các thực nghiệm... Chi tiết các lớp của 3 gói này được trình bày như bảng bên dưới: 36 Packages Classes Chức năng J_GET Tạo yêu cầu (request) GET để lấy về mã HTML của một URL J_Img Tải ảnh, phân loại và nén ảnh J_RmTag Xóa các thẻ HTML để thu được bài báo ở dạng văn bản thông thường J_SQL Kết nối với CSDL (sử dụng mysql- connector-java-5.1.12-bin.jar) J_Lib J_Utilities Sinh mã md5 của một xâu và các tiện tích trên file CreateModel Sinh mô hình từ tập dữ liệu huấn luyện (sử dụng maxent) Predict Kiểm tra mô hình, gán nhãn cho dữ liệu kiểm tra (sử dụng maxent) J_NLP J_Tokenizer Sử dụng biểu thức chính quy để chuẩn hóa xấu, loại ký tự đặc biệt, loại bỏ từ dừng, tách từ đơn, từ ghép (sử dụng vnTokenizer) Crawler Điều khiển lấy tin, trích xuất nội dung, chuẩn hóa, phân lớp, vào ra trên CSDL,... (sử dụng UnicodeConverter.jar) xnews Lab Tạo dữ liệu học, kiểm tra mô hình từ tập dữ liệu thô Bảng 4. Mô tả chức năng các lớp trong các gói 37 4.2. Cấu trúc Cơ sở dữ liệu Cơ sở dữ liệu của chương trình được thiết kế cho việc tối ưu hóa tốc độ truy vấn, khi số lượng tin tức được lưu là rất lớn. CSDL của chương trình được thiết kế gồm 3 bảng t_store01, t_store02 và t_store03 cụ thể như sau:  Bảng t_store01: Cho biết các tin theo ngày và theo thể loại được phép hiển thị. Ứng với mỗi một ngày, bảng t_store01 sinh ra thêm 10 hàng tương ứng với 10 phân lớp của tin tức, lưu trữ thông tin về các bài báo trong ngày theo 10 phân lớp tương ứng.  Bảng t_store02: Lưu trữ tất cả các thông tin chi tiết của một bài báo cụ thể.  Bảng t_store03: Được thiết kế các trường, các chức năng giống với t_store01, chỉ có một điểm khác duy nhất, ngược lại với t_store01 cho biết các tin được phép hiển thị, thì t_store03 lại cho biết các tin không được phép hiển thị. Bảng t_store03 nhằm phục vụ cho việc lưu trữ các bài báo được xóa bằng tay trong trường hợp tin bài không phù hợp. Tất cả các tin khi được lấy về, sẽ được mặc định ghi vào bảng t_store01 và bảng t_store02. Bảng t_store03 sẽ được sử dụng đến bởi chức năng của người biên tập báo. Dù là một hệ thống lấy tin tức tự động, nhưng việc hệ thống cần có một người biên tập báo là điều hoàn toàn hợp lý. Người biên tập sẽ có nhiệm vụ theo dõi và chuẩn xác lại các thông tin, ví dụ khi hệ thống được mở rộng nguồn cập nhật tin, hệ thống tự động lấy về một số bài báo có nội dung liên quan đến các vấn đề “nhạy cảm” về chính trị, người biên tập có nhiệm vụ đánh giá mức độ “nhạy cảm” của vấn đề và đưa ra quyết định có giữ bài báo hay không. Nếu bài báo cần được xóa, nó sẽ được chuyển từ bảng t_store01 sang t_store03 - nơi chỉ chứa các tin đã bị xóa (trên thực tế là bị ẩn) và trường vis của bảng t_store02 cũng thay đổi tương ứng. Ngoài ra t_store03 được tạo ra còn nhằm để cho phép khôi phục lại tin đã xóa nếu thấy cần thiết. Để phục vụ việc tối ưu hóa truy vấn, khóa luận thực hiện đánh chỉ mục (index) trên các bảng của CSDL tương ứng với các khóa chính của bảng đó: - data_type trên t_store01 và t_store03. - u5 trên t_store02. 38 Bảng Trường/ Khóa Kiểu dữ liệu Mô tả date_type (p) int Date là ngày theo kiểu int được viết dưới định dạng YYYYMMDD viết liền type, để chia ra tin tức theo 10 phân lớp trong ngày. nums int Số bài đến thời điểm hiện tại trong ngày ứng với mỗi một mục tin date_type. t_store01 lu5 text Danh sách bảng băm MD5 của nums tin tương ứng của mỗi mục tin trong ngày. Hai mã MD5 liên tiếp phân cách nhau bởi xâu “t_#”. Mỗi mã MD5 cho phép truy vấn tin theo u5 của t_store02. u5 (p) char(32) u5 gồm 32 ký tự là bảng băm MD5 của URL bài báo gốc. u5 được sử dụng làm khóa chính của bảng, đồng thời được đánh chỉ mục (index) cho phép tối ưu hóa truy vấn. Ngoài tập tất cả các u5 trong t_store02 cũng đại diện cho tất cả các URL đã thăm, như vậy nó cho phép kiểm tra URL chưa thăm. vis char(1) vis được ấn định 1 trong 2 trạng thái 0 hoặc 1. Mặc định vis bằng 1 có nghĩa là bài báo đó được phép hiển thị. Ngược lại khi vis bằng 0 thì bài báo đó không được phép hiển thị. t_store02 type int type là số có 2 chữ số 00, 01, …, 09 tương ứng với 10 phân lớp tin tức của hệ thống. Bảng 5. Chi tiết CSDL 39 infors text Thông tin tổng hợp về một bài báo bao gồm các nội dung thông tin: ngày tháng định dạng YYYYMMDDHHmm bài báo được lấy về, URL bài báo gốc, tiêu đề bài báo, tóm tắt, link ảnh minh họa. Các thông tin được ngăn cách nhau bởi ký hiệu “t_#”. view mediumtext Chứa toàn bộ phần nội dung thông tin bài báo, từ sau phần tóm tắt đến kết thúc. t_store03 Hoàn toàn tương tự với t_store01 về thành phần. 4.3. Đánh giá chất lượng tổng hợp tin Sau một thời gian thử nghiệm, quan sát và đánh giá, khóa luận đi tới một số kết luận về chất lượng tổng hợp tin của hệ thống:  Tốc độ lấy tin mới nhanh và ổn định. Chương trình đặt một độ trễ (delay) là 2 phút cho hai lần (lặp) lấy tin liên tiếp. Kết quả quan sát cho thấy, khi tin mới xuất hiện trên hệ thống nguồn, thì sau đó 1 đến 2 phút, tin tức sẽ được tự động cập nhật vào hệ thống.  Chất lượng tin lấy về với độ chính xác cao, hiện khóa luận chưa phát hiện việc trích rút sai nội dung tin tức như tiêu đều, tóm tắt, ảnh, nội dung… Khóa luận sẽ tiếp tục theo dõi và đánh giá trong thời gian tới. 4.4. Thực nghiệm và đánh giá hiệu suất phân loại tin tự động 4.4.1. Xây dựng tập dữ liệu huấn luyện và kiểm tra mô hình Để chuẩn bị dữ liệu huấn luyện và kiểm tra mô hình khóa luận thực hiện phân lớp bằng tay dựa vào các mục tin (category) của Website báo điện tử nguồn. Đối với mỗi một phân lớp, sau khi được phân bằng tay, khóa luận tạo một số đoạn mã chương trình bằng Java thực hiện việc lấy các tin tức cũ hơn của mục tin (phân lớp) đó theo ngày tháng. 40 STT Tên phân lớp VnExpress Mô tả 1 XAHOI Xã hội Giáo dục, lối sống, du lịch,… 2 THEGIOI Thế giới Tình hình thế giới, chủ yếu là tình hình chính trị. 3 KINHDOANH Kinh doanh Kinh doanh, tình hình kinh tế, thị trường chứng khoán,… 4 VANHOA Văn hoá Âm nhạc, thời trang, điện ảnh, nghệ sĩ, mỹ thuật,… 5 THETHAO Thế giới Tình hình thế giới, chủ yếu là tình hình chính trị. 6 PHAPLUAT Pháp luật Vụ án, vụ việc, các văn bản luật mới. 7 DOISONG Đời sống Tâm sự, gia đình, tình cảm, nội trợ, nhà ở, ẩm thực,… 8 KHOAHOC Khoa học Khoa học nói chung, không liên quan đến lớp Công nghệ. 9 VITINH Vi tính Công nghệ thông tin và truyền thông. 10 XE Ôtô-Xe máy Phương tiện đi lại. Dữ liệu dùng cho việc huấn luyện mô hình là các bài báo được lấy từ trang báo điện tử vnexpress.net, với số lượng các phân lớp như sau: Bảng 6. Các lớp tài liệu sử dụng trong thực nghiệm 41 STT Phân lớp Số lượng văn bản 1 XAHOI 1000 2 THEGIOI 1000 3 KINHDOANH 1000 4 VANHOA 1000 5 THETHAO 1000 6 PHAPLUAT 1000 7 DOISONG 1000 8 KHOAHOC 1000 9 VITINH 1000 10 XE 1000 Tổng số 10000 Ở đây, khóa luận xin đưa ra 2 thực nghiệm kiểm tra chất lượng phân loại tin tự động. 4.4.2. Thực nghiệm thứ nhất Mô tả thực nghiệm Thực nghiệm nhằm đánh giá chất lượng phân loại tin tự động đối với dữ liệu test cũng được lấy từ báo điện tử vnexpress.net. Bảng 7. Thống kê số lượng tài liệu dùng cho việc học mô hình 42 Đầu vào: Mô hình đã qua huấn luyện của hệ thống, và các dữ liệu lấy từ vnexpress.net ở dạng thô. Đầu ra: Bảng đánh giá kết quả độ chính xác theo các chỉ số bao gồm: độ hồi tưởng (R), độ chính xác (P) và độ đo F1. Tập dữ liệu được dùng cho việc kiểm tra mô hình được mô tả trong bảng STT Phân lớp Số lượng văn bản 1 XAHOI 100 2 THEGIOI 100 3 KINHDOANH 100 4 VANHOA 100 5 THETHAO 100 6 PHAPLUAT 100 7 DOISONG 100 8 KHOAHOC 100 9 VITINH 100 10 XE 100 Tổng số 1000 Kết quả thực nghiệm Bảng 8. Thống kê số lượng tài liệu thực nghiệm 1 dùng kiểm tra mô hình 43 Nhãn Độ chính xác (%) Độ hồi tưởng (%) F1 (%) XAHOI 92.93 92.00 92.46 THEGIOI 98.96 95.00 96.94 KINHDOANH 90.74 98.00 94.23 VANHOA 95.24 100.00 97.55 THETHAO 98.99 98.00 98.49 PHAPLUAT 94.23 98.00 96.08 DOISONG 93.20 96.00 94.58 KHOAHOC 97.92 94.00 95.92 VITINH 100.00 93.00 96.37 XE 98.97 96.00 97.46 Trung bình thô 96.11 96.00 96.01 Trung bình mịn 96.00 96.00 96.00 Nhận xét: - Kết quả thực nghiệm cho thấy kết quả phân lớp tự động được thực hiện với dữ liệu test mô hình của báo điện tử vnexpress.net là rất tốt. Tất cả các trường hợp độ đo F1 đều chính xác hơn 92%. Trung bình mịn của độ chính xác và độ hồi tưởng đều đạt 96%. - Đối với đặc trưng của tin tức. Một bài báo có thể thuộc cùng lúc nhiều phân lớp. Ví dụ, một bài báo với nội dung nói về “tình trạng móc túi diễn ra tại các bến xe bus ở Hà Nội” tin tức này hoàn toàn có thể xếp vào phân lớp PHAPLUAT Bảng 9. Kết quả thực nghiệm 1 44 xong cũng đồng thời có thể xếp vào phân lớp XAHOI. Chính bản chất đa lớp có thể có của một tin tức cụ thể có thể dẫn đến kết quả phân lớp bị sai. 4.4.3. Thực nghiệm thứ hai Mô tả thực nghiệm Thực nghiệm nhằm đánh giá chất lượng phân loại tin tự động đối với dữ liệu test lấy từ các báo khác bao gồm: dantri.com.vn, baodatviet.vn và tuoitre.vn. STT Phân lớp Số lượng văn bản 1 XAHOI 50 2 THEGIOI 50 3 KINHDOANH 50 4 VANHOA 50 5 THETHAO 50 6 PHAPLUAT 50 7 DOISONG 50 8 KHOAHOC 50 9 VITINH 50 10 XE 50 Tổng số 500 Bảng 10. Thống kê số lượng tài liệu thực nghiệm 2 dùng kiểm tra mô hình 45 Đầu vào: Mô hình đã qua huấn luyện của hệ thống, và các dữ liệu lấy từ 3 nguồn tin dantri.com.vn, baodatviet.vn và tuoitre.vn ở dạng thô. Đầu ra: Bảng đánh giá kết quả độ chính xác theo các chỉ số bao gồm: độ hồi tưởng (R), độ chính xác (P) và độ đo F1. Tập dữ liệu được dùng cho việc kiểm tra mô hình được mô tả trong bảng 10. Kết quả thực nghiệm Nhãn Độ chính xác (%) Độ hồi tưởng (%) F1 (%) XAHOI 34.85 46.00 39.66 THEGIOI 83.02 88.00 85.44 KINHDOANH 79.63 86.00 82.69 VANHOA 66.67 80.00 72.73 THETHAO 94.23 98.00 96.08 PHAPLUAT 89.58 86.00 87.75 DOISONG 69.23 54.00 60.67 KHOAHOC 76.67 46.00 57.50 VITINH 83.93 94.00 88.86 XE 100 84.00 91.30 Trung bình thô 77.78 76.20 76.25 Trung bình mịn 76.20 76.20 76.20 Bảng 11. Kết quả thực nghiệm 2 46 Nhận xét: - Kết quả thực nghiệm 2 trong bảng 11 cho biết trong tổng số lượng văn bản được phân lớp, thì có khoảng 76% văn bản được phân lớp đúng theo cách phân lớp của báo dùng để test. - Bảng 9 và bảng 11 cho thấy có sự khác biệt lớn về độ chính xác của thực nghiệm 2 so với thực nghiệm 1. Sở dĩ có sự khác nhau như vậy, là do trong thực nghiệm 2, khóa luận tiến hành kiểm tra với các báo điện tử khác với báo được sử dụng để học mô hình, các báo khác nhau này có cây phân lớp không tương đồng nhau, do đó dẫn đến việc phân lớp đúng theo báo học mô hình là vnexpress.net thì có thể không đúng với báo kiểm tra tuoitre.vn. Ví dụ: tin “Phá án buôn ma túy biên giới, 3 công an bị thương”1 theo cây phân lớp của tuoitre.vn được xếp vào lớp XAHOI, nhưng với một tin có nội dung hoàn toàn tương tự “3 cảnh sát bị thương khi truy bắt nhóm buôn ma túy”2 thì vnexpress.net lại xếp tin này vào phân lớp PHAPLUAT. 1 an buon-ma-tuy-bien-gioi-3-cong-an-bi-thuong.html 2 47 Kết luận Kết quả đạt được của khóa luận Từ việc nghiên cứu về các bài toán của hệ thống tổng hợp và phân loại tin tự động, khóa luận đã trình bày phương pháp tổng hợp và phân loại tin tức từ các trang báo điện tử khác nhau. Qua những kết quả thực nghiệm cho thấy tính hiệu quả của phương pháp này. Về mặt nội dung, khóa luận đã đạt được những kết quả như sau: - Giới thiệu các hệ thống tổng hợp tin hiện có của Việt Nam, ưu và nhược điểm. - Nghiên cứu cơ sở lý thuyết về trích chọn thông tin tài liệu Web, giới hiệu mô hình phân lớp văn bản entropy cực đại. Chỉ ra thế mạnh của phương pháp này trong phân lớp văn bản phù hợp với nội dung phân lớp tin tức. Giới thiệu các đại lượng sử dụng cho việc đánh giá kết quả phân lớp. - Thông qua mô hình lý thuyết nghiên cứu được về trích chọn tài liệu Web và phân lớp văn bản, khóa luận đã tiến hành xây dựng mô hình hệ thống tổng hợp và phân loại tin tự động. - Trên cơ sở mô hình có được, khóa luận đã cài đặt được chương trình chính là hệ thống tổng hợp và phân loại tin tự động bằng ngôn ngữ Java sử dụng môi trường Netbean. - Đánh giá chất lượng tổng hợp và hiệu suất phân loại tin của hệ thống, từ đó cho thấy chất lượng tổng hợp và hiệu suất phân loại đều rất tốt. Mặc dù vậy, do hạn chế về thời gian và kiến thức khóa luận vẫn còn hạn chế sau: - Khóa luận chưa xây dựng được giao diện người dùng cho hệ thống. - Chưa đưa ra được phương pháp xử lý thỏa đáng đối với trường hợp một bài báo thuộc nhiều hơn một phân lớp. - Chưa kiểm soát một cách toàn diện đối với trường hợp các bài báo có nội dung trùng nhau. Định hướng tương lai Trong tương lai, khóa luận sẽ tiếp tục nghiên cứu về các vấn đề sau: 48 - Phân lớp một bài báo có thể thuộc vào nhiều lớp sử dụng phân lớp mờ Fuzzy. - Kiểm soát trường hợp các bài báo có nội dung trùng nhau sử dụng chỉ số Jaccard. - Đồng thời khóa luận cũng cố gắng để sớm công bố hệ thống để phục vụ người sử dụng. 49 Tài liệu tham khảo [1]. Nguyen Viet Cuong, Nguyen Thi Thuy Linh, Phan Xuan Hieu and Ha Quang Thuy (2005). “A Maximum Entropy Model for Vietnamese Web Content Classification”. Proceedings of the 8th National Conference on Information Technology of Vietnam: pages 174-189, Vietnam. (in Vietnamese). [2]. Hà Quang Thụy, Phan Xuân Hiếu, Đoàn Sơn, Nguyễn Trí Thành, Nguyễn Thu Trang, Nguyễn Cẩm Tú. Giáo trình khai phá dữ liệu Web. Nxb GDVN, 2009, tr. 153-166, tr. 220-233. [3]. Berger, A., Della Pietra, S., and Della Pietra, V. A maximum entropy approach to natural language processing. Computational Linguistics, volume 22, number 1, 1996, pages 39-71. [4]. Bing Liu, Web Data Mining Exploring Hyperlinks, Contents, and Usage Data, ,December, 2006. [5]. Chieu, H. L. and Ng, H. T. A Maximum Entropy Approach to Information Extraction from Semi-Structured and Free Text. Proceedings of the Eighteenth National Conference on Artificial Intelligence (AAAI 2002), 2002, pages 786-791. [6]. Crescenzi V., Mecca G., and Merialdo P. Roadrunner: Towards Automatic Data Extraction from Large Web Sites.In Proc. of Very Large Data Bases (VLDB’01), pages 109–118, 2001. [7]. Cuong Nguyen Viet, Nguyen Thi Thuy Linh, Ha Quang Thuy and Phan Xuan Hieu (2006). “A Maximum Entropy Model for Text Classification”. Proceedings of International Conference on Internet Information Retrieval 2006 (IRC 2006), pages 143- 149, Korea. [8]. Darroch, J. and Ratcliff, D. Generalized iterative scaling for log-linear models. Annals Mathematical Statistics, volume 43, number 5, 1972, pages 1470–1480. [9]. Debnath S., Mitra P., and Giles C. L. Automatic extraction of informative blocks from webpages. In Proc. SAC, pages 1722-1726, 2005. [10]. Debnath S., Mitra P., Pal N., and Giles C. L. Automatic Identification of Informative , IEEE Trans. Knowl. Data Eng. 17 , 2005. 50 [11]. Della Pietra, S., Della Pietra, V. and Lafferty, J. 1997. Inducing features of random fields. IEEE Transactions on Pattern Analysis and Machine Intelligence, volume 19, number 4, 1997, pages 380–393. [12]. Gautam Pant, Parmini Srinivasan, and Filipo Menczer (2004). Crawling the Web. Web Dynamic 2004: pg. 153-178. [13]. Jaynes, E. R. (1957). Information Theory and Statistical Mechanics. Physic Review, volume 106, 1957, pages 620-630. [14]. Kushmerick WIEN N. Wrapper Induction for Information Extraction. Ph.D Thesis. Dept. of Computer Science, University of Washington, TR UW-CSE-11-04- 1997. [15]. NGAI Grace, WU Deka, CARPUAT Marine, WANG Chi-Shing, WANG Chi- Yung. Semantic Role Labeling with Boosting, SVMs, Maximum Entropy, SNOW, and Decision Lists. [16]. Nigam, K., Lafferty, J. and McCallum, A. Using maximum entropy for text classification. IJCAI-99 Workshop on Machine Learning for Information Filtering, 1999, pages 61-67. [17]. Nigam K., McCallum, A., Thrun S. and Mitchell, T. Text Classification from Labeled and Unlabeled Documents using EM. Machine Learning, volume 39, number 2/3, 2000, pages 103-134. [18]. Ratnaparkhi, A. A simple introduction to maximum entropy models for natural language processing. Technical Report 97-08, Institute for Research in Cognitive Science, University of Pennsylvania, 1997.

Các file đính kèm theo tài liệu này:

  • pdfLUẬN VĂN- TỰ ĐỘNG TỔNG HỢP VÀ PHÂN LOẠI TIN TRONG HỆ THỐNG TRANG TIN ĐIỆN TỬ.pdf