Nghiên cứu ứng dụng các kỹ thuật học trích rút theo phương pháp học máy để xây dựng hệ thống so sánh thông tin giá cả trực tuyến có tính khả biến cao - Pdf 33

LỜI CẢM ƠN
²
Em xin gửi lời cảm ơn chân thành tới các thầy cô trong khoa Công Nghệ Thông Tin,
gia đình và bạn bè, đã giúp đỡ em trong suốt quá trình học tập cũng như thực hiện khóa
luận. Đặc biệt em xin trân trọng cảm ơn thầy giáo, Tiến sĩ Nguyễn Đại Thọ đã trực tiếp
hướng dẫn em hoàn thành khóa luận này.
Hà nội, ngày 25 tháng 05 năm 2006
Nguyễn Huy Sơn.
TÓM TẮT NỘI DUNG
²
Trên thế giới đã có nhiều Website tập hợp thông tin giá cả của nhiều chủng loại mặt
hàng khác nhau chào bán trên mạng bởi nhiều công ty kinh doanh khác nhau. Ở Việt Nam
khoảng một năm trở lại đây cũng đã bắt đầu xuất hiện một số Website như vậy. Tuy nhiên
hầu hết các Website đó cả ở Việt Nam lẫn trên thế giới đều sử dụng những tác tử khảo
duyệt và trích rút thông tin có mức độ tự động và tính thông minh không cao. Cụ thể, đối
với mỗi Website bán hàng, người phát triển phải xây dựng một bộ luật trích rút riêng cho
chương trình tác tử. Trong nghiên cứu, người ta đã đề xuất một số kỹ thuật học máy sử
dụng chỉ một tác tử nhưng có thể trích rút thông tin từ nhiều Website có cách thức tổ chức
khác nhau. Báo cáo này nghiên cứu ứng dụng các kỹ thuật trích rút theo phương pháp học
máy để xây dựng một hệ thống so sánh thông tin giá cả trực tuyến có tính khả biến cao.
Tính khả biến cao mà ứng dụng hướng tới là khả năng quy tụ thông tin từ một số nguồn
không hạn chế các Website sản phẩm với cùng một chương trình tác tử. Hệ thống của
chúng tôi đã cho những kết quả ban đầu rất đáng khích lệ khi thử nghiệm trên một số
Website tiêu biểu ở Việt Nam.
1
MỤC LỤC
TÓM TẮT NỘI DUNG..........................................................................................................1
LỜI NÓI ĐẦU........................................................................................................................5
Bối cảnh chung...............................................................................................................5
So sánh giá cả.................................................................................................................5
Mục đích đề tài...............................................................................................................6

Mở rộng thuật ngữ bằng cấu trúc cây..........................................................................38
Kết luận............................................................................................................................40
Chương 4 PHÁT TRIỂN HỆ THỐNG SO SÁNH...............................................................41
GIÁ CẢ TRỰC TUYẾN....................................................................................................41
Mô hình tổng quát...........................................................................................................41
Thiết kế tác tử..................................................................................................................42
Thiết kế Website..............................................................................................................46
Mô tả Website..............................................................................................................46
Cấu trúc Website..........................................................................................................46
Hoạt động của Website:...............................................................................................47
Cơ sở dữ liệu....................................................................................................................48
Hướng dẫn cài đặt hệ thống thực nghiệm Website so sánh giá cả...................................52
Cài đặt trình biên dịch JDK và trình chủ Web Tomcat...............................................52
Biên dịch và chạy ứng dụng.........................................................................................54
Kết luận............................................................................................................................57
KẾT LUẬN..........................................................................................................................58
DANH MỤC TÀI LIỆU THAM KHẢO..............................................................................60
3
Một số thuật ngữ và chữ viết tắt được sử dụng trong đề tài
Tên thuật ngữ Ý nghĩa
CSDL Cơ sở dữ liệu
Database Cơ sở dữ liệu
Link Liên kết
PDU Product Description Unit- Đơn vị miêu tả
sản phẩm
URL Uniform Resource Locator
URI Uniform Resource Identifier
4
LỜI NÓI ĐẦU
Bối cảnh chung

Quá trình thu thập thông tin giá cả được tự động hóa ở những mức độ khác nhau.
Mức độ thấp nhất là dữ liệu được nhập hoàn toàn bằng tay thông qua quan sát bằng mắt
trên một số Website bán hàng nhất định. Cao hơn một mức, người ta sử dụng những tác tử
khảo duyệt và trích rút thông tin, nhưng vì các Website khác nhau có cách thức tổ chức
khác nhau nên đối với mỗi Website phải xây dựng một bộ luật trích rút riêng cho chương
5
trình tác tử thông qua khảo sát trước bằng mắt. Những tác tử này được gọi chung là tác tử
so sánh giá cả (comparison shopping agent). Công việc trích rút thông tin đạt được mức độ
tự động cao nhất khi tác tử so sánh giá cả có thể tự động xây dựng các bộ luật trích rút phù
hợp với mỗi Website không cần tới sự can thiệp của người lập trình. Những nghiên cứu
theo hướng này bao gồm các công trình [1, 2, 4, 5, 6, 7, 8], trong đó hiệu quả nhất hiện nay
là loại tác tử có khả năng học máy do nhóm tác giả Hàn Quốc Yang et al. đề xuất trong các
tài liệu [4, 5 6].
Tác tử trích rút thông tin theo phương pháp học máy hoạt động độc lập với thể loại
sản phẩm và hoàn toàn tự động. Chỉ cần biết địa chỉ trang chủ một cửa hàng trực tuyến, nó
sẽ tự động học cách trích rút thông tin sản phẩm từ Website đó, trong đó có thông tin quan
trọng nhất là giá cả sản phẩm. Loại tác tử này có một số chức năng nổi trội như sau:
- Tự động học
- Không đòi hỏi phải hiểu ngôn ngữ tự nhiên
- Dựa trên cơ sở của ngôn ngữ HTML
Quá trình tự động học của tác tử giúp cho nó có khả năng phân tích các mô tả sản
phẩm và nhận biết được các thuộc tính sản phẩm như giá cả hay chủng loại của sản phẩm.
Nó thực hiện điều này mà không cần phải qua những khâu xử lý ngôn ngữ tự nhiên rất
phức tạp, và chỉ yêu cầu một ít kiến thức về các thể loại sản phẩm khác nhau mà thôi. Nó
trích rút thông tin từ các cửa hàng trực tuyến thông qua sự kết hợp của các kỹ thuật tìm
kiếm theo kinh nghiệm, tương hợp mẫu và học suy diễn.
Mục đích của khóa luận
Khóa luận hướng tới các mục tiêu như sau:
• Nghiên cứu thuật toán trích rút thông tin theo phương pháp học máy.
• Phát triển bằng ngôn ngữ lập trình Java tác tử so sánh giá cả có khả năng trích rút

Để sự tìm kiếm của người dùng có kết quả như mong đợi thì cần phải có sự thể hiện
từ hai phía. Phía khách hàng phải có cách nhập từ khóa hợp lý. Phía hệ thống cần phải
thường xuyên cập nhật thông tin, thêm sản phẩm mới.
Để xây dựng được hệ thống phải khảo sát các Website bán hàng. Nó vừa là sự kiểm
chứng cho lý thuyết được đặt ra có phù hợp với thực tiễn hay không vừa là để phục vụ cho
việc cập nhật các Webiste sau này. Với mong muốn trước tiên là ứng dụng đề tài này cho
các Webiste ở Việt Nam nên chương 2 của báo cáo này sẽ trình bày phần khảo sát về các
Website kinh doanh ở Việt Nam.
Chương 3 trình bày việc thiết kế tác tử trích rút thông tin.
Chương 4 của báo cáo này sẽ trình bày chi tiết cách triển khai trên thực tế. Phần thứ
nhất là tìm hiểu và làm rõ từ các vấn đề kỹ thuật cơ sở (như sử dụng ngôn ngữ Java, sử
dụng các lớp Java xây dựng sẵn) để thiết kế tác tử so sánh giá cả (Tự động tìm form tìm
kiếm, trích rút thông tin sản phẩm). Phần thứ hai sẽ trình bày ý tưởng xây dựng một
Website so sánh giả cả và cơ sở dữ liệu để hoàn thành lên một ứng dụng hoành chỉnh
Sau cùng là tích hợp các kỹ thuật để cài đặt và triển khai một hế thống so sánh giá cả
đơn giản.
Vì đây là một lĩnh vực còn khá mới mẻ ở Việt Nam và cũng là một bài toán khó đòi
hỏi sự nghiên cứu kỹ càng, sự thực nghiệm và học hỏi nghiêm túc. Trước mắt, chương trình
mới chỉ giới hạn tìm kiếm trên các Webiste ở Việt Nam. Thông tin về sản phẩm tìm kiếm
cũng có sự hạn chế đến mức cơ bản. Nhưng chắc chắn đề tài sẽ không dừng lại ở đó mà
7
còn tiếp tục hoàn thiện hơn, nhiều tính năng hơn. Phần kết luận sẽ đề ra phương hương phát
triển của đề tài này.
Tóm lại, qua 5 chương:
 Chương 1: Khảo duyệt Web với Java
 Chương 2: Khảo sát các Website bán hàng ở Việt Nam
 Chương 3: Thiết kế tác tử trích rút thông tin
 Chương 4: Phát triển hệ thống so sánh thông tin giá cả trực tuyến
 KẾT LUẬN VÀ PHƯƠNG HƯỚNG PHÁT TRIỂN
Người đọc sẽ có một cách tiếp cận từ tổng thể đến cụ thể về một công nghệ mới:

dữ liệu được gửi trong phần thân của thông điệp.
Các trang HTML sử dụng POST để Submit các form dữ liệu.
Khác với GET, các tham số được đặt trong phần thân của thông điệp, nó không
được hiển thị như là một phần của yêu cầu URI.
9
Tìm hiểu về gói Bot-Package
Gói thư viện Bot là tập hợp các lớp Java được xây dựng nhằm hỗ trợ phát triển
Spider, Bot... Ta sẽ sử dụng gói thư viện này để xây dựng một lớp cho phép xác định một
form tìm kiếm trên 1 trang HTML và truyền từ khóa qua form đó để lấy về một URL. Sau
đây là một số phương thức của các lớp mà ta sẽ sử dụng trong đề tài:
Lớp HTTP
Cung cấp các công cụ điều khiển:
• Cookies
• The referrer tag
• HTTP User Authentication
• Automatic Redirection
• Parsing headers
public String getBody()
Phương thức này trả về một nguyên bản trả từ một HTTP Request. Nếu kết quả trả
về dưới dạng nhị phân thì nó sẽ được chuyển sang dạng chuỗi (String)
public CookieParse getCookie(String name)
Phương thức trả về những cookie độc lập với tên, kiểu trả về là CookieParse
public AttributeList getCookies()
Phương thức này trả về danh sách các thuộc tính là nội dung của các cookie hiện tại
được lưu giữ bởi HTTP session.
public int getTimeout()
Phương thức này lấy về thời gian timeout được định nghĩa cho đối tượng HTTP,
thời gian được tính theo dạng milliseconds.
public String getURL()
Phương thúc này trả về URL được yêu cầu bởi phương thức send() lần cuối cùng

public String getName()
Phương thức lấy tên của đối tượng Attribute
public String getValue()
Phương thức lấy giá trị của đối tượng Attribute
public void setName(String name)
Phương thiết lập tên cho đối tượng Attribute
public void setValue(String value)
Phương thiết lập giá trị cho đối tượng Attribute
Lớp HTMLPage
Lớp HTMLPage được sử dụng để đọc một trang HTML theo một địa chỉ URL được
chỉ ra và hỗ trợ việc trích rút các thông tin hữu ích.
11
Lớp HTMLPage sử dụng phương thức constructor để xây dựng và định nghĩa đối
tượng HTML object - đối tượng này được sử dụng trong tất cả các giao tiếp.
public HTMLPage(HTTP http)
Để mở một kết nối và nhận một trang HTML, luôn bắt đầu với mã:
HTTPSocket http = new HTTPSocket();
HTMLPage = new HTMLPage(http);
page.open(_url,null);
public void open(String url,HTMLEditorKit.ParserCallback
callback)
throws IOException,BadLocationException
Trong đó _url là địa chỉ của Website được chỉ ra. Sau khi thực hiện phương thức
open() của đối tượng page, ta có thể xác định các thành phần trong trang HTML : forms,
links.
Lớp HTTPPage cung cấp một số phương thức lấy về danh sách các ảnh, các link hay
các form được tìm thấy khi đọc một trang HTML:
public Vector getImages()
public Vector getForms()
public Vector getLinks()

HTMLForm - lưu giữ thông tin form và điền dữ liệu lên form. Sau quá trình Posting Form,
một trang HTML kết quả được trả về.
Phương thức post nằm trong lớp HTTPPage:
public void post(HTMLForm form)
throws IOException{
http.getClientHeaders().set("Content-Type",
"application/x-www-form-
urlencoded");
http.send(form.getAction(),form.toString());
processPage(null);//phương thức xử lý đối tượng callback
}
Sử dụng gói thư viện Swing cho việc phân tích cú pháp HTML
Từ phiên bản 1.2, JAVA đưa ra gói thư viện Swing hỗ trợ việc phân tích cú pháp
HTML
Tạo đối tượng Callback cho việc phân tích HTML
Để phân tích được trang HTML ta tạo ra một đối tượng HTMLParserCallback
dẫn xuất từ lớp javax.swing.text.html.HTMLEditorKit .
Bằng cách ghi đè các phương thức trong đối tượng HTMLEditorKit ta có thể xử lý
theo ý muốn nội dung trang HTML.
13
Sau đây là các phương thức cần thiết để xử lý nội dung HTML được sử dụng trong
đề tài:
• public void handleComment(char[] data,int pos)
Phương thức này được gọi bởi Swing Parser khi một chú thích HTML được định
vị. Lời chú thích được lưu giữ trong data. Tham số pos đưa ra vị trí hiện tại của
nó .
• public void handleEndTag(HTML.Tag t,int pos)
Phương thức này được gọi bởi Swing Parser khi một thẻ đóng HTML được định vị.
Tham số pos đưa ra vị trí hiện tại của nó.
• public void handleSimpleTag(HTML.Tag t,MutableAttributeSet

dùng nhập dữ liệu tìm kiếm trùng với từ khóa thì sẽ dễ dàng tìm ra các thông tin sản phẩm
cần tìm. Mặt khác, cũng là để liệt kê ra danh sách các Website, các sản phẩm của Website
để cập nhật vào CSDL sau này.
Một điều quan trọng là từ việc khảo sát này giúp cho quá trình xây dựng chương
trình dễ phác thảo ra xem đối với một sản phẩm thì nên thể hiện những gì?
Các vấn đề được quan tâm khảo sát ở đây bao gồm: Tên sản phẩm, nhà sản xuất,
định danh của sản phẩm và quan trọng là giá bán, tên loại sản phẩm và nơi bán.
Các Webiste được khảo sát kinh doanh nhiều mặt hàng thuộc nhiều lĩnh vực khác
nhau được liệt kê như sau:
15
Tên Website Mặt hàng kinh doanh
Máy tính và các linh kiện máy tính
Điện thoại di động
Máy tính và các linh kiện máy tính
Tạp phẩm
Sách báo, đĩa nhạc, điện hoa
Các linh kiện máy tính
Máy tính và linh kiện máy tính
Máy tính và linh kiện máy tính
VCD, DVD , Amply, v…v
Đệm, gối, salon v..v..
Sách báo, tap chí…
Các mặt hàng điện tử của Sony
Các linh kiện và dịch vụ mạng, dich vụ viễn thông
Máy tính và các linh kiện máy tính
Máy tính và các linh kiện máy tính
Máy tính và các linh kiện máy tính
Máy tính và các linh kiện
Website bán điện thoại di động
Website bán điện thoại di động

Tìm kiếm chi tiết:
Thông thường tại các Website, bên cạnh mục tìm kiếm đơn giản đều có mục tìm
kiếm nâng cao hay còn gọi là tìm kiếm chi tiết. Đây là phần mở rộng hơn so với khả năng
tìm kiếm ở phần trên. Tức là phần tìm kiếm ngoài một hộp textbox để người dùng nhập vào
còn có một số lựa chọn khác do nhà cung cấp đưa ra.
17
Hình 2-2 Tìm kiếm chi tiết()
Tương tự: ,
Tìm kiếm chi tiết giới hạn phạm vi tìm kiếm nên đôi khi kết quả trả về có thể là
không thấy so với tìm kiếm đơn giản, vì cùng một chủng loại nhưng phạm vi giá tìm kiếm
lại không trùng với giá mà cửa hàng có.
Tìm kiếm nâng cao thật ra đòi hỏi người dùng phải có một sự hiểu biết nhất định và
còn phải có cách tìm kiếm hợp lý mới tìm ra sản phẩm theo mong muốn.
Còn có một kiểu nữa tạm xếp vào loại này, đó là tìm kiếm theo phân loại về sản
phẩm (Ví dụ: sách, đĩa ca nhạc,...) và gõ vào tên sản phẩm cần tìm.
Trang là một ví dụ về loại này.
Tìm kiếm theo danh mục
Đây là loại tìm kiếm mà chúng ta chỉ có thể lựa chọn khi tìm kiếm. Họ cung cấp cho
ta một danh sách tên các sản phẩm và ta phải chọn trong danh sách đó.
Hình 2-3 Tìm kiếm theo danh mục()
Tiêu biểu cho loại này là . Đây là Website được
đánh giá là rất khoa học cho việc tìm kiếm. Nó hạn chế thời gian tìm của ta bằng cách cung
cấp sẵn tên các sản phẩm có trong CSDL. Ứng với mỗi sản phẩm ( ví dụ như Nokia) thì lại
có một danh sách bên cạnh giới thiệu về các chủng loại của sản phẩm đó ( ví dụ như
6610,6610i...của Nokia). Nó còn cung cấp cho ta khả năng tìm kiếm theo giá cả lớn nhất và
nhỏ nhất giới hạn được.
Tương tự: ,
18
Nhận biết mục tìm kiếm
Với mục tìm kiếm đơn thuần, thường thì có các từ sau hay được sử dụng:

19
Trình bày của Website khi tìm thấy hoặc không tìm thấy sản phẩm
Tổ chức chung
Cấu trúc của trang trả về khi không tìm thấy và tìm thấy sản phẩm có cấu trúc hoàn
toàn giống nhau. Thường sẽ có thông báo là “Tìm thấy x sản phẩm” hoặc tương tự, với x có
thể là 0 (tức là không có sản phẩm nào). Ví dụ một số Website sử dụng cách này là:



Hình 2-4: Minh họa kết quả trang tìm kiếm trả về
Cách thứ hai mà rất nhiều trang sử dụng là thông báo “Không tìm thấy sản phẩm”
hoặc gần giống như thế khi kết quả truy vấn không thành công.
Khi tìm thấy sản phẩm, một trang bao gồm một danh sách các sản phẩm sẽ hiện ra.
Có thể đây là nơi cuối cùng thông tin về sản phẩm được thông báo. Nhưng cũng có thể
trong mỗi sản phẩm lại có một đường link để bạn vào xem xét chi tiết về sản phẩm đó. Ta
có thể tìm thấy các minh họa qua một số Website sau:
khi nhập từ khóa DVD trả về một danh sách các sản
phẩm mà mỗi sản phẩm còn có một đường link dẫn tới một trang tiếp theo sẽ giới thiệu kĩ
hơn về sản phẩm đó.
thông báo tìm thấy số lượng sản phẩm là bao nhiêu và một
danh sách sản phẩm sẽ được liệt kê bên dưới, nó cũng có một đường link dẫn tới trang có
thông tin chi tiết hơn về mỗi sản phẩm.
Cách thứ ba, giả sử nếu không tìm thấy sản phẩm trong CSDL thì thông báo xuất
hiện tương tự như: “Không tìm thấy trong CSDL với từ khóa x” với x là cụm từ mà người
dùng nhập vào. Khi tìm kiếm có kết quả thì thông báo “Tìm thấy trong CSDL với từ khóa :
x” và một loạt các danh sách sản phẩm sẽ được in ra. Có thể xem cụ thể ở các trang :
.
Cách thứ tư mà một số Website sử dụng đó là: khi truy vấn không cho kết quả thì trả
về một trang trắng không có thông báo gì; còn khi có kết quả thì trả về một trang thì chỉ in
ra danh sách các sản phẩm tìm thấy và thông tin về sản phẩm.

trên). Một số trang khác thì dùng đơn vị:VND(Ví dụ: )
USD hay $ ( hầu hết các trang đều dùng). Các từ để chỉ giá cũng rất phong phú: giá bán,
giá, price..Thường thì ta có thể tìm kiếm theo từ “giá”, “ giá bán”, "VNĐ", "đồng", "VND"
hay "$".
Ví dụ:

Hình thức thông báo giá: Tên sản phẩm + số tiền + $.

Hình thức thông báo giá cả: Số tiền + VNĐ +số % VAT .

Quick_find=maxtor&I1.x=29&I1.y=12
Hình thức thông báo giá: Có mục Giá : + $ + Số tiền.
Kết luận
Qua khảo sát một số Website bán hàng ở Việt Nam ta thấy mặc dù các Website này
có thể thể hiện cách tìm kiếm và trả về sản phẩm khi tìm kiếm khác nhau thì chúng vẫn có
những điểm chung để tác tử của ta tiến hành duyệt các Website này. Các trang nói riêng và
phần tìm kiếm nói chung thường được thiết kế theo một mẫu có sẵn, có thể nhận ra chúng
và phân tách chúng.
22
Chương 3 THIẾT KẾ TÁC TỬ TRÍCH RÚT THÔNG TIN
Giới thiệu
So sánh thông tin giá cả trực tuyến là một ứng dụng cần thiết và quen thuộc đối với
các nước phát triển, nhưng với nước ta đây vẫn là một khái niệm còn rất mới mẻ. Trên thế
giới đã có không ít các Website so sánh giá cả trực tuyến nhằm phục vụ nhu cầu mua sắm
qua mạng rất lớn của người tiêu dùng. Do những ứng dụng này ra đời sớm nên còn rất thủ
công và có nhiều hạn chế. Những nhà phát triển đã xây dựng chương trình bằng cách ứng
với mỗi Website bán hàng trực tuyến họ lại xây dựng một tác tử riêng để trích rút thông tin
giá cả cho Website đó. Rõ ràng, cách tiếp cận của họ không khả chuyển và mỗi khi có một
Website mới ra đời thì lại mất công xây dựng một chương trình mới để trích rút thông tin
cho Website này. Mục đích của chương này là trình bày cơ chế hoạt động của tác tử tìm

Giao diện nhập thuật ngữ cho phép người dùng chương trình nhập vào các thuật ngữ
(từ khoá) mới để nhận biết ra các thông tin về thuộc tính sản phẩm.
24


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status