HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
NGUYỄN HUY KIÊN
NGHIÊN CỨU VỀ KHAI PHÁ DỮ LIỆU WEB VÀ ỨNG
DỤNG XÂY DỰNG WEBSITE TÍCH HỢP THÔNG TIN
NGÀNH : TRUYỀN DỮ LIỆU VÀ MẠNG MÁY TÍNH
MÃ SỐ : 60.48.15
TÓM TẮT LUẬN VĂN THẠC SỸ
NGƯỜI HƯỚNG DẪN KHOA HỌC
PGS.TS. ĐẶNG VĂN CHUYẾT
HÀ NỘI 2012
Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Người hướng dẫn khoa học: PGS.TS. Đặng Văn Chuyết
Phản biện 1:…………………………………………………
Phản biện 2: …………………………………………………
Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc
sĩ tại Học viện Công nghệ Bưu chính Viễn thông
Vào lúc: giờ ngày tháng năm
Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn
thông
1
TÓM TẮT LUẬN VĂN
1. Giới thiệu
Trong những năm gần đây, sự phát triển vượt bậc của công nghệ
thông tin đã làm tăng số lượng giao dịch thông tin trên mạng Internet
một cách đáng kể đặc biệt là thư viện điện tử, tin tức điện tử. Do đó
mà thông tin, tin tức xuất hiện trên mạng Internet cũng tăng theo với
một tốc độ chóng mặt và liên tục có sự thay đổi.
Với lượng thông tin đồ sộ như vậy, một yêu cầu lớn đặt ra đối
với chúng ta là làm sao tổ chức và tìm kiếm thông tin có lợi và hiệu
quả nhất. Việc thu thập, phân loại và trích xuất thông tin thông qua
các website khác nhau hiện nay đang có nhu cầu rất lớn trong thực
tế. Nhưng một thực tế là khối lượng thông tin quá lớn, việc thu thập
và phân loại dữ liệu thủ công là điều rất khó khăn và phức tạp.
Hướng giải quyết là xây dựng một hệ thống website cho phép thu
thập và phân loại các thông tin trên. Từ yêu cầu thực tiễn đó, em đã
chọn đề tài: “ Nghiên cứu về khai phá dữ liệu web và ứng dụng xây
dựng website tích hợp thông tin” nhằm tìm hiểu và xây dựng các
quá trình tìm kiếm rút trích, bóc tách thông tin từ nhiều trang web
khác nhau. Qua đó xây dựng một website thông tin để thu thập, đánh
giá thông tin tự động trên Internet phục vụ cho người đọc có thể nắm
bắt được thông tin một cách dễ dàng, nhanh chóng và tiết kiệm thời
gian.
2
Mục tiêu của luận văn nhằm tìm hiểu và nghiên cứu cách thức, quá
trình rút trích và bóc tách thông tin tự động từ nội dung của các
website trên internet, qua đó xây dựng một website tổng hợp thông
tin.
Phương pháp nghiên cứu của luận văn, nghiên cứu lý thuyết về khai
phá dữ liệu, khai phá dữ liệu web, lý thuyết về rút trích thông tin, các
phương pháp rút trích. Phân tích các ưu nhược điểm của từng
phương pháp, kết hợp với các kĩ năng xây dựng một trang web lấy
tin tức tự động.
2. Nội dung
Ngoài Phần Mở đầu, Phần Kết luận và các Phụ lục, nội dung luận
văn được chia thành 4 chương chính:
Chương 1 - Tổng quan về khai phá dữ liệu web
Chương này giới thiệu những nội dung cơ bản nhất, cung
cấp một cái nhìn khái quát về khai phá dữ liệu, khai phá dữ liệu web,
các hướng tiếp cận và ứng dụng của khái phá dữ liệu.
1.1 Khai phá dữ liệu
1.1.1 Các dạng dữ liệu
1.1.1.1 Fulltext
1.1.1.2 Hypertext
1.1.2 Các bài toán thông dụng trong Khai phá dữ liệu
1.2 Khai phá dữ liệu web
1.2.1 Dữ liệu Web và nhu cầu khai thác thông tin
3
Chúng ta có thể hiểu rằng khai phá Web như là việc trích
chọn ra các thành phần được quan tâm hay được đánh giá là có ích
cùng các thông tin tiềm năng từ các tài nguyên hoặc các hoạt động
liên quan tới World-Wide Web.
Một cách trực quan có thể quan niệm khai phá Web là sự kết hợp
giữa Khai phá dữ liệu, Xử lý ngôn ngữ tự nhiên và Công nghệ Web:
Khai phá web = Khai phá dữliệu + Xử lý ngôn ngữ tự nhiên + World
Wide Web.
1.2.1.1 Khai phá nội dung Web
Khai phá nội dung web tập trung vào việc khám phá một
cách tự động nguồn thông tin có giá trị trực tuyến. Khai phá nội
dung web có thể được tiếp cận theo 2 cách khác nhau: Tìm kiếm
thông tin và khai phá dữ liệu trong cơ sở dữ liệu lớn. Khai phá dữ
liệu đa phương tiện là một phần của khai phá nội dung Web, nó hứa
hẹn việc khai thác được các thông tin và tri thức ở mức cao từ nguồn
đa phương tiện trực tuyến rộng lớn.
Khai phá nội dung trang Web gồm hai phần:
a. Web Page Content
b. Search Result
1.2.1.2 Khai phá văn bản Web
Khai phá văn bản Web là việc sử dụng kỹ thuật khai phá dữ
liệu đối với các tập văn bản để tìm ra tri thức có ý nghĩa tiềm ẩm
trong nó. Dữ liệu của nó có là dữ liệu có cấu trúc hoặc không cấu
trúc. Kết quả khai phá không chỉ là trạng thái chung của mỗi tài liệu
4
văn bản mà còn là sự phân loại, phân cụm các tập văn bản phục vụ
cho mục đích nào đó.
1.2.2 Đặc điểm của dữ liệu Web
Web dường như quá lớn để tổ chức thành một kho dữ liệu
phục vụ Khai phá dữ liệu.
Độ phức tạp của trang Web lớn hơn rất nhiều so với những
tài liệu văn bản truyền thống khác.
Web là một nguồn tài nguyên thông tin có độ thay đổi cao
Web phục vụ một cộng đồng người dùng rộng lớn và đa
dạng
Chỉ một phần rất nhỏ của thông tin trên Web là thực sự hữu
ích
1.2.3 Phân cụm dữ liệu web
Sự phát triển của Internet dẫn đến nhu cầu tìm kiếm, khai
thác, tổ chức, truy cập và duy trì thông tin đối với người sử dụng
thường xuyên hơn. Những người sử dụng các máy tìm kiếm Web
thường bị bắt buộc xem xét chọn lọc thông qua một danh sách thứ tự
dài của các mẩu thông tin văn bản được trả trở lại bởi các máy tìm
kiếm. Yêu cầu phân loại tài liệu, cụ thể hơn là tài liệu Web trở thành
bài toán cho các nhà khoa học nghiên cứu và giải quyết. Các chương
sau nghiên cứu tiếp các vấn đề liên quan tới quá trình trích lọc thông
tin ở trên.
Chương 2 - Giới thiệu về rút trích thông tin
Nội dung của chương này trình bày các phương pháp sử
dụng trong rút trích thông tin từ web và phân tích ưu khuyết điểm
5
của các phương pháp này. Qua đó phân tích kiến trúc trang web và
cách trình bày các bộ dữ liệu từ cơ sở dữ liệu lên trang web, nêu ra
các ưu khuyết điểm làm tiền đề xây dựng phương pháp của luận văn.
2.1 Khái niệm
2.2 So sánh rút trích thông tin và tìm kiếm thông tin
2.3 Tổng quan về rút trích thông tin trên trang web
2.3.1 Tổng quan
Mô hình hệ thống rút trích thong tin trên trang web với các
thành phần cụ thể như sau:
Wrapper Generator: hỗ trợ người dùng xây dựng các
wrapper
Wrapper executor.
Wrapper repository.
Central Control.
Data transformation.
Data delivery.
Luận văn này tập trung vào cách thức rút trích dữ liệu tương
ứng với thành phần Wrapper generator trong hệ thống rút trích thông
tin trên web. Nội dung bên dưới chỉ mô tả và phân tích các phương
pháp được ứng dụng trong thành phần này.
2.3.2 Phương pháp bán tự động
Các hệ thống sử dụng phương pháp này cần hỗ trợ người
dùng lập trình với ngôn ngữ do hệ thống tự định nghĩa hoặc giao diện
tương tác thân thiện. Thông qua chỉ dẫn của người dùng để hướng
6
dẫn hệ thống rút trích thông tin cách thao tác trên web để đến được
trang chứa dữ liệu cần rút trích. Sau đó, người dùng cần phải chỉ rõ
các đối tượng cần rút trích và gán nhãn cho các thuộc tính của các
đối tượng này.
Phương pháp này cho độ chính xác cao nhất tuy nhiên cần sự
theo dõi và giám sát của con người. Đồng thời phương pháp này có
hiệu quả thấp khi cấu trúc của trang web thường xuyên thay đổi. Có
rất nhiều loại trang web và nhiều cách tổ chức và trình bày khác nhau
nên tốn nhiều thời gian và công sức để xây dựng từng chỉ dẫn riêng
cho mỗi loại trang web.
2.3.3 Phương pháp dựa trên cấu trúc HTML DOM của trang
web
Phương pháp phân tích cấu trúc HTML DOM khá hiệu quả,
ít có nội dung thừa và giải quyết được vấn đề xử lý các thông tin
trùng nhau, bằng cách phân tích và lấy dữ liệu từ một website có
lượng thông tin tương đối đầy đủ. Tuy nhiên mỗi website lại có định
dạng khác nhau. Việc áp dụng phương pháp này thành công trên một
website này không có nghĩa là thành công trên website khác. Và cách
lấy dữ liệu bằng phương pháp phân tích mã html nên chỉ có tác dụng
trong thời điểm hiện tại và chương trình có thể sẽ không hoạt động
được khi website thay đổi source code.
2.3.4 Phương pháp sử dụng cách thức trình bày của trang web
2.4 Hệ thống rút trích thông tin từ các trang web
2.4.1 Khái niệm
2.4.2 Phân loại hệ thống rút trích thông tin từ web
7
Dựa vào mức độ can thiệp của con người trong quá trình rút
trích thông tin, các hệ thống rút trích thông tin có thể được chia ra
làm 4 loại: thủ công, có giám sát, bán giám sát và không giám sát.
Trong đó, các hệ thống hoàn toàn tự động, không có sự can thiệp của
con người đang được các nhà nghiên cứu quan tâm nhất.
Dựa vào tầng dữ liệu được rút trích: một trang web sẽ có
nhiều trang HTML, một trang HTML sẽ có nhiều record và một
record sẽ có nhiều thuộc tính. Do đó, dựa vào kết quả thông tin rút
trích được ở tầng nào, các hệ thống rút trích được chia ra làm 4 loại:
tầng thuộc tính (attribute), tầng record, tầng trang HTML (page) và
tầng trang web (site). Hiện tại các hệ thống xử lý ở tầng thuộc tính và
record chiếm đa số. Và cho đến nay, vẫn chưa thấy xuất hiện các hệ
thống rút trích thông tin ở tầng site.
Dựa vào các phương pháp rút trích thông tin, các hệ thống
rút trích thông tin cũng được chia thành 3 dạng:
Các hệ thống dựa trên các phương pháp thủ công: sử dụng
các phương pháp gán nhãn, các cách lấy thông tin trực tiếp
từ cơ sở dữ liệu hoặc từ các dịch vụ web (web service).
Các hệ thống dựa trên các phương pháp heuristic: các
phương pháp thống kê, tập luật, sử dụng các mẫu thông tin,
dựa vào cấu trúc cây… được sử dụng để rút trích thông tin.
Các hệ thống dựa trên các phương pháp học: sử dụng các
phương pháp mô hình Markov, ngữ nghĩa, học trên cấu trúc
cây,… để giúp cho các hệ thống hiểu và rút trích thông tin
chính xác hơn.
8
2.4.3 Khảo sát một số ứng dụng rút trích thông tin từ web
Rút trích thông tin trên web là một đề tài quan trọng từ giúp
chuyển đổi nội dung trang web theo hình thức trình bày phục vụ
người duyệt web thành các nguồn thông tin được chuẩn hóa phục vụ
nhiều nhu cầu đặc biệt như so sánh sản phẩm, tìm kiếm thông
minh,
Có rất nhiều phương pháp từ đơn giản như dựa trên xử lý
chuỗi HTML của trang web đến phân tích cây HTML DOM của
trang web, khai thác hành động của người duyệt web, phân tích cách
trình bày. Các phương pháp này cũng có các tiếp cận với nguồn dữ
liệu cũng như sự can thiệp của con người khác nhau như: bán tự
động phân tích cách trình bày. Các phương pháp này cũng có các
tiếp cận với nguồn dữ liệu cũng như sự can thiệp của con người
khác nhau như: bán tự động, rút trích tự động sử dụng nguồn là
nhiều trang web có cấu trúc tương tự, rút trích tự động sử dụng một
trang web duy nhất.
2.4.4 Khảo sát một số chương trình hỗ trợ đọc tin tức RSS hiện
nay
2.4.4.1 iCA
2.4.4.2 Google Reader
2.4.4.3 iGoogle
Các chương trình hỗ trợ đọc tin RSS ở trên có ưu điểm chạy
trên nền web không cần cài đặt, tốc độ cao và có nhiều tính năng
phong phú, đáp ứng gần như mọi yêu cầu như “add star”, “like”,
“share”, “share with note”, “email”, “tagging” trong khi giao diện lại
9
hết sức đơn giản, dễ sử dụng, dễ tổ chức theo nhưng chuyên đề quan
tâm. Tuy nhiên, dữ liệu của thông tin lấy về chỉ dưới dạng link, tiêu
đề hay nội dung chỉ là phần giới thiệu không phải là tất cả nội dung
của bài viết. Muốn đọc được đầy đủ thông tin của bài viết đó thì
chúng ta phải truy cập vào bài viết gốc nằm theo đường dẫn (link)
mà các chương trình ở trên lấy đã lấy về.
Phương pháp rút trích tự động sử dụng chỉ một trang web
duy nhất là phương pháp độc lập với nội dung trang web. Phương
pháp này có khả năng áp dụng cao và không ảnh hưởng tới sự thay
đổi của cấu trúc trang web. Hơn nữa, phương pháp này cũng không
cần chuẩn bị trước tập huấn luyện cũng như chuẩn bị các trang web
liên quan để rút trích thông tin.
Chương 3 - Bóc tách dữ liệu sử dụng mô hình DOM
Từ các phương pháp rút trích thông tin trên trang web đã
trình bày ở chương 2, luận văn đã chọn phương pháp rút trích thông
tin tự động dựa trên một trang web duy nhất. Nội dung chương này
trình bày chi tiết các bước thực hiện để rút trích và đối sánh các bộ
dữ liệu có trong trang web.
3.1 Giới thiệu
3.1.1 Khái niệm cây DOM
3.1.2 Xây dựng cây DOM
Xây dựng cây DOM từ những trang Web đầu vào là một
bước cần thiết trang nhiều giải thuật trích xuất dữ liệu. Có hai
phương pháp cơ bản để xây dựng các cây DOM.
10
Sử dụng các thẻ riêng biệt: Trong đó có 2 việc cần thực hiện:
+ Làm sạch mã HTML: Một vài thẻ không cần thẻ đóng
(như <br>, <hr>) mặc dù chúng có thẻ đóng.
+ Xây dựng cây: Chúng ta có thể đi theo các khối con của
các thẻ HTML để xây dựng được cây DOM.
Sử dụng các thẻ và các hộp ảo (visual cue): Thay vì phân
tích mã HTML để sửa lỗi, có thể sử dụng sự biểu diễn hoặc
các thông tin ảo. Các bước xử lý như sau:
+ Tìm 4 đường biên của hình chữ nhật ứng với mỗi phần
tử HTML thông qua việc công cụ trình diễn của trình
duyệt
+ Theo sự tuần tự của thẻ mở và sự kiểm tra xem một
hình chữ nhật có nằm trong một hình chữ nhật khác
không, để xây dựng cây DOM.
3.1.3 Sử dụng cây DOM bóc tách thông tin
Để bóc tách thông tin cần thiết ở một node của cây DOM,
chúng ta cần chỉ rõ đường đi từ gốc của cây đến node câng bóc tách
thông tin. Đương đi này gọi là một mẫu trích xuất hay mẫu bóc tách
(XPath).
Trích xuất thông tin web dựa vào cây DOM trước tiên việc trích xuất
này được hỗ trợ bởi xây dựng cây DOM cho mã HTML của trang.
Các mẫu trích xuất này có thể được làm rõ như đường dẫn từ gốc của
cây DOM đến node chứa nội dung cần trích xuất.
Với đầu vào là một trang web có dạng liệt kê danh sách mẩu tin,
phương pháp của luận văn được thực hiện thông qua các bước:
11
Xác định các thuộc tính khóa của bộ dữ liệu
Xây dựng bộ dữ liệu mẫu trong trang web
Tìm kiếm các bộ dữ liệu có trong trang web
Xác định các thuộc tính trong một bộ dữ liệu
3.2. Xác định các thuộc tính khóa của bộ dữ liệu
Phần lớn các phương pháp rút trích thông tin trên một trang
duy nhất đều có bước đầu tiên là đi tìm vùng dữ liệu chính của trang
web để xác định danh sách các bộ dữ liệu. Tuy nhiên, bước này vô
hình chung đã loại bỏ các danh sách khác trong trang web cũng như
dễ dàng nhận dạng sai vùng dữ liệu.
Thay vào đó phương pháp đề xuất sẽ không tìm vùng chứa
nội dung chính mà trực tiếp xác định các bộ dữ liệu có trong trang
web thông qua tìm kiếm các thuộc tính
khóa của bộ dữ liệu.
3.2.1. Cách thức duyệt trên cây DOM
Do các thuộc tính chỉ bảo toàn đường dẫn từ nút lá đến nút
danh sách bộ dữ liệu, nên thuật toán sẽ bắt đầu từ các nút lá của cây
DOM và đi ngược lên nút gốc.
Nhằm giảm bớt độ phức tạp tính toán và tăng tốc độ duyệt
trên cây, cây DOM biểu diễn của trang web sẽ được lược giản hóa
bằng cách loại bỏ các nhánh không dẫn đến nút lá văn bản hoặc nút
văn bản có nội dung rỗng.
12
3.2.2 Xác định nút ứng cử là danh sách và danh sách các thuộc
tính khóa
Tại mỗi bước đi ngược lên gốc, ta xét từng nút trên cây
DOM xem có phải thể là nút chứa danh sách các bộ thuộc tính và xác
định thuộc tính khóa của các bộ thuộc tính này.
Do tính chất của thuộc tính khóa mục, nếu p là nút chứa
danh sách các bộ dữ liệu thì các thuộc tính khóa của các bộ dữ liệu
trong p phải là danh sách các nút lá văn bản có cùng đường dẫn từ
nút lá đến nút p và xuất hiện nhiều nhất (thuộc tính khóa là thuộc
tính của bộ dữ liệu và luôn xuất hiện trong bộ dữ liệu). Hơn nữa các
nút lá này phải thuộc về các cây con phân biệt và trực tiếp của p do
tính chất các bộ dữ liệu bao gồm toàn bộ một hoặc nhiều cây con
trực tiếp của nút danh sách. Nói cách khác, hai nút lá là thuộc tính
khóa không thể xuất hiện trong cùng một cây con trực tiếp của p.
Các bước trên chỉ dựa trên cấu trúc của thuộc tính khóa của
cây DOM nên vẫn có khả năng nhận nhầm cấu trúc của một cây con
của trang web thành nút danh sách bao gồm các thuộc tính khóa thỏa
các tính chất nêu trên. Vì vậy, cần có các bộ lọc kết quả như: độ
tương đồng giữa kích thước của các bộ dữ liệu trong cùng một danh
sách, độ tương đồng về cấu trúc cây của các bộ dữ liệu trong cùng
một danh sách Tùy vào tính chất và loại website muốn rút trích
thông tin ta có thể bổ sung thêm các loại bộ lọc kết quả để có được
kết quả cô đọng và chính xác hơn.
Sau bước này ta có được các danh sách và các thuộc tính
khóa tương ứng. Tuy nhiên, một loại bộ dữ liệu có thể xuất hiện
13
trong nhiều danh sách khác nhau của trang web. Vì vậy, ta cần xác
định các loại bộ dữ liệu có trong trang web và tiến hành gom nhóm
các loại bộ dữ liệu. Các bước gom nhóm cơ bản gồm:
Gom nhóm các danh sách liền kề nhau có chung đường dẫn
từ khóa lên nút danh sách. Ví dụ hai danh sách là hai thẻ
<tr> liên tiếp nhau trong một thẻ <table> trong Hình 3.6.
Gom nhóm các danh sách có chung đường dẫn từ nút khóa
lên nút danh sách và có bộ dữ liệu mẫu tương đồng nhau.
Tức là các danh sách có cấu trúc cây của các bộ dữ liệu
tương đồng nhau.
Cuối cùng, nhằm xác định được bộ dữ liệu chính của trang
web, ta cần hàm đánh giá độ mức độ quan trọng của danh sách trong
trang web.
3.2.3. Thuật toán tìm các thuộc tính khóa trên cây DOM
1. Gọi R là tập hợp các loại danh sách các thuộc tính khóa
của trang web. Ban đầu R = ∅
2. Lược giản hóa cây DOM của trang web và gọi là cây D,
chỉ giữ lại các nhánh có chứa nút văn bản.
3. Gọi T là tập hợp tất cả các nút lá của cây D là văn bản
text có nội dung khác rỗng.
4. Gọi P là tập hợp tất cả các nút cha trên cây D của các nút
t ∈ T.
14
5. ∀p ∈ P, trong tập C các nút con trực tiếp của p, tìm các
nút lá văn bản t có đường dẫn tương ứng đến các nút con
phân biệt thuộc C giống nhau.
6. Xác định nhóm g là nhóm đầu tiên có số lượng nút con
trực tiếp của p nhiều nhất.
7. Áp dụng các phương pháp lọc kết quả nhóm g có phải là
danh sách các thuộc tính khóa trong danh sách p hay không.
8. Nếu thỏa bước 6, R = R ∪ g.
9. Nếu P ≠ ∅, gán T = P và quay lại bước 3.
10. Gom nhóm cơ bản các danh sách thuộc tính khóa trong
R của cùng một loại bộ dữ liệu.
11. Sắp xếp R giảm dần dựa trên hàm f, hàm đánh giá độ
quan trọng của danh sách các thuộc tính khóa trong trang
web.
3.3. Xây dựng bộ dữ liệu mẫu trong trang web
3.3.1. Tổng quan
3.3.2. Phương pháp
Bước 1. Chuyển đổi các bộ dữ liệu thành các chuỗi phần tử
với một phần tử đại diện cho tên của nút trên cây DOM. Thực hiện
duyệt theo chiều sâu trên cây biểu diễn bộ dữ liệu và thêm các phần
tử vào chuỗi phần tử.
Bước 2. Xác định chuỗi phần tử dài nhất và tạm thời đặt làm
bộ dữ liệu mẫu m.
15
Bước 3. ∀ti là các bộ dữ liệu danh sách và ti ≠ m. Đối sánh
ti với m. Sau khi đối sánh, bổ sung vào m các phần tử của ti chưa
được đối sánh trên m.
3.4. Tìm kiếm các bộ dữ liệu có trong trang web
Dựa trên bộ dữ liệu mẫu đã tìm được ở bước trên, ta một lần
nữa đối sánh bộ dữ liệu mẫu trên toàn bộ cây DOM biểu diễn của
trang web để tìm lại tất cả bộ dữ liệu có thể có thỏa bộ dữ liệu mẫu.
Bước này rất quan trọng vì trong bước đầu của phương pháp rất có
thể bỏ qua các thuộc tính khóa khi trong trang web có nhiều danh
sách riêng biệt. Bước này cũng giúp tìm được các bộ đứng riêng lẻ
không nằm trong danh sách mà các thuật toán trước đó đều không
phát hiện được.
Do đường dẫn từ thuộc tính khóa lên tới nút chứa danh sách
của cùng một loại bộ dữ liệu luôn bảo toàn trong một trang web, ta
tiếp tục duyệt từ nút lá ngược trở lên gốc của cây DOM để so sánh
với đường dẫn của thuộc tính khóa trong dữ liệu mẫu.
Ứng với mỗi trường hợp tìm thấy, ta tiếp tục đối sánh cây
biểu diễn của bộ dữ liệu mẫu tại vị trí tìm được. Nếu độ tương đồng
giữa bộ dữ liệu mẫu và vị trí đối sánh thỏa ngưỡng tương đồng, ta
phát hiện thêm một bộ dữ liệu có trong trang web.
3.5. Xác định các thuộc tính trong một bộ dữ liệu
Dựa vào bộ dữ liệu mẫu và danh sách bộ dữ liệu tìm được
ta tiến hành đối sánh để xác định các thuộc tính trong bộ dữ liệu. Do
bộ dữ liệu mẫu là bộ dữ liệu lớn nhất vì vậy việc đối sánh trở thuộc
tính trở thành đối sánh cây với cây biểu diễn bộ dữ liệu mẫu.
16
Tương tự như việc xây dựng bộ dữ liệu mẫu ở mục 3.3, tôi
tiếp tục sử dụng phương pháp xấp xỉ là đối sánh chuỗi để đối sánh
các thuộc tính của các bộ dữ liệu với bộ dữ liệu mẫu.
Chương 4 - Xây dựng website thông tin dựa trên quá
trình trích xuất thông tin từ site khác và kết quả.
Chương này trình bày nội dung thực nghiệm của phương
pháp rút trích thông tin tự động, sử dụng phương pháp bóc tách dữ
liệu và mô hình trang web đã lấy và xử lý thông tin từ một site khác.
4.1 Bài toán cần thực hiện
Bài toán đặt ra của luận văn là sử dụng các thông tin mà RSS
cung cấp như: link, tiêu đề, phần giới thiệu của bài viết. Căn cứ vào
cấu trúc của website cung cấp tin RSS và phương pháp phân tích
HTML DOM để lấy toàn bộ nội dung của bài viết, sau đó xử lý lưu
vào cơ sở dữ liệu phục vụ cho hệ thống website tin tức.
Mục tiêu của luận văn là xây dựng nên một hệ thống hỗ trợ
người dùng chọn kênh tin tức, thu thập tin tức, quản lý các kênh tin,
tạo ra một website tin tức cho chính người dùng mà không phải lướt
từng website để đọc tin tức. Thông qua việc khảo sát một số phần
mềm đọc tin tức trong và ngoài nước, và yêu cầu từ phía người dùng,
có thể tóm tắt yêu cầu của người dùng đối với hệ thống bóc tách
thông tin như sau:
- Người dùng có thể tạo ra kênh tin tức cho riêng mình bằng
cách chỉ cần đăng ký một tài khoản và đăng nhập vào nhập đường
dẫn link tới địa chỉ trang website cần lấy tin.
17
- Người dùng có thể tổ chức, quản lý kênh tin tức của mình
với các chức năng:
- Tạo nhóm tin tức (như: tin giáo dục, xã hội, tin chứng
khoán…), sửa nhóm tin và xoá nhóm tin.
- Lựa chọn số tin tức được hiển thị.
- Người dùng còn có thể tìm kiếm thông tin.
4.2 Đánh giá và lựa chọn giải pháp
Thông qua việc khảo sát một số website, phần mềm hỗ trợ
đọc tin tức RSS ở trên, ta thấy có giải pháp để xây dựng hệ thống đó
là: Win Form và Web Form. Sau khi phân tích những thuận lợi hay
khó khăn của hai giải pháp trên. Sau khi xem xét các khía cạnh, ưu
và nhược điểm của các công nghệ cho thấy Web Form là một giải
pháp tối ưu để phát triển hệ thống. Cụ thể ở đây là xây dựng website
tổng hợp thông tin, sử dụng ngôn ngữ lập trình PHP và hệ quản trị
Cơ sở dữ liệu MySql.
Dựa vào cấu trúc các thẻ HTML lấy về từ link RSS, luận văn
sẽ dùng phương pháp dựa trên cấu trúc HTML DOM của trang web
để phân tích và xây dựng cấu trúc cây DOM. Qua đó trích xuất thông
tin và xây dựng trang web tổng hợp thông tin.
4.3 Phân tích chức năng hệ thống
4.2.1 Biểu đồ Use case
4.2.2 Đặc tả các Use Case
4.2.3 Biểu đồ tuần tự (Sequence Diagram)
4.4 Thiết kế cơ sở dữ liệu
4.3.1 Đặc tả chi tiết các bảng dữ liệu
18
4.3.2 Mô hình quan hệ
4.5 Cài đặt và thử nghiệm
4.5.1 Lấy link có trong RSS
Khi người dùng cung cấp link RSS (Ví dụ:
nhiệm vụ của hệ thống là trích
rút dữ liệu từ file RSS.
Bước 1: Thiết kế lớp Article để chứa dữ liệu mà ta trích rút
từ RSS.
Bước 2: Sử dụng lớp DOMDocument để trích rút dữ liệu từ
RSS và lưu vào mảng đối tượng Article.
4.5.2 Bóc tách nội dung chi tiết
Sau khi đã trích rút được các thông tin từ RSS và lưu vào
mảng đối tượng Article. Tiến hành bóc tách nội dung chi tiết của bài
viết.
Bước 1: Từ link đến bài viết, tải nội dung trang HTML của
website nguồn về.
Bước 2: Sử dụng lớp SimpleHtmlDom và biểu thức chính
quy (Regular Expression) để tách phần body của bài viết.
Bước 3: Sử dụng lớp SimpleHtmlDom và biểu thức chính
quy để lấy link ảnh của trong phần body. Sau đó, lưu ảnh của bài viết
về server hiện ảnh.
Bước 4: Lưu thông tin chi tiết bài viết vào Cơ sở dữ liệu.
4.5.3 Cài đặt
4.5.4 Một số màn hình giao diện đạt được
19
3. Kết luận
Luận văn đã cung cấp một số nội dung về khai phá dữ liệu
web, trình bày các phương pháp rút trích và bóc tách thông tin web
dựa chủ yếu vào quá trình lấy tin từ RSS và phân tích cấu trúc
HTML DOM. Đồng thời tôi cũng phân tích và đánh giá điểm mạnh
và điểm yếu của từng phương pháp.
Luận văn đã tiến hành nghiên cứu giải pháp trích chọn thông
tin trên Web nhằm xây dựng một website thông tin cho phép thu thập
đánh giá thông tin tự động trên Internet. Qua đó phát triển để xây
dựng hệ thống thông tin trên web tổng hợp và phân loại tin tức.