ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Lê Xuân Thành

TỰ ĐỘNG TỔNG HỢP VÀ PHÂN LOẠI TIN TRONG HỆ THỐNG TRANG TIN ĐIỆN TỬ

KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY

Ngành: Công nghệ thông tin

HÀ NỘI - 2010

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Lê Xuân Thành

TỰ ĐỘNG TỔNG HỢP VÀ PHÂN LOẠI TIN TRONG HỆ THỐNG TRANG TIN ĐIỆN TỬ

KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY

Ngành: Công nghệ thông tin

Cán bộ hướng dẫn: TS. Nguyễn Trí Thành

HÀ NỘI - 2010

Lời cảm ơn

Lời đầu tiên, tôi xin được bày tỏ lòng biết ơn sâu sắc nhất tới thầy giáo – TS.

Nguyễn Trí Thành đã tận tình hướng dẫn, đôn đốc tôi trong suốt quá trình là khóa luận tốt

nghiệp.

Tôi xin được chân thành cảm ơn các thầy, cô và các cán bộ của trường Đại Học

Công Nghệ đã tạo cho tôi những điều kiện thuận lợi để học tập và nghiên cứu.

Tôi xin gửi lời cảm ơn tới ThS Nguyễn Thanh Bình, ThS Lê Văn Thanh và tập thể

các anh chị em của công ty iTim đã động viên, khích lệ, tạo điều kiện cho tôi trong suốt

quá trình làm khóa luận.

Tôi cũng xin gửi lời cảm ơn tới các bạn trong tập thể lớp K51CD và K51CHTTT đã

ủng hộ và khuyến khích tôi trong suốt quá trình học tập tại trường.

Cuối cùng, tôi muốn được gửi lời cảm ơn vô hạn tới gia đình và bạn bè, những người thân yêu luôn bên cạnh và động viên tôi trong suốt quá trình thực hiện khóa luận tốt

nghiệp.

Tôi xin chân thành cảm ơn!

Sinh viên

Lê Xuân Thành

Tóm tắt nội dung

Trong hệ thống các website điện tử, các trang tin tức chiếm một vai trò hết sức quan

trọng, giúp con người cập nhật những tin tức thời sự mới nhất thuận tiện mọi lúc mọi nơi. Theo Hiệp hội các nhà xuất bản trực tuyến (Online Publishers Association – OPA) thì phần lớn thời gian trên Internet con người dùng để đọc tin tức1. Như vậy, nhu cầu cập nhật tin tức của con người là rất lớn, và nếu người dùng chỉ phải vào một trang Web duy

nhất để cập nhật được tất cả các tin tức thì sẽ tiện dụng hơn rất nhiều so với việc phải truy

cập vào nhiều trang.

Khóa luận này tập trung vào việc nghiên cứu và xây dựng một hệ thống tổng hợp tin

tức, dựa trên bài toán trích xuất thông tin từ tài liệu Web và bài toán phân lớp văn bản. Khóa luận đưa ra mô hình gom tin tự động với tính mở rộng cao, trình bày các bước xây dựng một hệ thống tổng hợp tin tức. Khóa luận cũng đã tiến hành chạy các thực nghiệm

1

http://www.zing.vn/news/cong-nghe/phan-lon-thoi-gian-vao-mang-la-de-doc-tin-tuc/a65575.html

và đánh giá kết quả. Kết quả đánh giá cho thấy chất lượng gom tin và phân loại là nhanh và đáng tin cậy.

i

Mục lục

Tóm tắt nội dung .................................................................................................................i Mục lục ................................................................................................................................ii Bảng các ký hiệu viết tắt ...................................................................................................iv Danh sách các hình .............................................................................................................v Danh sách các bảng biểu ...................................................................................................vi Giới thiệu .............................................................................................................................1

Chương 1. Khái quát về các trang tin tức và các hệ thống tổng hợp tin tức của Việt ........................................................................................................................3 Nam

1.1. Khái quát chung về các báo điện tử ........................................................................3 1.2. Khái quát chung về các hệ thống tổng hợp tin tức..................................................3

Chương 2. Cơ sở lý thuyết xây dựng mô hình hệ thống tổng hợp và phân loại tin tự động ........................................................................................................................8

2.1. Xây dựng crawler ....................................................................................................8 2.1.1. Khái niệm crawler...........................................................................................8

2.1.2. Xây dựng crawler .........................................................................................10

2.2. Xây dựng bộ trích chọn thông tin..........................................................................11 2.2.1. Trích chọn thông tin trên tài liệu Web..........................................................11

2.2.2. Xây dựng bộ trích chọn tài liệu Web............................................................11

2.3. Xây dựng bộ phân lớp ...........................................................................................12 2.3.1. Khái niệm phân lớp văn bản.........................................................................12

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.

......................................................................................................................14 2.3.3. Phương pháp đánh giá hiệu suất phân lớp....................................................18 Chương 3. Xây dựng hệ thống tổng hợp và phân loại tin tự động ...........................21 3.1. Cơ sở thực tiễn.......................................................................................................21 3.2. Xây dựng mô hình hệ thống ..................................................................................24

3.2.1. Mô hình tổng quan........................................................................................25

3.2.2. Module chuẩn hóa dữ liệu huấn luyện/kiểm tra mô hình .............................29 3.2.3. Module phân lớp...........................................................................................30 3.2.4. Module sinh file huấn luyện .........................................................................31

3.3. Khả năng mở rộng của hệ thống............................................................................32

ii

Chương 4. Thực nghiệm và đánh giá kết quả.............................................................34 4.1. Môi trường phần cứng và phần mềm ....................................................................34

4.1.1. Môi trường phần cứng ..................................................................................34

4.1.2. Công cụ phần mềm .......................................................................................34 4.2. Cấu trúc Cơ sở dữ liệu...........................................................................................37

4.3. Đánh giá chất lượng tổng hợp tin..........................................................................39

4.4. Thực nghiệm và đánh giá hiệu suất phân loại tin tự động ....................................39 4.4.1. Xây dựng tập dữ liệu huấn luyện và kiểm tra mô hình ................................39

4.4.2. Thực nghiệm thứ nhất...................................................................................41

4.4.3. Thực nghiệm thứ hai.....................................................................................44 Kết luận .............................................................................................................................47 Tài liệu tham khảo............................................................................................................49

iii

Bảng các ký hiệu viết tắt

Ký hiệu Diễn giải

HTML HyperText Markup Language

URL Uniform Resource Locator

WWW World Wide Web

CSDL Cở sở dữ liệu

iv

Danh sách các hình

Hình 1. Minh họa lỗi tổng hợp tin trang Baomoi.com…………………………………….5

Hình 2. Minh họa lỗi mất ảnh trang tintuc.xalo.vn………………………………………..7

Hình 3. Sơ đồ cơ bản của một crawler đơn luồng…………………………………………9

Hình 4. Lược đồ chung xây dựng bộ phân lớp văn bản………………………………….13

Hình 5a. Mô tả phần nội dung cần lấy trên trang tin 1…………………………………...21

Hình 5b. Mô tả phần nội dung cần lấy trên trang tin 2…………………………………...22

Hình 6. Mô hình cây DOM của 2 detail-pages…………………………………………...22

Hình 7a. Các đặc trưng cho phép trích chọn thông tin bài báo 1………………………...23

Hình 7b. Các đặc trưng cho phép trích chọn thông tin bài báo2…………………………24

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…………………25

Hình 9. Đặc điểm giúp loại tin thuộc lớp chưa quan tâm……………………….........…..28

Hình 10. Module chuẩn hóa dữ liệu huấn luyện/kiểm tra mô hình………………………29

Hình 11. Module phân lớp………………………………………………………………..31

Hình 12. Module sinh file huấn luyện……………………………………………………32

v

Danh sách các bảng biểu

Bảng 1. Các nhóm tài liệu sau phân lớp………………………………………………….19

Bảng 2. Cấu hình phần cứng sử dụng trong thực nghiệm………………………………..34

Bảng 3. Các công cụ phần mềm sử dụng trong thực nghiệm…………………………….34

Bảng 4. Mô tả chức năng các lớp trong các gói………………………………………….36

Bảng 5. Chi tiết CSDL……………………………………………………………….......38

Bảng 6. Các lớp tài liệu sử dụng trong thực nghiệm…………………………………….40

Bảng 7. Thống kê số lượng tài liệu dùng cho việc học mô hình…………………………41

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……………...42

Bảng 9. Kết quả thực nghiệm 1…………………………………………………………..43

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…………….44

Bảng 11. Kết quả thực nghiệm 2…………………………………………………………45

vi

Giới thiệu

Trong gần hai mươi năm trở lại đây, cùng với sự phát triển bùng nổ của Internet mà

đặc biệt là World Wide Web (www) - hay còn gọi tắt là Web - mang lại cho con người rất

nhiều lợi ích. Đồng thời với đó cũng là sự bùng nổ về thông tin, giúp con người dễ dàng cập nhật tin tức mới nhất, nhưng hệ quả sau đó là sự tiêu tốn rất nhiều thời gian, khi

những thông tin cần đối với một người dùng thuộc một nội dung cụ thể lại nằm trên nhiều

trang Web khác nhau. Ví dụ đối với một nhà đầu tư chứng khoán, thông tin họ quan tâm là các tin tức mới nhất về thị trường chứng khoán, về kết quả giao dịch ở các sàn chứng

khoán, nhưng để có được điều này thường họ phải truy cập vào nhiều trang khác nhau để có đủ thông tin. Như vậy, nhu cầu đặt ra cần có một hệ thống tổng hợp tin tức nhanh nhất và được phân chia theo các mục, phân mục rõ ràng, giúp thuận tiện hơn cho nhu cầu

thông tin của người dùng. Điều này giúp người dùng thuận tiên hơn cho việc tìm, cập nhật các thông tin mà mình quan tâm một cách thuận tiện nhất, tiết kiệm thời gian nhất. Điều

này đặc biệt có ý nghĩa trong cuộc sống bận rộn hiện đại ngày nay.

Để giải quyết được bài toán về hệ thống tổng hợp tin tức cần phải giải quyết được hai bài toán khác là trích xuất thông tin từ tài liệu Web và phân lớp tự động các văn bản Web – là hai bài toán được quan tâm ở rất nhiều các hội nghị lớn về khai phá dữ liệu và

xử lý ngôn ngữ tự nhiên [6],[9],[10],[14]. Khóa luận xây dựng một tập luật cho phép tự

động gom và trích xuất thông tin từ các trang tin tức của Việt Nam, tin tức được lấy về sẽ được gán nhãn tự động nhờ vào thuật toán phân lớp văn bản entropy cực đại (maximum

entropy), và được ghi lại vào CSDL, phục vụ cho việc xuất bản tin.

Khóa luận gồm có 4 chương được mô tả sơ bộ dưới đây:

Chương 1: Khái quát về các trang tin tức và các hệ thống tổng hợp tin tức của Việt Nam. Giới thiệu về các trang báo điện tử (trang tin tức) và các hệ thống tổng hợp tin tức.

Đánh giá ưu và nhược điểm của các hệ thống đó.

Chương 2: Cơ sở lý thuyết xây dựng mô hình hệ thống tổng hợp và phân loại tin tự động. Giới thiệu về crawler, trích chọn thông tin từ tài liệu Web, phân lớp văn bản bằng phương pháp entropy cực đại. Đồng thời chương này cũng giới thiệu về phương pháp đánh giá hiệu suất của việc phân lớp văn bản thông độ hồi tưởng, độ chính xác và độ đo

F1.

1

Chương 3: Xây dựng hệ thống tổng hợp và phân loại tin tự động. Nêu ra các cơ sở lý thực tiễn có thể áp dụng cho việc trích chọn thông tin đối với tài liệu Web. Đưa ra mô

hình hệ thống, các module, cách thức tương tác giữa các module với nhau. Từ đó nêu lên

được tính mở rộng cao của hệ thống.

Chương 4: Thực nghiệm và đánh giá kết quả để đánh giá bài toán mô hình được xây dựng trong chương 3. Kết quả thực nghiệm cho thấy hiệu quả tốt của hệ thống tổng hợp và phân loại tin tự động của khóa luận.

Phần kết luận tóm lược nội dung chính của khóa luận và nêu lên định hướng của

khóa luận trong thời gian tới.

2

Chương 1. Khái quát về các trang tin tức và các hệ thống tổng hợp tin tức của Việt Nam

1.1. Khái quát chung về các báo điện tử

Hiện nay, các website báo điện tử của Việt Nam chiếm một vai trò không thể thiếu trong việc cung cấp tới bạn đọc các nội dung thông tin chính trị, xã hội, thể thao, giải trí...

mới nhất. Điều này được thể hiện qua việc hai trang tin tức lớn nhất của Việt Nam là vnexpress.net và dantri.com.vn liên tục nằm trong top 10 websites được truy cập nhiều nhất tại Việt Nam, theo xếp hạng của alexa.com.

Mặc dù vậy các báo điện tử của Việt Nam hiện nay, việc phân lớp (phân loại) tin tức thường được làm thủ công bởi người viết báo hoặc người biên tập. Do vậy nhu cầu đặt ra

là cần có một hệ thống phân lớp văn bản Tiếng Việt, cho phép gán nhãn cho các tài liệu

một cách tự động. Khóa luận xin trình bày một phương pháp cho phép phân lớp các văn bản hay tài liệu Web vào các lớp, dựa vào mô hình được trả về sau quá trình huấn luyện,

sẽ được trình bày kỹ hơn trong chương 2.

1.2. Khái quát chung về các hệ thống tổng hợp tin tức

Khoảng hơn một năm trở lại đây, các hệ thống tổng hợp tin tức của Việt Nam phát

triển rất mạnh. Sau đây khóa luận xin liệt kê ra một số hệ thống hiện đang được xem là thành công nhất, đều nằm trong top 40 websites được truy cập nhiều nhất Việt Nam theo

xếp hạng của alexa.com.

(cid:1) Baomoi.com: Có thể nói baomoi.com là trang tổng hợp tin nổi bật nhất hiện nay với

rất nhiều ưu điểm nổi trội so với các hệ thống tổng hợp báo khác:

• Ưu điểm:

- Baomoi.com được biết đến như là trang tổng hợp lấy tin từ nhiều nguồn nhất, từ

các báo điện tử lớn tin tức tổng hợp trên đủ lĩnh vực cho đến các báo chỉ chuyên về một

lĩnh vực (ví dụ: chỉ chuyên về ôtô-xe máy), hay đến cả các báo địa phương.

- Baomoi.com còn được biết đến như là trang tổng hợp tin có crawler tốt nhất, tin tức sau khi xuất hiện trên trang gốc, chỉ sau một vài phút đã có tin tổng hợp trên

baomoi.com.

3

- Hỗ trợ tìm kiếm tin tức

• Nhược điểm: baomoi.com cho phép người đọc xem một tin chi tiết theo 2 cách,

tuy nhiên cả 2 cách đều có những vấn đề không tốt:

- Cách thứ nhất là xem trang gốc - website chứa bài báo quan tâm thông qua trang của baomoi.com. Như vậy có nghĩa là báo mới đứng vai trò trung gian, nhận dữ liệu từ

webstie chứa bài báo và gửi nguyên vẹn đến cho người đọc. Cách làm này là cách phổ

biến với hầu hết các tin của baomoi.com, cách này không tối ưu cho người sử, trong khi

người sử dụng chỉ cần xem nội dung tin thì việc xem cả trang gốc như thế mang đến rất nhiều thông tin thừa như các ảnh, các flash quảng cáo, làm cho tốc độ xem tin bị chậm,

đặc biệt đối với những tin có clip thì tốc độ xem clip là rất chậm hoặc có thể dẫn đến hiện

tượng “đơ” trình duyệt.

- Cách thứ hai, tin được lấy về và lưu trong CSDL của baomoi.com, sau đó khi có

yêu cầu tin, thì tin sẽ được truy vấn để trả về kết quả ở trang chi tiết (detail-page), cách làm này ít phổ biến hơn cách thứ nhất. Cách làm này của baomoi.com xuất hiện các lỗi về

trích xuất tin, đối với những bài viết có nhiều ảnh, thì ảnh sẽ bị đẩy hết xuống dưới cùng,

sau phần kết thúc bài báo như trong Hình 1.

4

Hình 1. Minh họa lỗi tổng hợp tin trang Baomoi.com

5

(cid:1) tintuc.xalo.vn:

• Ưu điểm:

- Tốc độ lấy tin của tintuc.xalo.vn là rất nhanh, có thể nói về tốc độ thì

tintuc.xalo.vn không hề thua kém baomoi.com.

- Tintuc.xalo.vn cho phép người đọc có thể dễ dàng truy cập đến bài báo gốc

nếu cần bằng một liên kết đặt phía dưới tiêu đề ở detail-page.

• Nhược điểm:

- Ở page-list khá nhiều tin của tintuc.xalo.vn gặp hiện tượng mất ảnh minh họa

(cid:1)

tin247.com: Tốc độ lấy tin của tin247.com là khá chậm, tin tức sau khi xuất hiện ở trang gốc khoảng vài giờ mới được cập nhật trên trang tin của tin247.com. Như vậy

thì nói chung không đáp ứng được nhu cầu cập nhật tin tức nhanh chóng như 2 trang

tổng hợp trên.

6

Hình 2. Minh họa lỗi mất ảnh trang tintuc.xalo.vn

7

Chương 2. Cơ sở lý thuyết xây dựng mô hình hệ thống tổng hợp và phân loại tin tự động

Ở chương này, khóa luận xin trình bày các bước xây dựng một hệ thống tổng hợp tin

tức. Để có một hệ thống tổng hợp tin tức tốt hai điều phải quan tâm đầu tiên đó là xây

dựng một crawler tốt, và tiếp theo là xây dựng cây phân lớp đạt hiệu quả cao. Chính vì thế khóa luận đã tiến hành tham khảo, đánh giá và lựa chọn phương pháp phân lớp hiệu quả

để áp dụng cho hệ thống. Phương pháp entropy cực đại (Maximum Entropy) là phù hợp

hơn cả [3],[16]. Trong các phương pháp phân lớp văn bản nổi tiếng nhất được biết đến như Naïve Bayes, SVM và entropy cực đại, Naïve Bayes là phương pháp lâu đời nhất và

với độ chính xác không cao nhưng lại có tốc độ phân lớp là nhanh hơn entropy cực đại và

SVM, ngược lại thì SVM lại là thuật toán hiện đại và được biết đến là phương pháp phân lớp văn bản có độ chính xác là cao nhất hiện nay nhưng tốc độ phân lớp thì chậm hơn so

với Naïve Bayes và entropy cực đại. Đối với yếu tố phân lớp của một hệ thống tổng hợp tin tức thì cần phải cân bằng được cả hai yêu tố chất lượng phân lớp và tốc độ. Vậy khóa luận đi đến kết luận sẽ sử dụng phương pháp entropy cực đại cho việc phân lớp văn bản do entropy cực đại có thời gian thực thi không thua nhiều Naïve Bayes nhưng hiệu quả thì

cũng rất tốt, không thua 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.

8

start

Initialize frontier with seed URLs

[done] end

Check for termination [not done]

Pitch URL [no URL]

p o o L g n i l

from frontier [URL]

w a r C

Fetch page

Parse page

Add URLs

to frontier

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ó

9

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à:

http://vnexpress.net/GL/Home/

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.

10

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.

11

- 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.

12

Dữ liệu văn Biểu diễn ban đầu bản

Biểu diễn ban

Tri thức Làm giảm số chiều ngoài

hoặc lựa chọn thuộc tính

(1)

Học Biểu diễn cuối Các công cụ quy nạp phân lớp

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].

13

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

) ( p a b của

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

“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ữ

)

)

,

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

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 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

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

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:

f A B·

:

{0,1}

14

=

=

if a

a

' and

( ) cp b

true

(

)

a b ,

f

cp a ,

'

0

other

 1 =  

Và được mô tả dưới dạng:

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

=

T

{(

),..., (

)}

a b , 1 1

a b , N N

,

Cho rằng tồn tại một tập dữ liệu huấn luyện trong đó một tập

b… được gắn nhãn tương ứng trong tập hợp các lớp

b 1{ ,

}N

a… ,

hợp lớn các ngữ cảnh

a 1{ ,

}N

, 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.

(cid:1) 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

k

( ), f a b i

=

l

)

( p a b ,

một mô hình log-linear hay mô hình mũ:

i

1 ( ) Z b

i

= 1

k

( ), f a b i

l

( ) Z b

= ∑(cid:213)

i

a

= 1

i

( )

(1) (cid:213)

Z b là biểu thức chuẩn hóa để đảm bảo

p a b = ( |

) 1

trong đó k là số lượng các đặc trưng và

l tương ứng với một đặc điểm

i

if và có thể được

điều kiện . Mỗi tham số

a

)

,

( p a b là kết quả

l > 0). Khi đó xác suất )

,a b , tức là với các đặc điểm

if mà

hiểu là “trọng số” của đặc điểm tương ứng ( i được chuẩn hoá của các đặc trưng có ý nghĩa với cặp (

15

,

l… của phân phối xác suất *p là phân phối xác suất phù

l 1{ ,

}k

if a b = . Các trọng số ( , ) 1 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:

k

( , ) f a b i

=

=

l

Q

{ |

p p a b (

|

)

}

i

1 Z b ( )

= 1

i

L p (

)

p a b

p a b ( , ) log ( , )

= ∑

a b ,

*

=

p

(cid:213)

L q arg max ( ) q Q

)

|

˛

p a b là xác suất thực (

(

trong đó Q là tập hợp các mô hình của dạng log-linear,

)L p là log-likelihood có điều kiện của tập dữ liệu huấn luyện T (được

nghiệm trên tập T,

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.

(cid:1) 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

)

,

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

p a b . Trong các hình mẫu entropy cực đại có điều kiện được

trước một lớp a A˛ cho xác suất có điều kiện (

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

*

=

p

H p (

)

các đặc điểm:

arg max p P

H p (

)

p a b

p a b ( , ) log ( , )

= ∑

a b ,

˛

16

=

=

=

P

{ |

,

i

k {1... }}

p E f p i

E f ip

p a b f a b ( , )

( , )

= ∑

i

i

E f p

, a b

p b p a b f a b ( , ) ( , )

( )

= ∑

E f p i

i

a b ,

(

)H p kí hiệu cho entropy có điều kiện được tính trung bình trên tập huấn

Ở đây

( )p b , khác với xác suất mô hình

p iE f là kì vọng của mô hình p của

if , nó

nghiệm 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 ( ) p b .

( )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

)

sử dụng

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

if .

p của

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

*

=

=

p

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à:

L q arg max ( ) q Q

arg max p 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

*

=

p

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

L q arg max ( ) q Q

*

=

p

H p (

)

minh cho thấy rằng điều kiện là tương đương với điều kiện ˛

arg max p P

. Điều này rất quan trọng để thấy rằng dạng (1) không phải là đưa ra ˛

17

*

=

p

H p (

)

arg max p P

một cách không có căn cứ, lời giải cho entropy cực đại 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ố

=

T

{(

),..., (

)}

a b , 1 1

a b , N N

Cho tập huấn luyện .

k

( ), f a b i

=

l

)

( p a b

|

Phân phối mũ:

i

1 ( ) Z b

= 1

i

k

( ), f a b i

l

l l=

l

( ) Z b

(cid:213)

1{ ... }k

= ∑(cid:213)

i

a

= 1

i

l

l l=

trong đó là tập trọng số, là thừa số chuẩn hoá. Huấn

1{ ... }k

luyện mô hình entropy cực đại chính là ước lượng tập trọng số để 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

tập dữ liệu kiểm tra 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 testD mà kết quả testD , sử dụng mô hình cho từng trường hợp dữ liệu ở

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.

18

cTP ,

cTN ,

cFP ,

cFN như bảng dưới đây:

mô hình phân lớp vừa được xác định với các dữ liệu thuộc 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 testD nhận được các đại lượng

Bảng 1. Các nhóm tài liệu sau phân lớp

Giá trị thực tế

Lớp c

Thuộc lớp c Không thuộc lớp c

cTP

cTN

Thuộc lớp c Giá trị qua bộ

cFP

cFN

phân lớp Không thuộc lớp c

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.

cR và

cP được tính như sau:

=

=

Khi đó, với mỗi lớp c, giá trị các độ đo

R c

P c

TP c + TP TN

TP c + TP FP c

c

c

c

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

19

độ đo trung bình được sử dụng bao gồm trung bình mịn (microaveraging) và trung bình thô (macroaveaging).

M

R

R c

1 K = ∑ K = 1 c

Độ hồi tưởng trung bình thô (macroaveraging recall):

M

P

1 K = ∑ P c K = 1 c

và độ chính xác trung bình thô (macroaveaging precision):

K

Độ hồi tưởng trung bình mịn (microaveraging recall):

TP c

M

= 1

c

=

P

K

)

+ TP FP ( c

c

= 1

c

K

TP c

M

c

= 1

=

P

K

+ TP TN (

)

c

c

= 1

c

và độ chính xác trung bình mịn (microaveraging precision):

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].

20

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

21

Hình 5b. Mô tả phần nội dung cần lấy trên trang tin 2

HTML

Mặc dù detail-pages

của chúng khác nhau nhưng

BODY

BODY

chúng có cùng một câu DOM => có nghĩa là có

cùng một khuôn mẫu.

TABLE

TR

TR

TD

TD

Quảng cáo DIV

Hình 6. Mô hình cây DOM của 2 detail-pages Nội dung

bài báo

22

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

23

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.

24

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

25

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:

~http://vnexpress.net/GL/Home/~

~class="link-topnews"~class="folder-topnews fl"~class="other-folder fl"~

  • class="link-othernews"~

    ~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

    26

    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.

    27

    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:

    - http://vnexpress.net/GL/Ban-doc-viet/Tam-su/2010/05/3BA1C0B9/

    - http://vnexpress.net/GL/Ban-doc-viet/Tam-su/2010/05/3BA1C0BD/

    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.

    Hình 9. Đặc điểm giúp loại tin thuộc lớp chưa quan tâm

    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.

    28

    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

    29

    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”.

    1 http://www.xulyngonngu.com

    Đường đi của mô hình hệ thống

    30

    Hình 11. Module phân lớp

    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

    31

    - 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.

    Hình 12. Module sinh file huấn luyệ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

    32

    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 đó.

    33

    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

    Bảng 2. Cấu hình phần cứng sử dụng trong thực nghiệm

    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

    Bảng 3. Các công cụ phần mềm sử dụng trong thực nghiệm

    Giấy STT Tên phần mềm Nguồn phép

    1 Netbean 6.5 GPL http://netbeans.org/downloads/index.html

    34

    mysql 5.0.75- 2 GPL http://www.mysql.com/ 0ubuntu10.3

    3 OpenJDK 1.6.0_0 GPL http://openjdk.java.net/

    4 GPL http://www.mysql.com/downloads/connector/ mysql-connector- java-5.1.12-bin.jar

    5 maxent-2.5.2.jar GPL http://maxent.sourceforge.net/

    vn.hus.nlp.tokenizer- http://www.loria.fr/~lehong/tools/vnTokenizer. GPL 6 4.1.1.jar php

    GPL http://unicodeconvert.sourceforge.net 7 UnicodeConverter.jar v2.0

    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:

    (cid:1) 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.

    (cid:1) 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)

    (cid:1) 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:

    35

    Bảng 4. Mô tả chức năng các lớp trong các gó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

    Xóa các thẻ HTML để thu được bài báo ở J_RmTag J_Lib 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)

    Sinh mã md5 của một xâu và các tiện tích J_Utilities trên file

    CreateModel Sinh mô hình từ tập dữ liệu huấn luyện (sử dụng maxent)

    Predict J_NLP Kiểm tra mô hình, gán nhãn cho dữ liệu kiểm tra (sử dụng maxent)

    Sử dụng biểu thức chính quy để chuẩn hóa

    J_Tokenizer

    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ô

    36

    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:

    (cid:1) 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.

    (cid:1) 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ể.

    (cid:1) 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.

    37

    Bảng 5. Chi tiết CSDL

    Trường/ Bảng Mô tả Kiểu dữ liệu Khóa

    Date là ngày theo kiểu int được viết dưới định date_type int (p) dạng YYYYMMDD viết liền type, để chia ra tin tức theo 10 phân lớp trong ngày.

    Số bài đến thời điểm hiện tại trong ngày ứng nums int với mỗi một mục tin date_type. t_store01

    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ã lu5 text

    MD5 cho phép truy vấn tin theo u5 của

    t_store02.

    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) u5 t_store02 char(32) (p)

    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 đượ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 đó vis char(1) đượ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ị.

    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.

    38

    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

    infors text 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_#”.

    Chứa toàn bộ phần nội dung thông tin bài báo, view mediumtext 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:

    (cid:1) 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.

    (cid:1) 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.

    39

    Bảng 6. Các lớp tài liệu sử dụng trong thực nghiệm

    STT Tên phân lớp VnExpress Mô tả

    XAHOI Xã hội Giáo dục, lối sống, du lịch,… 1

    2 THEGIOI Thế giới Tình hình thế giới, chủ yếu là tình hình chính trị.

    Kinh doanh, tình hình kinh tế, thị 3 KINHDOANH Kinh doanh trường chứng khoán,…

    Âm nhạc, thời trang, điện ảnh, 4 VANHOA Văn hoá nghệ sĩ, mỹ thuật,…

    Tình hình thế giới, chủ yếu là tình 5 THETHAO Thế giới hình chính trị.

    Vụ án, vụ việc, các văn bản luật 6 PHAPLUAT Pháp 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,…

    Khoa học nói chung, không liên 8 KHOAHOC Khoa học 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:

    40

    Bảng 7. Thống kê số lượng tài liệu dùng cho việc học mô hình

    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

    1000 10 XE

    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.

    41

    Đầ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

    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

    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

    100 10 XE

    Tổng số 1000

    Kết quả thực nghiệm

    42

    Bảng 9. Kết quả thực nghiệm 1

    Nhãn F1 (%) Độ chính xác (%) Độ hồi tưởng (%)

    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

    43

    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.

    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

    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

    50 10 XE

    Tổng số 500

    44

    Đầ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

    Bảng 11. Kết quả thực nghiệm 2

    Nhãn F1 (%) Độ chính xác (%) Độ hồi tưởng (%)

    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

    45

    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à

    1

    http://tuoitre.vn/Chinh-tri-Xa-hoi/380660/Pha an buon-ma-tuy-bien-gioi-3-cong-an-bi-thuong.html 2

    http://vnexpress.net/GL/Phap-luat/2010/05/3BA1C4A4/

    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.

    46

    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:

    47

    - 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.

    48

    Tài liệu tham khảo

    [1]. Nguyen Viet Cuong, Nguyen Thi Thuy Linh, Phan Xuan Hieu and Ha Quang Thuy for Vietnamese Web Content (2005). “A Maximum Entropy Model

    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, http://www.cs.uic.edu/~liub/WebMiningBook.html ,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.

    49

    [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.

    50