Bài toán trích xuất thông tin giá cả của một sản phẩm xác định

Một phần của tài liệu 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 (Trang 38 - 44)

Bài toán tiền đề: xác định giá trong một trang Web - Đầu vào: Mã nguồn HTML của một trang Web.

- Đầu ra: Các giá chứa trong mã nguồn đó.

Ví dụ: Với một trang Web về kinh doanh sản phẩm “HP Mini-note”.

Hình 15. Ví d v trích xut giá trong mt trang web

Thì các giá trích xuất được sẽ là:

28

- 6,559,000 VNĐ

- 4,950,000 VNĐ

- 13,999,000 VNĐ

- 14,399,000 VNĐ

Phương pháp khóa luận sử dụng đó là xây dựng cây DOM tương ứng với mã HTML của trang, sau đó sẽ duyệt qua cây DOM để xác định được giá chứa trong trang.

Để xác định được node nào trong cây DOM là chứa giá thì khóa luận đã xây dựng được bộ luật xác định giá.

Để xác định được giá ta sử dụng một số luật sau:

- Trước giá thì có một vài tiền tố: như “GIÁ”, “PRICE”

- Sau giá cũng có các hậu tố như: “VNĐ”, “USD”, “VND”,”Đ”,”$” ….

- Định dạng của giá: dạng số , tức là bao gồm các ký tự {0, 1, 2,…, 9, “,”, “.”}

- Node chứa giá là: #text

Tuy nhiên trong quá trình thống kê này chúng tôi cũng thấy có nhiều giá không liên quan ví dụ như trường hợp trên thì “300.000 VNĐ” không phải là giá mặc dù nó chứa hậu tố VNĐ.

Trong một số trường hợp như hình 19 thì mặc dù thỏa mãn các điều kiện về tiền tố, hậu tố và định dạng của giá. Nhưng nó không phải là giá có ý nghĩa với người sử dụng.

Vì vậy khóa luận này xây dựng các tiền tố loại trừđể loại trừ các giá không ý nghĩa đó.

29

Hình 16. Ví d v sn phm cha nhng giá không đúng

Bài toán trích xuất thông tin giá cả của sản phẩm Mô tả bài toán

- Đầu vào: Tên sản phẩm và trang Web lên quan đến sản phẩm.

- Đầu ra: Giá thực của sản phẩm, mẫu trích xuất giá thực đó và mẫu trích xuất tên sản phẩm.

Ví dụ: đầu vào là trang web bán sản phẩm Nokia 1200 như sau.

Hình 17. Ví d v trích xut giá thc ca trang sn phm

Giá không đúng Tiền tố loại trừ

30 Đầu ra sẽ là giá của sản phẩm này : VNĐ 540.000 là giá thực của sản phẩm, mẫu trích xuất tên sản phẩm này là “HTML Æ BODY Æ TABLE[1] Æ TR[1] Æ TD[1] Æ

Tên sản phẩm” và mẫu trích xuất giá này là “HTML Æ BODY Æ TABLE[1] Æ TR[2] Æ

TD[2] Æ Giá thực sản phẩm”. (adsbygoogle = window.adsbygoogle || []).push({});

Xác định đước giá của sản phẩm là một bài toán hết sức quan trọng trong hệ thống tìm kiếm giá cả. Tuy nhiên không có một chuẩn để nhận dạng được giá mà có thể áp dụng để nhận dạng tất cả các trang.

Phương pháp giải quyết bài toán

Để xác định giá phương pháp được thực hiện thông qua những bước sau: Xây dựng cây DOM tương ứng với mã HTML của trang Web đầu vào

- Bước 1: Xác định được node của cây DOM chứa tên sản phẩm và lấy được mẫu trích xuất tên sản phẩm.

- Bước 2: Xác định tất các các node chứa giá trong trang Web như đã nêu ở trong bài toán tiền đề và lấy được mẫu trích xuất tương ứng với những giá đó.

- Bước 3: Loại trừ các giá không phù hợp.

- Bước 4: Xác định được giá thực của sản phẩm thông qua mối quan hệ giữa tên và giá của sản phẩm.

Tại bước 1, ta sẽ duyệt qua cây DOM, xác định node chứa tên sản phẩm (tên sản phẩm đã định rõ từđầu vào). Từ các node này ta sẽ sinh ra mẫu trích xuất tương ứng với tên sản phẩm.

Tại bước 2 sau khi xác định được node có chứa giá theo bài toán tiền đề, ta có thể lấy được mẫu trích xuất tương ứng với node đó theo phương pháp trích xuất sử dụng cây DOM đã nêu ở phần 2.1.

Sau khi đã xác định được tất cả các mẫu trích xuất giá và mẫu trích xuất tên sản phẩm, để xác định được giá thực của sản phẩm ta phải loai trừ những giá không phù hợp, đó là những giá nằm trông một số thẻ <strike> hay thẻ <s>.

Giá có thể xuất hiện độc lập hoặc không độc lập, ví dụ: giá <tag>120.000 vnđ </tag> là giá độc lập trong khi giá <tag>100.000 vnđ (30%) </tag> là giá không độc lập. Nếu chỉ có một giá độc lập thì giá này được coi là giá thực. Nếu có nhiều giá độc lập, thì

31 tất cả các giá đó đều có thể là giá của sản phẩm. Vì vậy ta phải dựa vào mối quan hệ giữa tên sản phẩm và giá của sản phẩm đó. Mối quan hệ giữa tên sản phẩm và giá của nó trong một trang kinh doanh sản phẩm đó là sự gần nhau về mặt cấu trúc HTML (ví dụ: chúng thuộc 2 node kề nhau trong cây DOM ).

Để xác định được sự gần nhau giữa các node chứa tên và giá trong cây DOM. Khóa luận này sử dụng độ trùng lặp vềđường đi từ gốc đến node của mẫu trích xuất.

Ví dụ:

Mẫu trích xuất tên sản phẩm là: HTML Æ BODY Æ TABLE Æ TR Æ TD Æ

DIV[1] Æ Tên sản phẩm.

Mẫu trích xuât giá sản phẩm là: HTML Æ BODY Æ TABLE Æ TR Æ TD Æ

DIV[2] Æ FONT Æ Tên sản phẩm.

Với 2 mẫu trích xuất như trên thì độ trùng lặp sẽ là : 5 tương ứng với 5 bước đi: HTML[1]Æ BODY[2]Æ TABLE [3]Æ TR[4]Æ TD[5].

Nếu độ trùng lặp giữa mẫu trích xuất tên và mẫu trích xuất giá là lớn nhất thì nó được coi là giá thực của sản phẩm. Tuy nhiên trong một số trang không cung cấp giá của sản phẩm nhưng lại có chứa những giá ngoại lai, những giá này không phải là giá sản phẩm. Vấn đề đặt ra là làm sao có thể xác định được giá đó không phải là giá của sản phẩm.

Để giải quyết vấn đề này, khóa luận sử dụng thêm một độ đo về sự khác biệt giữa 2 mẫu trích xuất. Nếu sự khác nhau này nhỏ hơn một ngưỡng thì mẫu trích xuất trỏđến giá và mẫu trích xuất trỏ đến tên sản phẩm mới được chấp nhận là một ứng cửđể trích xuất giá thực và tên của sản phẩm các trang.

Đối với những trang Việt Nam, khóa luận này gặp một vài thách thức đó là cách thức viết giá không đúng hoặc giá quá nhập nhằng, như một số trang lại viết là : Giá: VNĐ 120.000 , trong khi thực tế thì phải viết là 120.000 VNĐ. Mặt khác một số trang lại chưa cập nhật được giá sản phẩm và giá chỉ xuất hiện dưới dạng “Giá:(x)vnđ”. Đặt biệt là giá ở một số trang về rao vặt ở Việt Nam thì không theo một qui tắc viết, ví dụ “Cần bán nokia 1200 giá 320k”…

Qua thống kê tại nhiều trang kinh doanh các loại sản phẩm ở Việt Nam và trên thế giới trên nhiều lĩnh vực như các trang về: Điện thoại, máy tính, mỹ phẩm và trang sức,

32 đặc biệt là một số trang về rao vặt….. .Kết hợp bài toán tiền đề và bài toán “xác định giá thực” khóa luận này đã đề xuất ra một tập luật để trích xuất giá của sản phẩm.

Hình 18. Tp lut trích xut giá sn phm Trong tập luật này gồm một số luật chính: - FirstRule: tiền tố của giá - LastRule: Hậu tố của giá - RejectRule: tiền tố loại trừ - Format: định dạng của giá

- TagName: tên thẻ HTML mà giá nằm trong đó.

Trong khi xây dựng được tập luật để trích xuất giá cả, chúng tôi nhận thấy: ngoài giá cả của sản phẩm người sử dụng còn quan tâm đến những thuộc tính khác của sản phẩm như: ảnh của sản phẩm, thời gian bảo hành, thông tin khuyến mại… Bên cạnh đó cách tổ chức tập luật với giá có thể áp dụng cho những thuộc tính này.

Trên tư tưởng chung của phương pháp trích xuất giá, tức là lấy tên sản phẩm làm neo để xác định giá thực của sản phẩm bằng cách xác định giá gần nhất với sản phẩm.

Khóa luận này cũng đã xây dựng thành công các luật trích xuất cho những thuộc tính trên:

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

Hình 19. Lut trích xut nh sn phm

- Luật trích xuất thời gian bảo hành

Hình 20. Lut trích xut thông tin bo hành sn phm

Một phần của tài liệu 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 (Trang 38 - 44)