Để 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à
Trang 1ĐẠ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
Trang 2Mục lục
1 Đặt vấn đề 3
1.1 Thực trạng 3
1.2 Phát biểu bài toán 3
1.3 Mô hình cơ bản 5
2 Cơ sở lý thuyết và công nghệ 6
2.2 Giới thiệu về DOM 7
2.4 Thuật toán IEPAD 9
3 Phương pháp giải quyết 11
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 11
3.2 Bài toán trích xuất luật từ một trang web 12
4 Kết quả hiện tại 14
5 Phương hướng phát triển 15
Tài liệu tham khảo 15
Trang 31 Đặ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 đó
Trang 4Minh 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
Trang 51.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:
Trang 6Mô 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
Trang 72.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ụ:
Trang 82.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
Trang 9Từ 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ỏ
Trang 10nhữ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
Trang 113 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
Đọc dữ liệu từ hệ thống
Gắn thẻ từ loại cho từng từ của dữ liệu
Phân lớp tự động
dữ liệu đầu vào
Tập các từ trong văn bản đã gắn thẻ (Từ loại, vị trí, số lần xuất hiện)
Làm mịn
Đánh chỉ mục Inverted Index
Tối ưu hóa cây chỉ mục
Hệ thống hoạt động liên tục Xử lý dữ liệu khi được gọi Lưu trữ
Dữ liệu có được thông qua quá trình phân tích dữ liệu Web
Thông qua tách câu và
từ trong mỗi văn bản Tập dữ liệu
huấn luyện
Đánh giá vai trò của
từ trong văn bản và toàn hệ thống
Kết hợp nhiều phương pháp đánh giá Xây dựng thông qua
thuật toán Inverted Index
Đầ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
Trang 12Cô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
Trang 13Html(</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
Trang 14 Trích xuất ra được các key work đặc trưng cho từng phân lớp.
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
Trang 15[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] http://www.w3schools.com/
Trang 16Ý 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)