1. Trang chủ
  2. » Kinh Doanh - Tiếp Thị

Khai thác dữ liệu Web

18 1,7K 15
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Khai Thác Dữ Liệu Web
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Khoa Học Máy Tính
Thể loại Bài Tiểu Luận
Năm xuất bản 2008
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 18
Dung lượng 602,2 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Web (World Wide Web) được xem là một “nhà cung cấp” một lượng lớn các thông tin về tin tức, quảng cáo, thông tin khách hàng, quản lý tài chính, giáo dục, thương mại điện tử, và một số dịch vụ thô

Trang 1

I Khai thác dữ liệu Web:

1 Tổng quan về web và khai thác dữ liệu web (Web mining).

Web (World Wide Web) được xem là một “nhà cung cấp” một lượng lớn các thông tin về tin tức, quảng cáo, thông tin khách hàng, quản lý tài chính, giáo dục, thương mại điện tử, và một số dịch vụ thông tin khác.

Bên cạnh đó Web cung cấp một tập nhiều và “động” các thông tin về hyper-link, thông tin truy cập web, thói

quen dùng web của người dùng Nên Web chính là nguồn tài nguyên dồi dào cho việc khai khác dữ liệu

Tuy nhiên để tài nguyên Web trở nên hiệu quả cho việc khai thác là khám phá tri thức thì đó là một thách thức

vô cùng lớn Bới những thách thức sau:

• Web quá lớn cho warehousing và mining dữ liệu có hiệu quả Kích thước của Web lên tới hàng trăm terabytes và đang tăng trưởng không ngừng Đến ngày 28-07-2008 Google đã công bố rằng họ đã index được 1trillion (1 nghìn tỉ) trang web

• Độ phức tạp của web hơn nhiều lần so với các tài liệu text thông thường Bởi web là tài liệu bán cấu trúc Người ta ví rằng Web như là một thư viện điện tử khổng lồ, mà trong đó hầu hết thông tin đều chưa được index hay phân loại Nên việc tìm được tài liệu mình cần trong cái thư viện ấy là rất khó

• Web chứa nguồn thông tin động Những thông tin trên Web được cập nhật liên tục, chẳng hạn như thông tin về dự báo thời tiết, tin tức thể thao, tin tức,…đều được cập nhật từng ngày từng giờ

• Web phục vụ một lượng lớn các cộng đồng người dùng đa dạng Người ta ước tính hiện tại có khoảng 100 triệu máy trạm sử dụng internet Và số lượng này không ngừng tăng lên Và những người dùng này có những kiến thức nền tảng khác nhau, có mối quan tâm và cách sử dụng web khác nhau

• Chỉ một phần nhỏ thông tin trên web là có liên quan or hữu dụng Người ta nói rằng có 99% thông tin trên web là không hữu dụng với một người nào đó Điều này không rõ ràng lắm Tuy nhiên, nếu đặt vào một hoàn cảnh cụ thể thì lượng thông tin mà ta quan tâm chiếm một phần rất nhỏ so với lượng thông tin có trên Web Vậy làm sao tìm ra đâu là những trang liên quan đến một chủ đề mà ta quan tâm, và làm sao tìm được những trang như thế mà có chất lượng là một vấn đề

Những thách thức đó đã thúc đẩy việc nghiên cứu để khai thác dữ liệu trên Web và dùng chúng một cách có

hiệu quả Và nhiệm vụ của khai thác dữ liệu Web là tập trung vào việc tìm kiếm ‘cấu trúc web’ (search web

structure), phân hạng độ quan trọng của một nội dung web, khám phá tính đều đặn và động của nội dung web, khai thác mô hình truy cập web (acess patterns)

Trang 2

Khai thác dữ liệu Web giúp cải thiện đáng kể sức mạnh của các search engine Khai thác dữ liệu Web còn

giúp chỉ ra được các trang web đáng tin cậy (authority web), phân loại tài liệu web, giải quyết được vấn đề

nhập nhằng và tinh vi mà các cổ máy tìm kiếm dựa vào keyword gặp phải

Phân loại Web mining:

Thông thường web mining được phân thành 3 loại: khai thác cấu trúc, khai thác nội dung, khai thác cách thức dùng web Hoặc theo một các khác, trong đó khai thác cấu trúc web được xem như là một phần của khai thác nội dung Nên còn 2 loại đó là mining content và mining usage.

2 Khai thác cấu trúc hiển thị của trang web:

So với văn bản thuần túy, trang web có nhiều cấu trúc hơn Trên một trang web có chứa nhiều thứ như là các hiệu ứng trực quan, các menu (navigation) cách header, tựa Các trang web được xem như là các dữ liệu bán cấu trúc

Cấu trúc căn bản của một trang web chính là cấu trúc cây DOM Trong đó, tương ứng với một thẻ HTML là một node trong DOM tree Nên trang web có thể được phân đoạn nhờ vào các thẻ có cấu trúc được định nghĩa sẵn Do đó DOM làm thuận tiện cho việc rút trích thông tin

Tuy nhiên, bởi vì tính linh động của HTML có nhiều trang web không tuân theo chuẩn HTML của W3C Mà điều này có thể dẫn đến lỗi trong cấu trúc DOM tree Hơn nữa cấu trúc DOM ban đầu được giới thiệu dùng

cho việc hiển thị của browser hơn là mô tả ngữ nghĩa của nội dung trang web

Ví dụ: có 2 node cùng cha nhưng 2 node đó không có quan hệ ngữ nghĩa với nhau nhiều hơn quan hệ ngữ nghĩa với những node khác

Nên thật khó để rút trích chính xác nội dung cấu trúc ngữ nghĩa của một trang web nếu chỉ với DOM

Mặt khác, về mặt cảm quan, con người nhìn nhận trang web gồm những đối tượng ngữ nghĩa khác nhau thay

vì xem đó là một đối tượng đơn lẻ.

Một số nghiên cứu cho thấy rằng, người dùng luôn mong muốn những thành phần chức năng hiển nhiên của một trang web thì luôn phải hiện ở những vị trí hiển nhiên trên trang web ấy Chẳng hạn như vị trí của

navigations, quảng cáo, thông tin bản quyền,…

Thực sự, khi một trang web được hiển thị cho user xem thì những thông tin về không gian, thông tin trực quan có thể giúp người dùng chia trang web ra thành nhiều phần ngữ nghĩa (semantic parts) Vì thế có thể phân đoạn trang web nhờ vào các thông tín hiệu về không gian và trực quan

Dựa vào quan sát này chúng ta có thể phát triển một thuật toán rút trích cấu trúc nội dung của một trang web dựa vào thông tin không gian và thông tin trực quan Và thuật toán VIPS đã ra đời như thế

Trang 3

3 Thuật toán phân đoạn trang dựa vào trực quan với thuật toán VIPS(Vision-based Page

Segment):

Một trang web Ω được đại diện bởi một bộ ba Ω= (O, Φ, δ)

- Với O = { Ω1, Ω2, …, ΩN } là một tập hữu hạn các khối Mỗi blog Ωi được xem như là một trang con

- Φ = {φ1, φ2, …, φT} là một tập hữu hạn của tất cả các phân cách (bao gồm phân cách ngang và dọc) Mỗi φ có một trọng số để chỉ ra sự hiện hữu của nó

- δ là một quan hệ giữa 2 khối trong O Được biểu diễn δ = O x O → Φ U {NULL}

- Ví dụ ta xét 2 đối tượng Ωi và Ωj và δ(Ωi, Ωj) ≠ NULL chỉ cho ta thấy rằng Ωi và Ωj chính xác được ngăn cách bởi δ(Ωi, Ωj) hay là hai object này kề với nhau Còn ngược lại thì có các đối tượng xen giữa 2 khối Ωi và Ωj

- Mỗi Ωi trong Ω cũng có cấu trúc nội dung giống như trang ban đầu

Trang 4

Ở ví dụ trên ta thấy rằng có 4 khối visual block: VB1, VB2, VB3, VB4 Có 3 phân cách φ 1 , φ 2 , φ 3

Sau đó ta có thể dựng nên nội dung cấu trúc của các trang con Chẳng hạn khối VB2 lại tiếp tục được phân tích thành 3 phần con VB2_1 ~ VB2_3 với 2 phân cách

Thuật toán VIPS:

Thuật toán này do Deng Cai, Shipeng Yu, Ji-Ron Wen, Wei-Ying Ma đề xuất năm 2003.

VIPS được nhắm đến để rút trích cấu trúc ngữ nghĩa của trang web dựa vào sự thể hiện trực quan của trang

web Và cấu trúc ngữ nghĩa đó có dạng là một cây

- Có một số định nghĩa có liên quan đến cây này mà chúng ta cần quan tâm:

- Đối tượng cơ sở xem là một nốt lá, không thể bị chia nhỏ

- Mỗi node trong cây sẽ tương ứng với một khối (block)

- Mỗi block có thể là một đối tượng cơ sở hoặc một tập các đối tượng cơ sở.

- Một node trong cấu trúc này không nhất thiết phải tương đương với một node trong DOM tree.

- Tất cả các khối đều không được đè lên nhau

- Mỗi node sẽ được gán cho một giá trị, gọi là độ kết dính (Degree of Coherence) để cho thấy độ kết dính của nội dung của một khối dựa vào trực quan thị giác

- Cách làm việc của thuật toán VIPS:

- Trước hết VIPS rút trích tất cả các khối có thể có từ cây DOM tree

- Tiếp theo sẽ tìm các phân cách (separator) giữa các khối (separator là đường phân cắt ngang hoặc dọc, mà nó không chéo (cross) qua một khối nào.

- Cây ngữ nghĩa của một trang web được tạo dựng nên nhờ những phân cách này Và như vậy một trang web được hiển thị như là một tập của các blocks

Với mỗi một khối, độ đo DoC (Degree of Coherency) được định nghĩa để độ kết dính của khối đó.

DoC có các thuộc tính:

Trang 5

- Giá trị của DoC của một khối càng lớn thì tính nhất quán trong khối đó càng cao.

- Trong cây hệ thống thì DoC của block con không được nhỏ hơn DoC của cha.

Hình trên là lưu đồ thuật toán VIPS.

Từ lưu đồ của thuật toán như trên ta thấy rằng quá trình phân đoạn trang gồm có 3 bước:

- Trích xuất khối (block extraction)

- Xác định phân cách (separator detection)

- Tạo dựng cấu trúc nội dung (content structure construction).

Trang web mới đưa vào trước hết sẽ được phân thành nhiều khối lớn(các khối thô, chưa có mịn) Và cấu trúc

của cây hệ thống được ghi lại và cho một cái hồ (pool) Các quá trình phân đoạn giống nhau và được tiến

hành một cách đệ qui cho các block lớn đó đến khi có được một khối đủ nhỏ (đủ tinh, đủ mịn) mà có DoC

lớn hơn một giá trị PDoC (Permitted Degree of Coherency) cho trước.

Với vòng lặp đầu tiên, từ web browser ta lấy được cây DOM với thông tin trực quan tương ứng với các khối

Sau đó, từ node gốc của cây DOM, quá trình trích xuất các khối từ cây DOM được bắt đầu nhờ vào các thông tin trực quan

Trang 6

Sau một vòng lặp gồm có 3 bước đó, các node 1, 2, 3, 4, 5, 6, 7 được kiểm tra để quyết định nó có phải là một khối đơn không.

Nếu 1 node không phải là node đơn (node 1, 3, 4) thì các node con của chúng sẽ được tiến hành theo cách

tương tự

Ta sẽ gán cho một giá trị DoC cho mỗi khối được trích xuất ra Nhưng các giá trị này dựa vào dâu mà gán?

Ta sẽ dựa vào thuộc tính trực quan của khối này

Khi tất cả các khối ở vòng lặp hiện tại, của một trang hoặc trang con được trích xuất, chúng sẽ được lưu giữ

lại trong một cái hồ Các phân cách giữa các khối này được xác định và trọng số của chúng được xác định dựa vào thuộc tính của các khối láng giềng Và mô hình của cây hệ thống được tạo nên nhờ các phân cách

này

Sau khi tạo nên mô hình của cây hệ thống cho vòng lặp hiện tại, các node lá của cấu trúc nội dung này sẽ

được kiểm tra xem thử có đủ mịn (tinh) hay chưa Nếu chưa thì các node lá sẽ được xem là những trang con

và được tiến hành phân đoạn một cách tương tự như node cha của nó

Chẳng hạn khối C trong hình trên không thỏa mãn yêu cầu, khi đó ta xem nó như là một trang con, và nó sẽ

tiếp tục được phân đoạn thêm thành 2 phần C1, C2 như hình bên dưới

Trang 7

Sau khi tất cả các khối được xử lý chúng ta có được cấu trúc nội dung dựa vào thị giác như hình bên dưới

Trang 8

Quá trình trích xuất khối (Visual block extraction):

Trong phần này ta nhắm đến việc trích xuất tất cả các khối có thể chứa trong một trang con

- Thường thì mỗi nốt trong cây DOM đại diện cho một khối Tuy nhiên có một số node như

<table> hay <p> thì được dùng cho việc tổ chức sắp xếp chứ không thích hợp để đại diện cho

một khối đơn được Trong trường hợp này, node hiện tại cần được phân chia thêm thay thế bằng các node con của chúng

- Với mỗi visual block được trích xuất ra thì giá trị DoC được thiết lập dựa vào sự khác biệt trực

quan bên trong khối đó Quá trình này được lặp đi lặp lại cho đến khi tất cả các node thích hợp đại diện cho các khối trong trang con hiện tại

Do sự linh động trong cấu trúc của HTML mà cây DOM có thể không luôn luôn phản ánh đúng mối quan hệ giữa các node khác nhau

Sau đây là thuật toán trích xuất khối: visual block extraction algorithm

Algorithm DevideDomTree(pNode, nLevel)

{

IF (Devidable(pNode, nLevel) == TRUE)

{

FOREACH child OF pNode{

DevideDomTree(child, nLevel);

} }

ELSE

{

Put the sub-tree(pNode) in to the pool as a block

}

}

Ta quyết định một node có thể được chia nữa hay không (devidable) dựa vào:

- Ta dựa vào thuộc tính của chính node DOM đó Chẳng hạn như loại thẻ HTML, màu nền của

node, kích thước, hình dáng của khối tương ứng với node DOM này.

- Thuộc tính của các con của node DOM Chẳng hạn thẻ HTML của các con của nó, thuộc tính

màu nền của các con, kích thước của các con của nó Số lượng các loại con khác nhau cũng được xem xét tới

Trang 9

Dựa vào chuẩn 401 của w3c về HTML ta phân loại node thành 2 loại: inline node và line-break node.

- Inline node: node DOM với thẻ inline, mà thẻ này có tác động đến hình dáng của text và có thể

áp dụng cho một chuổi mà không cần đề cập đến chổ kết thúc Ví dụ như thẻ <b>, <big>, <em>,

<font>, <i>, <strong>,<u>, …

- Line-break node: node với text tag chứ không phải inline node

Dựa vào hình dáng của node và các thuộc tính của node con mà ta đưa ra một số định nghĩa sau:

- Node có nghĩa (valid node): là một node mà có thể thấy thông qua browser Node có độ rộng và

độ cao phải khác 0 Ví dụ hai node con thứ 2 và thứ 4 của node <tr> sau là không có nghĩa

- Text node: một DOM node tương ứng với text tự do Mà không có một thẻ html nào

- Vỉrtual text node (định nghĩa đệ qui):

o inline node với các node con toàn là text node là một virtual text node

o Inline node với các node con là text node hoặc là virtual text node là một virtual text node

Một số điểm quan trọng cần chú ý trong việc phát sinh ra heuristic cho thuật toán visual block extraction:

- Tag cue(thông tin từ loại thẻ):

o Những thẻ như <hr> thường được dùng để phân cách các chủ để khác nhau Vì thế ta muốn sẽ chia một node DOM ra nếu nó có chứa những thẻ kiểu này

o Nếu một node inline có một con là line-break node thì ta sẽ chia node inline này

- Color cue(thông tin từ màu):

Trang 10

o Ta sẽ chia một node DOM nếu màu nền của nó khác với màu nền của một trong số các con của nó Tuy nhiên cùng lúc đó thì node con có màu khác đó sẽ không được chia trong vòng lặp hiện tại

- Text cue (thông tin từ text): nếu hầu hết các node con của một node DOM là text node hay virtual text node, nên chúng ta sẽ không chia nó

- Size cue(thông tin từ kích thước): ta định nghĩa trước một ngưỡng kích thước quan hệ (kích thước của node so với kích thước của toàn bộ trang hay trang con) giữa các thẻ khác nhau (Ngưỡng này là khác nhau cho các node DOM có các thẻ HTML khác nhau) Nếu kích thước quan hệ nhỏ hơn ngưỡng, thì ta sẽ không phân chia node đó

Bảng sau là các luật dùng để phát sinh heuristic cho quá trình trích xuất khối

Trang 12

Separator Detection (Quá trình xác định các phân cách):

Sau khi các block được trích xuất, chúng được cho vào một cái hồ (pool) để thực hiện quá trình xác định các phân cách Các separator này chính là những điểm mấu chốt để tạo nên sự phân biệt giữa 2 khối với nhau Mỗi separator sẽ được đại diện bới pixel đầu và pixel cuối, như thế độ rộng của separator sẽ dễ dàng được tính toán

 Thuật toán xác định các phân cách:

Bước 1: Khởi tạo danh sách separator Danh sách này chỉ gồm có một separator duy nhất, mà nó tương ứng với các biên của hồ

Bước 2: Với mỗi block trong cái hồ ấy, mối quan hệ với các block khác được đánh giá:

Nếu một khối có chứa separator, thì hãy tách separator đó

Nếu một khối đi qua một separator thì cập nhật tham số của separator đó

Nếu một khổi phủ separator, thì bỏ separator đó

Bước 3: Bỏ 4 separators mà chúng tương ứng với các biên của hồ

Và hình bên dưới minh họa cho việc xác định các separator, và giả sử ta chỉ xác định các separator theo chiều ngang

Ban đầu ta xem như chỉ có một separator duy nhất sau khi thêm khối 1 vào thì ta được 2 separator s1, s2 Tương tự khi ta thêm block 2 vào ta được 3 separator s1, s2, s3 Và s2 mới này được cập nhật lại trọng số, nó không còn giống như separator khi tao chỉ mới thêm s1 vào Và tương tự khi thêm khối số 3 vào, ta được 4 separator s1, s2, s3, s4 Nhưng khi ta thêm khối 4 vào thì nó cắt s2, và phủ lên s3 Như vậy s3 bị loại bỏ, và s2 được cập nhật lại các tham số của nó

Trang 13

 Xác lập trọng số cho các separator

Các separator dùng để phân biệt các khối khác nhau về mặt ngữ nghĩa, và trọng số của chúng được thiết lập dựa vào sự khác biệt của các khối láng giềng

Sau đây là một số luật dùng để thiết lập trọng cho các separator:

 Khoảng cách giữa các khối càng lớn thì trọng của separator tương ứng càng lớn

 Nếu separator mà bị chồng (overlap) bởi các thẻ kiểu như <HR> thì giá trị trọng số của nó sẽ được thiết lập càng cao

 Nếu màu nền ở 2 khối ở 2 phía của separator thì, giá trị của trọng càng được tăng lên

 Đối với các separator nằm ngang, thì sự khác biệt càng lớn về font giữa 2 khối 2 bên (chẳng hạn kích thước font, độ đậm, độ đậm của font) thì trọng số của separator càng được tăng lên Hơn nữa trọng số của separator sẽ được tăng hơn nếu độ đậm font của phần ở trên lớn hơn phần ở dưới

 Đối với separator nằm ngang, khi mà cấu trúc của 2 block 2 phía càng tương đồng nhau thì trọng

số của separator đó càng giảm

Quá trình tạo dựng cấu trúc nội dung ngữ nghĩa

Đây chính là quá trình tạo nên sự khác biệt của thuật toán này Sau khi các separator được xác định và trọng

số của chúng được thiết lập, chúng trở thành các chìa khóa cho việc phân đoạn trang web Quá trình này sẽ gộp các khối ở 2 bên của những separator nào có giá trị bé nhất Và quá trình này được lặp đi lặp lại cho đến khi gặp separator có trọng số lớn nhất thì dừng

Sau đó, các node lá sẽ được kiểm tra xem thử có đủ mịn (tinh) hay chưa nếu chưa đủ mịn thì node đó tiếp tục được tiếp tục phân đoạn

Ngày đăng: 17/01/2013, 14:17

HÌNH ẢNH LIÊN QUAN

Hình trên là lưu đồ thuật toán VIPS. - Khai thác dữ liệu Web
Hình tr ên là lưu đồ thuật toán VIPS (Trang 5)
Bảng sau là các luật dùng để phát sinh heuristic cho quá trình trích xuất khối. - Khai thác dữ liệu Web
Bảng sau là các luật dùng để phát sinh heuristic cho quá trình trích xuất khối (Trang 10)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w