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
- 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
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
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 http://netbeans.org/downloads/index.html Bảng 2. Cấu hình phần cứng sử dụng trong thực nghiệm
2 mysql 5.0.75- 0ubuntu10.3 GPL http://www.mysql.com/ 3 OpenJDK 1.6.0_0 GPL http://openjdk.java.net/ 4 mysql-connector- java-5.1.12-bin.jar GPL http://www.mysql.com/downloads/connector/ 5 maxent-2.5.2.jar GPL http://maxent.sourceforge.net/ 6 vn.hus.nlp.tokenizer- 4.1.1.jar GPL http://www.loria.fr/~lehong/tools/vnTokenizer. php 7 UnicodeConverter.jar v2.0 GPL http://unicodeconvert.sourceforge.net
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:
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ô
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.
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.
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.
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:
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 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.
Đầ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
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
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ứ haiMô tả thực nghiệm 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
Đầ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
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.
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ô