1. Trang chủ
  2. » Luận Văn - Báo Cáo

XÂY DỰNG ỨNG DỤNG THU THẬP các bài VIẾT từ các TRANG báo điện tử CHÍNH THỐNG

72 96 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 72
Dung lượng 7,52 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

hoặc phục vụ cho công tác điều tra thị trường của các công ty, doanh nghiệp,… Xuất phát từ nhu cầu thực tế, đề tài đã tìm hiểu và nghiên cứu đề xuất giải pháp cho việc thu thập và tổ chứ

Trang 1

ĐẠI HỌC QUỐC GIA TP HCM TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN



LÊ PHƯỚC VINH

XÂY DỰNG ỨNG DỤNG THU THẬP CÁC BÀI VIẾT

TỪ CÁC TRANG BÁO ĐIỆN TỬ CHÍNH THỐNG

KHÓA LUẬN THẠC SĨ NGÀNH KHOA HỌC MÁY TÍNH

MÃ SỐ: 60.48.01.01

NGƯỜI HƯỚNG DẪN KHOA HỌC:

PGS, TS ĐỖ VĂN NHƠN

TP HỒ CHÍ MINH - NĂM 2017

Trang 2

MỤC LỤC

LỜI CAM ĐOAN 4

LỜI CẢM ƠN 5

DANH MỤC CÁC TỪ VIẾT TẮT 6

DANH MỤC BẢNG 7

DANH MỤC HÌNH 8

MỞ ĐẦU 9

CHƯƠNG 1 TỔNG QUAN VỀ ĐỀ TÀI 11

1.1 Thực trạng và nhu cầu xây dựng ứng dụng hỗ trợ thu thập, phục vụ tìm kiếm thông tin trên internet 11

1.2 Vấn đề thu thập tin tức tự động 12

1.3 Định nghĩa một trang báo điện tử chính thống 13

1.4 Mục tiêu và giới hạn của đề tài 15

CHƯƠNG 2 MÔ HÌNH CỦA TRANG BÁO ĐIỆN TỬ VÀ NGHIÊN CỨU CÁC KỸ THUẬT THU THẬP TỰ ĐỘNG TẤT CẢ CÁC BÀI VIẾT TỪ WEBSITE 18

2.1 Mô hình một trang báo điện tử 18

2.1.1 Một số khái niệm cơ sở 18

2.1.2 Mô tả cấu trúc của một trang báo điện tử 20

2.1.2.1 Tập các thuộc tính của trang báo điện tử Attr 20

2.1.2.2 Trang chủ H 21

2.1.2.3 Tập các webpage lĩnh vực F 21

2.1.2.4 Tập các bài viết đã thu thập được Article 21

2.1.2.5 Tập các kiểu cấu trúc của các trang lĩnh vực F Str 21

2.1.2.6 Tập các kiểu cấu trúc của các trang bài viết A Str 22

2.1.2.7 Tập các quan hệ nội tại Rels 22

2.2 Các kỹ thuật thu thập tự động tất cả các bài viết từ website 22

2.2.1 Đối với các website bất kỳ chưa biết trước cấu trúc 23

2.2.2 Đối với các website đã biết cấu trúc 25

2.2.3 Các kỹ thuật thu thập văn bản chứa nội dung chính từ các link HTML 27

Trang 3

2.2.3.1 Tiếp cận theo hướng loại bỏ các tag HTML 28

2.2.3.2 Tiếp cận theo hướng rút trích các Text node 29

2.2.3.3 Tiếp cận theo hướng so sánh khung mẫu 30

2.2.3.4 Tiếp cận theo hướng xử lý ngôn ngữ tự nhiên 31

2.2.3.5 Tiếp cận theo hướng phân tích mã HTML kết hợp xử lý ngôn ngữ tự nhiên 32

2.2.3.6 Tiếp cận theo hướng phân đoạn web 34

2.2.3.7 Thuật toán BTE - Body Text Extraction 36

CHƯƠNG 3 THIẾT KẾ MÔ HÌNH TỔ CHỨC LƯU TRỮ VÀ THUẬT GIẢI THU THẬP CÁC BÀI VIẾT TỪ CÁC TRANG BÁO ĐIỆN TỬ 39

3.1 Mô hình tổ chức lưu trữ các trang báo và các bài viết thu thập về 39

3.1.1 Phân tích mô hình dữ liệu 39

3.1.2 Mô hình quan hệ giữa các bảng dữ liệu 40

3.1.3 Các bảng dữ liệu: gồm 3 bảng dữ liệu 40

3.2 Các vấn đề và thuật giải 42

3.2.1 Một số vấn đề khi thực hiện thu thập các thông tin của các bài viết từ các trang báo và những giải pháp giải quyết các vấn đề trên 42

3.2.2 Quá trình thu thập thông tin của các bài viết từ các trang báo điện tử 42

3.2.3 Lưu trữ thông tin của các trang báo điện tử ta cần thu thập 43

3.2.4 Thu thập và lưu trữ các thông tin của các trang lĩnh vực thuộc các trang báo điện tử 43

3.2.5 Thu thập lần lượt các thông tin của các bài viết được đăng tải trên từng trang lĩnh vực của các trang báo điện tử 44

CHƯƠNG 4 CÀI ĐẶT THỬ NGHIỆM 47

4.1 Phân tích và thiết kế hệ thống 47

4.1.1 Phân tích các chức năng của hệ thống 47

4.1.2 Thiết kế hệ thống 49

4.1.2.1 Cấu trúc tổng quát của hệ thống được thiết kế như sau: 49

4.1.2.2 Một số module chính của chương trình 50

4.1.2.3 Thuật giải một số module chính của chương trình 50

Trang 4

4.2 Cài đặt chương trình 53

4.2.1 Các công cụ, hệ quản trị cơ sở dữ liệu được sử dụng trong chương trình demo 53

4.2.2 Giao diện và hướng dẫn sử dụng chương trình demo 53

4.3 Chạy thử và đánh giá kết quả 57

4.3.1 Đánh giá chức năng thu thập các bài viết 57

4.3.2 Kết quả chạy thử chức năng tìm kiếm các bài viết 59

4.3.3 Kết quả chạy thử chức năng thống kê, lọc các bài viết 61

CHƯƠNG 5 KẾT LUẬN 67

5.1 Kết quả của khóa luận 67

5.1.1 Đóng góp về mặt lý thuyết 67

5.1.2 Đóng góp về mặt ứng dụng 67

5.1.3 Đánh giá chung 68

5.2 Hạn chế và hướng phát triển 69

TÀI LIỆU THAM KHẢO 70

Trang 5

LỜI CAM ĐOAN

Tôi xin cam đoan đây là công trình nghiên cứu của bản thân Các số liệu, kết quả trình bày trong khóa luận là trung thực Những tư liệu được sử dụng trong khóa luận có nguồn gốc và trích dẫn rõ ràng, đầy đủ

TP Hồ Chí Minh, ngày 08 tháng 02 năm 2017

Lê Phước Vinh

Trang 6

LỜI CẢM ƠN

Trước tiên, tôi xin chân thành cảm ơn quý thầy, cô Trường Đại học Công

nghệ Thông tin - ĐHQG Thành phố Hồ Chí Minh đã tận tình dạy bảo và cung cấp

nhiều kiến thức bổ ích trong thời gian tôi học tập tại Trường, cũng như tạo điều kiện

cho em thực hiện đề tài này Kính chúc quý thầy, cô luôn dồi dào sức khoẻ và thành

công trong mọi lĩnh vực

Đặc biệt, tôi xin bày tỏ lòng biết ơn chân thành và sâu sắc đến Thầy PGS TS Đỗ Văn Nhơn, người Thầy đã tận tâm, nhiệt tình hướng dẫn và chỉ bảo

trong suốt quá trình thực hiện đề tài này Sự hướng dẫn nhiệt tình của Thầy đã giúp

em hoàn thành tốt đề tài này Em xin kính chúc Thầy và gia đình luôn mạnh khỏe,

hạnh phúc và thành công

Tôi xin gửi tất cả lời cảm ơn và sự kính trọng đến ông bà, cha mẹ và những

người thân đã nuôi dạy, luôn bên cạnh động viên và ủng hộ con trên con đường học

tập mà con đã lựa chọn, những người đã cho con niềm tin và nghị lực vượt qua mọi

khó khăn trong quá trình học tập và làm việc

Xin cảm ơn tất cả bạn bè, đồng nghiệp đã động viên, giúp đỡ và hỗ trợ tôi rất

nhiều trong quá trình thực hiện đề tài, cũng như đóng góp cho tôi nhiều ý kiến quý

báu Từ đó, giúp tôi hoàn thiện cho đề tài này

Một lần nữa xin chân thành cảm ơn!

TP Hồ Chí Minh, ngày 08 tháng 02 năm 2017

Lê Phước Vinh

Trang 7

DANH MỤC CÁC TỪ VIẾT TẮT

STT Từ viết tắt Ý nghĩa

2 RSS Really Simple Syndication

3 SQL Structured Query Language

4 URL Uniform Resource Locator

Trang 8

DANH MỤC BẢNG

Bảng 2.1 Bảng mô tả cấu trúc của một trang RSS 26

Bảng 3.1 Bảng mô tả các trường dữ liệu lưu trữ thông tin trang báo 40

Bảng 3.2 Bảng mô tả các trường dữ liệu lưu trữ thông tin các lĩnh vực thuộc

trang báo 40

Bảng 3.3 Bảng mô tả các trường dữ liệu lưu trữ thông tin các bài viết 41

Bảng 4.1 Bảng mô tả các module chức năng chính của chương trình 50

Bảng 4.2 Bảng thống kê kết quả thu thập các link URL từ các trang báo 58

Bảng 4.3 Bảng thống kê kết quả thu thập các bài viết từ các link URL định kỳ

theo ngày 58

Bảng 4.4 Bảng thống kê kết quả chạy thử chức năng tìm kiếm với từ khóa

“tuyển sinh” 59

Bảng 4.5 Bảng thống kê kết quả chạy thử chức năng tìm kiếm với từ khóa

“iphone 7” 60

Bảng 4.6 Bảng thống kê kết quả chạy thử chức năng thống kê theo lĩnh vực thuộc trang báo Tuổi trẻ 61

Bảng 4.7 Bảng thống kê kết quả chạy thử chức năng thống kê theo lĩnh vực thuộc trang báo VN Express 62

Bảng 4.8 Bảng thống kê kết quả chạy thử chức năng thống kê theo lĩnh vực thuộc trang báo Việt Nam Net 63

Bảng 4.9 Bảng thống kê kết quả chạy thử chức năng lọc các bài viết theo lĩnh vực thuộc trang báo 65

Trang 9

DANH MỤC HÌNH

Hình 2.1 Quy trình xử lý của Crawler 24

Hình 2.2 Kiến trúc tổng quát của một RSS 26

Hình 2.3 Tách nội dung web bằng cách loại bỏ các tag HTML 28

Hình 2.4 Hệ thống bóc tách nội dung của VietSpider 29

Hình 2.5 Mô hình bóc tách nội dung chính bằng so sánh khung mẫu 30

Hình 2.6 Mô tả bóc tách nội dung chính bằng kỹ thuật xử lý ngôn ngữ tự nhiên 32

Hình 2.7 Mô tả node chứa nội dung chính trên cây văn bản 33

Hình 2.8 Mô hình thuật toán VIPS, phân đoạn web dựa trên cấu trúc cây DOM 34

Hình 2.9 Mô tả cách phân đoạn các khối trong giải thuật VIPS 36

Hình 3.1 Mô hình quan hệ của cơ sở dữ liệu thu thập bài viết 38

Hình 4.1 Cấu trúc tổng quát của mô hình hệ thống 49

Hình 4.2 Giao diện form thu thập tin tức 54

Hình 4.3 Giao diện form tìm kiếm các bài viết 55

Hình 4.4 Giao diện form thống kê, lọc các bài viết 56

Hình 4.5 Giao diện form quản lý cơ sở dữ liệu các bài viết 57

Trang 10

MỞ ĐẦU

Vào những năm 1990, World Wide Web ra đời đã nhanh chóng giới thiệu đến thế giới một cái nhìn mới lạ về một cổng thông tin điện tử, nơi mọi người có thể xuất bản mọi thứ dưới dạng điện tử và tìm kiếm những thông tin cần thiết Tuy nhiên, internet phát triển như vũ bảo với số lượng khổng lồ các dữ liệu kiến người dùng gặp khó khăn trong việc truy xuất, tìm kiếm những thông tin cần thiết Vì vậy, các hệ thống tìm kiếm thông tin trên internet ra đời hay còn gọi là các máy tìm kiếm Nó đem lại những tiện lợi cho việc tìm kiếm thông tin trên internet Thế nhưng, các thông tin rất đa dạng, phong phú và liên quan đến nhiều đối tượng khác nhau Điều đó tạo nên sự nhập nhằng cho người dùng khi muốn tìm những thông tin hay tài liệu cần thiết Vậy nhu cầu thu thập các thông tin, dữ liệu từ internet của người dùng là vô cùng lớn

Ở Việt Nam, với sự bùng nổ của thông tin: các trang mạng xã hội, các trang báo điện tử, các trang thông tin, … ngày càng phát triển Lượng thông tin trên internet được cập nhật liên tục, dữ liệu rất lớn và nguồn gốc phức tạp Các nhà chính trị, hay những Lãnh đạo các cơ quan, doanh nghiệp có nhu cầu nắm bắt các thông tin liên quan đến các lĩnh vực mà mình đang quản lý, hay các tin tức về chính trị - xã hội một cách nhanh chống, chính xác, liên tục từ các trang báo chính thống của Việt Nam Vì thế, cần thiết phải có một công cụ thật sự hiệu quả để thu thập các tin tức chính thống, sắp xếp, tổ chức, lưu trữ một cách hiệu quả nhằm phục vụ cho công tác tra cứu, điều tra, thống kê các số liệu, thông tin, … của các cấp Lãnh đạo

để có sự điều chỉnh trong quá trình chỉ đạo các nội dung mang tính chiến lượt,… hoặc phục vụ cho công tác điều tra thị trường của các công ty, doanh nghiệp,…

Xuất phát từ nhu cầu thực tế, đề tài đã tìm hiểu và nghiên cứu đề xuất giải pháp cho việc thu thập và tổ chức lưu trữ thông tin, nội dung các bài viết trên các trang báo điện tử Bước đầu cho thấy giải pháp đã đề xuất là khả quan và có khả năng ứng dụng tốt

Khóa luận có kết cấu gồm 5 chương:

Chương 1 Tổng quan về đề tài Nội dung chương này thực hiện khảo sát tìm hiểu thực trạng hiện nay của các tờ báo điện tử chính thống và nhu cầu cần thiết thu

Trang 11

thập các bài viết từ các trang báo điện tử chính thống để hỗ trợ cho việc tìm kiếm thông tin trên internet cũng như trình bày các nghiên cứu có liên quan ở trong nước

và quốc tế Cuối cùng trình bày mục tiêu, giới hạn của đề tài

Chương 2 Mô hình của trang báo điện tử và nghiên cứu các kỹ thuật thu thập tự động tất cả thông tin của các bài viết từ website Nội dung chương này đưa ra mô hình một trang báo điện tử Từ đó, thực hiện nghiên cứu và phân tích một số kỹ thuật, phương pháp thực hiện thu thập tự động các thông tin của các bài viết từ website Đồng thời, thực hiện phân tích các ưu điểm và hạn chế của từng

kỹ thuật trên Để trên cơ sở đó, đưa ra một kỹ thuật tối ưu để thực hiện thu thập các thông tin của các bài viết từ các trang báo điện tử

Chương 3 Thiết kế mô hình tổ chức lưu trữ các bài viết và thiết kế thuật giải thu thập các bài viết từ các trang báo điện tử Nội dung chương này thực hiện thiết

kế mô hình tổ chức tri thức, tổ chức lưu trữ dữ liệu, thiết kế các mô hình, thuật giải thực hiện việc thu thập các bài viết từ các trang báo điện tử Đồng thời, thực hiện tổ chức lưu trữ dữ liệu phục vụ tốt nhất cho công tác quản lý dữ liệu, tìm kiếm, thống

kê, trích lọc, … các dữ liệu là các bài viết đã thu thập được

Chương 4 Cài đặt thử nghiệm Nội dung chương giới thiệu mô tả, thiết kế hệ thống, thuật giải, giao diện của chương trình demo thực hiện việc thu thập các bài viết từ các trang báo điện tử chính thống tiếng Việt, cụ thể chương trình chạy demo thu thập các bài viết từ các trang báo như: tuoitre.vn, vnexpress.net, vietnamnet.vn Chương trình sử dụng cơ sở dữ liệu SQL server 2008 và Visual studio 2013 và thư viện phân tích mã HTML HtmlAgilityPack Đồng thời, chương trình thực hiện thiết

kế một số chức tìm kiếm và thống kê các bài viết đã thu thập về Cuối cùng, thống

kê và đánh giá kết quả chạy demo của chương trình

Chương 5 Kết luận Nội dung chương tổng kết những kết quả đạt được, tóm tắt lại các vấn đề đã đặt ra trong khóa luận và cách giải quyết, những đóng góp mới

và những đề xuất về một số hướng phát triển của đề tài trong tương lai

Trang 12

CHƯƠNG 1 TỔNG QUAN VỀ ĐỀ TÀI

Nội dung chương này thực hiện khảo sát tìm hiểu thực trạng hiện nay của các

tờ báo điện tử chính thống và nhu cầu cần thiết thu thập các bài viết từ các trang báo điện tử chính thống để hỗ trợ cho việc tìm kiếm thông tin trên internet cũng như trình bày các nghiên cứu có liên quan ở trong nước và quốc tế Cuối cùng trình bày mục tiêu, giới hạn của đề tài

1.1 Thực trạng và nhu cầu xây dựng ứng dụng hỗ trợ thu thập, phục vụ tìm kiếm thông tin trên internet

Trước đây, người đọc báo thường nắm bắt thông tin qua những tờ báo in (báo giấy) Tuy nhiên, từ khi internet ra đời đã xuất hiện nhiều loại hình báo chí mới, trong đó có báo điện tử Sự phát triển như vũ bảo của các tờ báo điện tử với các phương thức đưa tin, truyền tin mới, nhanh chóng đã thu hút một lượng lớn người đọc Với những ưu điểm về việc cập nhật tin tức nhanh chóng, dễ dàng, thôn tin mang tính thời sự cao, đa chiều, báo điện tử đáp ứng tốt hơn nhu cầu của người đọc

Với những lợi thế trên của báo điện tử, hàng loạt các trang báo điện tử ở Việt Nam đã ra đời Chính sự phát triển rất nhanh của các trang báo điện tử đã đem đến cho người đọc kho tin tức khổng lồ, được cập nhật liên tục Với lượng thông tin khổng lồ như thế, các cơ quan chức năng, các nhà lãnh đạo, quản lý gặp không ít khó khăn trong việc nắm bắt thông tin, kiểm tra tính đúng đắn của thông tin trên các trang báo Còn đối với người đọc, họ thường đọc những thông tin trên một số tờ báo điện tử phổ biến và có thể bỏ qua rất nhiều thông tin mới ở những trang báo chưa biết đến hoặc ít quan tâm Hoặc khi các cá nhân hoặc tổ chức nào đó cần tổng hợp tin từ theo lĩnh vực cụ thể, thống kê định kỳ các bài viết liên quan tới một vấn đề, hoặc sự kiện mà học đang quan tâm, họ thường mất rất nhiều công sức và thời gian bởi nó chủ yếu được làm thủ công bởi con người nhưng có thể mang lại kết quả không như mong đợi

Trước những vấn đề trên, nhu cầu cần thu thập các tin tức chính thống, sắp xếp, tổ chức, lưu trữ một cách hiệu quả nhằm phục vụ cho công tác tra cứu, điều tra, thống kê các số liệu, thông tin,… của các cơ quan, tổ chức hay những nhà Lãnh đạo,

Trang 13

quản lý để có sự điều chỉnh trong quá trình chỉ đạo thực hiện các nội dung mang tính chiến lượt,… hoặc phục vụ cho công tác điều tra thị trường của các công ty, doanh nghiệp,…hay đơn giản là nắm bắt thông tin thời sự của người đọc, … Những nhu cầu đó là rất lớn Chính vì thế sự cần thiết phải có một ứng dụng để giải quyết tốt vấn đề trên

1.2 Vấn đề thu thập tin tức tự động

Trên thế giới, có rất nhiều website tổng hợp tin tức khá nổi tiếng như:

Google News, News 360, Fark, Pulse, Feedly, … Google News là một website thu

thập và tìm kếm tin tức phổ biến hiện nay, bằng việc nhóm các thông tin tương tự lại với nhau và hiển thị chúng theo sở thích của mỗi người đọc Theo thói quen, khi đọc tin tức, người đọc thường chọn một ấn phẩm và sau đó tìm các tiêu đề mà người đọc quan tâm Với Google News, người đọc có thể đọc các bài báo theo một cách khác, với các tùy chọn cá nhân và đa dạng hơn để lựa chọn Trên Google News, người dùng sẽ thấy các liên kết đến nhiều trang báo về mọi lĩnh vực, việc làm đầu

tiên là quyết định chủ đề quan tâm và sau đó chọn chủ đề muốn đọc News 360 sẵn

có trên ứng dụng web hay các thiết bị di động, là một trong những ứng dụng đầu tiên khám phá tin tức trên các mạng xã hội như: Facebook, Twitter,… tìm hiểu nhiều hơn về người dùng và những chủ đề mà họ quan tâm Từ đó, phân phối thông tin đến người dùng theo sở thích Nó phân tích hành vi và hoạt động của người dùng trên mạng xã hội, sử dụng phân tích ngữ nghĩa và xử lý ngôn ngữ tự nhiên để tạo ra

một biểu đồ, từ đó phân phối những nội dung liên quan Fark, Pulse, Feedly cũng là

những ứng dụng tổng hợp tin được khá nhiều người dùng trên thế giới ưa thích Chúng đảm bảo những tin tức tốt nhất trong ngày sẽ đến được với người dùng Người dùng vẫn có thể thêm vào những chủ đề và các website ưa thích, kiểm soát được nguồn tin và những chủ đề muốn đọc

Ở Việt Nam, hai hệ thống tổng hợp tin khá nổi tiếng đó là Báo Mới và

HueCIT-NewsFinder Báo Mới là một website tổng hợp thông tin tiếng Việt tự

động Hằng ngày các tin tức từ các trang báo điện tử được tự động tổng hợp, phân loại nội dung vào các chuyên mục thích hợp, phát hiện các bài viết đăng lại, nhóm các bài viết liên quan về cùng một chủ đề, tự động bóc tách các từ khóa giúp người đọc dễ dàng tìm kiếm các thông tin liên quan, đưa ra những gợi ý những bài viết mà

Trang 14

người đọc có thể quan tâm HueCIT-NewsFinder là phần mềm tìm kiếm tin tức tự

động trên internet Phần mềm có các khả năng sau: tải tin thủ công hoặc tự động theo lịch lập sẵn, xem tin đã tải về, lưu trữ tin định kỳ hoặc theo nhu cầu giúp giảm thiểu khối lượng xử lý, chuyển tin sang các trang thông tin điện tử khác, tìm kiếm tin theo từ khóa và một số tiêu chí liên quan

Để xây dựng những hệ thống tổng hợp tin tức, việc cần làm trước tiên là thu thập được những trang tin từ nhiều nguồn thu thập khác nhau Có 2 phương pháp

thu thập phổ biến là sử dụng Crawler và RSS Crawler là kỹ thuật dùng để tải và

lưu trữ các website Crawler duyệt toàn bộ World Wide Web một cách có hệ thống nhằm mục đích thu thập dữ liệu, tri thức hoặc với mục đích đánh dấu chỉ mục website Một crawler bắt đầu bằng việc tìm ra những URL (Uniform Resource Locator) từ một địa chỉ website cho trước và đặt một tập hợp những đường dẫn URL đã tìm được trong hàng đợi, sau đó lấy từng đường dẫn URL theo thứ tự ưu tiên, tải từng website con với đường dẫn URL tương ứng, rút trích bất kỳ URL trong website này, và cuối cùng đặt những URL mới vào trong hàng đợi Toàn bộ quá trình này sẽ được tiếp tục Cuối cùng những website thu thập được sử dụng cho

việc tổng hợp hay tìm kiếm sau này RSS (Really Simple Syndication) là một tệp tin

XML được các website sử dụng cung cấp thông tin cho các bài viết trong website

đó trên internet Công nghệ RSS cho phép người dùng Internet có thể đặt mua thông tin từ các website có cung cấp RSS (RSS feeds); chúng thường là các website có nội dung thay đổi và được cập nhật thường xuyên Những chương trình nổi tiếng như RSS Reader hay RSS Aggregator vừa quản lý thông tin đăng ký, vừa cho tải các bài viết Tuy nhiên, không phải tất cả những bài viết nhận được là phù hợp với người dùng, vì vậy cần có những cơ chế thích hợp để người dùng có thể nhận được những thông tin quan tâm

1.3 Định nghĩa một trang báo điện tử chính thống

Với sự phát triển như vũ bảo của công nghệ thông tin như hiện nay, có hàng trăm các trang báo điện tử ra đời Chúng ta đang chìm ngập trong thế giới thông tin Chính điều đó, khiến người dùng khó khăn trong việc kiểm tra tính đúng đắn của các thông tin trên các trang báo Vì thế, khai thác thông tin từ các trang báo điện tử

Trang 15

chính thống là điều rất cần thiết Vậy trang báo nào được xem là chính thống tại Việt Nam?

Trang báo điện tử chính thống Việt Nam là trang báo được cấp phép bởi một

cơ quan chức năng của quốc gia Việt Nam Giấy phép có thể quy định cả những chủ

đề, nội dung được phép biên tập Đồng thời, trang báo thực hiện đưa các tin xác thực do phóng viên điều tra thu thập được

Ở Việt Nam có các trang báo chính thống thông dụng như:

Giáo dục Việt

Nam

Hiệp hội các Trường đại học, cao đẳng Việt Nam

Đài tiếng nói

Việt Nam Đài tiếng nói Việt Nam

Trang 16

Tên Cơ quan chủ quản Ghi chú

Báo Công An

Nhân dân Bộ Công an Việt Nam

Đại Đoàn Kết Mặt trận Tổ Quốc Việt Nam

Hà Nội mới Thành ủy Đảng cộng sản Việt

Nam Thành phố Hà Nội Anh hùng Lao động

Sài Gòn Giải

Phóng

Đảng bộ Đảng cộng sản Việt Nam Thành phố Hồ Chí Minh

Giấy phép hoạt động Báo Điện tử trên Internet số 943/GP-BTTTT do

Bộ Thông tin và Truyền thông cấp ngày 8-7-2009

Lao động Tổng Liên đoàn Lao động Việt

Nhân dân Đảng cộng sản Việt Nam

Tuổi Trẻ Đoàn thanh niên cộng sản Hồ

Chí Minh Báo Ảnh Việt

Thanh Niên Hội liên liệp Thanh niên Việt

Nam Báo Thông tấn

xã Việt Nam Thông tấn xã Việt Nam

Báo Phụ nữ

Việt Nam

Hội Liên hiệp Phụ nữ Việt Nam

1.4 Mục tiêu và giới hạn của đề tài

Đề tài tập trung nghiên cứu các kỹ thuật, thuật toán thu thập các bài viết từ các trang báo điện tử tiếng Việt, … Từ đó, phân tích ưu điểm, hạn chế của các kỹ

Trang 17

thuật, các thuật toán đã nghiên cứu đề xuất giải pháp tối ưu để xây dựng module thu thập các bài viết một cách tự động từ các website: tuoitre.vn, vnexpress.net, vietnamnet.vn và tổ chức lưu trữ các bài viết vừa thu thập vào cơ sở dữ liệu Đồng thời, thiết kế một số chức năng khai thác cơ sở dữ liệu vừa thu thập được như: ứng dụng cho việc tìm kiếm thông tin, thống kê các bài viết Đề tài tập trung nghiên cứu

và giải quyết các vấn đề sau:

- Tìm hiểu các kỹ thuật thực hiện việc thu thập các bài viết tự động

- Nghiên cứu đề xuất mô hình lưu trữ các bài viết phục vụ tốt cho công tác tra cứu

- Thiết kế các chức năng thống kê bài viết, tìm kiếm các bài viết theo từ khóa, theo trang báo, theo từng lĩnh vực, …

Trên cơ sở đó, đề tài sẽ xây dựng hệ hỗ trợ thu thập bài viết từ các trang báo điện tử và thiết kế mô hình tổ chức lưu trữ các bài viết trên Hệ thống đáp ứng các chức năng chính sau:

- Hỗ trợ thu thập và quản lý bài viết: cho phép thu thập bài viết từ các trang báo điện tử và quản lý các bài viết đã thu thập về Thu thập tất cả các bài viết, thực hiện thu thập định kỳ các bài viết mới từ các trang báo cho trước

- Điểm tin: liệt kê và thu thập các tin tức mới nhất từ các trang báo điện tử có trong hệ thống

- Trong thế giới internet, có rất nhiều loại website tin tức như: báo điện tử newspaper), cổng thông tin (Portal), sàn giao dịch (Marketplace), cửa hàng và siêu thị trực tuyến (E-store), mạng xã hội (Social Network), Web Blog,… Trong phạm

(E-vi của khóa luận này, đề tài chỉ tập trung vào (E-việc thu thập các bài (E-viết trên các trang báo điện tử chính thống (E-newspaper) như: báo “Dân Trí”, báo “VN EXPRESS”, báo “Việt Nam NET”

- Khối lượng thông tin của mỗi trang báo là rất lớn, số lượng bài viết của mỗi trang báo điện tử có thể lên đến vài nghìn hoặc thậm chí là vài chục nghìn bài Vậy nên, việc có thể thu thập tất cả các bài viết của mỗi trang báo mất rất nhiều thời gian, công sức Hơn nữa, hầu hết các bài viết thật sự hữu ích là những bài viết mới

và bài viết trên các trang được cập nhật một cách liên tục Vì thế, trong phạm vi đề tài chỉ thực hiện thu thập những bài viết mới nhất được hiển thị trực tiếp trên các

Trang 18

trang lĩnh vực con của trang báo điện tử chính thống Tiếng Việt, cụ thể là các trang: tuoitre.vn, vnexpress.net, vietnamnet.vn

Trang 19

CHƯƠNG 2 MÔ HÌNH CỦA TRANG BÁO ĐIỆN TỬ VÀ NGHIÊN CỨU CÁC KỸ THUẬT THU THẬP TỰ ĐỘNG TẤT CẢ CÁC BÀI

VIẾT TỪ WEBSITE

Nội dung chương này đưa ra mô hình một trang báo điện tử Từ đó, thực hiện nghiên cứu và phân tích một số kỹ thuật, phương pháp thực hiện thu thập tự động các thông tin của các bài viết từ website Đồng thời, thực hiện phân tích các ưu điểm và hạn chế của từng kỹ thuật trên Để trên cơ sở đó, đưa ra một kỹ thuật tối ưu

để thực hiện thu thập các thông tin của các bài viết từ các trang báo điện tử

2.1 Mô hình một trang báo điện tử

Mô hình tổng quát cho một trang báo điện tử giúp ta có cái nhìn tổng thể về cấu trúc của các trang báo điện tử, giúp cho việc quản lý và thu thập các bài viết từ trang báo điện tử một cách linh hoạt và tự động

2.1.1 Một số khái niệm cơ sở

Một HTML Element là một đối tượng đặc biệt đại diện cho một node trong DOM Tree (Document Object Model Tree) tương ứng với HTML Document của

webpage, và có các thuộc tính sau:

- Type: loại của HTML Element

- Address: địa chỉ của HTML Element trong HTML Document

Định nghĩa trên nhấn mạnh rằng HTML Element sẽ không có ý nghĩa khi không được áp dụng và đặt trong một tài liệu HTML cụ thể tương ứng với webpage Các HTML Element được đặc trưng bởi chức năng của chúng trong cấu trúc thông tin của Webpage, được đánh giá thông qua nội dung mà HTML Element đó chứa bên trong (Element Content) và được xác định, ghi nhận thông qua thuộc tính Type

Ví dụ: HTML Element chứa tiêu đề bài báo, HTML Element chứa tác giả bài báo, HTML Element chứa thời gian đăng tải bài báo,…

Thuộc tính Address của HTML Element cho phép nhanh chóng xác định vị trí của nó trong tài liệu HTML tương ứng với Web Page Giá trị của thuộc tính này

có thể được biểu diễn bằng Xpath

Trang 20

Ví dụ: xét một trang web đơn giản như sau:

Trang web trên có các thẻ:

- HE-List: HTML Element chứa danh sác địa chỉ các bài báo HTML Element loại này có thêm thuộc tính Priority (1 5) thể hiện mức độ quan trọng của những bài viết mà nó chứa bên trong

Trang 21

- HE-Pagination: HTML Element chứa chức năng phân trang, chuyển trang của Webpage

- HE-Title: HTML Element chứa tiêu đề

- HE-PudDate: HTML Element chứa thời gian đăng tải bài báo

- HE-Description: HTML Element chứa tóm tắt bài báo

- HE-Content: HTML Element chứa nội dung chi tiết bài báo

2.1.2 Mô tả cấu trúc của một trang báo điện tử

Việc mô hình hóa cấu trúc trang báo điện tử làm cơ sở cho hoạt động thu thập tin tức tự động Các trang báo điện tử khác nhau được phát triển độc lập Do

đó, chúng có cấu trúc khác nhau Cấu trúc trang báo điện tử được giới thiệu sau đây dựa trên cả việc phân tích cấu trúc website và cấu trúc thông tin phổ biến của chúng, nhằm phục vụ tốt hơn cho việc quản lí và thu thập tin tức Một trang báo điện tử e được mô hình hóa bao gồm 7 thành phần sau:

(Attr, H, F, Article, F Str , A Str , Rels)

Trong đó, các thành phần được mô tả như sau:

- Attr là tập các thuộc tính trên trang báo điện tử

- H là homepage, được trả về khi truy cập e bằng địa chỉ URL của nó

- F là tập các webpage biểu diễn các trang lĩnh vực, chủ đề con thuộc về

trang báo điện tử

- Article là tập các các bài viết đã thu thập được thuộc về trang báo điện tử

- FStr là tập các kiểu cấu trúc của các trang lĩnh vực thuộc trang báo điện tử

- AStr là tập các kiểu cấu trúc của các trang bài viết thuộc trang báo điện tử

- Rels là tập các quan hệ nội tại trong trang báo điện tử

2.1.2.1 Tập các thuộc tính của trang báo điện tử Attr

Một trang báo điện tử có các thuộc tính phục vụ cho việc quản lí, bao gồm:

- Name: là tên trang báo điện tử Ví dụ: Dân Trí, Vn Express, Việt Nam Net,

Trang 22

2.1.2.2 Trang chủ H

Webpage Trang chủ (Homepage) H là webpage mặc định được trả về khi truy cập vào địa chỉ URL của trang báo điện tử, chứa các bài viết mới, nổi bật của trang báo điện tử ở thời điểm hiện tại H chỉ được sử dụng để đánh giá mức độ quan trọng của các bài viết và có cấu trúc thông tin bao gồm một tập các HTML Element loại HE-List chứa danh sách bài viết nổi bật từ tất cả các trang lĩnh vực f trong F

2.1.2.3 Tập các webpage lĩnh vực F

Mỗi là đại diện cho webpage đăng tải các bài viết thuộc một miền tri thức hay lĩnh vực xác định Sự phân loại các bài viết phụ thuộc vào quan điểm của bản thân trang báo điện tử Mỗi f có các thuộc tính sau:

- Name: tên lĩnh vực (vd: xã hội, giáo dục, thể thao, thế giới,…)

- URL: địa chỉ URL của trang lĩnh vực

- Collecting: true/false, xác định trang lĩnh vực đã được chọn để thu thập tin

tức hay chưa

2.1.2.4 Tập các bài viết đã thu thập được Article

Mỗi bài viết là một thực thể của bài báo được đăng tải trên trang báo điện tử và có các thuộc tính sau:

- URL: Địa chỉ URL của webpage đăng tải nội dung chi tiết bài viết

- Title: Tiêu đề bài báo

- Description: Phần tóm tắt nội dung bài báo

- PudDate: Thời gian bài báo được đăng tải

- ExDate: Thời gian bài báo được thu thập bởi hệ thống

- Content: Nội dung chi tiết của bài báo

2.1.2.5 Tập các kiểu cấu trúc của các trang lĩnh vực FStr

Mỗi f Str F Str là một kiểu cấu trúc thông tin cho một hoặc một số trang lĩnh vực , gồm tập các HTML Element như sau:

- Nhóm các HTML Element loại HE-List chứa danh sách các bài viết được đăng tải thuộc về trang lĩnh vực

- HTML Element loại HE-Pagination chứa chức năng chuyển trang, phân trang cho trang lĩnh vực f

Trang 23

2.1.2.6 Tập các kiểu cấu trúc của các trang bài viết AStr

Mỗi aStr AStr là một kiểu cấu trúc thông tin cho một số webpage chứa nội dung đăng tải trang bài viết, gồm tập các HTML Element như sau:

- HTML Element loại HE-Title

- HTML Element loại HE-Description

- HTML Element loại HE-PudDate

- HTML Element loại HE-Content

2.1.2.7 Tập các quan hệ nội tại Rels

Rels bao gồm các quan hệ hai ngôi giữa các thành phần nội tại trong cùng một trang báo điện tử, bao gồm:

- Quan hệ phân cấp “là trang lĩnh vực con” rHYP trên F; nghĩa là

: mỗi trang lĩnh vực đại diện cho một miền tri thức với mức độ tổng quát khác nhau Theo đó, một trang lĩnh vực có thể bao hàm, chứa một số lĩnh vực con khác và tạo thành quan hệ phân cấp Quan hệ phân cấp tạo thành một cây

phân cấp trên F và có các tính chất: phản xứng, bắt cầu

- Quan hệ “thuộc về” rBL giữa 2 tập bài viết A và tập trang lĩnh vực F, : một bài viết có thể thuộc về nhiều trang lĩnh vực khác nhau tùy thuộc

vào quan điểm phân loại nội dung của chủ quản trang báo điện tử

- Quan hệ mờ “có liên quan” giữa các bài báo rRE: , nói cách

ta nói bài viết a1 có liên quan đến bài viết a2 với trọng số w, nếu w = 1, ta nói rằng

bài viết a1 trùng với bài viết a2

- Quan hệ “có kiểu cấu trúc” rStr giữa 2 tập F và FStr , Mỗi

có một cấu trúc thông tin riêng biệt, được xác định thông qua một phần tử

2.2 Các kỹ thuật thu thập tự động tất cả các bài viết từ website

Muốn thu thập tự động tất cả các bài viết từ website cho trước ta phải thu thập được tất cả các link bài viết từ website đó Hiện nay, có 2 phương pháp thu thập các link của bài viết từ website, cụ thể:

Trang 24

2.2.1 Đối với các website bất kỳ chưa biết trước cấu trúc

Đối với các website mà ta chưa biết trước cấu trúc của nó, ta sử dụng chương trình được gọi là Crawler Crawler là chương trình khai thác sơ đồ cấu trúc của các website Chức năng chủ yếu của một Crawler là lấy dữ liệu và nội dung từ các website, sau đó thực hiện tái tổ chức và lưu trữ những dữ liệu đó vào các kho chứa cục bộ Những dữ liệu được Crawler thu thập sau đó sẽ được xử lý để nhằm đáp ứng các mục đích của từng loại ứng dụng cụ thể như hệ thống tìm kiếm thông tin trên Web, hệ thống phân tích chứng khoán, các tin tức, thông tin, … Quy trình đơn giản nhất của một Crawler là bắt đầu thu thập dữ liệu từ một địa chỉ nguồn, sau đó trích xuất các liên kết ngoài trong website để mở rộng truy cập vào các website tiếp theo Quá trình này tiếp tục với các website mới với công việc thu thập dữ liệu đồng thời truy cập các liên kết ngoài khác, quy trình được lặp đi lặp lại liên tục cho đến khi gặp được một điều kiện dừng thu thập đã được cài đặt trước đó Tuy nhiên, đằng sau quy trình thu thập được mô tả một cách đơn giản như trên lại là một mảng các vấn đề phức tạp có liên quan như việc kết nối mạng, các tiêu chuẩn của một URL, việc duyệt các tài liệu HTML và cách thức giao tiếp với các server Trên thực tế, các thế hệ Crawler gần đây có thể coi là một trong những module phức tạp nhất trong một hệ thống mà nó được kèm theo

Tùy thuộc vào mục đích của hệ thống, các Crawler của các hệ thống khác nhau có chiến lược thu thập dữ liệu khác nhau Ví dụ, đối với những hệ thống tìm kiếm thông tin, Crawler thường có xu hướng và mục tiêu chính là download tất cả các website mà nó gặp Ngược lại, các Crawler khác lại chỉ chọn một số website để tải và duyệt trong số rất nhiều các website nó gặp, gọi là preferential Crawler – Crawler dựa trên kinh nghiệm, thường được sử dụng trong các hệ thống là kho dữ liệu có chủ điểm, tự động hóa các nguồn lực và đáp ứng cho các đại lý phần mềm Các Crawler có lựa chọn được xây dựng theo một chủ đề xác định gọi là các topic Crawler hay focused Crawler

* Cấu trúc cơ bản của một Crawler

Cấu trúc đơn giản của một Crawler bao gồm một danh sách các URL gọi là frontier Danh sách này được khởi tạo bởi các URL hạt nhân đã được cung cấp bởi người dùng hoặc các chương trình khác Mỗi vòng lặp crawling gồm: lấy ra

Trang 25

URL cần được index tiếp theo từ frontier, nạp website tương ứng với URL đó bằng giao thức HTTP, duyệt website vừa tải về để lấy ra các URL và các thông tin mà ứng dụng cần, và cuối cùng là thêm các URL chưa được thăm vào frontier Trước khi các URL được thêm vào frontier chúng sẽ được gán một độ

đo thể hiện đánh giá hiệu quả khi thăm website tương ứng với URL đó Quá trình crawling có thể kết thúc khi một số lượng nhất định các website đã được tải Nếu chương trình Crawler đã sẵn sàng để duyệt một website khác và trạng thái của frontier là rỗng, một tín hiệu trạng thái kết thúc (dead-end) sẽ được gửi cho Crawler Crawler sẽ không có website mới để tải và dừng lại

Extract URLs and add to frontier Store Page

Done?

Stop Yes

No

Hình 2.1 Quy trình xử lý của Crawler

Công việc crawling có thể được xem như một bài toán duyệt đồ thị Toàn bộ thế giới web được xem như một đồ thị lớn với các đỉnh là các website và các liên kết là các cung (cạnh) Một Crawler bắt đầu tại một vài đỉnh và sau đó đi theo các cung để tới các đỉnh khác Quá trình tải một website và trích ra các liên kết bên trong tương tự như việc mở rộng một đỉnh trong bài toán tìm kiếm trên đồ thị Một Crawler có chủ điểm cố gắng đi theo các cung được kỳ vọng dẫn tới các vị trí trong

đồ thị là hợp lệ với chủ điểm đó

Trang 26

2.2.2 Đối với các website đã biết cấu trúc

Như chúng ta đã biết, sự phát triển của công nghệ đã đưa thông tin lên trực tuyến, thông tin được cập nhật liên tục từng phút, thậm chí từng giây Điều này khiến người dùng vô cùng khó khăn trong việc theo dõi tin tức Hầu hết mọi người đều quan tâm về tin tức mới nhất, những cập nhật mới nhất của cộng đồng Việc kiểm tra các website liên tục để xem có bất cứ điều gì thay đổi là việc làm không khả thi Một trong những giải pháp để kiểm tra thông tin mới nhất là sử dụng đánh

dấu trang Nhưng đây không phải là một giải pháp thích hợp Đầu tiên, người dùng phải lướt qua các website để xem xét sự thay đổi Thứ hai, việc duyệt những trang

đã đánh dấu không thể kiểm tra được các thông tin cập nhật, do đó có thể bỏ lỡ

thông tin Thứ ba, có thể phải kiểm tra các website nhiều lần ngay cả khi không có

bản cập nhật trong một thời gian dài RSS (Really Simple Syndication) là giải pháp tốt hơn để giải quyết vấn đề này

RSS (Really Simple Syndication) là một định dạng để cập nhật nội dung thay đổi thường xuyên trên internet như blog, website tin tức… RSS cung cấp thông tin cực kỳ đơn giản Nó cho phép người dùng tìm kiếm các thông tin quan tâm và đăng

ký để được gửi thông tin đến trực tiếp, giải quyết vấn đề về tính cập nhật của thông tin bằng việc cung cấp cho họ những thông tin mới nhất Định dạng của RSS dựa theo chuẩn XML được dùng để chia sẻ và phát tán nội dung Web Những bước chính để hiện thực RSS như sau:

- Bước 1: các website hoặc blog tạo một RSS Feed;

- Bước 2: RSS Feed ở trên một server dưới định dạng XML;

- Bước 3: Một bộ đọc gọi là Feed Reader đọc tệp RSS, phân tích và trưng bày kết quả

Các website phải duy trì một danh sách các thông báo ở dạng chuẩn gọi là RSS Feed Người dùng quan tâm về các thông tin thay đổi có thể kiểm tra danh sách này Các chương trình như RSS Reader truy cập vào các RSS Feed trên các website

và trả về tập kết quả

Trang 27

Hình 2.2 Kiến trúc tổng quát của một RSS

RSS cung cấp những thông tin cơ bản gồm danh sách các mục theo thứ tự từ mới đến cũ Mỗi mục có thể chứa thông tin tóm tắt hoặc toàn bộ nội dung trong thực tế RSS Feed của một website tin tức có thể như sau:

Bảng 2.1 Bảng mô tả cấu trúc của một trang RSS

Description: description1 Description: description2

Như vậy, nhờ công nghệ RSS, thông tin được chia sẻ trở nên đơn giản hơn rất nhiều RSS giúp cho việc truyền tải thông tin tới người dùng một cách dễ dàng Bên cạnh đó, RSS còn giúp người dùng tìm kiếm các thông tin quan trọng qua các nguồn RSS, thậm chí từ các website mà họ ít khi hoặc không bao giờ truy nhập Với RSS, các siêu liên kết (hyperlink) trở thành các liên kết thông tin, cho người dùng biết được các thông tin hữu dụng và cập nhật

Việc thu thập văn bản từ các website tin tức trở nên dễ dàng hơn khi ta biết chính xác cấu trúc của các website Vì vậy, việc ta cần làm là thiết kế tool để thu

Trang 28

thập các cấu trúc của các website tin tức cụ thể như: dantri.com.vn, vnexpress.net, vietnamnet.vn, … Sau đó phân tích trang RSS của các website trên ta thu được toàn

bộ liên kết hay cấu trúc của website đó

Việc còn lại là sử dụng các kỹ thuật để thu thập văn bản ta cần thu thập như: tiêu đề, phần mô tả, nội dung chính, tên tác giả, thời gian đăng,… dựa trên các liên kết đã có và tổ chức lưu trữ vào cơ sở dữ liệu Phần sau sẽ trình bày một số phương pháp, kỹ thuật thu thập văn bản chứa nội dung cần thu thập (ở đây ta dùng từ nội dung chính) từ các bài viết dựa trên các link HTML

2.2.3 Các kỹ thuật thu thập văn bản chứa nội dung chính từ các link HTML

Khó khăn của việc thu thập văn bản chứa nội dung chính từ website tin tức là

ở chổ không phải toàn bộ website đều cần thiết Nếu chỉ đơn thuần loại bỏ các chuỗi script HTML thì nội dung thu thập được rất nhiều lỗi rác không cần thiết Ví dụ: phần thông tin quảng cáo, các tin mới cập nhật, nội dung tin có độ dài ngắn, các thanh menu, … những nội dung như thế thường phải được loại bỏ trong quá trình thu thập Cụ thể là, nội dung của các website được tổ chức theo dạng dữ liệu HTML với cấu trúc dạng các tag, node, … Những tag này chỉ có ý nghĩa với các trình duyệt dùng để hiển thị các tài liệu, văn bản theo bố cục nào đó cho trước và đối với người dùng những tag đó không có ý nghĩa gì Và nội dung các website rất đa dạng, phong phú Website có thể chứa các nội dung khác không liên quan như: các thanh menu, các link dẫn đến các wensite khác, các banner, các đoạn flash, âm thanh, hình ảnh, video, các hiệu ứng, các mã javascript, hoặc các văn bản có nội dung không liên quan khác, … Không những vậy, một website có nhiều chủ đề khác nhau, các nội dung HTML có thể có cú pháp “mở” Ví dụ: bạn có thể có tag mở, những có thể không có tag đóng, hoặc mã HTML sai cú pháp, chồng chéo lên nhau, những vẫn được các trình duyệt hiểu và không báo lỗi

Tất cả vấn đề trên làm cho việc thu thập văn bản là nội dung chính của các bài viết (được xác định trước) từ các website là không hề dễ dàng Dưới đây, tôi xin trình bày các kỹ thuật, phương pháp thực hiện việc thu thập văn bản chứa nội dung chính từ các website bất kỳ

Trang 29

Đã có nhiều công trình nghiên cứu khác nhau trên thế giới sử dụng nhiều các tiếp cận, phương pháp khác nhau để thu thập văn bản trên web Các phương pháp, cách tiếp cận bao gồm:

- Tiếp cận theo hướng loại bỏ các tag HTML;

- Tiếp cận theo hướng rút trích các Text node;

- Tiếp cận theo hướng so sánh khung mẫu;

- Tiếp cận theo hướng phân tích mã HTML kết hợp xử lý ngôn ngữ tự nhiên;

- Tiếp cận theo hướng phân đoạn web;

- Thuật toán BTE - Body Text Extraction

Ta sẽ đi vào tìm hiểu nội dung, ưu điểm, hạn chế của từng phương pháp trên

2.2.3.1 Tiếp cận theo hướng loại bỏ các tag HTML

Đây là cách tiếp cận đơn giản nhất, và dĩ nhiên là hiệu quả cũng thấp nhất

Sử dụng biểu thức chính quy (Regular expression) sau để loại bỏ các tag HTML:

Regular expression = “<[^>]*>” ”

Do đã nêu ở trên, nội dung các trang web ngoài các tag HTML còn chứa các nội dung khác Chính vì thế, phương pháp này chỉ áp dụng được cho các đoạn HTML nhỏ và riêng lẻ, không nên áp dụng cho toàn bộ trang web

Hình 2.3 Tách nội dung web bằng cách loại bỏ các tag HTML

Hiện nay, VietSpider của tác giả Nhữ Đình Thuần là một phần mềm bóc tách đúng nghĩa, chúng truy xuất trực tiếp vào nội dung toàn diện rồi tiến hành bóc tách

Trang 30

Sau đó những đặc tả dữ liệu (meta data) được xây dựng tự động trên nền nội dung

đã bóc tách Sau quy trình khai thác, nội dung sẽ trở thành độc lập với trang web nguồn, được lưu trữ và tái sử dụng cho những mục đích khác nhau

Hình 2.4 Hệ thống bóc tách nội dung của VietSpider

Hệ thống của tác giả Nhữ Đình Thuần cũng đã cài đặt mô hình khai phá dữ liệu cho phép tổng hợp những nội dung liên quan Xây dựng mô hình topic tracking cho phép theo dõi các sự kiện đang diễn ra theo tuần tự thời gian Mô hình thuật toán được cài đặt là LOR (Linked Object Representation) với sự hỗ trợ của kỹ thuật Stopping trong phân tách nội dung Giải pháp đánh chỉ mục (indexing) và tìm kiếm (searching) được sửa đổi và cải tiến từ một giải pháp nguồn mở nổi tiếng của Apache là Lucene Search

Tuy nhiên, hạn chế của phương pháp tiếp cận này là cần phải xác định đường dẫn đến vùng nội dung chính trước khi bóc tách đối với mỗi domain Như thế sẽ khó khăn nếu hệ thống khi gặp phải một trang web mới hoàn toàn

2.2.3.2 Tiếp cận theo hướng rút trích các Text node

Phương pháp này tương tự như phương pháp loại bỏ các tag HTML nhưng tiếp cận theo hướng khác Bằng cách thực hiện phân tích mã HTML để tạo thành cây biểu diễn nội dung website Document tree (DOM) DOM (Document Object Model) là một giao diện lập trình ứng dụng (API) cho các trang HTML và XML

Nó định nghĩa cấu trúc logic của các văn bản và cách thức một văn bản được truy

Trang 31

cập và thao tác Trong đó, các node của cây đại diện cho các thành phần khác nhau trong website Khi đó, phần văn bản chính sẽ được lấy ra bằng việc nối nội dung các node được đánh dấu với tag là “TEXT”

Với phương pháp này có thể cho kết quả tốt hơn phương pháp phân tích mã HTML Nhưng vẫn chưa thể khắc phục được nhược điểm là không thể lọc bỏ các nội dung rác để lấy phần nội dung chính, mà phương pháp này chỉ lấy toàn bộ text của website

2.2.3.3 Tiếp cận theo hướng so sánh khung mẫu

Phương pháp rút trích thông tin bằng cách so trùng hai trang web được xây dựng trên nền tảng nhận dạng mẫu được tác giả Trang Nhật Quang thực hiện trong việc rút trích nội dung nhằm cung cấp tin tức trên website hành chính Phương pháp này cho phép so khớp website cần rút trích với một website mẫu để xác định khung trình bày chung cho cả hai trang web cần rút trích, từ đó đi đến rút trích ra nội dung nằm trong phần được xác định chứa nội dung chính trên trang mẫu

(a) (b) (c)

Hình 2.5 Mô hình bóc tách nội dung chính bằng so sánh khung mẫu

(a) Trang web cần rút nội dung chính

(b) Trang web khung mẫu (được xác định trước)

(c) Nội dung chính sau khi so khớp và rút được

Phương pháp này không đòi hỏi người sử dụng phải biết về ngôn ngữ xây dựng wrapper hay phải thay đổi wrapper khi cách trình bày thay đổi do website mẫu

Trang 32

có thể lấy trực tiếp từ trang chủ và có cùng cách trình bày với trang cần rút trích Tuy nhiên, đối với mỗi domain, cần phải xác định được một trang web làm mẫu cho những trang khác Đây cũng là một hạn chế trong quá trình tự động hóa xác định nội dung chính của web

2.2.3.4 Tiếp cận theo hướng xử lý ngôn ngữ tự nhiên

Đây là phương pháp sử dụng các kỹ thuật xử lý ngôn ngữ tự nhiên được áp dụng cho những tài liệu mà thông tin trên đó thường không có một cấu trúc nhất định (như truyện) Các kỹ thuật này xem xét sự ràng buộc về mặt cú pháp và ngữ nghĩa để nhận dạng ra các thông tin liên quan và rút trích ra thông tin cần thiết cho các bước xử lý nào đó Các công cụ sử dụng phương pháp này thích hợp cho việc rút trích thông tin trên những website có chứa những đoạn văn tuân theo quy luật văn phạm Một số công cụ sử dụng phương pháp xử lý ngôn ngữ tự nhiên trong việc bóc tách nội dung như: WHISK hay RAPIER

Đặc trưng của phương pháp này còn phụ thuộc vào ngôn ngữ trên website cần được bóc tách nội dung Đối với tiếng Việt có đề tài “Rút trích nội dung chính website dựa vào ngữ cảnh của website” của tác giả Hồ Anh Thư [3] Đề tài tiến hành xác định nội dung chính của website dựa vào ngữ cảnh của nội dung, sau đó tiến hành rút trích bản tóm tắt của nội dung dựa trên phương pháp chọn câu trội Việc xác định nội dung chính được thực hiện qua các bước:

- Loại bỏ thông tin định dạng;

- Tách vùng nội dung dựa vào cấu trúc, mà cụ thể là sử dụng tag TABLE để tách vùng văn bản;

- Xác định mức độ liên quan về mặt nội dung để ghép nối các vùng kế cận lại với nhau;

- Chọn vùng văn bản có kích thước lớn nhất để xử lý tiếp

Tuy nhiên phương pháp này có một số nhược điểm sau:

- Tùy theo mức độ xử lý mà quá trình bóc tách phụ thuộc nhiều hoặc ít vào ngôn ngữ xử lý;

- Phương pháp dựa vào độ đo tương tự giữa các vùng để ghép nối từ đó xác định nội dung chính Những nếu các nội dung chính được chia trên nhiều table với

Trang 33

các thông tin ít liên quan đến nhau thì sẽ khó khăn trong việc mở rộng và xác định vùng nội dung chính chứa tất cả chúng

Hình 2.6 Mô tả bóc tách nội dung chính bằng kỹ thuật xử lý ngôn ngữ tự nhiên

- Trường hợp thông tin trong một vùng (table) quá ít, sẽ ảnh hưởng đến quá trình tính tương đồng và mở rộng vùng nội dung chính

2.2.3.5 Tiếp cận theo hướng phân tích mã HTML kết hợp xử lý ngôn ngữ tự nhiên

Giải pháp này được tác giả Ngô Quốc Hưng phát triển trong luận án “Tìm kiếm tự động văn bản song ngữ Anh – Việt từ Internet” Hướng tiếp cận này dựa trên phương pháp bóc tách nội dung nhờ vào phân tích mã HTML theo các bộ mã nguồn HTMLParser của dự án Majestic-12 để tạo thành cây DOM biểu diễn nội dung website Từ đó áp dụng các công cụ và kỹ thuật ngôn ngữ để quyết định phần nội dung chính Phương pháp này dựa trên tiền đề là website đã được phân tích các tag HTML để xây dựng nên cây Document Tree Từ cây này chúng ta đi xác định node nào ở trên cây chứa nội dung chính của website Phương pháp cho điểm các node dựa vào kết quả xử lý ngôn ngữ tự nhiên trên nội dung mà nó chứa bên trong

Một số quy tắc cho điểm được áp dụng:

- Chỉ cho điểm cho những NODE có tag là TEXT Vì chỉ có những node này mới là node chứa nội dung thực sự Các node khác tổng hợp từ node này

Trang 34

- Cho điểm NODE TEXT dựa vào số câu của nội dung chứa bên trong node

đó Càng nhiều câu thì node có điểm càng cao

- Node được cho điểm phải chứa tối thiểu một đoạn văn (Tuy nhiên việc xác định như thế nào là một đoạn vẫn chỉ là một heuristic)

- Điểm của các node cha sẽ bằng điểm của các node con cộng lại

Xác định node nội dung: Để xác định node nội dung chính mà không chứa các nội dung không cần thiết chính là đi xác định node sâu nhất trên cây có điểm cao nhất Bằng việc xác định node nội dung như vậy, hệ thống có thể tự động xác định nội dung website mà không cần biết trước khung mẫu cũng như nguồn gốc của website đó

Hình 2.7 Mô tả node chứa nội dung chính trên cây văn bản

Hướng tiếp cận này cho kết quả rất khả quan, tuy nhiên hướng tiếp cận này

có thể bỏ sót nội dung nếu nội dung chính được nằm phân tán trên các node độc lập khác nhau trong cây Document Tree

Trang 35

2.2.3.6 Tiếp cận theo hướng phân đoạn web

Hướng tiếp cận này tiến hành phân đoạn website thành các khối (block) riêng biệt theo các cách tiếp cận trực quan (vision-based approach), nghĩa là mắt người cảm nhận thấy ra sao thì ta sẽ phân đoạn như vậy Bằng cách sử dụng giải thuật VIPS (Vision-based Page Segmentation) được phát triển bởi phòng thí nghiệm của Microsoft Ý tưởng chính dựa trên độ liền mạch của các node trong cấu trúc cây DOM với một số nhận xét heuristic để thực hiện phân đoạn tự động website theo khu vực một cách trực quan

Hình 2.8 Mô hình thuật toán VIPS, phân đoạn web dựa trên cấu trúc cây DOM

Thuật toán VIPS sơ lược gồm 3 bước chính:

- Bước 1: Tách các khối chính (Block Extraction)

+ Tiến hành phân tách các node của cây DOM ra thành các khối lớn bằng cách: lần lượt chia tách các node chứa đựng (container node – là node có khả năng chứa các node khác, ví dụ như các node có tag là <table>, <p>, …) cho đến khi không còn các container node nào Từ đó xây dựng được cây chỉ bao gồm các container node trên, gọi là cây Visual Block 1 (VB1), biểu diễn các khối chính của website

+ Từ cây VB1 này, ta tiến hành xem xét xem các node nào trong cây nên

bị chia tách tiếp hay không bằng một số luật heuristic như sau:

• Dựa trên các tag: ví dụ như <hr>, … thường dùng để chia tách các chủ đề khác nhau, do đó nếu các node là những tab này thì tiến hành chia tách tiếp

• Dựa vào màu sắc (color): giả sử như nếu màu nền của node cha khác với một trong các node con của nó thì tiến hành chia tách tiếp vì nếu màu sắc nhau thì thường thể hiện nội dung của chủ đề khác nhau

Trang 36

• Dựa vào văn bản (text): nếu node là textnode thì không chia tách

• Dựa vào kích thước (size): Nếu độ sai biệt về kích thước của các

node cha và các node con lớn hơn một ngưỡng cho trước thì tiến hành chia tách

node đó tiếp

+ Tới đây, ta thu được cây mới, tạm gọi là cây VB2

- Bước 2: Xác định đường phân cách (Seperator Detection)

+ Các block trong cây VB2 được đưa vào một pool để xác định ranh giới

phân tách (Seperator) Các đường phân tách được định nghĩa như đường ngang

hoặc dọc trong website mà không chứa các block nào trong pool

+ Từ đó xác định tiếp trọng số của các Seperator Các trọng số này sẽ

được xác định dựa trên các tiêu chí heuristic sau:

• Khoảng cách: trọng số sẽ càng cao nếu khoảng cách, khoảng trống

xung quanh Seperator càng nhiều

• Tag: Nếu Seperator nằm cùng vị trí với các tag dạng phân cách (ví

dụ như <hr>, …) thì trọng số sẽ càng cao

• Font: Nếu font chữ, kích thước chữ (font, size) của các khối xung

quanh Seperator càng khác nhau thì trọng số Seperator đó sẽ càng cao

• Color: Nếu màu nền (background color) xung quanh Seperator càng

khác nhau thì trọng số của Seperator trên website cùng với trọng số của chúng

• Từ đây, ta xác định được các Seperator trên website cùng với trọng

số của chúng

- Bước 3: Tổng hợp cấu trúc nội dung (Content Structure Constrution)

+ Khi các Seperator đã được xác định, ta tiến hành bỏ đi các Seperator

có trọng số thắp bằng cách gom (merge) các block nằm hai phía của Seperator này

lại với nhau

+ Quá trình gom block này sẽ được thực hiện cho đến khi gặp được

Seperator có trọng lượng lớn nhất Tiếp tục xác định độ đo liền mạch (DoC) của

block vừa gom được

+ Sau đó mỗi block sẽ được kiểm tra xem độ DoC của nó có lớn hơn

ngưỡng cho trước hay không? Nếu thõa yêu cầu ngưỡng thì dừng, nếu chưa thì tiếp

Ngày đăng: 23/12/2018, 06:11

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w