Tải bản đầy đủ (.docx) (40 trang)

trích xuất chủ đề và dữ liệu dựa vào sự đồng dạng trong cấu trúc của trang

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.01 MB, 40 trang )

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

Đỗ Văn Phong

TRÍCH XUẤT CHỦ ĐỀ VÀ DỮ LIỆU DỰA VÀO SỰ
ĐỒNG DẠNG TRONG CẤU TRÚC CỦA TRANG

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY

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

HÀ NỘI - 2014


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

Đỗ Văn Phong
VIETNAM NATIONAL UNIVERSITY, HANOI
UNIVERSITY OF ENGINEERING AND TECHNOLOGY

TRÍCH XUẤT CHỦ ĐỀ VÀ DỮ LIỆU DỰA VÀO SỰ
ĐỒNG DẠNG TRONG CẤU TRÚC CỦA TRANG
WEB
Đỗ Văn Phong
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ
thôngON
tinPATTERN
INFORMATION EXTRACTION


BASED
DISCOVERY
Cán bộ hướng dẫn: PGS.TS. Nguyễn Việt Hà
Cán bộ đồng hướng dẫn: ThS. Vũ Quan Dũng

Major: Information technology
Supervisor: Assoc. Prof. Dr Nguyen Viet Ha

Co-Supervisor: MSc. Vu Quang
HÀDung
NỘI - 2014
Page 2

HA NOI - 2014


Page 3


TÓM TẮT KHÓA LUẬN
Ngày nay, khi mà dữ liệu khoa học, dữ liệu y tế, dữ liệu nhân khẩu học, dữ liệu tài
chính, và các dữ liệu tiếp thị ngày càng trở nên nhiều và phức tạp. Trong đó có rất nhiều
thông tin mà chúng ta quan tâm nhưng vẫn đang hàng ngày được đưa liên tục trên những
trang báo mạng. Con người không có đủ thời gian để xem xét nhiều nguồn dữ liệu tới
vậy. Nhu cầu đặt ra đó là cần một dịch vụ nào đó có thể giúp chúng ta tổng hợp những
thông tin đó một cách tự động, và phân tích những thông tin đó theo chủ đề với mục đích
là cung cấp những thông tin hữu ích nhanh chóng hiệu quả và phù hợp với mục đích cần
tra cứu. Vì vậy, chúng ta phải tìm cách tự động phân tích dữ liệu, tự động phân loại nó, tự
động trích xuất nó, tự động phát hiện và mô tả các xu hướng trong nó, và tự động chỉ dẫn
các dị thường.

Tuy nhiên các thông tin trên các trang web theo những cấu trúc rất khác nhau nguồn
dữ liệu được tổ chức rất phong phú và phức tạp. Vậy để đáp ứng được nhu cầu thu thập
và xử lý dữ liệu trên tôi sẽ tập trung vào việc phân tích cấu trúc của trang web. Để làm
được điều này khóa luận sẽ tập trung vào việc trích xuất ra luật (rules) từ một trang web
từ đó dựa vào bộ luật để tìm được những trang web có cấu trúc tương tự và cuối cùng là
trích xuất ra những thông tin có ích từ những trang web có cấu trúc đồng dạng đó.

ABSTRACT
Today, when the scientific data, medical data, demographic data, financial data, and
marketing data is becoming flooding and more complex. Which has a lot of information

Page 4


that we are interested in but are still given continuous daily newspapers on the network.
A great amount of effort is often required for a user to manually locate and extract useful
data from the Web sites. Therefore, there is a great need for value-added service that
integrates information from multiple sources. So we have to find ways to automatically
analyze data, automatically classify, automatically extraction, automatically detecting and
describing trends of it, and automatically guide the anomalies.
However, information on the website on various structure of data sources and
organization is multiform and complex. So to meet the needs collection and data
processing on I will focus on the structural analysis of website. To do this my thesis will
focus on extracting rules from a website to find out sites have similar structure and finally
extract the information useful from that sites.

Lời cảm ơn
Lời đầu tiên, tôi xin gửi lời cảm ơn và lòng biết ơn sâu sắc nhất tới PGS.TS.
Nguyễn Việt Hà và ThS. Vũ Quang Dũng đã tận tình hướng dẫn, giúp đỡ tôi trong suốt
quá trình thực hiện khóa luận tốt nghiệp này.


Page 5


Tôi xin bày tỏ lời cảm ơn sâu sắc đến các thầy cô giáo đã giảng dạy tôi trong suốt
bốn năm học qua, đã cho tôi nhiều kiến thức quý báu, tạo điều kiện thuận lợi để tôi học
tập, rèn luyện và nghiên cứu tại trường Đại học Công nghệ.
Tôi cũng xin gửi lời cảm ơn tới các anh và các bạn sinh viên tại phòng thí nghiệm
công nghệ phần mềm Toshiba-UET, các bạn Hưng, Tiến Trung, Minh, Tuấn Anh, Thành
Trung trong nhóm nghiên cứu khoa học đã giúp đỡ, hỗ trợ tôi trong quá trình xây dựng
hệ thống và thực nghiệm.
Tôi gửi lời cảm ơn tới các bạn trong lớp K55CC và K55CLC đã ủng hộ, khích lệ,
giúp đỡ và luôn sát cánh bên tôi trong suốt quá trình học tập, rèn luyện tại trường.
Và cuối cùng, tôi xin gửi lời cảm ơn vô hạn tới gia đình, người thân và bạn bè –
những người luôn ở bên tôi trong những lúc khó khăn nhất, luôn động viên tôi, khuyến
khích tôi trong cuộc sống cũng như học tập và công việc.
Tôi xin chân thành cảm ơn!

Hà Nội, ngày tháng năm 2013
Sinh viên

Đỗ Văn Phong

Page 6


Lời cam đoan

Tôi xin cam đoan khóa luận này là công trình nghiên cứu do tôi thực hiện dưới sự
hướng dẫn của ThS. Vũ Quang Dũng. Các số liệu, kết quả được trình bày trong khóa luận

là hoàn toàn trung thực và chưa từng được công bố trong bất kỳ một công trình nào khác.
Tất cả những tham khảo từ các nghiên cứu liên quan đều được tôi nêu nguồn gốc rõ
ràng trong mục “Tài liệu tham khảo” của khóa luận. Trong khóa luận của tôi, không có
việc sao chép tài liệu, công trình nghiên cứu của người khác mà không chỉ rõ là tài liệu
tham khảo.
Các kết quả thực nghiệm của khóa luận đều được tiến hành thực nghiệm và thống
kê từ kết quả thực tết.
Hà Nội, ngày tháng năm 2013
Sinh viên

Đỗ Văn Phong

Page 7


Mục lục

Danh sách hình vẽ

Danh sách các bảng
Page 8


CHƯƠNG 1. GIỚI THIỆU VỀ HỆ THỐNG
Với sự bùng nổ mạnh mẽ về thông tin mỗi ngày chúng ta được tiếp xúc với vô vàn
các thông tin khác nhau từ nhiều nguồn khác nhau. Điển hình cho sự đa dạng của thông
tin là các nguồn báo mạng hiện nay, các trang báo mạng tại Việt Nam đã ngày càng trở
nên phổ biến với mỗi chúng ta. WeAreSocial cho biết số người dùng Internet Việt Nam

Page 9



là 30,8 triệu. Tỉ lệ người dùng Internet trên tổng số dân là 34% (cao hơn mức trung bình
của thế giới là 33%). Riêng năm 2012, Việt Nam có thêm 1,59 triệu người dùng mới. Với
con số thống kê như trên cho thấy sự phát triển mạnh mẽ của mạng internet Việt Nam
cũng như sự phát triển của báo mạng nói riêng. Lượng bài viết được đưa lên mỗi ngày
càng nhiều khiến người đọc khó khăn trong việc tìm đúng và đủ thông tin cần thiết. Nhu
cầu về việc thu thập thông tin là tất yếu, đòi hỏi nhiều nỗ lực trong việc trích chọn dữ
liệu. Không những thế làm thế nào để người dùng truy xuất vào kho thông tin đó dễ dàng
và đạt hiệu quả cao nhất. Công việc này đòi hỏi phải xử lý trước khi người dùng nhập
thông tin cần tìm kiếm. Nguồn của các thông tin đó là vô vàn từ các trang báo khác nhau
với cấu trúc không hề giống nhau. Như vậy vấn đề đặt ra ở đây là làm sao để lấy được
các dữ liệu đó thống nhất về một nguồn cũng như sắp xếp thông tin theo chủ đề mà người
đọc đang quan tâm.
Ngoài ra, xuất phát từ bài toán thực tiễn đang phát triển trong phòng thí nghiệm
Công nghệ phần mềm Toshiba-UET, với yêu cầu trích xuất, đánh giá, phân loại và làm rõ
thông tin cần thiết làm nền tảng cho sự cung cấp thông tin tới người sử dụng, đó chính là
nội dung để tôi triển khai các nội dung trong khóa luận này. Nhưng công việc cần thực
hiện là trích xuất các từ trong văn bản và thông qua quá trình xử lý để mang cho chúng
các thuộc tính giúp chương trình phân biệt và đưa đến nội dung phù hợp với từng cá nhân
người dùng. Cùng với đó là công việc làm tạo mối quan hệ giữa các bài báo mạng với
nhau, trợ giúp tốt cho hệ thống trong việc đưa ra những bài báo có liên quan tới chủ đề
mà người dùng đang tìm kiếm.

Do yêu cầu của khóa luận tôi chia thành các phần như sau:
Thứ nhất, tìm và sắp xếp mức độ liên quan của các bài báo. Không phải mọi dữ liệu
trên mạng đều được phân loại về các chủ đề một cách rõ ràng. Hầu hết chương trình thu
thập và phân tích dữ liệu tự động đều khó xác định chính xác phân lớp mà nội dung mà
nó thuộc về. Như vậy để tổng quát hóa thì coi chúng là chưa được phân loại. Vì vậy khi
một người đang đọc một bài báo thì thật khó để xác định được bài báo nào mà họ muốn

đọc tiếp theo. Trong phần này tôi sẽ xây dựng một ứng dụng cho phép làm điều đó dễ
dàng hơn, tức là từ một link của một bài báo đầu vào tôi sẽ tiến hành tìm những link liên
quan và loại bỏ đi những link ít liên quan mà bài báo đó có liên kết tới.

Page 10


Thứ hai, tiến hành phân tích cấu trúc của bất kỳ một bài báo mạng nào để trích
xuất và đưa ra phần nội dung chính của bài báo đó. Đây là phần chính trong việc thu
thập thông tin từ các trang báo mạng. Để thu thập được thông tin ta phải tìm ra vùng
chính chứa dữ liệu của mỗi trang báo và loại bỏ đi những vùng chứa quảng cáo hay
những thông tin không hữu ích khác. Các trang báo mạng thường cấu trúc rất đa dạng,
tuy nhiên một trong số chúng cũng có những đặc điểm chung tương đồng về cấu trúc ở
chính trong phần chứa dữ liệu. Công việc phải làm đó là phải tìm và lưu được lại những
đặc điểm của phần cấu trúc chứa thông tin đó như là một đặc trưng để phân biệt các bài
báo với nhau. Sau khi đã lấy được những đặc trưng đó thì việc tìm và trích xuất nội dung
chính của bài báo sẽ trở lên dễ dàng hơn. Mỗi bài báo mới vào ta sẽ so sánh với những
đặc trưng (trong khuôn khổ khóa luận tôi gọi đó là luật của bài báo) sẵn có từ đó lấy dữ
liệu ra một cách dễ dàng. Đây là chính là phương pháp mà tôi sử dụng-phương pháp trích
xuất dữ liệu của trang web dựa trên những cấu trúc đồng dạng.
Để giải quyết những vấn đề trên tôi sẽ xây dựng hệ thống với như sau:
Vấn đề thứ nhất là sắp xếp và thu gọn mức độ liên quan của các bài báo. Để làm
được điều này tôi sử dụng thuật toán HITS cho việc thu gọn và sắp xếp mối tương quan
giữa các trang. Để dễ dàng cho việc phân tích mối quan hệ giữa các trang thì tôi sẽ chọn
cách biểu diễn các mối quan hệ đó dưới dạng một đồ thị quan hệ. Và việc thu gọn mức
độ liên quan giữa các bài báo chính là việc thu gọn kích cỡ của đồ thị đó. Khi người dùng
đọc một bài báo hệ thống sẽ phải tìm kiếm được những bài báo liên quan tới nó và xây
dựng lên một đồ thì liên quan tới bài báo đó, những bài báo đó sẽ được loại bỏ bớt đi khỏi
đồ thì nhờ áp dụng thuật toán HITS. Thuật toán HITS tiến hành xây dựng ra một ma trận
là ánh xạ của đồ thị và sử dụng kỹ thuật nhân với vector đơn vị để tìm ra những vector

trọng số tương ứng của đồ thị. Từ đó sắp xếp và phân loại và loại bỏ những trang web
chính là những node trong đồ thị mà có trọng số thấp. Đồ thị sau khi thu gọn bởi thuật
toán HITS sẽ còn lại là những bài báo gần với bài báo mà người dùng đang được. Những
bài báo tìm được sẽ được đưa vào bộ trích xuất thông tin và lấy dữ liệu để hiển thị lên
giao diện đọc tiên.
Vấn đề thứ hai là tiến hành phân tích cấu trúc của bất kỳ một bài báo mạng nào để
trích xuất và đưa ra phần nội dung chính của bài báo đó. Giải quyết vấn đề này tôi sử
dụng thuật toán IEPAD để phân tích cấu trúc. Như đã biết một trang báo mạng sẽ có cấu
trúc cây DOM tương ứng, cấu trúc cây DOM này thế hiện sự phân bố sắp xếp các layout
của trang báo mạng đó. Và điều đặc biệt đó là thông thường những vùng có cấu trúc lặp
là phần chứa dữ liệu chính. Vậy nhiệm vụ của hệ thống là tìm ra những vùng có cấu trúc
lặp để xác định phần nội dung bài báo cũng như là lưu trữ vùng cấu trúc lặp đó để sử
dụng cho những lần trích xuất sau này. Để làm được điều này thuật toán dựa trên cấu trúc
dữ liệu PAT tree, cấu trúc dữ liệu này cho phép phát hiện được vùng lặp của dữ liệu.
Trong hệ thống của tôi các thẻ của cây DOM được chuyển đổi sang dạng một String để
Page 11


có thể đưa vào cấu trúc dữ liệu cây PAT. Sau đó cây PAT sẽ tiến hành tính toán để tìm ra
xâu lặp trong phần dữ liệu được đưa vào đó chính là phần chứa cấu trúc lặp của website.
Phần cấu trúc lặp này sẽ được chuyển đổi ngược lại để đưa ra được vị chí chính xác của
vùng chứa dữ liệu trong cây DOM. Từ đó tôi thực hiện một số phương pháp biến đổi và
tách lọc khác để đưa ra được dữ liệu của trang báo.
Các phần còn lại của khóa luận có cấu trúc như sau:
Chương 2. Cơ sở lý thuyết. Giới thiệu về các phương pháp, các bài toán con được áp
dụng vào hệ thống
Chương 3. Đặc tả mô hình hệ thống. Miêu tả hướng giải quyết, các ghép nối bài toán
con.
Chương 4. Thực nghiệm. Đưa ra những kết quả đã làm và đánh giá.


CHƯƠNG 2. CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ
2.1. Cơ sở lý thuyết
2.1.1. URL: Uniform Resource Location
-

URL - viết tắt của Uniform Resource Locator , nó là địa chỉ của một tài nguyên
trên Internet. URL được phát triển bởi Tim Berners-Lee năm 1994 và Internet
Engineering Task Force (IETF) nhóm làm việc URI. Định dạng URL được chỉ
định trong RFC 1738 Uniform Resource Locators. Nó có thể là một website, một
trang web, một hình ảnh.

-

URL hay Định vị tài nguyên đồng nhất dùng để xác định vị trí (toàn cầu) của một
tài nguyên web.

-

Một URL cho biết tên tài nguyên, tên ứng dụng, cổng chạy và địa chỉ máy chủ.

Page 12


-

Khi triệu gọi tài nguyên, client có thể gửi kèm theo URL các tham số và giá trị của
tham số. Tham số sẽ được xử lý trên Server cùng với tài nguyên được gọi.

Hình 2.1: URL
-


Thuật ngữ "address web - địa chỉ web" là một từ đồng nghĩa với một URL sử dụng
giao thức HTTP / HTTPS.

2.1.2. Giới thiệu về DOM

DOM là chữ viết tắt từ tiếng Anh Document Object Model ("Mô hình Đối tượng Tài
liệu"), là một giao diện lập trình ứng dụng (API). Thường thường DOM, có dạng một cây
cấu trúc dữ liệu, được dùng để truy xuất các tài liệu dạng HTML và XML. Mô hình
DOM độc lập với hệ điều hành và dựa theo kỹ thuật lập trình hướng đối tượng để mô tả
tài liệu.
Một trang web bao gồm một tập các đối tượng được tổ chức theo cấu trúc cây có gốc là
đối tượng window
-

Đối tượng window đại diện cho cửa sổ/khung hiển thị trang web và được khai
báo ngầm định.

-

Đối tượng document đại diện cho chính nội dung trang web là một thuộc tính
của window.

HTML được dùng để khai báo các đối tượng (thuộc các lớp dựng sẵn)
CSS được dùng để định nghĩa thuộc tính/kiểu hiển thị cho các đối tượng
(Java) script được dùng để quản lý (tạo, hủy bỏ, thay đổi thuộc tính, triệu gọi phương
thức) các đối tượng, định nghĩa lớp mới.

Page 13



Ví dụ:

Hình 2.2: Cấu trúc cây DOM
2.1.3. Thuật toán HITS

Đây là thuật toán được tôi sử dụng trong việc tìm ra mối liên hệ giữa các trang web và
dùng để xây dựng nên mạng lưới quan hệ ở mức ban đầu.
HITS [7] – Hypertext Include Topic Seclection, thuật toán HITS là một thuật toán phân
tích liên kết mà đánh giá ở mức các trang web, được phát triển bởi Jon Kleingberg. Đây
là một tiền thân của PageRank. Ý tưởng bắt nguồn từ một cái nhìn tổng quan vào các
trang web trên Internet ban đầu được hình thành, đó là tập hợp các trang web nào đó,
được gọi là hub, đáp ứng các chỉ mục lớn nhưng nó không có những thông tin đó mà nó
được sử dụng như tài liệu sưu tập của các danh mục lớn. Để có được các thông tin người
sử dụng trực tiếp truy cập vào các chỉ mục đó để dấn tới các trang web có chứa thông tin.
Nói cách khác, một hub tốt đại diện cho một trang trỏ tới nhiều trang khác, và một
authority tốt đại diện cho một trang mà được liên kết bởi các hub khác nhau.
Thuật toán HITS [9] là một trong những thuật toán trích xuất chủ đề nổi tiếng. Đưa ra
một tập các trang web về một chủ đề khoa học, thuật toán HITS tính toán số điểm
authority (đó là biểu thị cho nội dung liên quan) và số điểm hub (một biểu thị cho liên kết
liên quan) cho mỗi trang web. Việc tính toán được thực hiện như sau, trong đó q → p ký
hiệu trang q có một liên kết trỏ đến trang p.

Page 14




Ví dụ về cách tính a(p) và h(q) được biểu diễn trên Hình 3:


Hình 2.3: Ví dụ về HUB và AU
Thuật toán HITS không xử lý trường hợp các liên kết lặp đi lặp lại. Cho nên, thuật toán
HITS có thể được cải thiện bằng cách gán trọng số cho cạnh để xử lý các liên kết trùng
lặp. Nếu có k cạnh từ các tài liệu trên một máy chủ đầu tiên tới một tài liệu duy nhất trên
một máy chủ thứ hai, khi đó mỗi cạnh được đưa ra một trọng số authority của 1/ k. Nếu
có cạnh l từ một tài liệu duy nhất trên máy chủ đầu tiên tới một tập tài liệu trên máy chủ
thứ hai, khi đó mỗi cạnh được đưa ra một trọng số hub là 1/ l. Vì vậy, cải thiện thuật toán
HITS tính toán trọng số như sau:

Page 15


Giả sử tôi có một mạng lưới đầu vào như hình dưới:

Hình 2.4: Ví dụ về một mạng lưới đơn giản

Trong đó mỗi node số 3 sẽ được trỏ tới từ hai node 1 và 2 hay nói cách khác mỗi mũi
tên có hướng tứ node C tới node B thể hiện việc C có liên kết dẫn đến B. Bước tiếp
theo tôi xây dựng một ma trận vuông A trong đó n chính là số node của đồ thị ban
đầu. Với mỗi một mũi tên có hướng sẽ tương ứng với số 1 trong ma trận ánh xạ. Nếu
có mũi tên trỏ từ C tới B thì phần tử A[c,b]=1. Đối với một đồ thị đơn giản như trên ta
sẽ xây dựng được một ma trận thể hiện mối quan hệ tương ứng như sau:

Page 16


Với ma trận trên ta sẽ đi tìm những vector trọng số theo thuật toán HITS :

Trong ví dụ này thì vector v thể hiện trọng số của mỗi node chính là vector cho biết
mức độ liên quan của node đối với trang web đầu vào (điểm càng cao độ liên quan

càng lớn). Như vậy ta cũng có thể dễ dàng thấy được từ đồ thị node số 3 được node số
1 và số 2 trỏ vào do đó nó có điểm là 2 còn node 1 và node 2 thì sẽ có điểm là 0 hoàn
toàn khớp với những gì tính toán được.

2.1.4. Thuật toán IEPAD

Trọng tâm của việc giải quyết bài toán trích xuất luật chính là thuật toán
IEPAD [6]. Thuật toán này cho phép nhận một trang web đầu vào và đưa ra bộ luật
của trang web đó chính là trật tự, cấu trúc sắp xếp của các layout trong trang web
đó.
Một hệ thống iepad bao gồm 3 thành phần:

Page 17


-

Extraction rule generator: Nhận đầu vào là một webpage và trích xuất ra các
luật trong webpage đó.

-

Pattern viewer: giao diện đồ họa cho người sử dụng.

-

Extractor module: trích xuất ra những thông tin mong muốn từ những webpage
tương tự khác.

Trọng tâm chính của công nghệ này chính là extraction rule generator


Hình 2.4: Sơ đồ bộ trích xuất luật
Kết quả trả về của bộ extraction rule Generator này là một bộ luật được trích xuất
ra từ webpage đầu vào.
Khi người dùng submit một webpage html vào IEPAD bộ translator sẽ chuyển
mã của webpage này thành một file nhị phân. Từ file nhị phân này PART Tree
Contructor sẽ tạo lên một cây PAT.Bộ khai phá ra cấu trúc sẽ dựa vào cây PAT này để
tìm ra những cấu trúc lặp lại được gọi là maximal repeats. Maximal repeats sẽ được

Page 18


chuyển cho bộ Validator để lọc bỏ những cấu trúc không cần thiết. Cuối cùng Rule
Composer sẽ lọc lại những luật đó và tổng hợp để đưa ra kết quả cuối cùng.

2.2. Khái niệm và đặc trưng
2.2.1. Đồ thị quan hệ


Là mạng lưới thể hiện sự quan hệ giữa các bài báo. Trong mạng lưới quan hệ
này mỗi bài báo là một nút, một nút có đường dẫn tới một nút khác tức là bài
báo này có link liên kết tới bài báo kia.



Mạng lưới quan hệ có thể được rút gọn dần dần bằng việc loại bỏ dần đi các
nút có mối quan hệ thấp hơn so với những nút còn lại.

2.2.2. Luật của trang web


Mỗi trang web đều có cấu trúc cây DOM xác định và việc trích xuất thông tin dựa
vào cấu trúc của trang web đó đã và đang là môt vấn đề lớn trong công nghệ phần mềm
trên internet. Trước đó cũng đã có nhiều cách giải quyết cho vấn đề này như là áp dụng
học máy để tự động trích xuất thông tin, nhưng nhìn chung những giải pháp này đều đòi
hỏi khá nhiều thời gian và kinh nghiệm cá nhân cũng như những nỗ lực để có thể cung
cấp được những bộ mẫu dành cho việc training. Vì vậy trong bài khóa luận tôi sẽ sử dụng
phương pháp tìm ra vùng chứa dữ liệu trực tiếp từ một trang web đầu vào bằng cách phát
hiện vùng cấu trúc lặp của trang web. Vậy thực tế luật của một trang web ở đây chính là
vùng có cấu trúc lặp của trang web đó. Hay nói cách khác luật của trang web ở đây
chính là đoạn mã thể hiện một phần cấu trúc của trang web có tính lặp đi lặp lại.

Ví dụ một trang web có mã html như sau:

Page 19


Thì vùng luật hay chính là vùng có cấu trúc lặp của trang web đó là đoạn mã sau:
<B>TEXT</B><I>TEXT</I><BR>
Vùng cấu trúc này được lặp đi lặp lại tới bốn lần. Và những luật này chính là tiền
đề cho việc trích xuất vùng chứa thông tin chính của trang web.
2.2.3. Cấu trúc dữ liệu cây PAT

Cấu trúc cây PAT:
Trong khoa học máy tính, một cây PAT một cấu trúc dữ liệu để biểu diễn các hậu tố của
một xâu kí tự sao cho có thể thực hiện nhanh chóng nhiều thao tác trên xâu.
Cây PAT của xâu S là một cây có cạnh được gắn nhãn là các xâu kí tự và mỗi hậu tố của
S tương ứng với chuỗi thu được bằng cách ghép tất cả các nhãn của một đường từ gốc
đến lá. Do đó nó là cây cơ số (cụ thể hơn, nó là cây Patricia) của các hậu tố của S.
Việc xây dựng cây hậu tố của xâu S sử dụng thời gian và bộ nhớ tuyến tính với độ dài
của S. Sau khi đã xây dựng xong cây, có thể thực hiện nhanh chóng nhiều thao tác, chẳng

hạn như tìm xâu con trong S, tìm xâu con với một số lượng lỗi cố định, tìm biểu thức
chính quy v.v... Cây PAT cũng là một trong những lời giải tuyến tính đầu tiên của bài
toán tìm xâu con chung dài nhất. Tuy làm tăng tốc độ các thao tác nhưng việc lưu trữ cây
PAT thường đòi hỏi nhiều bộ nhớ hơn chỉ lưu trữ xâu kí tự.

Đây là ví dụ cho một cây PAT được xây dựng từ xâu “000001010011100110”

Page 20


Hình 2.5: Ví dụ về cây PAT
Ở đây lần lượt các bit nhị phân được đưa vào cấu trúc cây PAT, nếu là bít 0 thì sẽ ở
nhánh trái và nêu là bit 1 thì sẽ được đưa vào nhánh phải. Các cấu trúc lặp sẽ đưuọc phát
hiện nhờ cây PAT với độ phức tạp O(n).

CHƯƠNG 3. CÁC THÀNH PHẦN CỦA HỆ THỐNG

Page 21


3.1. Mô hình tổng quan hệ thống
Sơ đồ tổng quan của hệ thống:

Hình 3.6: Sơ đồ tổng quan hệ thống

Đầu vào của hệ thống là URL dẫn tới một bài báo của một trang báo mạng bất kỳ.
Với giả thuyết đây chính là bài báo mà người dùng đang đọc tại một ứng dụng nào đó.
Như vậy yêu cầu của hệ thống là phải lấy được phần chứa thông tin chính của trang báo
đó kèm theo những thuộc tính như là tiêu đề tác giả để hiển thị lên ứng dụng của mình.
Yêu cầu thứ hai của hệ thống đó là đề xuất được những bài báo có liên quan tới bài báo


Page 22


mà người dùng đang đọc. Sự liên quan ở đây có thể là liên quan về nội dung, chủ đề mà
người đọc hứng thú và đang muốn tìm hiểu. Với những yêu cầu trên hệ thống sẽ lần lượt
đi theo các bước:
Đầu tiên khi nhận được URL đầu vào hệ thống sẽ tiến hành lấy toàn bộ mã nguồn
của bài báo đó dưới dạng mã html. Trong dữ liệu lấy được sẽ chứa cả phần nội dung
chính, những phần thông tin bên lề, và có thể chứa cả những liên kết từ bài báo đó tới
những bài báo liên quan khác (outgoing link). Các phần xử lý cho việc tìm liên kết liên
quan tôi sẽ sử dụng lại kết quả được trình bày trong khóa luận của bạn Trương Văn Hưng
[4]. Theo đó thuật toán được sử dụng trong việc tìm kiếm những trang liên quan là thuật
toán DSE [5]. Đầu tiên, thuật toán tìm ra một tập hợp các trang như trang mẫu mà có cấu
trúc hiển thị tương tự với các trang mục tiêu. Dựa vào liên kết đi của trang mục tiêu, thuật
toán lấy được một tập nguồn cho các trang mẫu. Từ tập nguồn này, phân tích URL của
từng trang trong tập nguồn đó và tìm ra các trang mẫu. Cuối cùng những trang mẫu chính
là những trang có liên quan tới bài báo đang đọc.
Ví dụ về link liên quan:

Hình 3.7: Ví dụ về link liên quan
Như hình trên các bạn có thể thấy phần trong khung đen chính là các liên kết đến các
trang khác.
Tiếp theo khi đã có được các trang liên quan tới một trang đầu vào hệ thống sẽ tiếp
tục tìm ra những trang liên quan tới những trang vừa tìm được. Trong khuôn khổ khóa
luận tôi chỉ tìm các trang liên quan tới mức 3. Cuối cùng sẽ thu được một đồ thị quan hệ

Page 23



của các trang web đối với một trang đầu vào. Các trang trong đồ thị về mặt nào đó sẽ có
những mối liên quan tới trang đầu vào nhưng các bài báo ấy vẫn chưa thực sự “thuần chủ
đề”. Để giải quyết vấn đề này tôi sẽ sử dụng thuật toán HITS để thu gọn và làm mịn hơn
mối quan hệ giữa các trang web. Đồ thị quan hệ sẽ được rút gọn do vậy các trang trong
đồ thị đó sẽ có mối quan hệ mật thiết hơn và trở thành những đề xuất tốt hơn cho người
đọc. Là tiền thân của PageRank thuật toán HITS với cài đặt đơn giản sẽ mang lại hiệu
quả cao trong việc trích chọn chủ đề.
Sau khi có được các URL của các trang web liên kết tới trang web đầu vào thì hệ
thống cần tiến hành trích xuất thông tin và hiển thị dữ liệu. Đây là một phần khá độc lập
của hệ thống, tốc độ phân tích cấu trúc ảnh hưởng đến tốc độ của việc lấy dữ liệu cũng
như tốc độ của cả hệ thống. Ở đây tôi sử dụng thuật toán IEPAD để trích xuất dữ liệu.
Thuật toán IEPAD sẽ tiến hành lấy mã nguồn HTML của bài báo về rồi phân tích đưa ra
cấu trúc lặp của bài báo. Cấu trúc này chính là luật của bài báo hay cũng chính là đặc
trưng về vùng chứa dữ liệu chính của bài báo. Từ đó nội dung chính của bài báo được
trích xuất và hiển thị lên trên ứng dụng.
Cuối cùng các luật trích xuất được sẽ được lưu lại vào database kèm theo tên miền
và link của bài báo. Những luật này sẽ được sử dụng cho việc trích xuất những bài báo có
cấu trúc tương tự.
3.2. Lọc bài báo theo chủ đề
Như đã đề cập ở phần mở đầu đây là một trong hai bài toán chính của hệ thống với
mục đích chính là thu gọn mạng lưới quan hệ đầu vào để đưa ra những bài báo có độ liên
quan mật thiết hơn.
Tổng quan của bài toán như sau:

Page 24


Hình 3.8: Sơ đồ giải quyết phần lọc bài báo
Trong đó:
Đồ thị quan hệ: là đồ thị được xây dựng từ trang web đầu vào miêu tả mối quan hệ giữa

trang đầu vào và những trang khác.
Ma trận quan hệ: được ánh xạ từ đồ thị quan hệ để phục vụ cho việc tính toán trọng số
cho từng node của đồ thị.
Quá trình tính toán hub và authorities được định nghĩa như đã trình bày trong chương 2.
Thu gọn đồ thị: là quá trình loại bỏ đi nhữ node có trọng số authorities thấp để giảm kích
thước của đồ thị.

Page 25


×