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
Trang 1HỌ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
Trang 2HỌ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
Trang 3TÓ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
Trang 4Mụ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
Trang 5Chú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
Trang 6vă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
Trang 7củ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.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
Trang 8dẫ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
Trang 9Dự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
Trang 102.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
“share”, “share with note”, “email”, “tagging” trong khi giao diện lại
Trang 11hế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
Trang 12 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:
Trang 13 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
Trang 143.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