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

trích xuất dữ liệu từ những trang web đồng cấu trúc

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 (642.98 KB, 16 trang )

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

BÁO CÁO NIÊN LUẬN
NGÀNH : CÔNG NGHỆ THÔNG TIN
ĐỀ TÀI: TRÍCH XUẤT DỮ LIỆU TỪ
NHỮNG TRANG WEB ĐỒNG CẤU
TRÚC
Giảng viên hướng dẫn: PGS.TS Nguyễn Việt Hà
Giảng viên đồng hướng dẫn : ThS Vũ Quang Dũng

Sinh viên: Đỗ Văn Phong
Mã sinh viên: 10020252
Lớp: K55C-CLC


Mục lục

Page 2


1. Đặt vấn đề
1.1. Thực trạng
Ngày nay, chúng ta đang ngập trong 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ị. Con người không có đủ thời gian để xem xét dữ liệu như
vậy. Sự chú ý của con người đã trở thành nguồn tài nguyên quý giá.
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 tóm
tắ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.
Dữ liệu trên các website là vô cùng phong phú về chủ để và là nguồn tài nguyên quý giá
không thể bỏ qua. Chúng ta cần có những phương pháp để thu thập đánh giá các thông tin đó,


trích xuất ra những thông tin theo những mục đích sử dụng khác nhau.
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
chúng ta sẽ tập trung vào những trang web có cấu trúc giống nhau. Để 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 đó.
Nội dung Niên luận này gồm 4 phần :
Phần 1 - Đặt vấn đề : Nêu thực trạng, phát biểu bài toán cùng cấu trúc cơ bản của chương
trình.
Phần 2 – Cơ sở lý thuyết : Những kết quả trong các nghiên cứu trước đó, có liên hệ, phục vụ
cho chương trình này.
Phần 3 – Phương pháp giải quyết : Từ những cơ sở lý thuyết ở trên, đưa ra những phương
pháp giải quyết bài toán.
Phần 4 – Kết quả hiện tại : Những kết quả đạt được tới thời điểm hiện tại.
Phần 5 : Kết luận và hướng phát triển.

1.2. Phát biểu bài toán
-

Bài toán có nội dung như sau :
Thu thập các bài báo và xử lý phân lớp đánh chỉ mục sơ bộ cho các dữ liệu thu thập được.
Trích xuất ra luật từ một bài báo bất kỳ, phân tích cấu trúc của trang web đó và đưa ra các luật
của trang web đó.
Từ các luật đó đưa ra mối quan hệ giữa các bài báo thu thập được và các bài báo khác, xây dựng
nên mạng lưới thể hiện mối quan hệ giữa các bài báo đó.

Page 3



Minh họa mạng lưới quan hệ giữa các bài báo
Trong đó :
- Dữ liệu :
o Dữ liệu thu thập được bao gồm những trường như nội dung bài báo, ảnh minh họa, link… của
các bài báo.
o Cần tiến hành phân lớp dữ liệu (Ví dụ : thể thao, xã hội,…) trích xuất ra các từ khóa đặc trưng
cho mối lớp bài báo.
o Tiến hành làm mịn dữ liệu nhiều lần bằng cách lấy các từ khóa đặc trưng của lớp bài báo đó để
tìm những bài báo liên quan sau đó tiếp tục đưa các bài báo liên quan đó vào cơ sở dữ liệu
- Mạng lưới quan hệ :
o Là mạng lưới thể hiện sự quan hệ giữa các bài báo, những bài báo có liên quan tới nhau là những
bài báo cùng có liên quan tới các keyword đặc trưng của phân lớp mà bài báo đó thuộc vào. Một
bài báo có thể thuộc nhiều phân lớp.
- Luật:
o Là các quy tắc của cấu trúc trang web, về thứ tự sắp xếp các thẻ trong cấu trúc cây DOM

Page 4


1.3. Mô hình cơ bản
Làm mịn dữ liệu:

Mô tả :
Dữ liệu được lưu trữ vào database sau đó sẽ được phân tích để đưa vào các category khác
nhau từ đó ta trích xuất các từ khóa để tìm được những từ khóa đặc trưng của category đó.
Tiếp tục lại dùng các từ khóa đó để tìm kiếm thêm các bài báo có liên quan tới nó.

Trích xuất luật trang web:
Page 5



Mô tả:
Từ cơ sở dữ liệu thu thập được phân tích và trích xuất ra luật của trang web, về vị trí của
các layout có trên trang web cấu trúc cây DOM …
Sau đó kết hợp với từ khóa để xây dựng nên mối quan hệ giữa các trang web các bài báo
với nhau.
Trích xuất thông tin và lưu trở lại cơ sở dữ liệu.

2. Cơ sở lý thuyết và công nghê
2.1. URL: Uniform Resource Location
-

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

-

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.

Page 6



2.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.
Ví dụ:

Page 7


2.3. Mô hình MapReduce
MapReduce là một mô hình lập trình và là một thực hiện có liên quan đến xử lý và tạo ra
các tập dữ liệu lớn. Người dùng chỉ định chức năng tham chiếu(map function) để xử lý một
cặp khóa/giá trị (key/value) để tạo ra một tập các cặp khóa/giá trị trung gian và chức năng rút
gọn(reduce function) để tạo ra liên kết giữa các giá trị trung gian này mà chúng có cùng một
khóa. Cụ thể hơn, MapReduce là một framework cho việc xử lý song song các vấn đề gặp
phải với một tập dữ liệu lớn được sử dụng bởi rất nhiều các máy tính(mỗi máy tính gọi là một
node), gọi chung chúng là một cụm (cluster – tất cả các node trong cùng một mạng và có cùng

cấu hình phần cứng). Việc xử lý, tính toán có thể thực hiện trên dữ liệu đã được lưu trữ trên
hệ thống tập tinh (không có cấu trúc) hoặc trên cơ sở dữ liệu (có cấu trúc). MapReduce có thể
tận dụng được ưu điểm của dữ liệu trong hệ thống này, xử lý dữ liệu trên hoặc gần các tài
nguyên lưu trữ để giảm truyền tải dữ liệu.

Như vậy để tạo ra một chương trình sử dụng mô hình MapReduce thì cần phải cài đặt 2
hàm chính là Map (mũi tên đỏ) và Reduce (mũi tên xanh).



Hàm Map có một cặp đầu vào và tạo ra một tập hợp các cặp key/value trung gian.
Hàm Reduce cho thấy một key trung gian I và một tập các value cho key đó. Nó kết
hợp các value đó để tạo thành một tập các giá trị nhỏ hơn.
Page 8


Từ khi MapReduce được giới thiệu, có rất nhiều thuật toán phát triển dựa vào MapRedue
để giái quyết các vấn đề khá phức tạp như: Sorting, Searching, Indexing, Classification, Joining,
TF-IDF. Trong khóa luận này, tôi đã áp dụng sử dụng các mô hình MapReduce vào các giải
thuật cho Indexing (Đánh chỉ mục dữ liệu Web) và TF-IDF (Đánh trọng số cho các dữ liệu đánh
chỉ mục).

2.4. Thuật toán IEPAD
Một hệ thống iepad bao gồm 3 thành phần:
-

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

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 chuyển cho bộ Validator để lọc bỏ
Page 9


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.

Page 10


3. Phương pháp giải quyết
3.1. Bài toán phân lớp cho dữ liệu bằng phương pháp invert indext sử dụng mô hình
Map-Reduce

Đầu vào của hệ thống thường là một văn bản, một bài viết hay cả một đoạn văn hoặc
thậm chí là một câu. Chúng bắt nguồn từ tập hợp các bài viết về những vấn đề khác nhau và

mong muốn đến với người dùng. Thông qua hệ thống này, dữ liệu sẽ được xử lý và phân lớp vào
các mục rõ ràng. Và ngôn ngữ bài viết, văn bản được sử dụng là Tiếng Việt, phù hợp đặc điểm
ngôn ngữ của người Việt. Trong khóa luận này thì đầu vào của tôi gồm 2 phần chính.
Sau khi đọc dữ liệu, công việc đầu tiên hệ thống sẽ xử lý là tách văn bản đầu vào thành các
câu và tiến hành gắn thẻ từ loại cho chúng. Công việc là thành quả của việc áp dụng nhiều kết
quả nghiên cứu về xử lý ngôn ngữ tự nhiên, đặc biệt là công trình Vietnamese Word
Segmentation của thầy Lê Hồng Phương .
Tiếp theo hệ thống dựa trên các từ trong câu đã được gắn thẻ, tiến thành trích xuất các từ khóa
và tiến hành phân lớp văn bản tự động nhờ sự giúp đỡ của học máy và bộ tập các từ khóa huấn
luyện từ trước. Ở đây ta áp dụng định lý Bayes sử dụng nền tảng Weka để tiến hành phân loại
dữ liệu.
Page 11


Công việc tiếp theo là duyệt qua toàn bộ nội dung của bài viết để tìm ra một thông số mang ý
nghĩa quan trọng của việc giải quyết các mong muốn tìm kiếm của người sử dụng – đó là số lần
xuất hiện. Kết hợp với từ loại của các từ đó và vị trí của các từ trong văn bản, đầy đủ các thuộc
tính của một từ được thành lập, giúp ích cho công việc tiếp theo. Đối với các từ xác định là
luôn vô nghĩa trong đa số các trường hợp – stopword – đã được loại bỏ hoặc đánh trọng số thấp
hơn. Như vậy, trong số những công việc trên có việc đánh trọng số - weighting – mang ý nghĩa
quan trọng cho việc chọn lọc kết quả tìm kiếm trước khi hiển thị cho người sử dụng. Weighting
dựa vào số lần xuất hiện của từ trong một bài viết, trong một chủ đề hay trong toàn bộ các bài
viết thì sẽ có những đánh giá khác nhau.
Cuối cùng, thông qua hệ thống gắn thẻ từ loại, phân loại các thuật ngữ đã có đầy đủ thuộc tính
như trên và cũng chính là đầu vào của thuật toán Inverted Index. Đầu ra của hệ thống rất quan
trọng cho việc hình thành cây chỉ mục (index) của toàn bộ nội dung được đưa vào. Toàn bộ kết
quả này được lưu trữ trong cơ sở dữ liệu, sau đó sẽ thực hiện các công việc chuẩn hóa làm tăng
độ tin cậy của cây chỉ mục phục vụ tốt nhiệm vụ tìm kiếm của người sử dụng.

3.2. Bài toán trích xuất luật từ một trang web

Để có thể tìm ra được luật của một trang web tôi sẽ sử dụng thuật toán IEDPAD. Như đã giới
thiệu ở phần trước thì một hệ thống sử dụng thuật toán IEPAD báo gồm 3 thành phần chính là
extraction rule generator, pattern viewer, extractor module.Trong đó phần quan trọng nhất là
bộ sinh luật (extraction rule generator) . Sau đây là chi tiết về các thành phần có trong bộ sinh
luật:
3.2.1. Translator:
Từ các thẻ và các text của một trang web bộ chuyển đổi này sẽ tách ra thành text
tokens và tag tokens. Ví dụ Html(</a>) là tag token còn Text (_) là text token.
Ví dụ trang web đầu vào là congo code chỉ bao gồm 2 dòng:
<B>Congo</B><I>242</I><BR>
<B>Egypt</B><I>20</I><BR>$
Khi qua translator sẽ thành:
Html(<B>)Text(_)Html(</B>)Html(<I>)Text(_)Html(</I>)
Html(<BR>)Html(<B>)Text(_)Html(</B>)Html(<I>)Text(_)Html(</I>)
Mã hóa với thành nhị phân với độ dài cố định là 3:

Html(<B>)

000

Html(</B>)

001

Html(<I>)

010

Page 12



Html(</I>)

011

Html(<BR>) 100
Text(_)

110

Kết quả cuối cùng là: “000110001010110011100000110001010110011100$” kết
thúc bằng $.
3.2.2. Cấu trúc cây PAT:
Sau khi mã hóa thành file nhị phân, file đó sẽ được dùng để xây dựng lên cây PAT
như sau:

Từ những cây PAT này thì chúng ta sẽ có được bộ luật của trang web đó, sau khi
có được bộ luật này ta sẽ sử dụng nó để so sánh với bộ luật của các trang web khác để
biết được nó có tương đồng hay không. Nếu tương đồng việc trích xuất thông tín sẽ trở
nên dễ dàng hơn rất nhiều.

4. Kết quả hiên tại
Sau thời gian tìm hiểu, triển khai và kế thừa từ khóa luận của Bùi Thế Hiển [2] bước đầu đã
có số thành tựu sau:
− Phân lớp được dữ liệu vào các mục khác nhau.
− Trích xuất ra được các key work đặc trưng cho từng phân lớp.
Page 13


Phần trích xuất luật vẫn đang nghiên cứu thuật toán IEPAD.


5. Phương hướng phát triển
-Xây dựng hệ thống làm mịn dữ liệu từ cách keyword đã được trích chọn ra, tiếp tục lấy thêm
dữ liệu từ các link liên quan để phong phú nguồn dữ liệu.
- Tiếp tục nghiên cứu và phát triển hệ thống sử dụng thuật toán IEPAD để có thể sinh ra các
luật của một trang web bất kỳ.

6. Tài liêu tham khảo
[1] Data-rich Section Extraction from HTML pages - Jiying Wang và Fred H. Lochovsky
Page 14


[2] B. T. Hiển, “Hệ thống phân loại và đánh chỉ mục dữ liệu web,” Khóa luận tốt nghiệp đại
học hệ chính quy, 2013.

[3] H. Q. Thụy, Giáo trình Khai phá dữ liệu Web, Giáo Dục Việt Nam.
[4] IEPAD: Information Extraction Based on Pattern Discovery - ChiaHui Chang và
ShaoChen Lui
[5] />
Page 15


Ý kiến đánh giá :
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................

............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
.....................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
.............................................................................................................................
Điểm số: ……… Điểm chữ: ………..

Xác nhận của Khoa CNTT
Chủ nhiệm Khoa

Hà Nội, ngày tháng năm 2013
Giáo viên đánh giá
(Ký và ghi rõ họ tên)

Page 16



×