ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Vũ Tiến Thành
BÀI TOÁN TRÍCH XUẤT THÔNG TIN CHO DỮ LIỆU
BÁN CẤU TRÚC VÀ ÁP DỤNG XÂY DỰNG HỆ THỐNG
TÌM KIẾM GIÁ CẢ SẢN PHẨM
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
HÀ NỘI 2009
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Vũ Tiến Thành
BÀI TOÁN TRÍCH XUẤT THÔNG TIN CHO DỮ LIỆU
BÁN CẤU TRÚC VÀ ÁP DỤNG XÂY DỰNG HỆ THỐNG
TÌM KIẾM GIÁ CẢ SẢN PHẨM
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
Cán bộ hướng dẫn: Th.S. Trần Thị Oanh
Cán bộ đồng hướng dẫn: CN. Trần Mai Vũ
HÀ NỘI – 2009
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 Phó Giáo sư Tiến
sĩ Hà Quang Thụy, Thạc sỹ Trần Thị Oanh, Cử nhân Trần Mai Vũ đã tận tình hướng dẫn
tôi trong suốt quá trình thực hiện khoá luận tốt nghiệp.
Tôi chân thành cảm ơn các thầy, cô đã tạo cho tôi những điều kiện thuận lợi để tôi
học tập 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 chị và các bạn sinh viên trong nhóm “Khai
phá dữ liệu” đã giúp tôi rất nhiều trong việc thu thập và xử lý dữ liệu.
Tôi xin gửi lời cảm ơn tới các bạn trong lớp K50CA và K50CHTTT đã ủng hộ
khuyến khích tôi trong suốt quá trình học tập tại trường.
Cuối cùng, tôi muốn được gửi lời cảm ơn vô hạn tới gia đình và b
ạn bè, những
người thân yêu luôn bên cạnh và động viên tôi trong suốt quá trình thực hiện khóa luận tốt
nghiệp.
Tôi xin chân thành cảm ơn !
Sinh viên
Vũ Tiến Thành
i
Tóm tắt nội dung
Trích xuất thông tin từ dữ liệu bán cấu trúc là một bài toán được sự quan tâm tại
nhiều hội nghị lớn trên thế giới [9], [10], [12], [13]. Bài toán này là một thành phần không
thể thiếu trong các ứng dụng về thu thập và trích xuất thông tin hiện nay. Một trong
những ứng dụng đó là trích xuất thông tin của sản phẩm từ các trang thương mại điện tử
để xây dựng hệ thống tìm kiếm giá cả, nhằm cung cấp thông tin tố
t nhất đến người tiêu
dùng.
Khóa luận này tập trung nghiên cứu bài toán trích xuất thông tin từ dữ liệu web và
áp dụng để xây dựng hệ thống tìm kiếm giá cả sản phẩm. Khóa luận xác định một tập luật
để giải quyết bài toán trích xuất giá khi cho biết tên sản phẩm, và trên cơ sở đó, bài toán
tự động trích xuất thông tin về tên và giá của sản phẩm được giải quyết. Khóa luận đưa ra
các bước xây dự
ng hệ thống tìm kiếm giá cho sản phẩm trên các trang web tiếng Việt,
tiến hành các thực nghiệm trên hệ thống và đánh giá kết quả. Kết quả thực nghiệm cho
thấy các thông tin được trích xuất từ hệ thống là có độ tin cậy.
ii
Mục lục
Tóm tắt nội dung i
Mục lục ii
Bảng các kí hiệu và chữ viết tắt v
Danh sách các hình vi
Danh sách bảng biểu viii
Giới thiệu 1
Chương 1. Khái quát bài toán trích xuất thông tin cho dữ liệu bán cấu trúc 3
1.1 Bài toán trích xuất thông tin 3
1.1.1 Giới thiệu bài toán 3
1.1.2 Dữ liệu của bài toán 3
1.1.3 Các hướng tiếp cận trong bài toán trích xuất thông tin 4
1.2 Bài toán trích xuất thông tin cho dữ liệu bán cấu trúc 6
1.2.1 Vấn đề đặt ra với bài toán 6
1.2.2 Một số phương pháp trích xu
ất thông tin cho dữ liệu bán cấu trúc 6
1.2.3 Phương pháp đánh giá 7
1.2.4 Ứng dụng của bài toán trích xuất thông tin cho dữ liệu bán cấu trúc 8
Chương 2. Một số phương pháp sử dụng trong bài toán trích xuất thông tin cho dữ
liệu bán cấu trúc 10
2.1 Trích xuất thông tin dựa vào cây DOM 10
2.1.1 Khái nhiệm cây DOM 10
2.1.2 Xây dựng cây DOM 10
2.1.3 Sử dụng cây DOM để trích xuất thông tin 12
2.2 Trích xuất thông tin dựa theo các mẫu biểu thức chính qui 13
iii
2.2.1 Khái niệm biểu thức chính qui 13
2.2.2 Sử dụng biểu thức chính qui để trích xuất thông tin 14
2.3 Một số giải thuật trích xuất thông tin cho dữ liệu bán cấu trúc 14
2.3.1 Hai kiểu biểu diễn của các trang giàu dữ liệu 14
2.3.2 Một số giải thuật điển hình 15
Chương 3. Áp dụng bài toán trích xuất thông tin bán cấu trúc để xây dựng hệ thống
tìm kiếm giá cả sản phẩm 21
3.1 Khái quát hệ thống tìm kiếm giá cả củ
a sản phẩm 21
3.1.1 Khái niệm 21
3.1.2 Các phương pháp xây dựng 21
3.1.3 Các hệ thống hiện tại 22
3.2 Cơ sở thực tiễn 23
3.3 Cơ sở khoa học 25
3.3.1 Phân loại trang kinh doanh 26
3.3.2 Bài toán trích xuất thông tin giá cả của một sản phẩm xác định. 27
3.3.3 Bài toán tự động trích xuất thông tin về tên và giá của sản phẩm trong các trang
kinh doanh sản phẩm 33
3.4 Các bước xây dựng hệ thống 37
3.4.1 Mô hình hệ thống 37
3.4.2 Khả năng mở rộng củ
a hệ thống 40
Chương 4. Thực nghiệm và đánh giá kết quả 41
4.1 Môi trường phần cứng và phần mềm 41
4.1.1 Cấu hình phần cứng 41
4.1.2 Công cụ phần mềm 41
4.2 Kết quả thực nghiệm 44
iv
4.2.1 Thực nghiệm trích xuất giá của một sản phẩm cho trước 44
4.2.2 Thực nghiệm xác định website kinh doanh 49
4.2.3 Thực nghiệm thu thập và trích xuất thông tin từ một website 52
4.2.4 Thực nghiệm khả năng thu thập thông tin của hệ thống 53
Kết luận 55
Tài liệu tham khảo 57
v
Bảng các kí hiệu và chữ viết tắt
Kí hiệu Diễn giải
HTML HyperText Markup Language
URL Uniform Resource Locator
XPath XML Path
DOM Document Object Model
W3C World Wide Web Consortium
vi
Danh sách các hình
Hình 1. Ví dụ về tính cấu trúc của trang web bán cấu trúc 4
Hình 2. Ví dụ về bài toán nhận dạng thực thể 5
Hình 3. Ví dụ về trích xuất nội dung chính của trang Web 8
Hình 4. Ví dụ về hệ thống tìm kiếm giá cả 9
Hình 5. Ví dụ xây dựng cây DOM sử dụng hộp ảo 12
Hình 6. Dạng biểu diễn của trang list page 15
Hình 7. Dạng biểu diễn của trang detail page 15
Hình 8. Chuyển đổi từ mã HTML sang cây EC 16
Hình 9. Ví dụ giải thuật RoadRunner [12] 20
Hình 10. Trang giới thiệu sản phẩ
m HP CQ60-203TX 24
Hình 11. Trang giới thiệu sản phẩm HP CQ60-101TX 24
Hình 12. Biểu diễn cây DOM của mã HTML hai trang về sản phẩm HP 25
Hình 13. Ví dụ về trang kinh doanh thông thường 26
Hình 14. Ví dụ về trang rao vặt 27
Hình 15. Ví dụ về trích xuất giá trong một trang web 27
Hình 16. Ví dụ về sản phẩm chứa những giá không đúng 29
Hình 17. Ví dụ về trích xuất giá thực của trang sản phẩm 29
Hình 18. Tập luật trích xuất giá sản phẩm 32
Hình 19. Luật trích xuất ảnh sản phẩm 33
Hình 20. Luật trích xu
ất thông tin bảo hành sản phẩm 33
Hình 21. Kết quả google trả về với truy vấn "nokia 1200" 35
Hình 22. Kết quả trả về của google với query "nokia 1200" + "vnđ OR usd" 36
Hình 23. Mô hình tổng quan của hệ thống 38
Hình 24. Module xác định các website kinh doanh sản phẩm và các mẫu trích xuất 39
vii
Hình 25. Module Thu thập dữ liệu và trích xuất thông tin 40
Hình 26. Trích xuất các URL liên quan 45
Hình 27. Trang Web có sự nhập nhằng giá cả 48
Hình 28. Trang Web có giá cả rõ ràng 49
viii
Danh sách bảng biểu
Bảng 1. Cấu hình phần cứng sử dụng trong thực nghiệm 41
Bảng 2.Các phần mềm sử dụng trong thực nghiệm 42
Bảng 3. Mô tả chương trình thực thi để trích xuất giá sản phẩm 43
Bảng 4. Kết quả thực nghiệm trích xuất giá thực của một sản phẩm 47
Bảng 5. Kết quả thực nghiệm xác định website kinh doanh sản phẩm 51
Bảng 6. Kết quả thực nghiệm trích xuấ
t sản phẩm 53
Bảng 7. Kết quả thực nghiệm khả năng thu thập thông tin của hệ thống 54
Bảng 8. Một số sản phẩm trích xuất được 54
1
Giới thiệu
Nhưng năm gần đây, cùng với sự phát triển mạnh mẽ của hạ tầng cơ sở mạng cũng
như công nghệ lưu trữ Internet đã trở thành một thành phần không thể thiếu trong đời
sống con người. Hàng loạt các ứng dụng dựa trên nền tảng của Internet đã ra đời để phục
vụ cho nhu cầu, lợi ích của con người. Nổi bật lên trong các ứng dụ
ng đó chính là các ứng
dụng liên quan đến thương mại điện tử. Thương mại điện tử ra đời giúp con người giảm
thiểu tối đa thời gian cũng như chi phí khi tham gia giao dịch hàng hóa.Tuy nhiên cùng
với sự phát triển của thông tin trên Internet thì các thông tin liên quan đến thương mại
điển tử cũng bùng nổ không kém, hàng loạt các trang web bán hàng trực tuyến cùng với
nó là hàng triệu sản phẩm và các thông tin liên quan đến sản phẩm làm cho con người khó
khăn trong việc tìm kiếm. Các câu hỏi: Sản phẩm nào tốt ? Giá cả cửa hàng nào tốt hơn ?
Tìm kiếm thông tin của sản phẩm ở đâu ? làm con người khó khăn khi lựa chọn một sản
phẩm cần giao dịch. Giải pháp cho vấn đề này đó chính là cần có một hệ thống tìm kiếm
phục vụ cho nhu cầu tìm kiếm này của con người các hệ thống này thường được biết đế
n
với tên gọi hệ thống tìm kiếm giá cả sản phẩm.
Chính từ nhu cầu thực tế đấy, hệ thống tìm kiếm giá cả đã được sự quan tâm của rất
nhiều công ty lớn như Yahoo, Google, Amazon…bên cạnh đó nó cũng được sự quan tâm
của công động nghiên cứu khoa học. Nhiều bài báo liên quan đến các thành phần của hệ
thống cũng xuất hiện trên nhiều hội nghị lớ
n của thế giới như: WWW
1
,
SIGMOD
2
,… [1], [3], [7] hay các sản phẩm mang tính thương mại như: PriceScan, Kelkoo,
Yahoo!Shopping Mặc dù đã tồn tại khá nhiều các hệ thống như vậy nhưng bài toán này
vẫn đặt ra rất nhiều các thách thức hiện nay. Do các hệ thống có sẵn hầu hết thu thập dữ
liệu đều thông qua việc cung cấp của các cửa hàng hay nhập dữ liệu thu công, công việc
này tốn nhiều chi phí và thời gian. Nhiều nghiên cứu đã được đưa ra để giảm thi
ểu chi phí
này, hầu hết các nghiên cứu đều tập trung vào việc áp dụng các phương pháp trích xuất tự
động dựa vào dữ liệu bán cấu trúc để xây dựng các thành phần thu thập tự động thông tin
trên các trang web bán hàng trực tuyến.
Trên cở sở các nghiên cứu đã có, luận văn cũng đã dựa trên định hướng xây dựng
thành phần trích xuất thông tin tự động dựa vào trích xuất thông tin trên dữ liệu bán cấu
1
The International World Wide Web Conferences
2
ACM Special Interest Group on Management of Data .
2
trúc để đề xuất ra một mô hình hệ thống tìm kiếm giá cả sản phẩm. Và qua mô hình đã đề
xuất khóa luận đã tiến hành các thực nghiệm để đánh giá các kết quả đạt được của mô
hình.
Khóa luận gồm 4 chương nội dung được mô tả sơ bộ dưới đây:
Chương 1. Khái quát bài toán trích xuất thông tin cho dữ liệu bán cấu trúc
khái quát bài toán trích chọn thông tin nói chung, các cách tiếp cận giải quyết
bài toán thông qua miề
n dữ liệu (có cấu trúc, không cấu trúc và bán cấu trúc) và
giới thiệu bài toán trích chọn thông tin cho dữ liệu bán cấu trúc , phương pháp
đánh giá khả năng trích xuất thông tin thông qua độ hồi tưởng (R), độ tin cây
(P) và các ứng dụng thực tiễn của bài toán.
Chương 2. Một số phương pháp sử dụng trong bài toán trích xuất thông tin
cho dữ liệu bán cấu trúc giới thiệu về các sử dụng cây DOM và biểu thức chính
qui để trích xuất thông tin. Chương này cũng
đề cập đến hai giải thuật trích
xuất tiêu biểu đó là giải thuật dựa trên hệ thống Stalker và giải thuật
RoadRunner.
Chương 3. Áp dụng trích xuất thông tin bán cấu trúc để xây dựng hệ thống tìm
kiếm giá cả sản phẩm nêu khái niệm về hệ thống tìm kiếm giá cả, giới thiệu các
hệ thống hiện tại. Chương này cũng đề cập đến cơ sở thự
c tiễn về công nghệ
web hiện tại , từ cơ sở thực tiễn kết hợp với bài toán trích xuất thông tin từ dữ
liệu bán cấu trúc để xây dựng cơ sở lý thuyết để trích xuất thông tin giá cả của
sản phẩm, đưa ra mô hình của hệ thống và nêu được tính mở của hệ thống đề
xuất.
Chương 4. Thực nghiệm và đánh giá kết quả để
đánh giá các bài toán nêu ở
phần cơ sở lý thuyết tại chương 3 về trích xuất giá cả của sản phẩm. Kết quả
thực nghiệm cho thấy được hiệu quả của phương pháp trích xuất giá cả sản
phẩm.
Phần kết luận tóm lược nội dung chính của khóa luận và nêu định hướng phát
triển trong thời gian tới.
3
Chương 1. Khái quát bài toán trích xuất thông tin cho dữ
liệu bán cấu trúc
Chủ đề chính của khóa luận là áp dụng bài toán trích xuất thông tin cho dữ liệu bán
cấu trúc để xây dựng hệ thống tìm kiếm giá cả. Chương này sẽ giới thiệu bài toán trích
xuất thông tin nói chung và bài toán trích xuất thông tin cho dữ liệu bán cấu trúc nói
riêng, từ đó đưa ra một số ứng dụng của bài toán trích xuất thông tin cho dữ liệu bán cấu
trúc, đồng thời cũng giới thiệu về phương pháp đánh giá khả năng trích xuất thông qua độ
hồi tưởng (R), độ tin cậy (P).
1.1 Bài toán trích xuất thông tin
1.1.1 Giới thiệu bài toán
Trích xuất thông tin là bài toán nhận dạng những thành phần thông tin cụ thể của
một văn bản, những thành phần này chính là hạt nhân tạo nên nội dung ngữ nghĩa của văn
bản đó [6].
Ví dụ: Với một báo cáo thời tiết ta có thể trích xuất được thông tin về các vùng, thời
gian, nhiệt độ. Với một trang web về kinh doanh sản phẩm trực tuyến ta có thể trích xuất
được thông tin về tên sản phẩm, thuộc tính c
ủa sản phẩm và giá của sản phẩm đó.
1.1.2 Dữ liệu của bài toán
Dữ liệu thông thường được chia thành 3 dạng cơ bản [17]:
• Dữ liệu không cấu trúc: Dữ liệu không cấu trúc thường dùng để chỉ dữ liệu ở
dạng tự do và không cần có cấu trúc định nghĩa sẵn ví dụ như: ngôn ngữ tự
nhiên.
• Dữ liệu có cấu trúc: Dữ liệu có cấu trúc thường dùng để chỉ dữ liệu lưu trữ trong
các hệ quản trị
cơ sở dữ liệu quan hệ như MS SQL server hay MySQL, trong đó
các thực thể và các thuộc tính được định nghĩa sẵn .
• Dữ liệu bán cấu trúc: Là dữ liệu có cấu trúc nhưng không hoàn toàn tường minh,
nó không tuân theo những cấu trúc, cách thức cấu trúc của bảng và các mô hình
dữ liệu trong cơ sở dữ liệu nhưng nó chứa những thẻ , những đánh dấu tới những
4
phần tử ngữ nghĩa riêng biệt của các bản ghi và các trường riêng biệt bên trong
dữ liệu .
Các trang web thông thường là một dạng tiêu biểu của dữ liệu bán cấu trúc, những
thành phần có cấu trúc trong trang web đó là dữ liệu được lấy từ tầng cơ sở dữ liệu (có
cấu trúc) bên dưới và hiển thị trên web thông qua các thẻ HTML…
Hình 1: Mô tả dữ liệu bán cấu trúc về trang sản phẩm, dữ liệu này chứ
a tên các sản
phẩm, giá sản phẩm và các thông tin chi tiết về sản phẩm. Các thông tin ứng với từng sản
phẩm được mô tả dưới dạng mã HTML đã định trước. Dữ liệu này được lấy từ tầng cơ sở
dữ liệu (có cấu trúc) bên dưới và hiển thị trên trang web thông qua các thẻ HTML. Đây
chính là thành phần có cấu trúc của trang web.
Hình 1. Ví dụ về tính cấu trúc của trang web bán cấu trúc
1.1.3 Các hướng tiếp cận trong bài toán trích xuất thông tin
Các bài toán trích xuất thông tin thông thường được tiếp cận theo dữ liệu mà bài
toán đó xử lý. Vì vậy có những dạng bài toán như sau:
Cấu trúc HTML
giống nhau
5
• Dữ liệu có cấu trúc
Đối với dữ liệu có cấu trúc, việc trích xuất thông tin là khá đơn giản. Vì các thông
tin đã được biểu diễn theo những định dạng chuẩn của bảng, thực thể nên có thể lấy
được những thông tin cần thiết một các dễ dàng dựa vào những truy vấn.
Ví dụ: dữ liệu có cấu trúc được lưu trữ trong hệ quản trị cơ sở dữ li
ệu MS SQL,
MySQL có thể trích xuất được những thông tin cần thiết dựa vào các lệnh SQL như
SELECT, JOIN.
• Dữ liệu không cấu trúc
Đối với dữ liệu không cấu trúc thì có một số bài toán về trích xuất thông tin như
nhận dạng và trích xuất thực thể: tên người, tên tổ chức… Hình 2 là một ví dụ về bài toán
nhận dạng thực thể.
Hình 2. Ví dụ về bài toán nhận dạng thực thể
Để giải quyết bài toán trích xuất thực thể thì có nhiều cách tiếp cận như HMM,
SVM hay CRF…ngoài ra còn một giải thuật khá nổi tiếng đó là giải thuật DIPRE - Dual
6
Iterative Pattern Relation Expansion của BRin [8] trong việc trích xuất cặp thực thể quan
hệ tên sách và tác giả đối với trang amazon.com.
• Dữ liệu bán cấu trúc
Web là dữ liệu điển hình trong dữ liệu bán cấu trúc. Trích xuất thông tin web đó là
vấn đề trích xuất các thành phần thông tin mục tiêu từ những trang Web. Một chương
trình hay một luật trích xuất thường được gọi là một wrapper [2].
Phương pháp trích xuất này có nhiều hướng tiếp cận nh
ư sử dụng cây DOM [15].
Phương pháp này sẽ phân tích mã nguồn HTML dưới dạng một cây các node, mỗi node là
một thẻ HTML, quá trình trích xuất thông tin sẽ dựa vào đường đi từ gốc đến node chứa
thông tin cần trích xuất.
1.2 Bài toán trích xuất thông tin cho dữ liệu bán cấu trúc
1.2.1 Vấn đề đặt ra với bài toán
Bài toán trích xuất thông tin cho dữ liệu bán cấu trúc là rất hữu dụng bởi vì nó cho
phép chúng ta thu được và tích hợp dữ liệu từ nhiều nguồn để cung cấp cho những dịch
vụ giá trị gia tăng như : thu được những thông tin Web một cách tùy ý, hệ thống tìm kiếm
giá cả, hay meta-search. Ngày càng nhiều các công ty, các tổ chức phổ cập các thông tin ở
trên Web, thì khả năng trích xuất dữ liệu từ các trang Web đó ngày càng trở nên quan
trọng.
Bài toán này đã được b
ắt đầu nghiên cứu vào giữa những năm của thập niên 1990
bởi nhiều công ty và các nhà nghiên cứu [2].
1.2.2 Một số phương pháp trích xuất thông tin cho dữ liệu bán cấu trúc
Như ta đã nói về một số hướng tiếp cận ở mục 1.1.3 đối với dữ liệu bán cấu trúc thì
bài toán trích xuất có một số phương pháp điển hình như:
• Phương pháp thủ công
Quan sát một trang Web và mã nguồn của nó, người lập trình sẽ tìm một vài mẫu và
viết chương trình để trích xuất các dữ liệu mục tiêu. Để làm đơn giản hơn cho người lập
trình, một vài ngôn ngữ
miêu tả mẫu và các giao diện người dùng đã được xây dựng. Tuy
nhiên với phương pháp này thì không thể làm việc với một số lượng lớn các trang [2].
7
• Wrapper qui nạp
Đây là phương pháp bán tự động. Nó được đề xuất vào khoảng năm 1995-1996.
Trong phương pháp này thì một tập hợp các luật trích xuất được học từ một bộ các trang
đã được gán nhãn bằng tay. Sau đó các luật này sẽ được dùng để trích xuất các thành phần
dữ liệu từ những trang có định dạng tương tự. Một số giải thuật tiêu biểu như: Stalker [5],
WIEN [13] (được sử dụ
ng trong máy tìm kiếm lycos).
• Phương pháp tự động
Được đề xuất trong năm 1998, phương pháp này tự động tìm các mẫu hoặc các cấu
trúc để trích xuất thông tin từ những trang cho trước. Vì phương pháp này không cần đến
sự gán nhãn bằng tay nên nó có thể trích xuất được dữ liệu từ một lượng khổng lồ các
trang; một số giải thuật tiêu biểu như RoadRunner [12], bootstrapping [1].
1.2.3 Phương pháp đánh giá
Để đánh giá chất lượng phương pháp trích xuất thông tin cho dữ liệu bán cấu trúc
người ta thường sử dụng một số độ đo như độ hồi tưởng (R), độ tin cậy (P).
Giả sử sau khi sử dụng bài toán trích xuất cho một tập dữ liệu gồm n tài liệu. Kết quả
trích xuất được là m tài liệu.Kết quả trích xuất đúng là q tài liệu khi đó độ h
ồi tưởng R và
độ chính xác P sẽ được tính theo công thức (1) và (2).
%100
q
x
n
R = (1)
%100
q
x
m
P = (2)
Ví dụ:
Nếu tập dữ liệu cần trích xuất là 100 (tài liệu).
Dữ liệu trích xuất được là: 97 (tài liệu).
Dữ liệu trích xuất đúng là: 90 (tài liệu) .
%100
100
90
xR =
= 90 %
%100
97
90
xP =
= 92,78 %
8
1.2.4 Ứng dụng của bài toán trích xuất thông tin cho dữ liệu bán cấu trúc
• Nhận dạng và trích xuất nội dung chính của trang Web
Với một trang web ngoài những thành phần mang thông tin chính thì còn những
thành phần ít có ý nghĩa về mặt thông tin như quảng cáo, các menu Việc nhận dạng và
trích xuất nội dung chính của trang web giúp giảm thiểu việc lưu trữ thông tin và tối ưu
kết quả trả về trong các máy tìm kiếm vì máy tìm kiếm chỉ phải lưu nội dung chính của
trang web và tìm kiếm trong nội dung chính này. Hình 3 dưới đây là ví dụ trích xuất nộ
i
dung chính của trang web. Các giải thuật được đề xuất như ContentExtractor và
FeatureExtractor của Debnath [9], [10].
Hình 3. Ví dụ về trích xuất nội dung chính của trang Web
Nội dung chính
9
• Hệ thống tìm kiếm giá cả sản phẩm
Hệ thống cho phép người sử dụng so sánh được giá cả của sản phẩm mà họ
muốn mua. Hệ thống này phải duyệt qua các trang web kinh doanh sản phẩm để
trích xuất các thông tin hữu dụng về sản phẩm. Hình 4 dưới đây là ví dụ về một hệ
thống tìm kiếm giá cả sản phẩm.
Hình 4. Ví dụ về hệ thống tìm kiếm giá cả
10
Chương 2. Một số phương pháp sử dụng trong bài toán trích
xuất thông tin cho dữ liệu bán cấu trúc
Chương 2 sẽ giới thiệu hướng tiếp cận trích xuất sử dụng cây DOM [15], [6] và biểu
thức chính qui [2]. Đồng thời chương cũng trình bày hai giải thuật trong bài toán trích
xuất thông tin cho dữ liệu bán cấu trúc cũng như các ưu nhược điểm của nó. Đây cũng
chính là những tiền đề để xây dựng phương pháp trích xuất giá cả sản phẩm.
2.1 Trích xuất thông tin dựa vào cây DOM
2.1.1 Khái nhiệm cây DOM
Theo W3C thì DOM (Document Object Model) là một giao diện lập trình ứng dụng
(API) cho các văn bản HTML hợp lệ và các văn bản XML có cấu trúc chặt chẽ. Nó định
nghĩa cấu trúc logic của các văn bản và cách thức một văn bản được truy cập và thao tác
[15]. Ví dụ về một bảng (table) được lấy văn bản HTML:
<TABLE>
<TBODY>
<TR>
<TD>Shady Grove</TD>
<TD>Aeolian</TD>
</TR>
<TR>
<TD>Over the River,
Charlie</TD>
<TD>Dorian</TD>
</TR>
</TBODY>
</TABLE>
Dạng biểu diễn cây DOM của mã HTML
2.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 [2]. Có hai phương pháp cơ bản để xây dựng các cây DOM.
11
- Sử dụng các thẻ riêng biệt
Hầu hết các thẻ HTML làm việc trong một cặp. Mỗi cặp chứa một thẻ mở <> và một
thẻ đóng </>. Bên trong mỗi cặp thẻ có thể có những cặp thẻ khác, kết quả là cấu trúc trở
nên chồng chéo. Xây dựng một cây DOM từ một trang Web bằng cách sử dụng mã
HTML của nó là một vấn đề cần thiết. Trong một cây DOM, mỗi cặp th
ẻ là một node,
những cặp thẻ ẩn bên trong là node con của node hiện tại. Có hai nhiệm vụ cần thi hành
đó là:
¾ Làm sạch mã HTML: Một vài thẻ không cần thẻ đóng (như <li>, <hr>,<p>) mặc
dù chúng có thẻ đóng. Bởi vậy một thẻ đóng nên được chèn vào để tất cả các thẻ
được cân bằng. Các thẻ được định dạng không tốt cũng cần thiết được sửa chữa.
Một thẻ
sai thường là một thẻ đóng, đó là thẻ cắt ngang các khối ẩn bên trong. Ví
dụ: <tr> … <td> … </tr> … </td>, sẽ rất khó để sửa lỗi trường hợp này nếu
tồn tại sự chồng chéo đa cấp.
¾ 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 (ví dụ như: địa chỉ trên màn hình mà các thẻ được biểu diễn) để suy luận mối quan
hệ có cấu trúc của các thẻ và có thể xây dựng được cây DOM. Phương thức xây dựng có
thể phân tích mã HTML thành cây DOM, miễn là trình duyệt có thể hiển thị được đoạn
mã đó một cách chính xác.
Trong một trình duyệt web, mỗi phần tử HTML (chứa đựng một th
ẻ mở, các thuộc
tính tùy chọn, nội dung HTML được nhúng tùy ý và một thẻ đóng, thẻ này có thể thiếu)
được biểu diễn như một hình chữ nhật. Thông tin ảo này có thể lấy được sau khi mã
HTML được biểu diễn trên trình duyệt. Một cây DOM sau đó có thể được xây dựng dựa
vào các thông tin ảo này. 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, ví dụ: Internet Explorer.
¾ Theo sự tuần tự của các 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.
12
Hình 5 là một ví dụ minh họa về sử dụng visual cue:
Một đoạn mã HTML có 3 lỗi. sử dụng thông tin ảo có thể dễ dàng xây dựng được
cây DOM.
Hình 5. Ví dụ xây dựng cây DOM sử dụng hộp ảo
2.1.3 Sử dụng cây DOM để trích xuất thông tin
Để trích xuất được 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ần trích xuất thông tin. Đường đi này gọi là một XPath
[16]hay mẫu trích xuất.
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 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í dụ :
Đây là cây DOM của một đoạn mã HTML chứa thông tin về cuốn sách, gồm tên
cuốn sách (title) và tên tác giả (author). Bài toán đặt ra là sử dụng cây DOM này trích
xuất các thông tin về tên sách và tác giả viết sách. Mẫu trích xuất được xây dựng sau:
13
2.2 Trích xuất thông tin dựa theo các mẫu biểu thức chính qui
2.2.1 Khái niệm biểu thức chính qui
Một biểu thức chính qui có thể được sử dụng để mô hình mã hóa HTML [2]. Cho
một tập các ký tự alphabe ∑ và một token “#text” không thuộc ∑, một biểu thức chính qui
trên ∑ là một chuỗi trên ∑∪{#text, *,?,|,(,)} được định nghĩa như sau :
Một chuỗi rỗng ε và tất cả các phần tử trong ∑ ∪ {#text} đều là một biểu thức chính
qui.
Nếu A và B là một biểu thức chính qui, thì AB, (A|B) và (A)
?
cũng là một biểu thức
chính qui, trong đó (A|B) tức là A hoặc B và (A)
?
thức là (A|ε).
Nếu A là một biểu thức chính qui, thì (A)
*
cũng là biểu thức chính qui, trong đo
(A)
*
= {ε, A, AA, AAA,…}.
Chúng ta cũng sử dụng (A)
+
để chỉ A(A)
*
. Nếu biểu thức chính qui không có chứa
(A|B) thì nó gọi là biểu thức chính qui kết hợp tự do. Một biểu thức chính qui thường
dùng để thể hiện một mẫu trích xuất.
Sample DOM Tree Extraction
Mẫu trích xuất tên sách: HTMLÆBODYÆBÆCharacterData
Mẫu trích xuất tên tác giả: HTMLÆ BODYÆFONTÆAÆ CharacterData
HTML
BODY
FONT B
Age of Spiritual
Machines
Ray
Kurzwei
Element
Character-Data
HEADER
A
14
2.2.2 Sử dụng biểu thức chính qui để trích xuất thông tin
Với một biểu thức chính qui, một otomat hữu hạn trạng thái có thể được xây dựng
và được sử dụng để so khớp sự xuất hiện của nó trong chuỗi tuần tự các trang web. Trong
quá trình này, dữ liệu có thể được trích xuất.
Ví dụ: Với mã HTML như sau:
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Tinh Tong cua cac so tu 1->n</title>
</head>
Để lấy được phần tiêu đề của đoạn mã này thì ta có thể xây dựng biểu thức chính qui
như sau: <head>.*?<title>(#text)</title>
2.3 Một số giải thuật trích xuất thông tin cho dữ liệu bán cấu trúc
2.3.1 Hai kiểu biểu diễn của các trang giàu dữ liệu
Các trang giàu dữ liệu được chia thành hai loại thông qua sự biểu diễn của chúng [2]
- List Page: là trang chứa đựng một vài danh sách của các đối tượng. Hình 6 giới
thiệu một list page. Có hai dạng trang list, đó là trang list bố trí theo chiều ngang
hoặc chiều dọc. Bên trong mỗi vùng, bản ghi dữ liệu được định dạng sử dụng cùng
một mẫu và mẫu sử dụng trong hai vùng khác nhau là khác nhau [2].
- Detail Page: là trang chỉ giới thiệu một đối tượng đơ
n. Ví dụ hình 7 là một trang
detail page giới thiệu về sản phẩm . Nó chứa đựng tất cả các thuộc tính của sản phẩm
như: tên, ảnh, giá, thông số kỹ thuật, thời gian bảo hành [2] .