1. Trang chủ
  2. » Luận Văn - Báo Cáo

Hệ thống bóc tách giá cả sản phẩm tự động

74 408 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 74
Dung lượng 1,66 MB

Nội dung

1.1.2.2 Các hoạt động khai phá dữ liệu Một quá trình khai phá dữ liệu KPDL bao gồm năm giai đoạn chính sau: 1 Tìm hiểu nghiệp vụ và dữ liệu 2 Chuẩn bị dữ liệu 3 Mô hình hóa dữ liệu 4 H

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

CHU PHƯƠNG CHI

Hà Nội – 2009

Trang 2

MỤC LỤC

MỞ ĐẦU 1

CHƯƠNG I: GIỚI THIỆU CHUNG 3

1.1 Tổng quan về phát hiện tri thức và khai phá dữ liệu……….3

1.1.1 Quá trình phát hiện tri thức 3

1.1.2 Khai phá dữ liệu 4

1.2 Phân loại nguồn dữ liệu Web……… 14

1.2.1 Các trang Web có cấu trúc được cập nhật thường xuyên 15

1.2.2 Các trang Web có cấu trúc cập nhật không thường xuyên 16

1.2.3 Các trang Web có cấu trúc lỏng lẻo 16

1.3 Phân loại khai phá dữ liệu Web………16

1.3.1 Khai phá nội dung Web 17

1.3.2 Khai thác cấu trúc Web 18

1.3.3 Khai phá việc sử dụng Web 18

1.4 Các bước tiến hành khai phá nội dung Web………18

1.4.1 Thu thập thông tin 19

1.4.2 Bóc tách thông tin 20

1.4.3 Tổng hợp và tổng quát hoá dữ liệu 20

1.4.4 Phân tích 21

CHƯƠNG II: CƠ SỞ LÝ THUYẾT 22

2.1 Các kiến thức nền tảng………22

2.1.1 Các vấn đề liên quan đến phân tích HTML 22

2.1.2 Nguyên lí thu thập dữ liệu (Crawler) 25

2.1.3 Bài toán bóc tách thông tin 26

2.2 Giải thuật bóc tách bản ghi dữ liệu có cấu trúc 27 2.2.1 Các nghiên cứu liên quan 27

2.2.2 Ý tưởng giải thuật “Khoảng cách cây soạn thảo” 30

CHƯƠNG III: XÂY DỰNG HỆ THỐNG CHẮT LỌC THÔNG TIN SẢN PHẨM TRÊN WEB 44

3.1 Mô tả bài toán……… 44

3.2 Thiết kế kiến trúc hệ thống……… 44

3.3 Thiết kế cơ sở dữ liệu……… 46

3.3.1 Hệ thống các bảng 46

3.3.2 Biểu đồ liên kết các bảng CSDL 49

3.4 Cài đặt hệ thống……… 49

3.4.1 Xây dựng gói phân tích Web 49

3.4.2 Xây dựng mô đun thu thập (Crawler) 52

3.4.3 Xây dựng mô đun bóc tách 53

3.4.4 Tích hợp mô đun crawler và bóc tách 60

3.4.5 Xây dựng mô đun quản lí trên Desktop 62

3.4.6 Xây dựng mô đun Web hiển thị 63

3.5 Kết quả thử nghiệm……….66

Trang 3

TÀI LIỆU THAM KHẢO 71

Trang 4

MỞ ĐẦU

1 Tính cấp thiết của đề tài luận văn:

Trong những năm gần đây, Internet phát triển kéo theo sự bùng nổ về thông tin Thế giới Web WWW trở thành một nguồn dữ liệu khổng lồ được nhiều người sử dụng,

và chiếm một tỉ trọng đáng kể trong các nguồn dữ liệu có sẵn Tuy nhiên, việc khai thác nó mới ở mức đơn giản và rất hạn chế, như người ta đã nói “Chúng ta đang chìm ngập trong dữ liệu nhưng lại thiếu các thông tin cần thiết” Đó là thực trạng của việc tìm kiếm các thông tin trên web hiện nay Từ đó hình thành một lĩnh vực mới – khai phá web (Web Mining) Nhiệm vụ đặt ra cho khai phá Web là khai thác các thông tin tiềm ẩn từ nguồn dữ liệu Web khổng lồ Một trong nhiều bài toán điển hình của loại này là các ứng dụng Web Mining trong các sản phẩm thương mại điện tử Xuất phát từ

những phân tích trên, luận văn đã tập trung vào nghiên cứu, triển khai “Hệ thống bóc tách giá cả sản phẩm tự động” trên nền web

2 Mục tiêu nghiên cứu:

Luận văn tập trung nghiên cứu cách bóc tách thông tin tự động, không phụ thuộc vào cấu trúc của trang Web từ nguồn dữ liệu Internet, từ đó ứng dụng vào bài toán cụ thể là bóc tách giá cả sản phẩm trên các site bán hàng

3 Đối tượng, phạm vi

− Đối tượng nghiên cứu: Thông tin, cách lấy thông tin tự động từ Web

− Phạm vi nghiên cứu: Nguồn dữ liệu trên các site bán hàng, thông tin về mỗi sản phẩm

4 Nhiệm vụ nghiên cứu

Nhiệm vụ chính của luận văn:

− Nghiên cứu cấu trúc biểu diễn dữ liệu web

− Nhận dạng, lấy ra vùng dữ liệu cần dùng

− Tiến hành bóc tách dữ liệu tự động

− Tổ chức CSDL để khai thác

− Xây dựng site giao tiếp với người dùng

5 Phương pháp nghiên cứu

− Phương pháp nghiên cứu tài liệu, phân tích, tổng hợp để đưa ra thuật toán bóc

tách thông tin tự động dựa trên lý thuyết về khoảng cách soạn thảo cây

− Phương pháp thu thập, thống kê để xác định chính xác kết quả mà chương trình

đạt được

Trang 5

6 Kết cấu luận văn

Nội dung chính của luận văn gồm 3 chương:

Chương 1: Tổng quan về khai phá dữ liệu nói chung và khai thác webói riêng Chương 2: Cơ sở lý thuyết

Chương 3: Xây dựng hệ thống chắt lọc thông tin sản phẩm trên web

Cuối cùng là kết luận và hướng phát triển tiếp theo của đề tài

Trang 6

CHƯƠNG I: GIỚI THIỆU CHUNG 1.1 Tổng quan về phát hiện tri thức và khai phá dữ liệu

1.1.1 Quá trình phát hiện tri thức

1.1.1.1 Phát hiện tri thức

Thông thường, dữ liệu được coi như một dãy các bit, hoặc các số và các ký hiệu, hoặc các “đối tượng” với một ý nghĩa nào đó khi được gửi đến một chương trình dưới một dạng nhất định Ta sử dụng các bit để đo lượng thông tin và xem nó như là các dữ liệu đã được lọc bỏ các dư thừa, được rút gọn tới mức tối thiểu để đặc trưng một cách

cơ bản cho dữ liệu Chúng ta có thể xem tri thức như là các thông tin tích hợp, bao gồm các sự kiện và các mối quan hệ giữa chúng Các mối quan hệ này có thể được

hiểu ra, được phát hiện, hoặc có thể được học Nói cách khác, tri thức có thể được coi

là dữ liệu có độ trừu tượng và tổ chức cao

Sử dụng thông tin hiệu quả là yếu tố thành công và mang tính sống còn trong mọi lĩnh vực nghiệp vụ hiện nay Điều đó có nghĩa là, từ dữ liệu có sẵn phải lấy được những thông tin tiềm ẩn có giá trị mà trước đó chưa được phát hiện, tìm ra những xu hướng phát triển và những yếu tố tác động lên chúng Thực hiện công việc này chính

là quá trình phát hiện tri thức trong cơ sở dữ liệu (Knowledge Discovery in DataBase

– KDD) mà trong đó kỹ thuật cho phép lấy ra các tri thức gọi là kỹ thuật khai phá dữ liệu (Data mining)

Tri thức có thể hiểu là một biểu diễn trong một ngôn ngữ nào đó diễn đạt một hoặc một vài mối quan hệ giữa các thuộc tính trong dữ liệu Các ngôn ngữ thường được dùng để biểu diễn tri thức là các khung (frames), các đồ thị, các luật (rules), các công thức chính trong ngôn ngữ logic mệnh đề hoặc tân từ cấp một hay các hệ thống phương trình

Quá trình phát hiện tri thức mang tính hướng nhiệm vụ, tức là không hướng đến

sự phát hiện mọi tri thức bất kì mà nhằm giải quyết tốt một nhiệm vụ cụ thể nhất định

Vì vậy, quá trình phát hiện tri thức là quá trình hoạt động tương tác giữa người sử dụng hoặc chuyên gia phân tích với các công cụ tin học [2]

1.1.1.2 Các giai đoạn của quá trình phát hiện tri thức

Mục đích của quá trình phát hiện tri thức là rút ra tri thức từ dữ liệu trong cơ sở

dữ liệu (CSDL) lớn Quá trình KDD gồm nhiều giai đoạn và được lặp lại, mà trong đó

sự lặp lại có thể xảy ra ở bất cứ thời điểm nào cần thiết Quá trình đó có thể mô tả như trong hình 1.1

Trang 7

Hình 1.1: Quy trình phát hiện tri thức

Bước thứ nhất là tìm hiểu lĩnh vực ứng dụng và hình thành bài toán Bước này sẽ

quyết định cho việc trích rút các tri thức hữu ích và cho phép chọn các phương pháp khai phá dữ liệu thích hợp với mục đích ứng dụng và với bản chất của dữ liệu

Bước thứ hai là thu thập và xử lý thô, hay còn được gọi là tiền xử lý dữ liệu

nhằm loại bỏ nhiễu, giải quyết tình huống thiếu dữ liệu, biến đổi và rút gọn dữ liệu nếu cần thiết Bước này thường chiếm nhiều thời gian nhất trong toàn bộ quá trình phát hiện tri thức

Bước thứ ba là khai phá dữ liệu, hay nói cách khác là trích ra các mẫu hoặc/và

các mô hình tiềm ẩn dưới các dữ liệu

Bước thứ tư là nắm hiểu tri thức đã tìm được và đặc biệt là làm sáng rõ các tri

thức bằng các mô tả và hay suy luận

Bước thứ năm là củng cố, tinh chế các tri thức được phát hiện Kết hợp các tri

thức thành hệ thống Giải quyết các xung đột tiềm tàng trong tri thức khai thác được Sau đó tri thức được chuẩn bị sẵn sang cho ứng dụng

Các bước trên có thể lặp đi lặp lại một số lần, kết quả thu được có thể được lấy trung bình trên tất cả các lần thực hiện

1.1.2 Khai phá dữ liệu

1.1.2.1 Định nghĩa

Khai phá dữ liệu được định nghĩa là quá trình trích xuất các thông tin có giá trị

tiềm ẩn bên trong các nguồn dữ liệu lớn

Hiện nay, ngoài thuật ngữ khai phá dữ liệu, người ta còn dùng một số thuật ngữ khác có ý nghĩa tương tự như khai phá tri thức từ cơ sở dữ liệu (knowlegde mining from databases), trích lọc dữ liệu (knowlegde extraction), phân tích dữ liệu/mẫu

Trang 8

(data/pattern analysis), khảo cổ dữ liệu (data archaeology), nạo vét dữ liệu (data dredging)

1.1.2.2 Các hoạt động khai phá dữ liệu

Một quá trình khai phá dữ liệu (KPDL) bao gồm năm giai đoạn chính sau:

(1) Tìm hiểu nghiệp vụ và dữ liệu

(2) Chuẩn bị dữ liệu

(3) Mô hình hóa dữ liệu

(4) Hậu xử lý và đánh giá mô hình

(5) Triển khai tri thức

Quá trình này có thể được lặp lại nhiều lần hay nhiều giai đoạn dựa trên phản hồi

từ kết quả của các giai đoạn sau Tham gia chính trong quá trình KPDL là các nhà tư vấn (NTV) và phát triển chuyên nghiệp trong lĩnh vực KPDL [1]

Trong giai đoạn đầu tiên, Tìm hiểu nghiệp vụ và dữ liệu, NTV nghiên cứu kiến

thức về lĩnh vực sẽ áp dụng, bao gồm các tri thức cấu trúc về hệ thống và tri thức, các nguồn dữ liệu hiện hữu, ý nghĩa, vai trò và tầm quan trọng của các thực thể dữ liệu Việc nghiên cứu này được thực hiện thông qua việc giao tiếp giữa NTV và người dùng Khác với phương pháp giải quyết vấn đề truyền thống mà ở đó bài toán được xác định chính xác ngay ở bước đầu tiên, ở đây NTV cần tìm hiểu các yêu cầu đầu tiên của người dùng và đề nghị các bài toán tiềm năng có thể phải giải quyết với nguồn dữ liệu đã cho Tập các bài toán tiềm năng được tinh chỉnh và làm hẹp lại trong các giai đoạn sau Các nguồn và đặc tả dữ liệu có liên quan đến tập các bài toán tiềm năng cũng được xác định chính xác dần

Giai đoạn Chuẩn bị dữ liệu sử dụng các kỹ thuật tiền xử lý để biến đổi và cải

thiện chất lượng dữ liệu làm thích hợp với những yêu cầu của các giải thuật học Phần lớn các giải thuật KPDL hiện nay chỉ làm việc trên một tập dữ liệu đơn và phẳng, do

đó dữ liệu phải được trích xuất và biến đối từ các dạng có sẵn trong CSDL phân tán (loại quan hệ hay hướng đối tượng) sang dạng CSDL quan hệ đơn giản với một bảng

dữ liệu Các giải thuật tiền xử lý tiêu biểu bao gồm:

(a) Xử lý dữ liệu bị thiếu/mất: các dữ liệu bị thiếu sẽ được thay thế bởi các giá trị

thích hợp

(b) Khử sự trùng lặp: các đối tượng dữ liệu trùng lặp sẽ bị loại bỏ đi Kỹ thuật này

không sử dụng cho các tác vụ liên quan đến phân bố dữ liệu

(c) Giảm nhiễu: nhiễu và các đối tượng nằm ngoài khỏi phân bố chung sẽ bị loại đi

khỏi dữ liệu

(d) Chuẩn hóa: miền giá trị của dữ liệu sẽ được chuẩn hóa

Trang 9

(e) Rời rạc hóa: các dữ liệu số sẽ được biến đổi ra các giá trị rời rạc

(f) Trích rút và xây dựng đặc trưng mới từ các thuộc tính đã có

(g) Giảm chiều: dữ liệu của các thuộc tính chứa ít thông tin sẽ được loại bỏ

Các bài toán cần giải quyết được hình thành trong giai đoạn Mô hình hóa dữ liệu

Các giải thuật được áp dụng trong giai đoạn hai sẽ sử dụng dữ liệu đã tiền xử lý để tìm kiếm các qui tắc tiềm ẩn và chưa biết Công việc quan trọng nhất trong giai đoạn này

là lựa chọn kỹ thuật phù hợp để giải quyết các vấn đề đặt ra Để làm điều này, các bài toán được phân loại vào một trong những nhóm bài toán chính trong KPDL dựa trên đặc tả của chúng

Các mô hình kết quả của giai đoạn ba sẽ được hậu xử lý và đánh giá trong giai đoạn 4 Dựa trên các đánh giá của người dùng sau khi kiểm tra trên các tập thử, các mô hình sẽ được tinh chỉnh và kết hợp lại nếu cần Chỉ các mô hình đạt được mức yêu cầu

cơ bản của người dùng mới đưa ra triển khai trong thực tế Trong giai đoạn này, các kết quả được biến đổi từ dạng học thuật sang dạng phù hợp với nghiệp vụ và dễ hiểu hơn cho người dùng

Trong giai đoạn cuối, Triển khai tri thức, các mô hình được đưa vào những hệ

thống thông tin thực tế dưới dạng các môđun hỗ trợ việc đưa ra quyết định

Mối quan hệ chặt chẽ giữa các giai đoạn trong quá trình KPDL là rất quan trọng cho việc nghiên cứu KPDL Một giải thuật trong KPDL không thể được phát triển độc lập, không quan tâm đến bối cảnh áp dụng mà thường được xây dựng để giải quyết một mục tiêu cụ thể Do đó, sự hiểu biết bối cảnh vận dụng là rất cần thiết Thêm vào

đó, các kỹ thuật được sử dụng trong các giai đoạn trước có thể ảnh hưởng đến hiệu quả của các giải thuật sử dụng trong các giai đoạn tiếp theo

1.1.2.3 Các bài toán thông dụng trong Khai phá dữ liệu

Trong KPDL, các bài toán có thể phân thành bốn loại chính

Bài toán thông dụng nhất là bài toán Phân lớp Với một tập các dữ liệu huấn

luyện cho trước và sự huấn luyện của con người, các giải thuật phân loại sẽ lọc ra bộ

phân loại (classifier) dùng để phân các dữ liệu mới vào một trong những lớp đã được xác định trước Nhận dạng cũng là một bài toán thuộc kiểu Phân loại

Với mô hình học tương tự như bài toán Phân loại, lớp bài toán Dự đoán sẽ lọc ra

các bộ dự đoán Khi có dữ liệu mới đến, bộ dự đoán sẽ dựa trên thông tin đang có để đưa ra một giá trị số học cho hàm cần dự đoán Bài toán tiêu biểu trong nhóm này là

dự đoán giá sản phẩm để lập kế hoạch trong kinh doanh

Các giải thuật Tìm luật liên kết (Association Rule) nhằm tìm kiếm các mối liên

kết giữa các phần tử dữ liệu, ví dụ như nhóm các món hàng thường được mua kèm với nhau trong siêu thị

Trang 10

Các kỹ thuật Phân cụm (Clustering) sẽ nhóm các đối tượng dữ liệu có tính chất

giống nhau vào cùng một nhóm Có nhiều cách tiếp cận với những mục tiêu khác nhau trong phân loại Các kỹ thuật trong bài toán này thường được vận dụng trong vấn

đề phân hoạch dữ liệu tiếp thị hay khảo sát sơ bộ các dữ liệu

1.1.2.4 Kiến trúc của hệ thống khai phá dữ liệu

Khai phá dữ liệu là một bước lớn trong quá trình phát hiện tri thức từ số lượng lớn dữ liệu được lưu trữ trong CSDL, kho dữ liệu hoặc các nơi lưu trữ khác Kết quả của bước này là những mẫu đáng quan tâm được đưa đến cho người dùng hoặc lưu giữ như là tri thức mới trong cơ sở tri thức

Kiến trúc của hệ thống khai phá dữ liệu có thể có các thành phần chính sau:

dữ liệu Các kỹ thuật làm sạch và tích hợp dữ liệu có thể thực hiện trên dữ liệu

Cơ sở tri thức: đó là lĩnh vực tri thức được dùng để hướng dẫn việc tìm hoặc

đánh giá các mẫu kết quả tìm được

Các hệ thống khám phá tri thức: bao gồm tập các chức năng để thực hiện các

nhiệm vụ như là mô tả đặc điểm, kết hợp, phân lớp, phân nhóm dữ liệu

khai phá dữ liệu để tập trung vào tìm các mẫu cần quan tâm

người dùng và khai phá dữ liệu

1.1.2.5 Các thành phần của giải thuật khai phá dữ liệu

Giải thuật khai phá dữ liệu gồm 3 thành phần chính sau: biểu diễn mô hình, đánh

giá mô hình, tìm kiếm mô hình

a Biểu diễn mô hình

Mô hình được biểu diễn bằng một ngôn ngữ nào đó để mô tả các mẫu có thể khai thác được Nếu sự mô tả bị hạn chế thì sẽ không thể học được hoặc không thể có được các mẫu để tạo ra mô hình chính xác cho dữ liệu Khả năng mô tả của mô hình càng lớn thì càng làm tăng mức độ nguy hiểm và làm giảm đi khả năng dự đoán các dữ liệu chưa biết Hơn nữa, việc tìm kiếm sẽ càng trở nên phức tạp hơn và việc giải thích mô hình càng khó khăn hơn

b Đánh giá mô hình

Đánh giá là xem xét xem một mẫu có thể đáp ứng được các tiêu chuẩn của quá trình phát hiện tri thức hay không Việc đánh giá độ chính xác dự đoán dựa trên việc thẩm định chéo Đánh giá chất lượng liên quan đến độ chính xác của dự đoán, độ mới,

Trang 11

khả năng sử dụng, khả năng hiểu được mô hình Cả hai chuẩn thống kê và chuẩn logic đều có thể sử dụng để đánh giá mô hình

c Tìm kiếm mô hình

Phương pháp tìm kiếm bao gồm 2 thành phần: Tìm kiếm tham số và Tìm kiếm mô

hình

Tìm kiếm tham số: Giải thuật cần tìm kiếm các tham số dùng để tối ưu hóa các

tiêu chuẩn đánh giá mô hình với các dữ liệu quan sát được và với một mô tả mô hình

đã xác định

Tìm kiếm mô hình: xảy ra giống như một vòng lặp qua phương pháp tìm kiếm

tham số: mô tả mô hình bị thay đổi tạo nên một họ các mô hình Với mỗi mô tả mô hình, phương pháp tìm kiếm tham số được áp dụng để đánh giá chất lượng mô hình Các phương pháp tìm kiếm mô hình sử dụng kỹ thuật tìm kiếm Heuristic vì kích thước của không gian các mô hình có thể không cho phép các tìm kiếm vét cạn

1.1.2.6 Một số phương pháp khai phá dữ liệu phổ biến

a Phương pháp suy diễn logic

Phương pháp suy diễn: nhằm rút ra thông tin là kết quả logic của các thông tin

trong CSDL Phương pháp suy diễn dựa trên các sự kiện chính để suy ra các tri thức mới từ các thông tin cũ Mẫu kết xuất thu được bằng cách sử dụng phương pháp này thường là các luật suy diễn

Phương pháp quy nạp: Phương pháp quy nạp suy ra các thông tin được sinh ra từ

CSDL Có nghĩa là, tự nó tìm kiếm, tạo mẫu và sinh ra tri thức chứ không phải bắt đầu với các tri thức đã biết trước Các thông tin mà phương pháp này đem lại là các thông tin hay tri thức cấp cao diễn tả về các đối tượng trong CSDL Phương pháp này liên quan đến các mẫu tìm được trong CSDL

Trong khai phá dữ liệu, quy nạp được sử dụng trong cây quyết định và tạo luật

b Cây quyết định và luật

Cây quyết định: Cây quyết định là một mô tả tri thức dạng đơn giản nhằm phân

các đối tượng dữ liệu thành một số lớp nhất định Các nút của cây được gắn nhãn là tên các thuộc tính, các cạnh được gắn các giá trị có thể của các thuộc tính, các lá mô tả các lớp khác nhau Các thuộc tính được phân theo lớp các đường đi trên cây, qua các cạnh tương ứng với giá trị thuộc tính của đối tượng lá

Ví dụ: Bảng ví dụ học cho khái niệm chơi tennis (PlayTennis)

Trang 12

D4 Rain Mild High Weak Yes

Tạo luật: Các luật được tạo ra nhằm suy diễn một số mẫu dữ liệu có ý nghĩa về

mặt thống kê Các luật có dạng Nếu P thì Q; với P là mệnh đề đúng với một phần dữ

liệu trong CSDL, Q là mệnh đề dự đoán

Cây quyết định được dùng trong bài toán phân đoạn dữ liệu theo một tiêu chuẩn nào đó dựa trên mức độ khác nhau của thuộc tính Cây quyết định và luật có ưu điểm

là hình thức mô tả đơn giản, suy diễn khá dễ hiểu với người sử dụng Tuy nhiên, mô tả cây và luật chỉ có thể biểu diễn được một số dạng chức năng và vì vậy bị giới hạn cả

về quy mô và độ chính xác của mô hình

Hình 1.2: Mô tả cây quyết định cho việc lựa chọn chơi tennis

c Phát hiện các luật kết hợp

Các luật kết hợp là một dạng biểu diễn tri thức, hay chính xác hơn là dạng mẫu

để hình thành tri thức Phương pháp này nhằm phát hiện ra các luật kết hợp giữa các

Trang 13

thành phần dữ liệu trong CSDL Mẫu đầu ra của giải thuật khai phá dữ liệu là tập luật kết hợp tìm được

Khi thiết kế dữ liệu dùng cho kỹ thuật luật kết hợp cần lưu ý để giảm thiểu số lượng các thuộc tính đầu vào bởi không gian tìm kiếm các luật sẽ tăng theo hàm mũ của số lượng các thuộc tính đầu vào

Giải thuật tìm các luật kết hợp được bắt đầu bằng việc tìm tất cả các tập thường xuyên xuất hiện Tập thường xuyên xuất hiện là các tập thỏa mãn tần số xuất hiện lớn hơn ngưỡng tần số được xác định trước Các luật kết hợp sẽ được tạo ra bằng cách ghép dần các tập thuộc tính dựa trên mức độ thường xuyên của chúng

Nhược điểm của phương pháp này là sự gia tăng nhanh chóng khối lượng tính toán và các thông số Tuy nhiên, với sự phát triển nhanh chóng và mạnh mẽ của phần cứng thì việc khắc phục các vấn đề này không có gì khó khăn

d Phân nhóm và phân đoạn

Kỹ thuật phân nhóm và phân đoạn là những kỹ thuật phân chia dữ liệu sao cho

mỗi phần hoặc mỗi nhóm giống nhau theo một số tiêu chí nào đó Mối quan hệ thành viên của các nhóm có thể dựa trên mức độ giống nhau của các thành viên trong nhóm Một kỹ thuật phân nhóm khác là xây dựng thành các hàm đánh giá các thuộc tính của các thành phần như hàm của các tham số của các thành phần Phương pháp này được gọi là phương pháp phân hoạch tối ưu

Một trong các ứng dụng của kỹ thuật phân nhóm theo độ giống nhau là cơ sở dữ liệu khách hàng để phân nhóm khách hàng theo các tham số và các nhóm thuế tối ưu

có được khi thiết lập biểu thuế bảo hiểm

Mẫu đầu ra của quá trình khai phá dữ liệu sử dụng kỹ thuật này là các tập mẫu chứa các dữ liệu có chung những tính chất nào đó được phân tích từ CSDL Khi các mẫu được thiết lập, chúng có thể sử dụng để tái tạo các tệp dữ liệu ở dạng dễ hiểu hơn, đồng thời cung cấp các nhóm dữ liệu cho các hoạt động cũng như công việc phân tích Đối với CSDL lớn việc lấy ra các nhóm này là rất quan trọng

e Các phương pháp dựa trên mẫu

Sử dụng các mẫu mô tả từ CSDL để tạo nên một mô hình dự đoán các mẫu mới bằng cách rút ra các thuộc tính tương tự như các mẫu đã biết trong mô hình Các kỹ thuật bao gồm phân lớp theo láng giêng gần nhất, các giải thuật hồi quy và các hệ thống suy diễn dựa trên tình huống

f Mô hình phụ thuộc dựa trên đồ thị xác suất

Các mô hình đồ thị xác định sự phụ thuộc xác suất giữa các sự kiện thông qua các quan hệ trực tiếp theo các cung đồ thị ở dạng đơn giản nhất, mô hình này xác định những biến nào phụ thuộc trực tiếp vào nhau Những mô hình này chủ yếu được sử dụng với các biến có giá trị rời rạc hoặc phân loại

Trang 14

g Mô hình học quan hệ

Trong khi các mẫu kết xuất được bằng các luật suy diễn và cây quyết định gắn chặt với các mệnh đề logic thì mô hình học quan hệ sử dụng ngôn ngữ mẫu theo thứ tự logic trước rất linh hoạt Mô hình này có thể dễ dàng tìm ra công thức: X = Y

Cho đến nay hầu hết các nghiên cứu về các phương pháp đánh giá mô hình này đều theo logic trong tự nhiên

g Khai phá dữ liệu văn bản

Phương pháp này phù hợp với việc tìm kiếm, phân tích và phân lớp các dữ liệu văn bản không định dạng Các lĩnh vực ứng dụng như nghiên cứu thị trường, thu thập tình báo…Khai phá dữ liệu văn bản đã được sử dụng để phân tích câu trả lời cho các câu hỏi mở rộng trong khảo sát thị trường, tìm kiếm các tài liệu phức tạp…

i Mạng Neuron

Mạng Neuron là một cách tiếp cận tính toán mới liên quan đến việc phát triển các

cấu trúc toán học với khả năng học Các phương pháp này là kết quả của việc nghiên cứu mô hình học của hệ thống thần kinh con người Mạng Neuron có thể đưa ra ý nghĩa từ các dữ liệu phức tạp hoặc không chính xác và có thể được sử dụng để kết xuất các mẫu và phát hiện ra các xu hướng quá phức tạp mà con người cũng như các kỹ thuật máy tính khác không thể phát hiện được

Khi đề cập đến khai thác dữ liệu, người ta thường đề cập đến mạng neuron Tuy mạng neuron có một số hạn chế có thể gây khó khăn trong việc áp dụng và triển khai nhưng nó cũng có những ưu điểm đáng kể Một trong số những ưu điểm phải kể đến các mạng neuron là khả năng tạo ra các mô hình dự đoán có độ chính xác cao, có thể

áp dụng được cho rất nhiều các loại bài toán khác nhau, đáp ứng được các nhiệm vụ đặt ra của khai phá dữ liệu như phân lớp, phân nhóm, mô hình hóa, dự báo các sự kiện phụ thuộc vào thời gian…

k Giải thuật di truyền

Giải thuật di truyền, nói theo nghĩa rộng là mô phỏng lại hệ thống tiến hóa trong

tự nhiên Chính xác hơn đó là các giải thuật chỉ ra tập các cá thể được hình thành, được ước lượng và biến đổi như thế nào Ví dụ như xác định xem làm thế nào để lựa chọn các cá thể giống và lựa chọn cá thể nào sẽ bị loại bỏ Giải thuật cũng mô phỏng lại yếu tố gen trong nhiễm sắc thể sinh học trên máy tính để có thể giải quyết nhiều bài toán thực tế khác nhau

Giải thuật di truyền là một giải thuật tối ưu hóa Nó được sử dụng rất rộng rãi trong việc tối ưu hóa các kỹ thuật khai phá dữ liệu, trong đó có kỹ thuật mạng neuron

Sự liên hệ của nó với giải thuật khai phá dữ liệu là ở chỗ việc tối ưu hóa cần thiết cho các quá trình khai phá dữ liệu, ví dụ trong các kỹ thuật cây quyết định, tạo luật

Trang 15

Qua phần trình bày ở trên cho thấy rằng: có rất nhiều phương pháp khai phá dữ liệu Mỗi phương pháp có những đặc điểm riêng phù hợp với một lớp các bài toán, với các dạng dữ liệu và miền dữ liệu nhất định

1.1.2.7 Nền tảng công nghệ khai phá dữ liệu

Công nghệ khai phá dữ liệu là kết quả của một quá trình dài nghiên cứu Khai phá dữ liệu được bắt đầu lần đầu tiên khi dữ liệu liên quan đến hoạt động kinh doanh được lưu trữ trên máy tính, và tiếp tục được cải thiện trong truy xuất dữ liệu Trong thời gian gần đây các công nghệ được tạo ra cho phép người dùng xử lí dữ liệu của họ theo thời gian thực

Khai phá dữ liệu liên quan tới rất nhiều ngành học khác như các hệ CSDL, thống

kê, trực quan hóa Hơn nữa, tuỳ vào cách tiếp cận được sử dụng, khai phá dữ liệu còn có thể áp dụng một số kĩ thuật như mạng nơron, lí thuyết tập thô hoặc tập mờ, biểu diễn tri thức….So sánh với các phương pháp này, khai phá dữ liệu có một số ưu thế rõ rệt Với phương pháp học máy, khai phá dữ liệu có lợi thế hơn ở chỗ, khai phá dữ liệu

có thể sử dụng với các nguồn dữ liệu chứa nhiều nhiễu, dữ liệu không đầy đủ hoặc biến đổi liên tục Trong khi đó phương pháp học máy chủ yếu được áp dụng trong các nguồn dữ liệu đầy đủ, ít biến động và tập dữ liệu không quá lớn So với khai phá dữ liệu, phương pháp hệ chuyên gia thường ở mức chất lượng cao hơn nhiều so với các

dữ liệu trong nguồn dữ liệu, và chúng thường chỉ bao hàm được các trường hợp quan trọng Hơn nữa các chuyên gia sẽ xác nhận giá trị và tính hữu ích của các mẫu phát hiện được Phương pháp thống kê là một trong những nền tảng lí thuyết của khai phá

dữ liệu, nhưng các phương pháp thống kê còn tồn tại một số điểm yếu mà khai phá dữ liệu đã khắc phục được: Các phương pháp thống kê chuẩn không phù hợp với các kiểu

dữ liệu có cấu trúc đa dạng do từ nhiều nguồn dữ liệu khác nhau Các phương pháp thống kê hoạt động hoàn toàn theo dữ liệu, nó không sử dụng tri thức sẵn có về lĩnh vực Kết quả phân tích của thống kê có thể sẽ rất nhiều và khó làm rõ được Phương pháp thống kê cần có sự hướng dẫn của người dùng để xác định phân tích dữ liệu như thế nào và ở đâu

Ngày nay các nghiên cứu về khai phá dữ liệu đã được ứng dụng rộng rãi Công

cụ khai phá dữ liệu đã sẵn sàng cho các ứng dụng kiểu thương mại vì nó được hỗ trợ của ba yếu tố công nghệ khác và trở nên hoàn thiện hơn

− Công nghệ sàng lọc tập các dữ liệu thô

− Công nghệ xử lí với các siêu máy tính có nhiều bộ xử lí mạnh và bộ nhớ lớn

− Thuật toán khai phá dữ liệu

Những thành phần cơ bản của công nghệ khai phá dữ liệu đã được phát triển trong suốt một thập kỉ, trong nhiều lĩnh vực như thống kê, trí tuệ nhân tạo, máy học Ngày nay sự phát triển cao nhất của những công nghệ này là sự kết hợp giữa những

Trang 16

engine CSDL quan hệ hiệu suất cao với những nỗ lực tích hợp dữ liệu lớn, tạo ra những công nghệ mang tính thực tế có ý nghĩa với những kho dữ liệu lớn hiện nay

1.1.2.8 Phạm vi của khai phá dữ liệu

Khai phá dữ liệu bao gồm nhiều công nghệ mới cung cấp những giải pháp giúp cho các công ty có thể định hướng vào những thông tin quan trọng nhất trong kho dữ liệu đồ sộ của họ Các công cụ khai phá dữ liệu dự báo các xu hướng và thói quen, dựa trên tập dữ liệu nó đang xử lí, nhờ những thông tin này các công ty hoạt động trong lĩnh vực thương mại có thể đưa ra những quyết định hợp lí Một công cụ khai phá dữ liệu có thể trả lời các câu hỏi mà cần nhiều thời gian để xử lí Chúng thực hiện phân tích nhiều lần nguồn dữ liệu nhằm phát hiện những qui luật ẩn chứa bên trong, tìm ra những thông tin mang tính dự đoán mà các chuyên gia có thể bỏ sót khi thực hiện nó bằng tay

Khai phá dữ liệu, bản thân nó xuất phát từ những điểm giống nhau giữa tìm kiếm những thông tin kinh doanh có giá trị trong một CSDL lớn như việc khai phá một ngọn núi để tìm ra những mỏ quặng quý Một ví dụ cho việc tìm kiếm các thông tin kinh doanh là tìm kiếm các sản phẩm có liên quan trong hàng gigabyte dữ liệu lưu trữ Cả hai công việc này thì đều phải thực hiện thông qua một bước sàng lọc trong kho tài liệu rộng lớn và sau đó thực hiện một tìm kiếm thông minh để tìm ra những thông tin

có giá trị

Cho một CSDL với kích cỡ và chất lượng đủ đáp ứng, công nghệ khai phá dữ liệu có thể tạo một cơ hội kinh doanh mới bằng cách cung cấp những khả năng:

Khai phá dữ liệu sẽ tự động thực hiện quá trình tìm kiếm những thông tin có thể

dự đoán trong CSDL lớn Theo truyền thống, những câu hỏi mang tính kinh doanh thường đỏi hỏi mất nhiều thời gian xử lí bằng tay thì đến nay có thể trả lời trực tiếp một cách nhanh chóng Một ví dụ tiêu biểu là bài toán dự đoán quảng cáo có mục tiêu Khai phá dữ liệu sử dụng CSDL về địa chỉ mail trước đây để xác định mục tiêu mà sẽ đem lại hiệu quả cao nhất trong các quyết định đầu tư vào những địa chỉ mail trong tương lai

Công cụ khai phá dữ liệu thực hiện rà soát trong nguồn dữ liệu và xác định những mẫu chưa được phát hiện trong bước tiếp theo Một ví dụ về khám phá mẫu là phân tích những dữ liệu bán lẻ để xác định những sản phẩm, mà dường như không có

vẻ liên quan đến nhau, nhưng thường được mua cùng nhau Một ví dụ khác là việc kiểm tra tính xác thực trong các phiên giao dịch thanh toán và xác định những dữ liệu

dị thường mà có thể là nguyên nhân do lỗi phím nhập dữ liệu

Trang 17

Khi các công nghệ khai phá dữ liệu được đưa vào áp dụng trong khai phá các

nguồn dữ liệu từ thế giới Web WWW, người ta gọi quá trình này là khai thác thông

tin Web (khai phá Web) Khai thác thông tin Web ra đời được định hướng để trích rút

những mẫu thông tin hữu ích, hoặc thông tin ẩn chứa từ trong những nội dung, hoạt động của thế giới WWW

??? D÷ liÖu cãthÓ truy

vÊn ®-îc

Hình 1.3: Minh họa khái niệm khai thác thông tin Web

1.2 Phân loại nguồn dữ liệu Web

Có nhiều cách để phân loại các nguồn thông tin từ Web, tuy vậy ta có thể chia thành 3 loại chính như sau :

− Các trang Web thông tin có cấu trúc được cập nhật thường xuyên

− Các trang Web thông tin có cấu trúc không được cập nhật thường xuyên

− Các trang Web thông tin có cấu trúc lỏng lẻo

Trước khi đi vào phân tích từng loại một, chúng ta nhận thấy rằng, các trang Web hiện nay được xây dựng bằng rất nhiều nguồn dữ liệu khác nhau: text, hình ảnh, video, biểu tượng v.v… Có thể kể ra đây một vài đặc tính quan trọng của dữ liệu trên các trang Web này :

Trang 18

− Bán cấu trúc (có cấu trúc theo ngôn ngữ HTML nhưng lại không có cấu trúc về mặt ngữ nghĩa)

− Thay đổi theo thời gian

− Dư thừa (thông tin trùng lặp xuất hiện ở nhiều trang)

− Hỗn tạp (một trang Web phổ biến thường trộn lẫn nhiều loại thông tin như phần nội dung chính, quảng cáo, bảng điều hướng, )

− Có tính bề mặt (có thể duyệt qua tất cả các nội dung bằng một trình duyệt hoặc theo cách của một trình duyệt tự động) và tính chiều sâu (dữ liệu chỉ có thể được truy suất tới bằng giao tiếp thông qua truy vấn được tham số hóa)

− Liên kết (chứa các siêu liên kết đi từ site này sang site khác)

Từ những đặc tính này ta sẽ phân tích từng loại nguồn dữ liệu Web

1.2.1 Các trang Web có cấu trúc được cập nhật thường xuyên

Hiện nay, có một phần không nhỏ các trang Web được cập nhật thường xuyên như: báo điện tử, diễn đàn, trang Web cung cấp thông tin giá tàu xe, đấu giá, chứng khoán, thời tiết Các trang Web này tuy được cập nhật thường xuyên, nhưng không thay đổi về mặt cấu trúc Chẳng hạn, một site bán hàng trực tuyến thì phần thông tin được cập nhật thường xuyên là các sản phẩm Một sản phẩm khi được cập nhật giữ nguyên cấu trúc thông tin của nó bao gồm:

Các trang Web này ngày càng nâng cao chất lượng về hình thức, nhưng không thay đổi được tính ngữ nghĩa của mình (do sự hạn chế của ngôn ngữ HTML) Những

câu hỏi được người sử dụng đặt ra để lấy thông tin ví dụ như “Có bao nhiêu cửa hàng

bán sản phẩm A” hay như “Cửa hàng nào bán giá rẻ nhất”, có vẻ đơn giản nhưng

dường như lại khá khó thực hiện được Khi sử dụng các phương pháp thông thường như search engine của trang thông tin đó hay các search engine khác, nó mang lại cho người sử dụng quá nhiều thông tin không cần thiết chứ không đem lại thông tin với ngữ nghĩa mong muốn

Trang 19

1.2.2 Các trang Web có cấu trúc cập nhật không thường xuyên

Tần số cập nhật được nêu ra ở đây chỉ mang tính tương đối, vì một trang Web được cập nhật thường xuyên (ví dụ như chỉ số chứng khoán) lại cũng có thể vì một lý

do nào đó không cập nhật thường xuyên nữa (ví dụ đóng cửa thị trường chứng khoán vào ngày nghỉ) Tuy nhiên, có thể thấy rằng, nhiều trang Web có tần số cập nhật nhỏ

Ví dụ, trang Web giới thiệu tên các quốc gia (đương nhiên không phải ngày, tháng, năm nào cũng có một quốc gia xuất hiện, đổi tên hay biến mất nên thông tin trong trang Web này dường như không thay đổi) Do các trang Web này cũng được tổ chức theo một cấu trúc nhất định nên ta cũng có thể phân tích về mặt ngữ nghĩa cấu trúc Những câu hỏi được đặt ra đối với các trang Web có cấu trúc nói trên sẽ là những

câu truy vấn rất đơn giản trong các hệ quản trị CSDL khi có các thông tin Tên sản

phẩm (trong câu hỏi “Các sản phẩm nào có tên chứa chuỗi ABC ”), Tên cửa hàng, Giá bán (trong câu hỏi “Cửa hàng nào bán giá thấp hơn 2.000.000 VND”) Thực tế, chúng

ta có các trang Web chứ không có CSDL và công việc của chúng ta là phải xây dựng được một CSDL mà mỗi thông tin trong đó đã được phân loại theo ngữ nghĩa

1.2.3 Các trang Web có cấu trúc lỏng lẻo

Các trang Web loại này cũng là một trong những loại trang Web xuất hiện rất nhiều trên Internet, ví dụ như: trang Web giới thiệu cá nhân, tổ chức, cơ quan v.v… thường rất khó phân tích cấu trúc của chúng một cách tổng quát do thông tin được trình bày không theo một quy luật nhất định nào

Những trang Web kiểu này ít được quan tâm trong khai phá web bởi các thông tin của chúng là không dự đoán được, không thể tối ưu khi phân tích, và điều quan trọng nhất là các thông tin từ các trang Web kiểu này thường ít đem lại ý nghĩa khi sử dụng vào các ứng dụng thương mại

1.3 Phân loại khai phá dữ liệu Web

Thế giới WWW không chỉ đơn giản là cung cấp các thông tin mang tính nội dung trực tiếp từ các văn bản mà ta còn có thể lấy được cấu trúc của các trang Web Ngày nay, khi thương mại điện tử phát triển, rất nhiều các thông tin khác được khai thác thêm…Tất cả những thông tin này đều đem lại cho các doanh nghiệp một ý nghĩa

to lớn trong chính sách giá cả, đầu tư hay quảng cáo

Dữ liệu của khai phá web được phân rã thành các lĩnh vực nghiên cứu tương ứng như hình 1.4 [8]

Trang 20

Khai phá thông tin Web (Web Mining)

Khai phá nội dung Web (Web Content Mining)

Khai phá cấu trúc Web (Web Structure Mining)

Khai phá những thông tin

sử dụng (Web Usage Mining)

Khai phá nội dung trang

Web

(Web paper content

mining)

Khai phá các kết quả tìm kiếm (Search result mining)

Theo dõi thông tin truy cập nói chung (General access pattern tracking)

Thống kê những thói quen sử dụng (Customized usage tracking)

Hình 1.4: Phân loại lĩnh vực nghiên cứu khai phá web

1.3.1 Khai phá nội dung Web

Lĩnh vực này tập trung vào các vấn đề khai phá, bóc tách, tích hợp những hiểu biết, thông tin và các dữ liệu có ích từ nội dung trang Web Quá trình khai thác nội dung Web là quá trình tự động Vấn đề đặt ra cho khai thác thông tin là máy không thể hiểu nội dung, ý nghĩa của các văn bản Vì vậy, hướng tiếp cận giải quyết vấn đề này là: cấu trúc lại nội dung trang Web sang một dạng mà máy có thể phân tích và khai thác được

Một số bài toán nổi bật được quan tâm nhiều trong lĩnh vực này là:

Bóc tách thông tin có cấu trúc (Đây là bài toán sẽ được đề cập, giải quyết trong

luận văn này.)

Phân loại định tính, phân tích và tóm tắt nội dung

Một site trực tuyến cho phép khách hàng có thể viết nhận xét các sản phẩm hoặc cửa hàng Để khai thác được các thông tin xung quanh những nhận xét này một cách tự động, chúng ta cần phân loại định tính các nhận xét là tốt hay xấu, cần tóm tắt được các nhận xét theo các tiêu chí, các cách tiếp cận khác nhau Công việc này có thể thực hiện tự động

Tích hợp thông tin

Có rất nhiều các Website về du lịch khác nhau Chúng có đặc điểm chung là có

một bảng nhập các thông tin tìm kiếm Nhờ đó người dùng có thể thực hiện các

truy vấn đến CSDL Tuy nhiên với mỗi site dữ liệu trong bảng tìm kiếm lại khác nhau Vấn đề đặt ra là, phải tích hợp được các site này để đưa ra một giao tiếp tìm kiếm dữ liệu chuẩn

Lí thuyết tri thức: Phát hiện tri thức tiềm ẩn trong khối lượng dữ liệu khổng lồ có

trên web

Trang 21

Tự động nhận dạng mẫu: Về cơ bản đây là một quá trình mã hóa ngược Bình

thường nội dung của trang Web được sắp xếp vào một trang mẫu để hiển thị đến người dùng Bây giờ chúng ta tìm cách để tự động nhận dạng được mẫu nguyên gốc của trang Đây cũng là một hướng tiếp cận rất gần với bài toán bóc tách chúng ta đang giải quyết

1.3.2 Khai thác cấu trúc Web

Khai phá cấu trúc Web nhằm khám phá ra những thông tin hữu ích dựa trên cấu trúc của các siêu liên kết

Thế giới Web cung cấp nhiều thông tin khác bên cạnh thông tin được chứa trong văn bản Chẳng hạn, một trang WEb được nhiều điểm liên kết đến chứng tỏ sự phổ biến của tài liệu Trong khi đó, những liên kết từ một trang Web ra ngoài lại thể hiện lượng thông tin hoặc sự đa dạng của các chủ đề được đề cập đến trong nó Dựa trên những đánh giá này, các dịch vụ kèm theo được phát triển như đếm xếp hạng trang, thống kê các siêu liên kết Đó là các nghiên cứu chính của lĩnh vực khai thác cấu trúc Web

1.3.3 Khai phá việc sử dụng Web

Đây là lĩnh vực nghiên cứu những thói quen truy cập của người sử dụng nhằm đưa lại những thông tin có ích cho các nhà cung cấp dịch vụ

Web server ghi và tích tũy những dữ liệu về sự tương tác của người dùng khi sử

dụng các tài nguyên trên web thành các khối dữ liệu gọi là log Phân tích các log truy

cập Web của các Website khác nhau giúp chúng ta biết được thói quen của người dùng Theo đó cải tiến thiết kế, cách sắp xếp cũng như nội dung của các tài nguyên trên Web Hiện nay có hai xu hướng chính trong lĩnh vực này là theo dõi những truy cập chung hoặc một số thống kê sử dụng cho những mục đích riêng biệt

1.4 Các bước tiến hành khai phá nội dung Web

Đối tượng của khai phá nội dung Web là các đối tượng dữ liệu có cấu trúc được lưu trữ trên Web Những thông tin này thường là các bản ghi dữ liệu được lấy từ CSDL và hiển thị lên trên trang Web có khuôn mẫu đã dựng sẵn

Hiện tại, trên thế giới đã có rất nhiều nghiên cứu về khai phá Web, phương pháp

và công nghệ để xử lý thông tin thu thập từ các nguồn thông tin trên Internet là một hoạt động thông minh Khai phá Web có thể được chia thành bốn tác vụ cho ở hình 1.5

Trang 22

D÷ liÖu

Web

T¸c vô

Thu thËp th«ng tin

T¸c vô

Bãc t¸ch th«ng tin

T¸c vô

Tæng qu¸t ho¸ th«ng tin

T¸c vô

Ph©n tÝch th«ng tin Tri thøc

Hình 1.5 : Quá trình khai thác nội dung Web

Chúng ta sẽ điểm qua từng tác vụ và những nghiên cứu đã đạt được đối với từng tác vụ này

1.4.1 Thu thập thông tin

Tác vụ thu thập thông tin (Information Retrieval) trên web giúp cho người sử

dụng có được trang Web từ URL hoặc từ yêu cầu mà họ cần Đối với người sử dụng, việc thu thập thông tin thường được thực hiện qua các URL mà người sử dụng đã biết hoặc qua các engine tìm kiếm Các engine tìm kiếm là các chương trình được viết để

có thể truy vấn và thu thập dữ liệu được lưu trong CSDL (có cấu trúc), trang Web (bán cấu trúc) và các văn bản tự do (không có cấu trúc) trên mạng Hiện tại đã có khá nhiều

các engine tìm kiếm mạnh (trên thế giới) và tại Việt Nam như Google, Altavista,

Lycos, Vinaseek, PanVN, Các engine này ngày càng cố gắng để có thể tương tác với

người sử dụng nhiều và thông minh hơn, tuy vậy chúng cũng có những yếu điểm Như chúng ta đã biết, một hệ thống thu thập thông tin lý tưởng phải là một hệ thống thu thập được những thông tin phù hợp nhất với yêu cầu của người sử dụng (yêu cầu này được diễn giải bằng các câu truy vấn) Đây thật sự là một tác vụ vô cùng phức tạp và khó khăn mà hầu hết các hệ thống thu thập thông tin đều chưa thực hiện được triệt để, phần nhiều có thể kể đến là do tính phi ngữ nghĩa của ngôn ngữ HTML Hầu hết các hệ thống thu thập thông tin hiện nay đều chú trọng tới tốc độ, số lượng thông tin mà các hệ thống này có thể mang lại cho người dùng với các câu truy vấn tương đối đơn giản

Ngoài ra chúng ta cũng nhận thấy đã có những cố gắng rất nhiều trong việc cá nhân hóa và khả mở đối với hệ thống thu thập thông tin Tuy vậy, kết quả mang lại chưa thật sự tốt như người dùng mong đợi

Trang 23

1.4.2 Bóc tách thông tin

Sau khi thu thập, thông tin đã được lấy về, việc tiếp theo là phải lấy ra được những thông tin cần thiết và chỉ những thông tin cần thiết, một cách tự động, không cần tới thao tác của người sử dụng Hầu hết các thuật toán bóc tách thông tin hiện nay đều dựa vào các công cụ khác nhau trên nền kỹ thuật “wrapper” Wrapper có thể được hiểu là những hàm để tách thông tin từ các tài nguyên Web [5]

Hình 1.6: Một cây thông tin có cấu trúc Các thông tin cần bóc tách có cấu trúc như trên là một ví dụ Để xác định được các vị trí thông tin này Một wrapper cần được cung cấp một luật cho phép nó đến được nút chứa thông tin từ nút gốc Có nhiều cách để cung cấp cho wrapper các luật này Có thế các hàm này được viết dựa trên các luật đã được đúc rút ra sau khi khảo sát các trang Web chứa thông tin cần lấy Các Wrapper có thể xây dựng dựa trên rất nhiều quy luật khác nhau và tuỳ thuộc vào mục đích của người sử dụng

Giới hạn lớn nhất của tác vụ bóc tách thông tin này là mỗi một wrapper chỉ được

sử dụng cho một mục đích nhất định và không liên quan đến nhau Do vậy, khả năng

mở rộng của các wrapper này là hạn chế Chúng ta có thể kể đến những chương trình chỉ viết riêng về một vấn đề như: xem chỉ số chứng khoán, xem thời tiết, xem báo (ví

dụ như Novobot) hay những chương trình mang tính chất tổng hợp hơn như chương

trình bóc tách các thông tin thu được từ nhiều search engine cùng một lúc (ví dụ như

Corpecnic hay WebFerret) Hơn nữa, các chương trình này luôn tạo ra những khó

khăn cho người sử dụng trong việc cập nhật lại nguồn tin (ví dụ cập nhật thêm một tờ báo hay thêm một search engine) Để cập nhật, người sử dụng hầu như khó có thể tự mình thực hiện được mà phải chờ đợi hoặc lấy phần cập nhật từ các nhà sản xuất mà không biết phần cập nhật này có thật sự đúng với ý muốn của mình hay không (có phải đúng tờ báo mình muốn đọc hay đúng search engine ưa thích của mình không)

1.4.3 Tổng hợp và tổng quát hoá dữ liệu

Trong tác vụ này, các kỹ thuật nhận diện theo mẫu (pattern recognition) và học máy (machine learning) thường được sử dụng đối với các thông tin đã được bóc tách

Trang 24

Hầu hết các hệ thống học máy hiện tại trên Web đều học về ý thích của người sử dụng (tổng quát hơn là thông tin về người sử dụng) nhiều hơn là học về chính trang Web mà các hệ thống này được cài đặt trên đó Vấn đề này cũng xuất phát từ nguyên nhân dữ liệu hiện nay đang rất dư thừa trên Web nhưng lại không được phân loại theo mặt ngữ nghĩa một cách tự động Ví dụ, nếu chúng ta có một cơ chế nào đó để xác định được hai tập hợp trang Web là trang chủ của cá nhân này và không phải là trang chủ của cá nhân khác thì chúng ta sẽ có khả năng tiên đoán được một trang Web mới liệu có phải

là trang chủ của một ai đó hay không Tuy vậy, với tính phi - ngữ nghĩa của HTML, chúng ta khó có thể phân loại được các trang Web này

1.4.4 Phân tích

Phân tích các thông tin sau khi đã thu thập được không phải là một công việc dễ dàng đối với người sử dụng, chưa kể đối với máy tính Tác vụ này có thể được thực hiện hoàn toàn chỉ sau khi 3 tác vụ phía trước đã được thực hiện tốt

Trang 25

CHƯƠNG II: CƠ SỞ LÝ THUYẾT 2.1 Các kiến thức nền tảng

2.1.1 Các vấn đề liên quan đến phân tích HTML

2.1.1.1 Hyper Text Markup Language - HTML

HTML là một chuẩn cho việc hiển thị các thông tin trên Web Bản chất của HTML là một tệp văn bản trong đó chứa các thông tin hiển thị theo các thẻ định dạng Các trình duyệt Web sử dụng các thẻ này để hiển thị các thông tin theo định dạng qui ước

Các thẻ của HTML được định nghĩa sẵn và thường tuân theo chuẩn của W3C (Tiêu chuẩn thiết kế web World Wide Web Consortium) Mỗi thẻ HTML gồm một thẻ

mở (start tag) và một thẻ đóng (end tag) dùng để bao một vùng nội dung muốn định dạng Nó tạo thành một phân tử gọi là HTML Element Một số thẻ còn có các tham số

đi kèm được gọi là thuộc tính của thẻ

2.1.1.2 HTML DOM (HTML Document Object Model)

HTML DOM là một mô hình mô tả các tài liệu HTML dưới dạng các đối tượng

Mô hình DOM được hiểu như một giao diện được sử dụng cho nhiều nền Thông qua

đó người lập trình có thể truy xuất và thực hiện các thao tác trên tài liệu HTML dễ dàng và tuân thủ một nguyên tắc chung

Khi biểu diễn trong mô hình DOM, các tài liệu HTML được thể hiện dưới dạng một cấu trúc cây Mọi thao tác truy xuất đều thực hiện trên các nút của cây Các nút này tương ứng với các HTML Element hoặc các vùng nội dung tự do (Hình 2.1)

Trang 26

Hình 2.1: Mô tả tài liệu HTML theo mô hình DOM Mọi nút trong mô hình này (trừ nút đầu tiên) đều có nút cha (parent node) và các nút con (children node) của nó Đặc điểm này xuất phát từ cấu trúc tài liệu HTML có các HTML Element được tổ chức lồng nhau Các nút văn bản do không có các nút con nên luôn nằm ở vị trí các nút lá (leaf node) Nút nằm ở vị trí gốc (root node) của cây DOM thường là Document node – tương ứng với một tài liệu HTML

Các đối tượng của mô hình DOM thường được sử dụng trong các ứng dụng phân tích tài liệu HTML như:

Document: Là đối tượng bao bọc (wrapper) một tài liệu HTML bên trong Các nút Document luôn là nút gốc trong mô hình DOM của các tài liệu HTML Bên dưới Document có các nút là các Element, nút văn bản hay các loại nút khác tương ứng với các yếu tố khác nhau trong chuẩn HTML

Element: Là các nút nằm trên cây DOM, thường không phải là các nút lá, bên dưới chúng có các nút con như nút văn bản Mỗi một nút Element trên cây DOM bao bọc một HTML Element bên trong

Từ một đối tượng Element chúng ta có thể xác định được kiểu nút tương ứng như hình ảnh, liên kết và các thuộc tính của nút

Text: Là các phần nội dung văn bản hiển thị trên Web Các nút loại này phải nằm dưới ít nhất một nút element

Trang 27

2.1.1.3 Bộ phân tích HTML

Hình 2.2: Cấu trúc về giải thuật parser

Có hai cách tiếp cận để thực hiện các phân tích trên HTML Một cách đơn giản

và cho tốc độ nhanh, đó là dùng biểu thức chính qui Việc phát hiện các thẻ hoặc các siêu liên kết được thực hiện dựa trên mẫu nhận dạng Cách tiếp cận phân tích HTML bằng các kĩ thuật phân tích xâu kí tự như trên sẽ bị hạn chế trong nhiều trường hợp Chẳng hạn, khi sử dụng biểu thức chính qui không cho thấy các quan hệ giữa nút cha, nút con Khi cần xác định ví trị của một thông tin nào đó trên các trang Web có cấu trúc, thông thường cần xác định được nó nằm ở nút nào theo qui tắc truy vết từ nút trên cùng đến nút chứa thông tin

Một giải pháp hỗ trợ tốt hơn cho phương pháp trên là sử dụng DOM Vì các thông tin hiển thị trên Web là các thông tin được sắp xếp một cách có cấu trúc, nên để phân tích cú pháp HTML, trước tiên các bộ phân tích HTML thường đưa chúng về dạng cây theo mô hình biểu diễn DOM Mỗi Element trong tài liệu HTML sẽ được xác định kiểu, các thuộc tính như InnerHtml, InnerText và tạo thành một nút Bộ phân tích HTML cũng cung cấp các phương thức quan trọng cho phép chúng ta thêm, sửa, xóa nút và thao tác đầy đủ trên cây

Ngoài ra, bộ phân tích HTML còn có khả năng sửa lỗi các tài liệu HTML Chúng

ta biết các tài liệu Web được tạo ra không thể tránh khỏi những lỗi chung chung, chúng được xếp vào loại định dạng không tốt, như thiếu thẻ đóng, dùng các thẻ không theo chuẩn, các thẻ chưa được định nghĩa sẵn Ví dụ, một thẻ đóng được tìm thấy nhưng nó không tương ứng với thẻ mở cuối cùng, nên các thao tác sẽ không thực hiện được Để khắc phục vấn đề này, bộ phân tích sử dụng các thẻ tự động đóng (auto-closing) Tức là thẻ mở cuối cùng sẽ tự động đóng, sau đó thẻ đóng sẽ được so sánh với các thẻ mở cho đến khi thẻ tương ứng được tìm thấy

Trang 28

2.1.2 Nguyên lí thu thập dữ liệu (Crawler)

Bộ thu thập dữ liệu Web còn được biết đến với các tên như: Web Spider, Web Robot Chúng là một chương trình hoặc script tự động duyệt qua tất cả các URL thỏa mãn một yêu cầu nào đó Quá trình này được gọi là Web crawling hoặc Web spidering

Vận dụng khả năng trên, các crawler được dùng phổ biến trong các ứng dụng như lấy toàn bộ một trang Web, đồng nhất dữ liệu trực tuyến và gián tuyến, cập nhật liên kết, kiểm tra liên kết hỏng định kì Các máy tìm kiếm cũng sử dụng crawler trong các tác vụ cập nhật CSDL phục vụ cho tìm kiếm, crawler trả ra kết quả là một chỉ mục của các site mà đã đăng kí với nó, chỉ mục này được sử dụng mỗi khi người dùng nhập một vài thông tin và thực hiện tìm kiếm Hệ thống đang xây dựng cũng cần đến một crawler trong quá trình thu thập và cập nhật thông tin tự động Chúng ta có thể mô tả khả năng của crawler trong bài toán này như sau:

(1) Cung cấp cho crawler vài thông tin về nơi có nguồn dữ liệu tốt;

(2) Crawler sẽ tự động tìm kiếm toàn bộ nguồn dữ liệu này và cập nhật về CSDL của chuơng trình

Nguyên lí hoạt động

Một crawler có điểm bắt đầu từ một địa chỉ URL Theo thứ tự để thao tác với các tài nguyên WWW, crawler sử dụng giao thức HTTP, nó cho phép crawler giao tiếp với máy chủ Web để lấy dữ liệu và gửi các yêu cầu xử lí cho máy chủ Kết quả trả về là một trang Web, crawler sẽ thực hiện phân tích trang Web và tìm kiếm trong nội dung các siêu liên kết Crawler tiếp tục thao tác với các liên kết này theo một cách hoàn toàn tương tự (hình 2.3)

Hình 2.3: Một kiến trúc của crawler thông thường

Trang 29

Ngoài việc phân tích dữ liệu trả về của các liên kết, crawler còn thực hiện các thao tác phân tích các dữ liệu khác nhau tùy thuộc vào bài toán Muscle Fish (Một công cụ tìm kiếm tệp âm thanh) dùng crawler để tìm kiếm trên các trang Web các tệp

âm thanh Hầu hết các trình tìm kiếm đều kiểm soát tất cả các tệp thông qua các thông tin văn bản gắn với chúng Đây là một công việc dễ hiểu và không phức tạp, tìm kiếm các tệp âm thanh không khác với việc tìm kiếm các loại tệp khác Tuy nhiên, cách tiếp cận của Muscle Fish là phân tích chính những âm thanh của các tệp đó Lựa chọn này cho phép ta tìm kiếm các tệp âm thanh dựa trên các âm thanh thực sự của chúng chứ không bị giới hạn như các trình tìm kiếm khác

2.1.3 Bài toán bóc tách thông tin

Cùng với sự phát triển nhanh chóng của Internet, kèm theo đó là hàng loạt các dịch vụ trực tuyến Các dịch vụ này được cung cấp trên nền tảng Web Một trong những đối tượng được nhiều người quan tâm và có tầm ảnh hưởng lớn nhất là các site cung cấp thông tin Các thông tin đó có thể là các tin tức thời sự, xuất hiện dưới dạng các bản tin, các thông tin cũng có thể là các thông tin thời tiết, giá cả

Mỗi loại thông tin đều có các ứng dụng khác nhau, đi kèm phục vụ cho việc khai thác chúng Đối tượng của khai phá Web là các trang Web có cấu trúc Trong tập đối tượng đã giới hạn này, chúng ta nhận thấy giữa các trang Web vẫn có những đặc điểm khác nhau rõ rệt về cấu trúc khi chúng được dùng làm đầu vào cho các bộ trích lọc Chẳng hạn so sánh site báo chí với các site bán hàng trực tuyến để thấy rõ sự khác nhau này Một site báo chí có cấu trúc gồm các khối thông tin được sắp xếp trên một khuôn mẫu định trước Khi thu thập thông tin từ các site báo chí làm đầu vào cho các

bộ trích lọc, trên mỗi trang chỉ bao gồm một khối chứa thông tin có giá trị nội dung, còn lại là các khối thông tin khác như quảng cáo, bảng điều hướng, Như vậy, với trang này các bộ trích lọc chỉ bóc tách ra một bản ghi Trong khi đó, các site bán hàng, chẳng hạn site cung cấp thông tin giá cả sản phẩm, là các trang dùng để liệt kê sản phẩm Mỗi trang liệt kê các sản phẩm như thế thường chứa nhiều sản phẩm (lớn hơn một) có cấu trúc tương tự nhau Chúng có thể phân bố ở nhiều vị trí trên site Như vậy,

bộ trích lọc sẽ bóc tách được nhiều bản ghi dữ liệu đối với một trang đầu vào

Luận văn này sẽ tập trung vào giải quyết một dạng bài toán cụ thể, đó là bài toán bóc tách các thông tin giá cả từ các trang liệt kê sản phẩm

Đầu vào: Lấy từ các site bán hàng trực tuyến Đó là các trang liệt kê sản phẩm

theo một cấu trúc tương tự nhau, nghĩa là trên mỗi trang, các bản ghi sử dụng cùng một khuôn mẫu Trên các trang này chứa các thông tin như tên sản phẩm, đơn vị, mô

tả sản phẩm, giá cả

Phương pháp: Thực hiện việc bóc tách tự động thông tin, không cần sự can thiệp

của người dùng, không cần cấu hình sẵn đối với từng nguồn dữ liệu Thuật toán bóc tách được xây dựng từ lí thuyết Khoảng cách cây soạn thảo (Tree Edit Distance)

Trang 30

Đầu ra: Bóc tách các thông tin chính (nếu có) bao gồm tên sản phẩm, đường dẫn

ảnh sản phẩm, giá của sản phẩm

2.2 Giải thuật bóc tách bản ghi dữ liệu có cấu trúc

2.2.1 Các nghiên cứu liên quan

Bóc tách thông tin Web từ các bản ghi dữ liệu đã được cấu trúc một cách cân đối là vấn đề quan trọng Xác định được dữ liệu cần bóc tách nằm ở bản ghi nào thường là bước đầu tiên Để giải quyết vấn đề này có một vài phương pháp được nghiên cứu và áp dụng phổ biến Phần lớn các giải pháp cho vấn đề này chủ yếu dựa trên nền tảng của wrapper như đã nhắc đến ở trên Cách tiếp cận này đòi hỏi thực hiện hoàn toàn bằng tay cho mỗi trang Web dựa trên các mẫu (pattern) đã được quan sát

Dù việc xây dựng tập luật mẫu theo cách trực quan hay thông qua các tệp cấu hình thì cách tiếp cận này vẫn đòi hỏi người sử dụng thao tác nhiều, và tỏ ra bất lợi với nguồn

mở rộng để áp dụng cho nhiều trang Web khác nhau và nhiều site khác nhau

2.2.1.2 Kĩ thuật tách dựa trên học có giám sát

Đối với kĩ thuật này, hệ thống tách (hay còn gọi là wrapper) yêu cầu người dùng

gán nhãn cho một tập các trang mẫu và xác định định dạng đầu ra cho các wrapper Các wrapper có giao diện đồ họa cho phép người dùng gán nhãn Sau quá trình này, các wrapper sẽ học cấu trúc các thành phần cần tách dựa trên tập các trang mẫu đã được gán nhãn

Để minh họa cho kĩ thuật này ta lấy ví dụ dựa trên việc phân tích tiêu đề các bài báo trên trang vnexpress.net

Trang 31

Hình 2.4: Minh họa kĩ thuật tách dựa trên học có giám sát Hai tiêu đề xuất hiện trong hình minh họa trên được khoanh ô Chúng ta quan sát phía bên phải, đó là cây thẻ HTML DOM tương ứng của bài báo Hai nút được chọn (có màu sẫm) tương ứng với hai tiêu đề Ta nhận thấy rằng, từ nút cao nhất của cây thẻ, hai nút tương ứng với hai tiêu đề bài báo có cùng một vết (một đường đi qua các nút tính từ nút gốc đến nút hiện tại)

html >> table >> td >> table >> table >> tr >> a

Bằng việc gán nhãn cho các vết này, ta có thể tách được tất cả các tiêu đề bài báo Vết là đúng cho tất cả các trang báo trên site mà được tạo ra từ một khuôn mẫu

2.2.1.3 Kĩ thuật tách dựa trên học bán giám sát

Khác với hệ thống được học có giám sát, các hệ thống tách dựa học bán giám sát không yêu cầu người dùng gán nhãn cho các trang mẫu để tạo các qui tắc tách thông tin Các wrapper kiểu này chấp nhận các trang web mẫu thô không cần gán nhãn, sau

đó nó tự động tìm qui tắc (rule) tách thông tin Tuy nhiên, phương pháp này yêu cầu

người dùng lựa chọn các thông tin cần tách sau quá trình học Do đó, nó được gọi là bán giám sát

Với phương pháp sử dụng kĩ thuật này, các dấu hiệu nhận dạng, các thuộc tính của thẻ HTML là rất quan trọng để nhận dạng thông tin

Align Kiểu căn lề (trái, phải, giữa) APPLET,EMBED,

FIELDSET,IMG

Trang 32

Allowtranspa-rency Đặt chế độ trong suốt FRAME,IFRAME

alinkColor Mầu của các link active Document

Background Ảnh nền của object BODY,TABLE,TD,TH

Bgcolor Màu nền của object BODY,MARQUEE,TABLE,CO

L,COLGROUP

Bordercolor Màu viền của object FRAME,FRAMESET

Bordercolordark Màu viền đậm của object TABLE,TD,TH,TR

Bordercolorlight Màu viền nhạt của object TABLE,TD,TH,TR

Cellindex Số hiệu cell TD,TH

Color Màu của Text A,ADDRESS,B,BIG,TABLE,X

Face Font Face BASEFONT,FONT

fgColor Màu chữ của Object Document

Frameborder Có vẽ viền Object không ? FRAME,FRAMESET,IFRAME

Framespacing Khoảng cách giữa FRAME FRAMESET

Nowrap Wordwrap BODY,DD,DIV,DT,TD,TD,TH

2.2.1.4 Kĩ thuật tách thông tin không có giám sát

Khác với các hệ thống tách có giám sát, các hệ thống tách dựa trên việc học không giám sát không cần các trang mẫu được gán nhãn và không cần quá trình tương tác với người dùng để tạo các qui tắc tách

Trong luận văn này sẽ đưa ra một hướng giải quyết dựa trên giải thuật Khoảng cách cây soạn thảo

Trang 33

2.2.2 Ý tưởng giải thuật “Khoảng cách cây soạn thảo”

2.2.2.1 Các khái niệm cơ bản

a Khái niệm khoảng cách soạn thảo cây

Cho T là một cây có gốc, ta gọi T là một cây có nhãn nếu mỗi đỉnh của chúng được gắn một nhãn là một trong các kí tự trong tâp hữu hạn W Ta gọi T là cây có thứ

tự nếu chúng được sắp xếp theo thứ tự từ phải sang trái Các phép toán cơ bản cho cây sắp xếp thứ tự là: [8]

− Xóa nhãn: Xóa một đỉnh không phải đỉnh gốc v trong T ứng với đỉnh cha là đỉnh

v0, các đỉnh con của v sẽ trở thành đỉnh con của v0 tại vị trí của v0 theo một thứ

tự từ trái sang phải

− Chèn: Chèn một đỉnh v là một đỉnh con của v0 trong T

Giả sử ta có một hàm chi phí cho các phép toán cơ bản trên cây Một phép chuyển S là một phép chuyển giữa hai cây T1 và T2 để chuyển từ T1 thành T2 dựa trên các phép toán cơ bản trên cây Mỗi một phép chuyển S ta có một giá trị chi phí C Giá trị nhỏ nhất của C được gọi là khoảng cách soạn thảo cây (tree edit distance)

b Vùng dữ liệu và đỉnh gộp

có các tính chất sau:

 Tất cả r đỉnh con có chung một đỉnh cha

 r đỉnh con này đều liền kề nhau liên tục trong cấu trúc cây thẻ HTML

Một vùng dữ liệu là một tập gồm hai hay nhiều đỉnh hợp có các tính chất sau:

 Các đỉnh hợp này đều có chung môt đỉnh cha

 Các đỉnh hợp này đều có cùng độ dài

 Các đỉnh hợp phải liền kề nhau

 Khoảng cách soạn thảo của các đỉnh hợp này phải nhỏ hơn một ngưỡng nhất định nào đó

Trang 34

Hình 2.5: Mô tả cây thông tin chứa nhiều vùng dữ liệu

Để thuận tiện cho việc mô tả, ở đây ta sử dụng cây với các đỉnh có chỉ số thay vì dùng các đỉnh thẻ HTML Trên hình 2.5 vùng tô màu là các đỉnh gộp như đỉnh 5 và 6

là các đỉnh gộp có độ dài 1 và chúng tạo lên vùng dữ liệu 1 Các đỉnh 8, 9, 10 là các đỉnh gộp có độ dài 1 và chúng tạo thành một vùng dữ liệu thứ 2, các cặp đỉnh (14, 15), (16, 17) và (18, 19) là các đỉnh gộp có độ dài 2 và chúng tạo thành một vùng dữ liệu thứ 3

c Đối sánh cây đơn giản

Theo định nghĩa ở trên, khoảng cách soạn thảo giữa cây A, B là tổng chi phí ít nhất để chuyển từ cây A sang cây B dựa trên các phép toán cơ bản trên cây như thêm đỉnh, thay thế đỉnh và xóa đỉnh Để tính khoảng cách soạn thảo cây, có thể đưa về bài toán tìm số cặp đỉnh đối sánh lớn nhất giữa hai cây [9] Sau đây là thuật toán đối sánh cây đơn giản dùng đối sánh các đỉnh con bậc một của cây [3][4]

Cho A = <RA, A1, A2 , …, Am> và B = <RB, B1, B2 , …, Bn> là hai cây trong đó

RA và RB là đỉnh gốc và Ai, Bj là các cây con bậc 1 thứ i và j của A, B Nếu RA và RB

cùng chứa một nhãn thì phép đối sánh lớn nhất giữa hai cây A, B là MA,B + 1 trong đó

MA,B là phép đối sánh cây lớn nhất của <RA, A1, A2 , …, Am> và <RB, B1, B2,…, Bn> Việc tính MA,B có thể theo lược đồ kĩ thuật quy hoạch động như sau:

− Nếu số cặp đối sánh lớn nhất giữa Am và Bn lớn hơn bất kì số cặp đối sánh lớn nhất giữa Am và Bi (1 i< n) thì MA,B bằng số cặp đối sánh lớn nhất giữa <A1,

A2 , …, Am> và <B1, B2 , …, Bn-1> cộng với số cặp đối sánh lớn nhất giữa Am và

Bn

Trang 35

− Ngược lại MA,B chính là số cặp đối sánh lớn nhất giữa <A1, A2 , …, Am> và

<B1, B2 , …, Bn-1> hoặc giữa <A1, A2 , …, Am-1> và <B1, B2 , …, Bn>

2.2.2.2 Phân vùng thông tin dựa trên khoảng cách soạn thảo cây

Trong một trang web, thông thường có nhiều vùng thông tin khác nhau Để tìm được thông tin cần thiết, ta cần phải phân vùng thông tin Có rất nhiều phương pháp khác nhau thực hiện việc phân vùng thông tin trong trang web Trong mục này, ta sẽ trình bày một phương pháp phân vùng thông tin dựa trên khoảng cách soạn thảo cây

Ý tưởng để xác định các miền thông tin trong một trang Web dựa trên các quan sát sau:

− Các bản ghi dữ liệu mà chứa thông tin mô tả tập các đối tượng giống nhau (ví dụ các mặt hàng) thường được biểu diễn dưới một vùng dữ liệu liên tục của một trang Web và được biểu diễn bởi các thẻ HTML giống nhau

− Các bản ghi dữ liệu trong một vùng dữ liệu nhất định được biểu diễn bởi các cây thẻ HTML con giống nhau và các cây thẻ HTML con này thường có chung một đỉnh cha nào đó, mặc dù không biết được đỉnh cha này là đỉnh nào Ví dụ, hình 2.6, có thể thấy rằng mỗi một bản ghi dữ liệu trong cây thẻ có 3 đỉnh thẻ TR và mỗi một đỉnh thẻ TR có thể có các đỉnh thẻ con TD Và các đỉnh thẻ TR này có cùng chung một đỉnh cha là đỉnh TBODY [5]

Hình 2.6: Cấu trúc cây thông tin cho các bản ghi dữ liệu

a So sánh các đỉnh gộp

Trang 36

Để tìm các vùng dữ liệu có trong một trang Web, thuật toán cần phải thực hiện trả lời các câu hỏi sau:

1 Đâu là đỉnh gộp đầu tiên bắt đầu một vùng dữ liệu? Ví dụ trong vùng dữ liệu thứ hai của hình 2.5, đỉnh 8 là đỉnh bắt đầu vùng dữ liệu

2 Một đỉnh gộp trong một vùng dữ liệu nhất định nào đó có bao nhiêu đỉnh thẻ Ví

dụ trong vùng dữ liệu thứ 3 sẽ thấy rằng mỗi một đỉnh gộp có 2 đỉnh thẻ

Gọi K là số đỉnh thẻ lớn nhất mà một đỉnh gộp có thể có Để trả lời câu hỏi (1), thực hiện tìm điểm bắt đầu vùng dữ liệu bằng cách xem xét tuần tự từng đỉnh một Còn đối với câu hỏi (2), gộp các đỉnh với độ dài là 1, 2, cho đến K Cụ thể, bắt đầu từng đỉnh một, và thực hiện việc so sánh các xâu 1 đỉnh, 2 đỉnh cho đến K đỉnh

Hình 2.7 mô tả chi tiết quá trình so sánh các đỉnh Trong đó, tiến hành việc so sánh 10 đỉnh con có cùng đỉnh cha là đỉnh P Sau đó bắt đầu lần lượt các đỉnh và thực hiện việc so sánh xâu gộp của các đỉnh con trong cây thẻ HTML [3]

Trang 37

Tương tự như trên sẽ không thực hiện phép so sánh 1 đỉnh và 2 đỉnh bởi vì đã thực hiện các phép so sánh này rồi Ở đây cũng không thực hiện các phép so sánh bắt đầu sau đỉnh 3 vì thực tế đã thực hiện tất cả các phép so sánh có thể có rồi

Thuật toán so sánh xâu các đỉnh trong một cây thẻ HTML dựa trên khoảng cách soạn thảo được mô tả bằng biểu đồ hoạt động (hình 2.8):

Ngày đăng: 25/03/2015, 09:41

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w