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

LƯỢC ĐỒ TỐI ƯU CHO TRÍCH RÚT DỮ LIỆU WEBSITE

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 (590.64 KB, 31 trang )

Giảng viên
Học viên
Mã số
Lớp
: GS.TSKH HOÀNG VĂN KIẾM
: HOÀNG PHI
: CH0901038
: CAO HỌC KHÓA 4
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Chuyên đề: SEMINAR CÔNG NGHỆ TRI THỨC
Database
LƯỢC ĐỒ TỐI ƯU CHO TRÍCH
RÚT DỮ LIỆU WEBSITE
Tp.HCM 03-2012
Chuyên ngành: KHOA HỌC MÁY TÍNH
Mã số: 60 48 01
 
Seminar Công nghệ tri thức
Hoàng Phi – CH0901038 2
Tôi xin cảm ơn
Giáo Sư Tiến sĩ khoa học Hoàng Văn Kiếm
Người đã tận tình hướng dẫn định hướng nội dung chuyên đề này
Tôi xin cảm ơn
Các bạn lớp Cao Học Khóa 4
Đã đó góp ý kiến về nội dung bài viết này
Tôi xin chân thành cảm ơn
Trường Đại học Công Nghệ Thông Tin
Đã tạo điều kiện cho tôi học tập và nghiên cứu chuyên đề này
Hoàng Phi
Tháng 03 năm 2012


Seminar Công nghệ tri thức
MỤC LỤC
DANH MỤC HÌNH ẢNH
ỤC THUẬT TOÁN, CÔNG THỨC
Hoàng Phi – CH0901038 3
Seminar Công nghệ tri thức
KÝ HIỆU VÀ VIẾT TẮT
Danh mục các ký hiệu sử dụng trong chuyên đề
Ký hiệu Thuật ngữ Ý nghĩa
HTML Hyper Text Markup Language Ngôn ngữ dạng văn bản, các
trình duyệt web dùng nó để
hiển thị ra cho người dùng.
XML Extensible Markup Language Ngôn ngữ văn bản có cấu
trúc
DOM Document Object Model Mô hình đối tượng văn bản
có những qui định trình bày
các đối tượng trong HTML.
XPath XML Path Language Ngôn ngữ truy vấn các nút
trong văn bản XML
CSDL Cơ Sở Dữ Liệu
Website Website Website chứa nhiều trang
web bên trong nó
Wrapper Wrapper Luật để rút trích dữ liệu trang
web.
Adversarial Adversarial Mô hình đối lập, dùng để rút
trích dữ liệu trang web.
Probabilistic Probabilistic Mô hình xác xuất, dùng để
rút trích dữ liệu trang web.
Hoàng Phi – CH0901038 4
Seminar Công nghệ tri thức

Chương 1:
GIỚI THIỆU
1.1 Mở đầu
Đa số các ứng dụng website sử dụng những ngôn ngữ lập trình để tạo
ra nội dung HTML với thông tin có cấu trúc lấy ra từ những CSDL. Những
website đó có thể là để bán hàng, giải trí, kho lưu trữ học tập, danh mục thư
viện, hoặc dạng biểu mẫu. Các trang web với nội dung tạo ra có cấu trúc tương
tự nhau giúp cho các hệ thống trích rút thông tin có khả năng sử dụng những
luật đơn giản để trích rút tất cả các trang web của website. Các luật như thế gọi
là những wrapper, và tầm ảnh hưởng của các wrapper thông qua những ví dụ
về gán nhãn được nghiên cứu rộng rãi với 23. Thông tin trích rút được có thể
sử dụng để tạo lại một phần hoặc tất cả CSDL.
Ví dụ chúng ta có thể sử dụng một số wrapper để trích rút thông tin về
các nhà hàng và các đánh giá từ những website tổng hợp dữ liệu như Yelp
(yelp.com) và Zagat (zagat.com). Khi một wrapper đã học cho một website thì
nó có thể được sử dụng lại để trích rút thông tin liên tục về nhà hàng và đánh
giá mới nhằm cung cấp nó cho một website khác. Các thông tin được xem là
luôn cần cập nhật mới nhất như giờ hoạt động và số điện thoại liên lạc.
Một ví dụ khác ta có thể xem xét là hiện nay tại Việt Nam có rất nhiều
doanh nghiệp bước vào kinh doanh trên mạng, ta có thể xây dựng một website
dùng so sánh giữa các doanh nghiệp lẫn nhau để chọn được sản phẩm chất
lượng với giá tốt nhất. Để thực hiện điều này các wrapper được tạo ra cho từng
website bán hàng để trích rút danh sách các sản phẩm, tổng hợp thông tin sản
phẩm, so sánh các sản phẩm và đưa những thông tin đó đến người dùng. Các
wrapper thường được tạo có mối quan hệ tương đối với một số nhãn nên nó là
chiến lược chiếm ưu thế giúp rút trích dữ liệu từ những trang web động.
- 5 -
Seminar Công nghệ tri thức
1.2 Quan điểm chọn vấn đề nghiên cứu
Vấn đề rút trích dữ liệu website mang tính áp dụng thực tế cao. Bên

cạnh đó những nghiên cứu trước đây chưa có kết quả tốt khi phải đối diện với
những nội dung trang web hay thay đổi. Dưới đây là một số ý tưởng áp dụng
thực tiễn:
A)
A)
Xây dựng thư viện tổng hợp tự động để hỗ trợ giáo dục trong
Xây dựng thư viện tổng hợp tự động để hỗ trợ giáo dục trong
nghiên cứu
nghiên cứu
: Hiện nay thông tin trên mạng là rất đa dạng và rất nhiều.
: Hiện nay thông tin trên mạng là rất đa dạng và rất nhiều.
Bên cạnh đó tài liệu dùng hay tham khảo để đào tạo các cấp còn mang
Bên cạnh đó tài liệu dùng hay tham khảo để đào tạo các cấp còn mang
tính cục bộ ở trường hay kinh nghiệm của giáo viên phụ trách giảng dạy.
tính cục bộ ở trường hay kinh nghiệm của giáo viên phụ trách giảng dạy.
Do đó việc xây dựng thư viện tổng hợp thông tin một cách tự động là rất
Do đó việc xây dựng thư viện tổng hợp thông tin một cách tự động là rất
hữu ích cho học viên làm nguồn tham khảo. Từ thư viện nó có thể cung
hữu ích cho học viên làm nguồn tham khảo. Từ thư viện nó có thể cung
cấp mức độ uy tín của các nguồn tài liệu khoa học, tổng hợp các đánh
cấp mức độ uy tín của các nguồn tài liệu khoa học, tổng hợp các đánh
giá về tài liệu từ các nguồn khác nhau, … Ở đây các nhà nghiên cứu đào
giá về tài liệu từ các nguồn khác nhau, … Ở đây các nhà nghiên cứu đào
tạo về giáo dục có thể đóng góp kinh nghiệm của mình để đưa ra các
tạo về giáo dục có thể đóng góp kinh nghiệm của mình để đưa ra các
tiêu chí tốt nhằm tổng hợp các nguồn tài liệu giúp thư viện có thể tự
tiêu chí tốt nhằm tổng hợp các nguồn tài liệu giúp thư viện có thể tự
động tổng hợp thông tin hữu ích nhất cho học viên.
động tổng hợp thông tin hữu ích nhất cho học viên.
B)

B)
Thương mại điện tử:
Thương mại điện tử:
Ở Việt Nam, mức độ phát triển thương mại điện
Ở Việt Nam, mức độ phát triển thương mại điện
tử nổi lên trong những năm gần đây, ngày càng phổ biến các doanh
tử nổi lên trong những năm gần đây, ngày càng phổ biến các doanh
nghiệp bán sản phẩm của mình trên mạng, vì vậy rất nhiều các website
nghiệp bán sản phẩm của mình trên mạng, vì vậy rất nhiều các website
mua bán hàng khuyến mãi theo nhóm ra đời. Do đó vấn đề tổng hợp
mua bán hàng khuyến mãi theo nhóm ra đời. Do đó vấn đề tổng hợp
thông tin, đánh giá, so sánh về sản phẩm giúp đưa ra cho người dùng
thông tin, đánh giá, so sánh về sản phẩm giúp đưa ra cho người dùng
cái nhìn tổng quan mang tính ứng dụng rất cao.
cái nhìn tổng quan mang tính ứng dụng rất cao.
C)
C)
Hỗ trợ việc làm
Hỗ trợ việc làm
: Để tạo ra nhiều cơ hội việc làm hơn nữa cho người
: Để tạo ra nhiều cơ hội việc làm hơn nữa cho người
Việt Nam từ các nguồn công việc khắp nơi trên thế giới thì cần có bộ
Việt Nam từ các nguồn công việc khắp nơi trên thế giới thì cần có bộ
máy rút trích thông tin để giải quyết bài toán đơn giản hóa qui trình làm
máy rút trích thông tin để giải quyết bài toán đơn giản hóa qui trình làm
việc và phá bỏ rào cản về ngôn ngữ.
việc và phá bỏ rào cản về ngôn ngữ.
Vấn đề nghiên cứu rút trích dữ liệu đã được nghiên cứu từ lâu, nhưng
do trong thực tế các trang web ngày càng trở nên rất động và phức tạp với sự
phát triển liên tục của chuẩn mã HTML (nay đã tới phiên bản 5), mà các

wrapper lại dựa chủ yếu vào cấu trúc của các trang web để rút trích dữ liệu,
chính vì vậy nó gặp phải vấn đề cơ bản là không thể tái sử dụng các wrapper
- 6 -
Seminar Công nghệ tri thức
trước đây. Ví dụ như nội dung trang web thường xuyên thay đổi thì đa số đòi
hỏi wrapper phải học lại cấu trúc. Với những khó khăn đó đòi hỏi cần phải
nghiên cứu những mô hình đáng tin cậy để có thể áp dụng được vào thực tế.
1.3 Giới thiệu vấn đề nghiên cứu
Từ việc xem xét các vấn đề khó khăn trong việc xây dựng các wrapper
trong rút trích dữ liệu web thì việc cần thiết trong nghiên cứu là cần phải tạo ra
các wrapper có độ ổn định cao khi làm việc với sự thay đổi trong website. Có
hai mô hình được nghiên cứu chính thức đó là: Adversarial và Probabilistic.
Bên trong cả hai mô hình đó có những thuật toán hiệu quả được xây dựng làm
cho nó được xem là wrapper có độ tin cậy cao nhất hiện nay. Thông qua đánh
giá trên những website thực tế những thuật toán đó mang lại hiệu quả cao khi
làm việc với những trang web có sự thay đổi, và giảm khả năng vô hiệu hóa
wrapper lên đến 500% so với những kỹ thuật hiện tại 1.
1.3.1 Wrapper bất khả dụng
Hình 1.1 Cấu trúc một trang web HTML
Hình 1.1 là một cấu trúc văn bản dạng cây XML, để rút trích dữ liệu về
số phiếu ủng hộ (Votes) thì chúng ta có thể sử dụng một cấu trúc XPath sau:
Công thức 1.1
Tuy nhiên có rất nhiều sự thay đổi nhỏ có thể dẫn đến việc wrapper này
bị bất khả dụng như: thẻ đầu tiên bị xóa hoặc gom với thẻ thứ hai, thẻ hoặc
thêm vào dưới thẻ thứ hai, thứ tự của và bị thay đổi, một phần tử mới thêm
vào,
- 7 -
Seminar Công nghệ tri thức
Vấn đề wrapper bị bất khả dụng được đề cầp nhiều như là một khó khăn
trong nhiều nghiên cứu 45. Còn từ thực tế kinh nghiệm của nhóm rút trích dữ

liệu trên dữ liệu cực lớn tại Yahoo 7 khi không quan tâm đến mức độ ổn định
của wrapper thì quan sát thấy rằng wrapper đã học có:
 Chu trình sống (wrapper vẫn còn sử dụng được để trích rút thông tin)
trung bình khoảng 2 tháng.
 Trung bình mỗi ngày 1 trong 50 wrapper bị bất khả dụng.
Kết quả, để wrapper tiếp tục sử dụng được thì cần phải đánh nhãn lại
các trang web bằng tay một cách thường xuyên để wrapper có thể học lại được
những dữ liệu được đánh nhãn mới. Quá trình này tiêu tốn công sức và chi phí
cao.
1.3.2 Những nghiên cứu trước đây để tăng mức độ ổn định cho
wrapper
Myllymaki và Jackson đã quan sát thấy rằng có một số wrapper có độ ổn
định hơn trong thực tế khi thay thế Công thức 1.1 bằng 2 XPath sau để rút trích
dữ liệu về số phiếu ủng hộ:
Nhận xét, hai wrapper này khai thác thông tin cục bộ hơn , và ít bị ảnh
hưởng do những thay đổi làm cho bất khả dụng. Hai tác giả trên đã xây dựng
những wrapper có độ ổn định hơn bằng tay, tuy nhiên vấn đề học những luật đó
một cách tự động vẫn đang còn bỏ ngõ. Bên cạnh đó nghiên cứu 6 cũng đưa ra
khuôn mẫu đầu tiên để ghi nhận lại độ ổn định của những wrapper theo thời
gian, và mô hình đó được sử dụng để đánh giá mức độ ổn định của wrapper
theo một nguyên tắc riêng. Tuy những kỹ thuật này cho phép lựa chọn những
XPath để đánh giá mức độ ổn định nhưng vấn đề xây dựng những wrapper có
độ tin cậy cao vẫn còn đó. Đây là vấn đề sẽ được lựa chọn để nghiên cứu trong
chuyên đề này.
- 8 -

(A)
Trang chưa có nhãn
Những wrapper theo phân cấp trang
Thời

gian
Seminar Công nghệ tri thức
1.3.3 Vấn đề nghiên cứu
Vấn đề nghiên cứu đặt ra là làm sao xây dựng những wrapper có độ ổn
định tối ưu. Trong việc xây dựng những wrapper này thì ngôn ngữ sử dụng để
mô tả wrapper đóng vai trò rất quan trọng, ví dụ: XPath. Nghiên cứu đưa ra
cách tiếp cận được mô tả trong 1. Nó bao gồm những công việc của một hệ
thống học tao ra wrapper. Tại thời điểm có một bộ trang web , trong số đó có
một số trang được gán nhãn, ví dụ thông tin quan tâm đã được chỉ định cụ thể
với . Tại thời điểm website có các phiên bản mới của các trang tương ứng là .
Những wrapper đảm nhiệm 2 công việc chính:
A) Rút trích dữ liệu phần còn lại của website bằng cách tổng
quát hóa từ nhãn có được từ
B) Rút trích dữ liệu những phiên bản tương lai của website
bằng cách làm ổn định những thay đổi cấu trúc.
Hai tình huống trên rút trích trên rất khác nhau và nó cũng có những yêu
cầu về khả năng thực thi và độ ổn định cũng khác nhau đối với việc xây dựng
wrapper. Trong thình huống (A) website chứa hàng triệu trang web có cùng cấu
- 9 -
Hình 1.2 Cách tiếp cận tổng quan
Seminar Công nghệ tri thức
trúc do đó ta cần wrapper thực thi cực nhanh và có vẫn còn tính khả dụng đối
với những thay đổi nhỏ. Ngược lại trong tình huống (B) cấu trúc của trang bị
thay đổi lớn theo thời gian và nó cần những wrapper có tính ổn định cao để vẫn
còn tính khả dụng đối với thay đổi lớn về cấu trúc trang web. Để giải quyết tình
huống (B) chúng ta thực hiện 2 bước: gán nhãn cũ của từng trang cho những
phiên bản tương lai của bộ trang . Ta so sánh với để tìm ra vị trí của nhãn
trong . Sau khi đã có nhãn cho , thì bước tiếp theo là huấn luyện wrapper để rút
trích dữ liệu của các trang . Thuật toán huấn luyện này được dùng cũng được
xem là để giải quyết tình huống (A).

Vấn đề thường gặp phải tiếp theo là mức độ ổn định của wrapper đối với
độ sâu của trang web. Giả sử ta có trang với vị trí đã được đánh nhãn, và
chúng ta muốn rút trích dữ liệu của 1 phiên bản tương lai của . Việc xây dựng
mô hình được đặt ra là làm thế nào biết được tất cả các thay đổi có thể theo
thời gian. Dựa trên mô hình học dữ liệu lưu trữ 6, nghiên cứu 1 đưa ra những
thuật toán cho wrapper với hai ý tưởng về mức độ ổn định:
i Probabilistic robustness, giúp wrapper có khả thi trong tương lai theo
mong đợi.
ii Adversarial robustness, giúp wrapper có khả thi trong tương lai ở tình
huống xấu nhất.
- 10 -
Seminar Công nghệ tri thức
Chương 2:
CƠ SỞ LÝ LUẬN
2.1 Cây có nhãn theo thứ tự
Đặt là một trang web. Trang được biểu diễn dưới dạng cây có nhãn
theo thứ tự tương ứng với phân tích cây của trang web theo HTML DOM. Ví dụ
Hình 1.1 biểu diễn HTML của một trang web. Ở đó các phần tử con của từng
nút được sắp xếp, ví dụ được sắp trước . Từng nút có nhãn riêng thể hiện cho
loại nút, ví dụ . Tất cả những nút lá gọi là nút văn bản, ví dụ nút có nội dung là .
Do chúng ta chỉ quan tâm đến sự thay đổi cấu trúc nên những nút văn bản
được thuật toán gán cho nhãn đặc biệt là .
Ta gọi 2 trang web và được gọi là đẳng cấu, được viết là , nếu như
chúng có cùng cấu trúc và nhãn. Hai nút và được xem là đẳng cấu () khi và
ánh xạ lẫn nhau thông qua nhãn và thứ tự nút.
2.2 Thao tác chỉnh sửa
Trong khi mô hình hóa tình huống mà trang web sẽ được thay đổi thì mỗi
sự thay đổi sẽ là một trong ba thao tác chỉnh sửa: thêm một nút, xóa một nút
hoặc sửa nhãn của nút.
Mỗi thao tác chỉnh sửa đều tạo ra một cây có nhãn theo thứ tự mới. Do

đó đối với một nút được thêm hoặc xóa đi thì sẽ có một ánh xạ ngầm giữa
phiên bản mới và cũ của nút trong hai cây. Đối với cây đầu tiên thì những nút bị
xóa trong quá trình chỉnh sửa sẽ không được ánh xạ, còn đối với cây cuối cùng
thì những nút được thêm trong quá trình chỉnh sửa sẽ không được ánh xạ.
Gọi là một chuỗi các chỉnh sửa, ta có là thể hiện cho phiên bản mới của
những trang web sau khi thực hiện chuỗi thao tác cho các trang .
- 11 -
Seminar Công nghệ tri thức
2.3 Sự biến đổi của trang web
Gọi là quá trình biến đổi một trang để tạo ra phiên bản mới bằng cách
thực hiện chuỗi chỉnh sửa trên . Do chúng ta quan tâm đến những thay đổi về
cấu trúc nên tham số đóng vai quan trọng trong một thao tác chỉnh sửa nội
dung trang web. Lưu ý rằng chúng ta không quan tâm đến những thay đổi mà
không ảnh hưởng đến cây có nhãn theo thứ tự.
Tuy nhiên tham số không được cho trước mà chúng ta chỉ có phiên bản
mới của trang web .
2.4 Wrapper và mức độ ổn định
Cho là một trang web với một nút cần rút trích dữ liệu . Chúng ta muốn
tạo một wrapper có khả năng rút trích dữ liệu từ những phiên bản mới của . Đặt
là phiên bản mới của trang web. Chúng ta muốn tìm vị trí của 1 nút riêng biệt
trong .
Các nút cần rút trích dữ liệu giả sử là không bao giờ bị xóa trong quá
trình trang web biến đổi. Ví dụ, trang web có thể thay đổi nhưng thông tin về
cuốn sách hay các đánh giá về nó thì luôn có. Có thể nói rằng giả sử trên là
hợp lý bởi vì chúng ta chỉ quan tâm tới yếu tố quan trọng là nội dung trang web.
Xem xét ví dụ như trong Hình 2.3, mỗi nút trong cây có nhãn theo thứ tự
đều có nhãn “a”. Những nhãn có thêm viền vuông được gọi là nút cần rút trích
dữ liệu. được xem là có được từ cây bằng một thao tác chỉnh sửa , thao tác
này là xóa nút lá đầu tiên trong . Sau đó nút cần rút trích dữ liệu trong trở thành
nút lá đầu tiên. Còn cây có được từ cây bằng cách xóa nút lá cuối cùng. Nút

cần rút trích dữ liệu trong nay trở thành nút thứ hai. Lưu ý rằng và là những
cây đẳng cấu.
- 12 -
Seminar Công nghệ tri thức
Hình 2.3 Những wrapper Adversarial và Probabilistic
Một wrapper là một hàm cho một trang web hay một nút trong trang
web. Ta gọi sẽ khả dụng (vẫn sử dụng được) trên phiên bản mới của trang
web , viết là , nếu .
Nếu ta nói là wrapper bất khả dụng, có nghĩa là không có khả năng sử
dụng để rút trích dữ liệu nữa. Ví dụ từ Hình 2.3, xem xét wrapper để rút trích
nút lá thứ hai. Nếu ta ứng dụng vào thì nó sẽ bất khả dụng, ngược lại nếu ta
ứng dụng vào thì nó vẫn khả dụng.
Mục tiêu của chúng ta là xây dựng những wrapper theo phân cấp trang
có khả năng không chịu ảnh hưởng bởi biến đổi . Có nghĩa là wrapper vẫn tiếp
tục khả dụng để rút trích dữ liệu cho phiên bản mới của trang web.
2.5 Độ ổn định Adversarial
Trong mô hình Adversarial giả sử rằng mỗi thao tác chỉnh sửa đều gắn
với chi phí.
Định nghĩa về độ tin cậy Adversarial của một wrapper trên trang web
là chi phí lớn nhất mà tất cả các trang có thể đạt được từ thông qua sử
dụng một tập các hoạt động chỉnh sửa với tổng chi phí tối đa là , ta có: .
- 13 -
Seminar Công nghệ tri thức
Do đó chúng ta muốn có những wrapper mà nó đảm bảo những là vẫn
khả dụng khi có sự thay đổi bên dưới trang web. Có nghĩa là chúng ta muốn
wrapper hoạt động cho những thay đổi cho tình huống xấu nhất với chi phí .
BÀI TOÁN 1: Cho một trang , tìm wrapper có độ ổn định Adversarial cao
nhất trên .
Wrapper tối ưu được viết là hoặc ghi ngắn gọn là . Mục tiêu chúng ta
không chỉ tìm được mà còn phải tính ra được mức độ ổn định của nó bởi vì nó

thể hiện cho mức độ ổn định tốt như thế nào đối với một trang. Cụ thể là thông
số mức độ ổn định còn cho biết trang đó cần được phân tích lại bao lâu một
lần. Nếu độ ổn định thấp thì nó có thể dễ bất khả dụng khi trang web có chi phí
thay đổi nhỏ, và nó cần được phân tích thường xuyên hơn để đảm bảo sự
chính xác.
BÀI TOÁN 2: Tính toán độ ổ định của
Cuối cùng là đánh giá độ tin cậy của việc rút trích dữ liệu từ phiên bản
mới . Giả sử khác nhiều so với thì độ tin cậy cho quá trình rút trích dữ liệu sẽ
thấp. Tuy nhiên nếu tất cả sự khác nhau đó là xảy ra trong những phần khác
với nút cần rút trích thì mức độ tin cậy có thể vẫn cao.
BÀI TOÁN 3: Tính toán độ tin cậy trên phiên bản mới
Độ ổn định là thể hiện khả năng wrapper vẫn khả dụng khi áp dụng trên
phiên bản tương lai của một trang web, trong khi đó độ tin cậy là thể hiện khả
năng wrapper tốt như thế nào khi rút trích một phiên bản tương lai cụ thể của 1
trang web.
2.6 Độ ổn định Probabilistic
Trong khi độ ổn định Adversarial đo lường wrapper trong trường hợp xấu
nhất thì độ ổn định Probabilistic đo lường wrapper trong trường hợp mong
muốn cụ thể.
Giải thích sự khác biệt này thông qua Hình 2.3. Probabilistic nói rằng khi
một nút bị xóa thì gần như là một trong ba nút lá sau nút cần rút trích dữ liệu sẽ
bị xóa thay vì nút trước nút cần rút trích dữ liệu. Trong trường hợp này thì
- 14 -
Seminar Công nghệ tri thức
wrapper tối ưu sẽ trả ra theo cơ chế xác xuất cao hơn, có nghĩa là nút bị xóa là
một trong ba nút lá sau nút trích dữ liệu, lúc này nút rút trích dữ liệu ở vị trí thứ
hai.
Ngược lại đối với Adversarial áp dụng trong trường hợp xấu nhất vì thế
khi xóa 1 nút trong thì wrapper sẽ trả ra hai cây , với cùng chi phí chỉnh sửa,
và cùng cơ hội để tìm ra nút cần rút trích dữ liệu.

Trong mô hình Probabilistic được thảo luận ở chương sau thì thao tác
chỉnh sửa trong được giả định là từ việc phân phối xác xuất. Hay còn xem là
phân phối xác xuất trên toàn bộ trạng thái tương lại có thể của trang web .
Với mô hình probabilistic thì độ ổn định probabilistic của một wrapper
trên trang là xác xuất mà , với được lấy ngẫu nhiên từ phân phối .
Wrapper tối ưu được viết là hoặc ghi ngắn gọn là . Trong mô hình
Probabilistic cũng có ba bài toán tương ứng đó là:
BÀI TOÁN 4: cho , tìm wrapper tối ưu .
BÀI TOÁN 5: Tính độ ổn định Probabilistic của .
BÀI TOÁN 6: Tính độ tin cậy của cho phiên bản mới của .
Chi tiết giải pháp cho bài toán 6 được trình bày ở chương sau. Còn bảng
dưới đây là tổng quan về độ phức tạp của mỗi bài toán cho cả hai mô hình.
Mô hình Wrapper tối ưu
(1 nút)
Wrapper tối ưu
(nút)
Độ ổn
định tối
ưu
Độ tin cậy
(1 nút)
Độ tin cậy
(nút)
Adversarial NP-Hard
Probabilistic NP-Hard
2.7 Trạng thái lưu trữ
Wrapper hoạt động ở mức trang web nên nó có thể được xây dựng bằng
cách lưu trữ phiên bản cũ của trang web cũng như nút được rút trích dữ liệu .
- 15 -
Seminar Công nghệ tri thức

Khi có 1 phiên bản mới thì wrapper sẽ thực thi một hàm thủ tục có ba tham số
để tìm ra nút cần rút trích dữ liệu trong . Viết theo công thức:
Công thức 2.2
Các wrapper tối ưu được nghiên cứu trong bài viết này đều ở dạng này.
Mặc dù lưu trữ phiên bản cũ của trang web có thể làm tăng chi phí tuy nhiên chi
phí này không đáng kể so với chi phí của con người phải bỏ ra để làm lại
wrapper khi nó bị bất khả dụng. Thêm vào đó chúng ta chỉ lưu cây có nhãn theo
thứ tự chứ không phải lưu toàn bộ nội dung trang web do đó kích thước lưu trữ
cũng nhỏ.
- 16 -
Seminar Công nghệ tri thức
Chương 3:
MÔ HÌNH XÂY DỰNG WRAPPER
3.1 Mô hình Adversarial
3.1.1 Sơ lược
Các thao tác chỉnh sửa có thể xảy ra như đã đề cập ở chương trước, ở
chương này chúng ta sẽ bàn đến chi phí cho thao tác đó trong mô hình
Adversarial. Đặt là toàn bộ nhãn. Gọi là hàm chi phí, từ , sao cho:
 đại diện cho chi phí chỉnh sửa nhãn thành nhãn
 là chi phí thêm một nút với nhãn
 thể hiện cho chi phí xóa 1 nút với nhãn

 , chi phí bắc cầu là không bằng nhau
Với một chuỗi các thao tác chỉnh sửa , thì đại diện cho chi phí là tổng
chi phí của từng thao tác chỉnh sửa trong .
Tiếp theo chúng ta xem xét bài toán tìm độ ổn định Adversarial tối ưu
cho một nút trên trang . Wrapper này được tạo ra bằng cách lưu trữ trang web
cũng như nút cần rút trích dữ liệu theo Công thức 2.2, mục tiêu là để tìm ra nút
cần rút trích dữ liệu trong phiên bản mới của trang web.
3.1.2 Bao đóng trên

Đặt tên một trang “mơ hồ” là . Bao đóng trên về độ ổn định Adversarial là
một số nhỏ nhất, sao cho với hai chuỗi thao tác chỉnh sửa thì:
 ,
 , và
Hay nói cách khác có hai chuỗi chỉnh sửa, chi phí mỗi chuỗi nhỏ hơn
hoặc bằng , để chuỗi chỉnh sửa tạo ra các cây đẳng cấu nhưng nút cần rút trích
dữ liệu là khác nhau trong các cây.
- 17 -
Seminar Công nghệ tri thức
Wrapper không phân biệt giữa hai trang , do chúng là đẳng cấu, và nút
cần rút trích dữ liệu ở hai trang là khác nhau. Do đó là bao đóng trên cho độ ổn
định và chúng ta có
3.1.3 Tìm bao đóng trên
Đối với từng phiên bản mới của trang web thì wrapper tính ra chuỗi thao
tác thay đổi từ phiên bản cũ với chi phí nhỏ nhất để , và , nút trong được tham
chiếu từ nút trong thông qua .
Giả sử wrapper bất khả dụng trên một trang , với có được từ bằng cách
sử dụng chuỗi thao tác với . Do đó chúng ta có . Vì wrapper bất khả dụng trên
nên .
Đặt là chi phí chỉnh sửa nhỏ nhất từ trang thành trang . Vì thế chúng ta
có . Theo định nghĩa thì . Do là chi phí nhỏ nhất nên:
 , và

Do đó , có nghĩa là có hai chuỗi thao tác khác nhau là và , với cả hai có
chi phí nhỏ hơn . Điều này làm cho các cây của trang là đẳng cấu nhưng khác
nút cần rút trích dữ liệu.
Wrapper đạt độ tin cậy Adversarial cao nhất bằng . Độ phức tạp của
thuật toán là , với là số nút trong cây và , trong khi là độ sâu tối đa của nút trong
và .
3.1.4 Tính độ ổn định tối đa

Giải quyết BÀI TOÁN 2, theo 1 quan sát thì mặc dù wrapper được xây
dựng với độ ổn định Adversarial tối đa là PTIME nhưng việc tính toán nó là NP-
Hard. Do đó vấn đề trong NP-Complete đạt được.
- 18 -
P = NP
Mức độ phức tạp
Seminar Công nghệ tri thức
3.1.5 Độ tin cậy trong rút trích dữ liệu
BÀI TOÁN 3 là xác định độ tin cậy trong khi rút trích dữ liệu trên phiên
bản mới của trang web . Độ tin cậy là một con số không phải là số âm, và nó
cho biết mức độ tốt của wrapper khi rút trích dữ liệu. Nếu độ tin cậy cao thì việc
rút trích sẽ gần với đúng hơn.
Nếu trang khác rất nhiều so với trang thì mức độ tin cậy của quá trình
rút trích sẽ thấp. Tuy nhiên nếu những thay đổi trong khác vùng chứa nút muốn
rút trích thì mức độ tin cậy vẫn cao. Dựa trên cảm nhận này 1 đã định nghĩa độ
tin cậy của rút trích dữ liệu phiên bản mới như sau.
Đặt là chi phí nhỏ nhất của chuỗi thao tác để trang thành , có nghĩa là .
Do đó nút được rút trích bởi là . Giả sử là chi phí nhỏ nhất của chuỗi thao tác
để trang thành , có nghĩa là , nhưng không ánh xạ nút với nút tương ứng . Độ
tin cậy được định nghĩa như là sự khác nhau . Độ chênh lệch này là chi phí phụ
thêm để làm cho wrapper tối ưu bị bất khả dụng. Nếu giá trị chênh lệch đó càng
lớn thì nút cần rút trích có mức độ tách biệt với các nút khác càng lớn và quá
trình rút trích sẽ khó bị sai hơn. Ví dụ từ Hình 2.3, nếu chúng ta sử dụng
wrapper để rút trích thì độ tin cậy là 0 bởi vì có một thao tác chỉnh sửa cho ra
một nút cần rút trích khác.
Để tính độ tin cậy chúng ta cần hai cây của trang và hai nút . Tính chuỗi
chỉnh sửa ít nhất giữa và , với điều kiện là không được ánh xạ tới . Việc tính
- 19 -
Hình 3.4: Độ phức tạp tính toán của Adversarial
Seminar Công nghệ tri thức

độ tin cậy có cùng độ phức tạp so với tính chi phí chỉnh sửa cây . Chi tiết thuật
toán về rút trích dữ liệu và tính độ tin cậy được đề cập ở Phụ lục 5.3.
3.1.6 Đánh giá
Trong mô hình Adversarial thì vấn đề còn được đặt ra là cách thiết lập
chi phí chỉnh sửa. Chi phí chỉnh sửa cho một thao tác là thể hiện sự phức tạp
trong thao tác chỉnh sửa đó. Ví dụ khi thêm bảng mới thì chi phí sẽ cao hơn
thêm dòng mới . Với thử nghiệm 1 đã chỉ ra rằng với mô hình gán chi phí cho
mỗi thao tác chỉnh sửa mang lại kết quả tốt trong thực tế.
3.2 Độ ổn định Probabilistic
3.2.1 Mô hình Probabilistic
Theo 6 đề nghị một mô hình Probabilistic cho việc chỉnh sửa cây nhằm
lưu lại những trang web theo thời gian. Trong mô hình này các tham số xác
xuất được đề ra theo bộ chuyển đổi xác xuất , bộ chuyển đổi này có tham số
đầu vào là một trang web và đầu ra là phiên bản mới của trang web đó . Quá
trình tìm phiên bản mới được thực hiện bằng cách rút thao tác chỉnh sửa từ
không gian xác xuất.
Đặt là toàn bộ nhãn. Bộ chuyển đổi được tham số hóa bằng bộ xác
xuất:
 Xác xuất xóa của từng nhãn
 Xác xuất xóa của từng nhãn
 Xác xuất chỉnh sửa của từng cặp nhãn
 Xác xuất mà bộ chuyển đổi dừng chỉnh sửa trang web
Với các tham số trên bộ chuyển đổi sẽ định nghĩa một xác xuất phân
phối của tất cả các trạng thái tương lai của trang web , viết lại .
Cho hai cây với kích thước và độ sâu . Theo 6 cung cấp thuật toán tính
xác xuất trong khoảng thời gian . Bên cạnh đó thuật toán hiệu quả để học các
tham số của bộ biến đổi xác xuất từ dữ liệu đã lưu trữ cũng được đề xuất.
- 20 -
Seminar Công nghệ tri thức
3.2.2 Độ ổn định xác xuất tối ưu

Chúng ta xem xét BÀI TOÁN 4 như sau, cho một xác xuất bộ chuyển đổi
và trang web , xây dựng wrapper sao cho tối đa giá trị xác xuất , với được
chọn từ phân phối xác xuất . Nội dung phần này mô tả một wrapper đơn giản
và chưa hiệu quả, và trong phần tiếp theo thì sẽ là nội dung mô tả thuật toán
hiệu quả hơn.
Cho hai trang với hai nút tương ứng trong hai trang đó, định nghĩa là
xác xuất để bộ chuyển đổi chuyển thành một cây đẳng cấu với ánh xạ tới nút
đẳng cấu .
Yêu cầu tối ưu wrapper tương tự với yêu cầu tối ưu thuật toán trong mô
hình Adversarial. được định nghĩa là wrapper cho phiên bản mới từ trang , và
đầu ra là nút trong mà nó tối đại xác xuất . Hay nói cách khác chúng ta muốn
tính:
Công thức 3.3
là wrapper có độ tin cậy xác xuất Probabilistic cao nhất.
Nhận xét: đối với giá trị cố định cho , do đó chúng ta có thể giảm thiểu
vấn đề xảy ra khi tính so với tính cho từng cặp cây. Chúng ta có thể thay đổi
nhãn của và thành nhãn mới duy nhất là và , và gán xác xuất là 0 cho thao
tác xóa và các thay đổi nhãn . Do đó việc tính toán trong khoảng thời gian .
Bằng cách lặp đi lặp lại thao tác thay đổi trên tất cả các nút trong thì wrapper
xác xuất tối ưu sẽ được tìm ra với độ phức tạp .
3.2.3 Tính độ ổn định tối ưu
Ở thuật toán mô tả ở phần trước, thao tác tính được lặp lại với nhiều
nhiều giá trị , do đó yêu cầu đặt ra là làm thế nào để loại bỏ sự dư thừa này để
làm cho thuật toán hiệu quả hơn và giảm độ phức tạp của nó.
Chọn một nút trong một cây, sau đó xác định tiền tố của nó là tất cả các
nút trong cây ở bên trái nó hay bên trái của tổ tiên nó. Trong Hình 3.5 sau là
tiền tố của .
- 21 -
Seminar Công nghệ tri thức
Hình 3.5: Ánh xạ giữa hai cây con

Đặt là cây từ sau khi qua một chuỗi thao tác thay đổi. Giờ ta xem xét
quá trình ánh xạ các nút giữa và , mục đích tìm ra nút nào trong kết thúc bằng
nút nào trong . Theo quan sát ở Chương 2: thì quá trình ánh xạ phụ thuộc vào
quan hệ anh em, cha con và cả thứ tự tiền tố của các nút. Ví dụ nút ánh xạ tới
thì nút con của chỉ có thể ánh xạ tới nút con của . Tương tự nút bên trái của
chỉ có thể ánh xạ tới nút bên trái của . Trong Hình 3.5 trên có hai cây, nếu nút
ánh xạ tới thì những nút trong phải được ánh xạ vào những nút trong , những
nút trong phải được ánh xạ tới những nút trong , và những nút trong phải
đước ánh xạ tới những nút trong .
Đối với bất kỳ , thì tương đương là sản phẩm của:
 : xác xuất để chuyển đổi thành
 : xác xuất để chuyển đổi thành .
 : xác xuất để chuyển đổi thành .
Trong Hình 3.5, tổ tiên của và nằm trong và làm cho xác xuất và
không đối xứng, có nghĩa là không phải là tiền tố của .
Ý tưởng cơ bản của thuật toán hiệu quả hơn là tính trước những xác
xuất chuyển đổi giữa các cặp tiền tố của các cây con, và sử dụng nó để tính
cho tất cả . Wrapper xác xuất có độ phức tạp . Trong thực tế tăng tốc cho
thuật toán rất nhiều so với thuật toán đá đề cập ở phần trước. Bên cạnh đó
nghiên cứu ở 1 đã nghiên cứu một số thuật toán heuristics và các tối ưu, điều
này làm cho thuật toán tăng tốc một cách rất khác biệt.
3.2.4 Đánh giá độ ổn định và độ tin cậy
Độ ổn định: đặt là wrapper xác xuất tối ưu như đã đề cập ở phần trước.
Độ ổn định của wrapper này trên một trang web là xác xuất mà wrapper khả
- 22 -
Seminar Công nghệ tri thức
dụng trên , với chọn ra từ bộ phân phối của . Tương tự với mô hình
Adversarial, chúng ta có thể xem kết quả sau. Việc tính toán độ ổn định của
wrapper xác xuất là .
Độ tin cậy: cho trang web mới , tính độ tin cây trong quá trình rút trích từ

. Độ tin cậy là xác xuất của rút trích đúng trên sau chuỗi thao tác biến đổi xác
xuất từ trang cũ . Xác xuất rút trích đúng chính là xác xuất tính theo .
- 23 -
Seminar Công nghệ tri thức
Chương 4:
THỬ NGHIỆM VÀ ĐÁNH GIÁ
4.1 Thiết lập thử nghiệm
4.1.1 Dữ liệu
Quá trình thử nghiệm các wrapper được đánh giá so sánh với những kỹ
thuật XPath truyền thống. Trong quá trình đánh giá độ ổn định của các kỹ thuật
đề ra 1 đã sử dụng dữ liệu lưu trữ từ archive.org, đây là một website lưu nhiều
phiên bản của trang web trên mạng ở nhiều năm trước đây. Thử nghiệm được
thực hiện chính trên những trang web sau:
 A: IMDB Movie Database (imdb.com)
 B: CNN Stock Price Listing (money.cnn.com)
 C: Wikipedia (en.wikipedia.org)
Ngoài ra 1 còn thử nghiệm trên những tên miền khác như: Yahoo!
Finance (finance.yahoo.com), và Citysearch (citysearch.com) tuy nhiên kết quả
cũng không có sự khác biệt nhiều so với ba tên miền được chọn ở trên. Đối với
từng website, thử nghiệm chọn một bộ khoảng 10 trang web mà nó có nhiều
phiên bản đã được lưu trữ. Đối với từng trang web thì trung bình có vài trăm
phiên bản khác nhau.
4.1.2 Các nút cần rút trích dữ liệu
Để kiểm tra các wrapper chúng ta cần xác định việc rút trích dữ liệu là
đúng. Các tiếp cần đầu tiên là kiểm tra bằng tay cho mỗi rút trích, ví dụ tiêu đề
hoặc tóm tắt cuốn sách. Cách làm này tiêu tốn thời gian, do đó một cách tiếp
cập khác được đề ra như sau.
Trong từng bộ dữ liệu, chọn những nút cần rút trích bằng tay, những nút
này có nội dung ngữ cảnh cố định hoặc có một phần nội dung của nó cố định
và duy nhất trong toàn bộ các phiên bản. Ví dụ, trong CNN Stock Price Listings,

những nút cần rút trích chứa giá chứng khoán cuối cùng, nó luôn chứa chuỗi
- 24 -
Seminar Công nghệ tri thức
“last price”. Tương tự trong Wikipedia, múi giờ của một thành phố luôn chứa nội
dung “time zone”.
Trong thử nghiệm, nội dung có ngữ cảnh cố định ngầm định là “ẩn” đi với
những wrapper nhưng không ẩn với mã đánh giá. Sau khi wrapper tạo ra kết
quả thì nó có thể kiểm tra sự đúng đắn của nó bằng cách kiểm tra xem kết quả
có chứa nội dung có ngữ cảnh cố định.
Trong trường hợp không có nội dung ngữ cảnh r-õ ràng thì wrapper sẽ
phải sử dụng những chỉ thị ít rõ ràng hơn trong trang web.
4.2 Đánh giá
4.2.1 Mục tiêu
Đầu vào của wrapper là: phiên bản cũ của trang web, vị trí của nút cần
rút trích dữ liệu, và phiên bản mới của trang web. Đối với mỗi lần thực thi,
wrapper sẽ tìm nút cần rút trích dữ liệu trong phiên bản mới.
Đối với từng cặp phiên bản cũ và mới của trang web, độ trượt thể hiện
cho hai phiên bản khác nhau số phiên bản. Bên cạnh đó khả năng thực thi liên
quan giữa và trên tất cả các kích thước có thể bị trượt, khoảng cách chỉnh
sửa trung bình, thời gian tiêu tốn.
Mỗi wrapper đều được đo thời gian rút trích dữ liệu và chạy trên máy
tính không có kết nối mạng nên thời gian là không quan trọng. Tuy nhiên kết
quả cho thấy wrapper cũng chạy nhanh hợp lý. Wrapper trung bình tốn còn
tốn để chạy trên máy Intel Core 2, Dou 1.6GHz 1.
4.2.2 Độ ổn định
Trong thử nghiệm, độ trượt được thay đổi để đánh giá toàn bộ các
wrapper xem có bao nhiêu lỗi xảy ra trong quá trình rút trích. Cụ thể là tổng số
lỗi cho ba bước trượt là cho tất cả các kỹ thuật. Đối với bước trượt thì
wrapper sẽ thực hiện rút trích trên tất cả các cặp phiên bản của trang trong
khoảng , kết quả đạt được như Hình 4.6. Trường hợp có 10 phiên bản, đối với

thì các cặp phiên bản là . Hướng trục đứng là con số thể hiện cho phần trăm số
lần wrapper bất khả dụng. Cụ thể với thì wrapper Full XPath và XPath bất khả
- 25 -

×