Một số giải thuật trích xuất thông tin cho dữ liệu bán cấu trúc

Một phần của tài liệu LUẬN VĂN: BÀI TOÁN TRÍCH XUẤT THÔNG TIN CHO DỮ LIỆU BÁN CẤU TRÚC VÀ ÁP DỤNG XÂY DỰNG HỆ THỐNG TÌM KIẾM GIÁ CẢ SẢN PHẨM potx (Trang 25 - 71)

2.3.1 Hai kiểu biểu diễn của các trang giàu dữ liệu

Các trang giàu dữ liệu được chia thành hai loại thông qua sự biểu diễn của chúng [2]

- List Page: là trang chứa đựng một vài danh sách của các đối tượng. Hình 6 giới thiệu một list page. Có hai dạng trang list, đó là trang list bố trí theo chiều ngang hoặc chiều dọc. Bên trong mỗi vùng, bản ghi dữ liệu được định dạng sử dụng cùng một mẫu và mẫu sử dụng trong hai vùng khác nhau là khác nhau [2].

- Detail Page: là trang chỉ giới thiệu một đối tượng đơn. Ví dụ hình 7 là một trang detail page giới thiệu về sản phẩm . Nó chứa đựng tất cả các thuộc tính của sản phẩm như: tên, ảnh, giá, thông số kỹ thuật, thời gian bảo hành [2] .

15

Hình 6. Dạng biểu diễn của trang list page

Hình 7. Dạng biểu diễn của trang detail page

2.3.2 Một số giải thuật điển hình

Hiện nay tư tưởng của phương pháp trích xuất thủ công không còn được sử dụng . Vì vậy khóa luận chỉ giới thiệu phương pháp trích xuất thông tin tựđộng và bán tựđộng cho “bài toán trích xuất thông tin cho dữ liệu bán cấu trúc”.

16

Giải thuật được nêu ra dưới đây là giải thuật dựa trên hệ thống Stalker.

- Một ví dụ về trích xuất theo giải thuật dựa trên hệ thống Stalker.

Một trang Web có thểđược nhìn dưới dạng có thứ tự của token S (ví dụ như: các từ, các số và các thẻ HTML). Việc trích xuất sử dụng một cấu trúc cây gọi là cây EC(embedded catalog tree), đây là công cụ để mô hình dữ liệu nhúng trong một trang HTML. Gốc của cây là văn bản chứa tất cả các token tuần tự S của trang, nội dung của mỗi node con là một chuỗi con của node cha. Để trích xuất một node, Wrapper sử dụng miêu tả cây EC của trang đó và tập hợp các luật trích xuất.

Hình 8 bên dưới là ví dụ sự chuyển đổi một đoạn mã HTML sang cây EC. Chú ý rằng chúng ta sử dụng LIST ởđây bởi vì tập hợp các địa chỉ luôn luôn có thứ tự.

Hình 8. Chuyển đổi từ mã HTML sang cây EC

Với mỗi node trong cây, Wrapper nhận dạng hoặc trích xuất nội dung của node từ

cha của nó, node cha là node chứa đựng chuỗi token của tất cả các node con. Mỗi trích xuất được thực hiện bởi 2 luật, Start Rule và End Rule. Start Rule chỉ ra sự bắt đầu của node và End Rule chỉ ra sự kết thúc của node. Phương thức này có thể áp dụng cho cả

17

Các luật trích xuất dựa trên ý tưởng của mỏ neo (landmark). Mỗi mỏ neo là một chuỗi các token liên tiếp và nó dùng để đánh dấu sự bắt đầu hay kết thúc của một phần tử

mục tiêu. Dưới đây là một đoạn mã HTML trong trang web. <p> Restaurant Name: <b>Good Noodles</b><br><br>

<li> 205 Willow, <i>Glen</i>, Phone 1-<i>773</i>-366-1987</li> <li> 25 Oak, <i>Forest</i>, Phone (800) 234-7903 </li>

<li> 324 Halsted St., <i>Chicago</i>, Phone 1-<i>800</i>-996-5023 </li> <li> 700 Lake St., <i>Oak Park</i>, Phone: (708) 798-0008 </li> </p>

Để trích xuất được tên của quán ăn “Good Noodles” thì luật trích xuất sẽ là:

Start Rule: R1: SkipTo(<b>) tức là hệ thống nên xuất phát ở điểm bắt đầu của trang và bỏ qua tất cả các token cho đến khi chúng thấy được thẻ <b> đầu tiên. Các luật SkipTo(:) hoặc SkipTo(i) đề không đúng. Vì theo cây EC trong hình 8 R1 là cha của node

name, như vậy nó sẽ là node gốc. Node gốc thì chứa chuỗi token tuần tự của cả trang Web.

Tương tự End Rule : R2: SkipTo (</b>) sẽ xác định được điểm kết thúc tên của quán ăn.

- Quá trình học luật

Trong hệ thống Wrapper qui nạp quá trình học là một quá trình chủđạo.

Khóa luận này sẽ trình bày giải thuật học của wrapper để sinh ra các luật trích xuất. Ý tưởng cơ bản của giải thuật học luật như sau:

Để sinh ra Start Rule cho một node của cây EC, một vài token tiền tố hay các đại diện của node được nhận dạng như các mỏ neo, chúng có thể nhận dạng đơn nhất sự bắt

đầu của một node. Để sinh ra End Rule cho một node, một vài token hậu tố hay các đại diện của node được nhận dạng như một mỏ neo. Tiến trình sinh Start Rule và End Rule là giống nhau. (adsbygoogle = window.adsbygoogle || []).push({});

Cho trước một tập các mẫu huấn luyện đã được gán nhãn, giải thuật học sẽ sinh ra các luật trích xuất tổng quan để trích xuất tất cả các phần tử mục tiêu (positive items) mà không trích xuất các phần tử khác (nagertive items).

18

Sau quá trình này thì một wrapper đã được sinh ra , nó sẽ được áp dụng cho các trang web khác chứa đựng các dữ liệu tương tự và được định dạng cùng một cách với tập mẫu huấn luyện.

- Ưu điểm và nhược điểm

ƒ Ưu điểm:

Người sử dụng chỉ phải gán nhãn một lượng nhỏ các dữ liệu mẫu.Quá trình học là quá trình tựđộng để sinh ra luật trích xuất.

ƒ Nhược điểm:

Nếu một site thay đổi, làm sao để wrapper biết được sự thay đổi đó? Nếu phát hiện chính xác có sự thay đổi, làm sao để tựđộng sử wrapper?

Vì phương pháp này phụ thuộc vào việc gán nhãn bằng tay nên nó không phù hợp cho trích xuất một lượng lớn các trang. Ví dụ, nếu một trang kinh doanh sản phẩm muốn trích xuất tất cả các các sản phẩm được bán trên Web, việc gán nhãn bằng tay hầu như là nhiệm vụ không thể. Việc duy trì wrapper là việc làm rất tốn kém, vì web là một môi trường động. Các site thì luôn luôn thay đổi.

Phương pháp trích xuất tựđộng

Để hạn chế nhược điểm của Wrapper qui nạp, phương pháp trích xuất tự động đã

được nghiên cứu rất nhiều. Việc trích xuất tựđộng là hoàn toàn có thể bởi vì dữ liệu trên một website thường được mã hóa với một số lượng mẫu cốđịnh. Có thể tìm những khuôn mẫu đó bằng việc khai phá những mẫu lặp lại trong nhiều trang của một website.

Trong một vài ứng dụng, chúng ta cần trích xuất dữ liệu từ các trang detail-page, vì những trang này chứa nhiều thông tin hơn. Ví dụ: trong một trang list-page, thông tin của mỗi sản phẩm thông thường chỉ là tên, ảnh và giá. Tuy nhiên nếu ứng dụng cần những thông tin miêu tả sản phẩm thì chúng ta cần trích xuất từ những trang detail.

Một thuật toán trích xuất tựđộng khá tiêu biểu mà có thể trích xuất ở cả trang detail và trang list đó là RoadRunner.

19

Đầu vào: Một tập hợp các trang mẫu, mỗi trang chứa đựng một hay nhiều bản ghi (một trang có thể là list page hoặc detail page).

Đầu ra: Một mẫu trích xuất có thể trích xuất được tất các các trang trong tập mẫu, trong giải thuật này mẫu trích xuất đó là biểu thức chính qui kết hợp tự do.

- Phương thức tiếp cận

Ban đầu, giải thuật sẽ lấy một số lượng ngẫu nhiên các trang với mẫu trích xuất W. Mẫu trích xuất W sau đó được định nghĩa lại bởi việc kết hợp có thứ tự với mã HTML của mỗi trang pi khác trong tập mẫu, để giải quyết vấn đề sai khác giữa các mẫu trích xuất của các trang trong tập mẫu. Cuối sung giải thuật sinh ra một wrapper chung có thể trích xuất được tất cả các trang trong tập mẫu. Wrapper này sẽđược áp dụng trích xuất cho những trang khác có cấu trúc tương tự với những trang trong mẫu

Sự sai khác xuất hiện khi một vài token của trang pi xuất hiện sai khác so với W. Có hai kiểu sai khác trong việc so khớp đó là:

¾ Sự sai lệch xâu văn bản (string mismatch) : Chúng biểu thị thông qua các trường dữ liệu hay các mục.

¾ Sự sai khác giữa các thẻ (tag mismatch). Giải thuật này được làm rõ trong hình 9 dưới đây:

20

Hình 9. Ví dụ giải thuật RoadRunner [12]

- Ưu, nhược điểm của giải thuật

ƒ Ưu điểm: Không cần sự gán nhãn của người dùng với tập mẫu huấn luyện, có thể

tựđộng xây dựng được mẫu trích xuất.

ƒ Nhược điểm: Nó không thể tự động nhận dạng được đâu là thực thể thông tin mong muốn của người dùng. Vì vậy người sử dụng sẽ vẫn phải tự gán nhãn những kết quả đầu ra. Ví dụ: giải thuật trong hình 9 khi nó xác định được thẻ

<B> có dữ liệu tương đương của 2 trang nhưng nó không thể xác định đấy là tên của quyển sách, mà chỉ có thể xác định nó là một xâu ký tự.

21 (adsbygoogle = window.adsbygoogle || []).push({});

Chương 3. Áp dng bài toán trích xut thông tin bán cu trúc để xây dng h thng tìm kiếm giá c sn phm

Việc áp dụng bài toán trích xuất thông tin cho dữ liệu bán cấu trúc để xây dựng hệ

thống tìm kiếm giá cả sản phẩm là vấn đề quan trọng nhất của khóa luận. Trong chương này khóa luận sẽ đề cập đến khái niệm của hệ thống tìm kiếm giá cả, phương pháp xây dựng hệ thống và cách đánh giá các hệ thống đang tồn tại.

3.1 Khái quát h thng tìm kiếm giá c ca sn phm

Trong phần này khóa luận sẽđề cập tới khái niệm về hệ thống tìm kiếm giá cả, các phương pháp xây dựng, ưu nhược điểm của các hệ thống tìm kiếm giá cả hiện tại, từđó

đưa ra cách tiếp cận để xây dựng hệ thống tìm kiếm giá cả phù hợp.

3.1.1 Khái niệm

Hệ thống tìm kiếm giá cả (hay còn được biết đến với tên là “dịch vụ so sánh giá cả”) là một khái niệm thuộc lĩnh vực thương mại điện tử. Các hệ thống này cho phép người sử dụng tìm kiếm và thấy được sự so sánh giá cả của một sản phẩm cụ thể trên nhiều trang web bán hàng khác nhau [18]. Hệ thống tìm kiếm giá cả thông thường không phải là một hệ thống bán hàng trực tuyến, tuy nhiên nó chính là một công cụ gián tiếp hỗ trợ việc giới thiệu sản phẩm của các cửa hàng kinh doanh cũng như việc mua hàng của người sử

dụng.

3.1.2 Các phương pháp xây dựng

Do các hệ thống tìm kiếm giá cả tập trung vào việc thể hiện các thông tin giá cả trên nhiều trang web bán hàng khác nhau nên hướng tiếp cận để giải quyết bài toán này cũng

đều đi sâu vào việc tạo ra một môi trường tốt nhất cho việc thu thập, trao đổi thông tin sản phẩm giữa các cửa hàng có sản phẩm và hệ thống. Thông thường có ba phương pháp để

xây dựng hệ thống dựa vào đặc trưng trên [18] :

- Phương pháp dựa vào sự cung cấp thông tin trực tiếp từ các cửa hàng. Các hệ

thống dạng này sẽ nhận được sự cung cấp thông tin của các cửa hàng về thông tin, giá cả

của sản phẩm, người quản trị hệ thống sẽ cập nhập vào cơ sở dữ liệu của hệ thống. Các cửa hàng sẽ không tương tác trực tiếp lên hệ thống.

22

- Phương pháp dựa vào sự tương tác của cửa hàng trên hệ thống. Các hệ thống dạng này thường được biết đến như là các mô hình B2C(Business To Customer), B2B (Business To Business) trong thương mại điện tử. Hệ thống sẽ tạo ra môi trường giao diện, cho phép các cửa hàng tương tác trực tiếp với hệ thống để cung cấp thông tin.

- Phương pháp tựđộng thu thập thông tin từ các trang web bán hàng hay giới thiệu sản phẩm của các cửa hàng. Hệ thống dạng này sẽ không dựa vào sự cung cấp thông tin của các cửa hàng mà tự động truy nhập vào các trang web của cửa hàng để trích xuất các thông tin sản phẩm đưa về cơ sở dữ liệu của hệ thống.

3.1.3 Các hệ thống hiện tại

Các hệ thống hiện tại.

Đối với ba phương pháp tiếp cận đã được giới thiệu ở mục 3.1.2, việc áp dụng hai phương pháp đầu sẽ gặp phải các hạn chế do dữ liệu của hệ thống hoàn toàn phụ thuộc vào sự cung cấp của các cửa hàng trong khi giá cả là dạng dữ liệu biến động liên tục theo thời gian đòi hỏi phải có sự cập nhật liên tục thông tin vào cơ sở dữ liệu. Bên cạnh đó, việc áp dụng hai phương pháp này, cơ sở dữ liệu sẽ bị giới hạn về số lượng cửa hàng cung cấp dữ liệu cho hệ thống. Do đó hai phương pháp này không phải là phương pháp tối ưu

để xây dựng hệ thống tìm kiếm giá cả.

Còn ở phương pháp tiếp cận thứ ba, dữ liệu được thu thập thông qua các trang kinh doanh sản phẩm. Hệ thống sẽ quét qua những trang web cửa hạng để nhận được giá cả

của sản phẩm, thay vì phải sử dụng nguồn cung cấp của người kinh doanh. Vì vậy đây là phương pháp có giá trị nhất tình tới thời điểm hiện nay.

Có rất nhiều bài toán được đề xuất theo phương thức tiếp cận thứ ba để xây dựng hệ

thống tìm kiếm giá cả như:

- Andrew Carlson và Charles Schaferáp dụng [1] để trích xuất tựđộng các thông tin ở

các website du lịch và kinh doanh nhà đất, nhằm xây dựng hệ thống tìm kiếm giá cả

về nhà đất và du lịch (adsbygoogle = window.adsbygoogle || []).push({});

- “Elwin Chai, Rick Jones áp dụng [3] để xây dựng hệ thống tìm kiếm giá cả tựđộng PriceHunter.

- Robert Bo Doorenbos, Oren Etzioni và Daniel So Weld đã giới thiệu [7] để xây dựng một ứng dụng so sánh giá cả cỡ lớn cho web.

23 • Các vấn đề của bài toán nêu trên

Các bài toán này được đề xuất để xây dựng những hệ thống tìm kiếm giá cả sản phẩm, tuy nhiên chúng gặp phải một vấn đề, đó là các tên của sản phẩm phải được cung cấp trước và các trang kinh doanh sản phẩm phải xác định rõ trên hệ thống.

Việt Nam hiện nay cũng có một vài hệ thống khá tiêu biểu như : Vatgia1, Aha2. Tuy nhiên hai hệ thống này lại xây dựng theo cách tiếp cận thứ hai, nên phải phụ thuộc nhiều vào các nhà kinh doanh.

Từ những nhận định đã nêu trên, khóa luận này sử dụng cách tiếp cận thứ ba để xây dựng hệ thống và sẽ giải quyết một số tồn tại một số phương pháp xây dựng hệ thống tìm kiếm giá cả hiện tại.

3.2 Cơ s thc tin

Hiện nay các trang web đều xây dựng trên nền những ngôn ngữ lập trình động như

PHP, ASP…. Khi người dùng vào một trang kinh doanh sản phẩm và tìm kiếm một sản phẩm nào đó thì kết quả được trả về và hiển thị trên trình duyệt theo một số khuôn mẫu

định sẵn, các trang trong cùng khuôn mẫu này thì có chung cấu trúc HTML. Tức là khi chúng ta biết mẫu để trích xuất một trang trong khuôn mẫu này, thì có thể sử dụng mẫu đó

để trích xuất những thông tin của những trang khác có cùng khuôn mẫu.

Ví dụ : Với website www.trananh.vn, hình 10,11 biểu diễn của trang detail về hai sản phẩm của laptop HP.

1 http://www.vatgia.com

24

Hình 10. Trang giới thiệu sản phẩm HP CQ60-203TX

Hình 11. Trang giới thiệu sản phẩm HP CQ60-101TX

Hai trang detail này tuy giới thiệu về hai sản phẩm khác nhau nhưng đều có chung một dạng biểu diễn của cây DOM như hình 12 dưới đây

25

Hình 12. Biểu diễn cây DOM của mã HTML hai trang về sản phẩm HP

Mẫu trích xuất các thông tin

Tên Sản phẩm: HTML Æ BODY Æ TABLE Æ TR[1] Æ TD[1] Æ TÊN SẢN PHẨM (1).

Giá Sản Phẩm: HTML Æ BODY Æ TABLE Æ TR[3] Æ TD[1] Æ DIV[1] Æ

FONT [1]Æ GIÁ SẢN PHẨM (2).

Nhận xét:

Vì các trang trong cùng một website có cấu trúc tuân theo một vài khuôn mẫu nhất

định nên ta có thể sử dụng những mẫu trích xuất (1) để trích xuất tên sản phẩm và (2) để

trích xuất giá sản phẩm từ trang khác có cùng cây DOM trên.

3.3 Cơ s khoa hc

Phần cơ sở lý thuyết sẽ nêu và giải quyết những bài toán cơ sở để xây dựng hệ thống tìm kiếm giá cả. Trong phần này sẽ tập trung vào hai bài toán chính đó là “bài toán về xác

(adsbygoogle = window.adsbygoogle || []).push({});

Một phần của tài liệu LUẬN VĂN: BÀI TOÁN TRÍCH XUẤT THÔNG TIN CHO DỮ LIỆU BÁN CẤU TRÚC VÀ ÁP DỤNG XÂY DỰNG HỆ THỐNG TÌM KIẾM GIÁ CẢ SẢN PHẨM potx (Trang 25 - 71)