Tải bản đầy đủ (.pdf) (53 trang)

Trích chọn thuộc tính sản phẩm trong hệ thống mua bán trực tuyến tiếp cận khai phá luật kết hợp

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (974.74 KB, 53 trang )

i

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ


Quách Hiếu Nghĩa


TRÍCH CHỌN THUỘC TÍNH SẢN PHẨM TRONG
HỆ THỐNG MUA BÁN TRỰC TUYẾN TIẾP CẬN
KHAI PHÁ LUẬT KẾT HỢP







KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY


Ngành: Công nghệ thông tin














HÀ NỘI - 2009

ii

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ


Quách Hiếu Nghĩa


TRÍCH CHỌN THUỘC TÍNH SẢN PHẨM TRONG
HỆ THỐNG MUA BÁN TRỰC TUYẾN TIẾP CẬN
KHAI PHÁ LUẬT KẾT HỢP







KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY


Ngành: Công nghệ thông tin



Cán bộ hướng dẫn: Ths. Nguyễn Việt Cường
Cán bộ đồng hướng dẫn: CN. Nguyễn Thị Thùy Linh










HÀ NỘI - 2009




LỜI CẢM ƠN
Đầu tiên, em xin gửi lời cảm ơn chân thành và sâu sắc tới Thạc sỹ Nguyễn Việt
Cường và Cử nhân Nguyễn Thị Thùy Linh, người đã tận tình chỉ bảo và hướng dẫn em
trong suốt quá trình thực hiện khóa luận tốt nghiệp này.
Tiếp theo, em xin chân thành cảm ơn các thầy cô đã nhiệt tình giảng dạy và giúp đỡ,
tạo điều kiện thuận lợi cho em trong suốt quá trình học tập tại trường Đạ
i học Công nghệ.
Em cũng xin gửi lời cảm ơn tới thầy cô và các bạn sinh viên thuộc Phòng thí nghiệm
Công nghệ tri thức đã ủng hộ và giúp đỡ em rất nhiều trong quá trình nghiên cứu và thực
hiện khóa luận này.
Cuối cùng, xin gửi lời cảm ơn vô hạn tới gia đình và bạn bè, những người luôn bên

cạnh và động viên tôi trong cuộc sống học tập cũng như làm việc.
Xin chân thành
cảm ơn!
Hà Nội, ngày 23 tháng 5 năm 2009
Sinh viên
Quách Hiếu Nghĩa
i

TÓM TẮT NỘI DUNG
Ngày nay, thương mại điện tử đã trở nên phổ biến đối với mọi người. Cùng với nó là
sự ra đời của các trang web bán hàng trên mạng. Trên các trang web bán hàng trực tuyến
thường có mục dành cho khách hàng đưa ra ý kiến, đánh giá của mình về sản phẩm và các
dịch vụ liên quan. Với sự phát triển của thương mại điện tử, số lượng đánh giá mà một
sản phẩm nhận
được cũng ngày càng tăng. Đối với một sản phẩm phổ biến, số lượng đánh
giá của khách hàng có thể khá lớn (có thể lên tới con số hàng trăm). Điều này gây ra khó
khăn cho những ai muốn tham khảo các đánh giá để đưa ra quyết định có mua sản phẩm
hay không. Do vậy, nảy sinh nhu cầu tóm tắt những đánh giá này lại thành một bản tóm
tắt dễ đọc.
Trong khóa luận này, chúng tôi thực hiện nghiên c
ứu và triển khai mô hình trích
chọn các thuộc tính sản phẩm được nhắc đến trong các đánh giá, một phần quan trọng
trong bài toán tóm tắt đánh giá sản phẩm của người dùng trên hệ thống mua bán trực
tuyến. Hiện nay trên thế giới đã có nhiều hệ thống trích chọn thuộc tính sản phẩm trong
các đánh giá đạt kết quả khả quan, tuy nhiên đó đều là các hệ thống áp dụng cho ngôn ngữ
tiếng Anh. Mục tiêu của khóa lu
ận là xây dựng một mô hình xử lý các đánh giá viết trên
ngôn ngữ tiếng Việt bằng cách áp dụng một số kĩ thuật xử lý ngôn ngữ tự nhiên và khai
phá luật kết hợp. Tuy kết quả đạt được chưa thể đáp ứng được yêu cầu thực tế do tồn tại
nhiều khó khăn, hạn chế trong các công cụ xử lý ngôn ngữ tiếng Việt cũng như các cơ sở

để
đánh giá, nhưng đã chứng minh được tính đúng đắn và hiệu quả của các kĩ thuật sử
dụng. Đây là cơ sở cho các hệ thống tương tự trong tương lai có thể sử dụng lại hoặc cải
tiến hoàn thiện hơn.
ii


MỤC LỤC
LỜI CẢM ƠN........................................................................................................................i
TÓM TẮT NỘI DUNG.........................................................................................................i
MỤC LỤC ............................................................................................................................ii
DANH MỤC BẢNG SỐ LIỆU...........................................................................................iv
DANH MỤC HÌNH ẢNH....................................................................................................v
MỞ ĐẦU ..............................................................................................................................1
Chương 1: GIỚI THIỆU.......................................................................................................2
1.1. Đặt vấn đề: ..............................................................................................................2
1.2. Phát biểu bài toán trích chọn thuộc tính sản phẩm trong hệ thống mua bán trực
tuyến tiếp cận khai phá luật kết hợp: ................................................................................4
1.3. Ý nghĩa và ứng dụng:..............................................................................................6
Chương 2: CƠ SỞ LÝ THUYẾT.........................................................................................8
2.1. Khai phá luật k
ết hợp:.............................................................................................8
2.1.1. Định nghĩa:.......................................................................................................8
2.1.2. Các bước trong khai phá luật kết hợp: .............................................................8
2.2. Các khái niệm cơ sở:...............................................................................................9
2.3. Thuật toán Apriori: ...............................................................................................12
2.4. Tổng kết chương: ..................................................................................................18
Chương 3: TRÍCH CHỌN THUỘC TÍNH SẢN PHẨM TRONG HỆ THỐNG MUA
BÁN TRỰC TUYẾN TIẾP CẬN KHAI PHÁ LUẬT KẾT HỢP.....................................19
3.1. Giới thiệu: .............................................................................................................19

3.2. Bài toán trích chọn thuộc tính sản phẩm trong hệ thống mua bán trực tuyến tiếp
cận khai phá luật kết hợp: ...............................................................................................19
iii

5.2.1. Tự động trích chọn các thực thể trong văn bản:.............................................20
5.2.2. Xác định thuộc tính của sản phẩm từ tập ứng viên:.......................................20
3.3. Mô hình trích chọn thuộc tính sản phẩm: .............................................................21
3.3.1. Cấu trúc hệ thống trích chọn thuộc tính sản phẩm:........................................21
3.3.2. Tách từ: ..........................................................................................................22
3.3.3. Gán nhãn loại từ:............................................................................................23
3.3.4. Trích chọn thuộc tính phổ biến: .....................................................................24
3.3.5. Trích chọn từ thể hiện ý kiến: ........................................................................26
3.3.6. Trích chọn thuộc tính ít phổ biến:..................................................................27
3.3.7. Đánh giá, nhận xét về mô hình sử
dụng:........................................................28
3.3.8. Giới thiệu một số mô hình trích chọn thuộc tính sản phẩm khác: .................29
3.4. Tổng kết chương: ..................................................................................................30
Chương 4: THỰC NGHIỆM VÀ ĐÁNH GIÁ ..................................................................31
4.1. Môi trường thử nghiệm:........................................................................................31
4.1.1. Môi trường phần cứng:...................................................................................31
4.1.2. Công cụ phần mềm: .......................................................................................31
4.2. Dữ liệu thực nghiệm: ............................................................................................31
4.3. Kết quả thực nghiệm:............................................................................................34
4.3.1. Tách từ và gán nhãn từ loại:...........................................................................34
4.3.2. Trích chọn thuộc tính phổ biến: .....................................................................35
4.3.3. Tìm tập các từ thể hiện ý kiế
n:.......................................................................38
4.3.4. Trích chọn thuộc tính ít phổ biến:..................................................................38
4.4. Đánh giá kết quả thực nghiệm: .............................................................................39
4.5. Tổng kết chương: ..................................................................................................42

KẾT LUẬN ........................................................................................................................43
TÀI LIỆU THAM KHẢO..................................................................................................44

iv

DANH MỤC BẢNG SỐ LIỆU
Bảng 1. Bảng ví dụ về cơ sở dữ liệu chứa các giao dịch bán hàng của một siêu thị..........11
Bảng 2. Bảng kí hiệu cho thuật toán Apriori......................................................................13
Bảng 3. Bảng cơ sở dữ liệu giao tác minh họa cho thuật toán Apriori ..............................15
Bảng 4. Bảng kết quả C
1
, L
1
...............................................................................................16
Bảng 5. Bảng kết quả C
2
, L
2
...............................................................................................16
Bảng 6. Bảng kết quả C
3
, L
3
...............................................................................................17
Bảng 7. Bảng kết quả C
4
, L
4
...............................................................................................17
Bảng 8. Cấu hình hệ thống thử nghiệm..............................................................................31

Bảng 9. 6 sản phẩm tiêu biểu trong số các mẫu thực nghiệm ............................................33
Bảng 10. Các loại danh từ ..................................................................................................35
Bảng 11. Số lượng danh từ trong tập đánh giá mỗi sản phẩm ...........................................36
Bảng 12. Độ hồi tưởng và độ chính xác đối với kết quả thu được nhờ khai phá luật kết
hợp ......................................................................................................................................37
Bảng 13. Độ hồi tưởng, độ chính xác của k
ết quả thu được sau 2 bước cắt tỉa .................38
Bảng 14. Độ hồi tưởng và chính xác của kết quả sau các bước xác định thuộc tính ít phổ
biến. ....................................................................................................................................39
Bảng 15. Độ đo F1 của kết quả sau các bước.....................................................................39


v


DANH MỤC HÌNH ẢNH

Hình 1. Ba bước tóm tắt các đánh giá một sản phẩm trên hệ thống mua bán trực tuyến.....3
Hình 2. Mô hình hệ thống trích chọn thuộc tính sản phẩm trong hệ thống bán hàng trực
tuyến ...................................................................................................................................21
Hình 3. Ví dụ về các đánh giá sản phẩm Nokia E90 trên website thegioididong.com......32
Hình 4. Đồ thị độ đo F1 của kết quả sau các bước trích chọn............................................40
1

MỞ ĐẦU
Với sự phát triển của thương mại điện tử, số lượng đánh giá của người dùng về một
sản phẩm trên một hệ thống mua bán trực tuyến ngày càng gia tăng. Do vậy bài toán tóm
tắt các đánh giá ra đời. Cùng với nó là bài toán con, trích chọn thuộc tính sản phẩm được
người dùng đề cập đến trong các đánh giá, cần phải giải quyết. Hiện nay, có khá nhiều
hướng tiếp cận theo ph

ương pháp học máy để giải quyết bài toán trích chọn thuộc tính sản
phẩm. Trong khóa luận này, chúng tôi sử dụng kĩ thuật khai phá luật kết hợp để trích chọn
ra các thuộc tính của sản phẩm. Đây là một hướng tiếp cận hiệu quả đã được chứng minh
khi thực hiện trên ngôn ngữ tiếng Anh. Chúng tôi sẽ trình bày các giải pháp thích hợp khi
áp dụng vào tiếng Việt.
Khóa luận gồm bốn chương, nội dung
được mô tả sơ bộ như dưới đây:
• Chương 1: Đặt vấn đề và giới thiệu tổng quan bài toán tóm tắt đánh giá sản
phẩm, từ đó phát biểu bài toán trích chọn thuộc tính sản phẩm trong hệ thống
mua bán trực tuyến.
• Chương 2: Trình bày về lý thuyết khai phá luật kết hợp theo hướng áp dụng
vào giải quyết bài toán trích chọn thuộc tính sản phẩm trong hệ thống mua
bán trực tuyến.
• Chương 3: Phát biểu bài toán trích chọn thuộc tính sản phẩm trong hệ thống
mua bán trực tuyến tiếp cận khai phá luật kết hợp, phân tích các vấn đề cần
giải quyết đối với bài toán và các bước xây dựng mô hình trích chọn trên cơ
sở áp dụng khai phá luật kết hợp.
• Chương 4: Trình bày những kết quả thực nghiệm của khóa luận.
Cuối cùng là phần kết lu
ận, tóm tắt lại những nội dung chính của khóa luận, đồng
thời chỉ ra những điểm cần khắc phục và hướng cải tiến nhằm mục tiêu xây dựng một hệ
thống ứng dụng thực trên môi trường Internet.
2

Chương 1: GIỚI THIỆU
1.1. Đặt vấn đề:
Trên thế giới nói chung và ở Việt Nam nói riêng, thương mại điện tử đã trở nên phổ
biến và ngày càng phát triển. Một phần quan trọng trong thương mại điện tử là bán hàng
trực tuyến. Ta có thể thấy số lượng website mua bán trực tuyến vô cùng lớn, nổi tiếng trên
toàn thế giới có Amazon.com, Cnet.com, eBay…, còn ở Việt Nam có thể kể ra một số

trang web như vatgia.com, thegioididong.com... Chủng loại sản phẩm trên các hệ thố
ng
bán hàng trực tuyến cũng vô cùng đa dạng, từ sản phẩm phục vụ cuộc sống hàng ngày cho
tới ô tô, căn hộ, nhà cửa, bất động sản… Với mỗi một sản phẩm được bán trực tuyến,
luôn có mục nhận xét (review) là nơi khách hàng đưa ra ý kiến đánh giá của mình về sản
phẩm đã mua cũng như các dịch vụ liên quan. Đây là nguồn thông tin quan trọng, cung
cấp cho ngườ
i mua hàng cái nhìn toàn diện hơn về một sản phẩm mà họ định mua. Còn
đối với nhà sản xuất, đánh giá của khách hàng là cơ sở để tiến hành cải tiến, hoàn thiện
sản phẩm của mình.
Cùng với sự phát triển không ngừng của thương mại điện tử thì số lượng người mua
hàng trực tuyến cũng ngày càng tăng, dẫn đến số lượng nhận xét, đánh giá của ngườ
i
dùng về các sản phẩm ngày càng nhiều. Một sản phẩm thông dụng có thể có hàng trăm
thậm chí hàng nghìn nhận xét khác nhau. Điều nay gây khó khăn cho cả người mua hàng
và nhà sản xuất. Người mua hàng sẽ gặp khó khăn trong việc tổng hợp ý kiến của những
người đi trước để đưa ra quyết định mua hay không mua một sản phẩm. Còn nhà sản xuất
thì khó theo dõi, nắm bắt được tất cả phản hồ
i của người tiêu dùng về sản phẩm của mình.
Thêm vào đó, các công ty thì không chỉ sản xuất 1 loại sản phẩm. Một công ty thường sản
xuất vài loại sản phẩm khác nhau và các sản phẩm này cũng có thể được bán trên nhiều
website khác nhau. Từ thực tế trên, nảy sinh nhu cầu cần tóm tắt tất cả nhận xét của khách
hàng về một sản phẩm trên hệ thống mua bán trực tuyến. Khác với việc tóm tắt v
ăn bản
truyền thống, thường là thuần túy chọn lọc ra một số câu trong văn bản gốc để tạo thành
bản tóm tắt hoặc diễn giải lại nội dung văn bản gốc một cách ngắn gọn, súc tích hơn. Ở
đây, tóm tắt đánh giá sản phẩm nhằm mục tiêu tạo ra một bản tóm tắt dựa trên các thuộc
tính của sản phẩm đó. Tức là ta chỉ khai thác các thu
ộc tính (đặc trưng, chức năng) của
3


sản phẩm được người tiêu dùng nhận xét và từ đó xác định các ý kiến đánh giá được đưa
ra. Việc tóm tắt đánh giá sản phẩm cơ bản được thực hiện như sau:

Hình 1. Ba bước tóm tắt các đánh giá một sản phẩm trên hệ thống mua bán trực tuyến
Giả sử chúng ta thực hiện tóm tắt các đánh giá đối với một sản phẩm máy ảnh kĩ
thuật số, máy_ảnh_1. Kết quả tóm tắt tạo ra sẽ có cấu trúc như sau:
Máy_ảnh_1:
Thuộc tính: chất lượng ảnh
Khen (positive): 253
+ “Chất lượng ảnh tuyệt v
ời”
+ “Tôi rất thích chất lượng của bức ảnh”
...
Chê (negative): 6
+ “Chất lượng ảnh không tương ứng với mức giá quá cao”
...
Thuộc tính: kích thước
Khen (positive): 134
+ “Thật đáng kinh ngạc, kích thước nhỏ gọn trong lòng bàn tay”

4

Trong 3 bước trên, bước cuối cùng khá đơn giản, chỉ sử dụng kết quả của hai bước
trước để sinh ra bản tóm tắt. Hai bước đầu mới đóng vai trò quyết định trong việc giải
quyết vấn đề. Bước một là xác định những thuộc tính, đặc trưng của sản phẩm được người
tiêu dùng quan tâm, nhận xét. Từ đó, bước hai sẽ xác định ra các câu chứa ý kiến đánh giá
(v
ề các thuộc tính tìm được ở bước một), rồi phân loại ý kiến thành 2 loại tích cực và tiêu
cực. Như vậy, ta có thể thấy, xác định thuộc tính sản phẩm được đánh giá là vấn đề cần

phải giải quyết đầu tiên.
Một câu hỏi có thể được đặt ra là “tại sao không lấy luôn danh sách các thuộc tính
của sản phẩm từ nhà bán lẻ hay nhà sản xuất?” Đây cũng là một hướng tiế
p cận. Tuy
nhiên, nó gặp phải một số vấn đề sau: (1) Đối với nhà bán lẻ, số lượng chủng loại sản
phẩm họ bán có thể rất nhiều, do vậy họ cũng không nắm bắt được hết tất cả các thuộc
tính của từng sản phẩm. (2) Từ ngữ mà nhà bán lẻ hoặc nhà sản xuất sử dụng để chỉ thuộc
tính của sản phẩm có th
ể không giống như của khách hàng mặc dù có thể cùng nói về một
thuộc tính. Do vậy, khó có thể dựa vào đó để xác định các thuộc tính mà khách hàng nhận
xét. Ngoài ra, khách hàng còn có thể nhận xét về các thuộc tính mà sản phẩm còn thiếu.
(3) Khách hàng cũng có thể nhận xét về một vài thuộc tính mà nhà sản xuất không nghĩ
tới (những thuộc tính của sản phẩm nhưng không có trong danh sách đưa ra). (4) cuối
cùng, nhà sản xuất có thể không đưa ra các thuộc tính yếu kém c
ủa sản phẩm do lo ngại
người dùng biết được.
Vì vậy để khắc phục các hạn chế trên, chúng ta cần đi theo hướng trích chọn thuộc
tính sản phầm từ các đánh giá của người dùng bằng cách áp dụng phương pháp học máy.
Bài toán trích chọn thuộc tính sản phẩm trong hệ thống mua bán trực tuyến tiếp cận khai
phá luật kết hợp ra đời từ đây.
Khóa luận này sẽ tập trung vào giả
i quyết bài toán trích chọn thuộc tính sản phầm
trong hệ thống mua bán trực tuyến tiếp cận khai phá luật kết hợp, xử lý trên ngôn ngữ
tiếng Việt. Phần dưới đây sẽ trình bày chi tiết hơn về vấn đề này.
1.2. Phát biểu bài toán trích chọn thuộc tính sản phẩm trong hệ thống mua
bán trực tuyến tiếp cận khai phá luật kết hợp:
Như đã giới thiệu ở trên, bài toán trích chọn thuộc tính sản phẩm trong hệ thống mua
bán trực tuyến thuộc loại bài toán trích chọn thông tin, nhằm mục tiêu tìm ra tất cả thuộc
tính, đặc trưng của sản phẩm đã được người mua hàng đánh giá.
5


Do vậy, đầu vào (input) của bài toán là các nhận xét, đánh giá của người dùng về
một sản phẩm cụ thể trên một hệ thống bán hàng trực tuyến. Ví dụ: sản phẩm điện thoại
Nokia 8800 Arte trên website thegioididong.com.
Đầu ra (output) là một danh sách các đối tượng có thể là thuộc tính, đặc trưng của
sản phẩm được người dùng nhận xét, đề cập đến trong bài đánh giá. Ví dụ: {màn hình,
phím bấm, màu sắc, loa, giá cả
, kích thước, pin, hình dáng, camera, chất lượng ảnh, hệ
điều hành, ứng dụng, kết nối wifi…}
Trong những năm gần đây, trên thế giới đã có khá nhiều công trình nghiên cứu về đề
tài này. Hầu hết các mô hình trích chọn thuộc tính sản phẩm đều đi theo hướng trích chọn
ra các danh từ và cụm danh từ trong dữ liệu và xây dựng các mô hình thuật toán để lọc ra
được các cụm từ có khả năng là thuộc tính của sả
n phẩm. Có nhiều hướng tiếp cận khác
nhau để trích chọn ra được các cụm từ có khả năng là thuộc tính sản phẩm như áp dụng
học không giám sát [17], CRFs, … Tuy vậy, vẫn còn các vấn đề sau phải giải quyết:
• Trích chọn các thuộc tính từ các từ loại khác danh từ (tính từ và động từ cũng
có thể dùng để chỉ thuộc tính của sản phẩm). Một ví dụ đơn giản như khi nói
một sản phẩm “nhẹ” thì ta thường hiểu đó là nói về thuộc tính “trọng lượng”.
Do việc xác định những thuộc tính dạng này đòi hỏi phải phân tích được ngữ
nghĩa của cả câu, nên đây là một vấn đề khó khăn, đòi hỏi phải có những
nghiên cứu sâu về lĩnh vực xử lý ngôn ngữ tự nhiên.
• Một vấn đề nữa là xử lý các từ đồng ngh
ĩa cùng chỉ một thuộc tính. Đây
không phải là những trường hợp hiếm gặp. Để giải quyết vấn đề này, hiện
nay có 4 hướng tiếp cận chính: đó là sử dụng từ điển đơn ngữ, từ điển đồng
nghĩa (thesaurus), WordNet và máy tìm kiếm (search engine). Tuy nhiên, kết
quả đạt được đều còn khá hạn chế.
Còn ở Việt Nam, cho tới thời đi
ểm này, chưa có một công trình nghiên cứu nào về

lĩnh vực trích chọn thuộc tính sản phẩm trên các hệ thống mua bán trực tuyến. Trong khóa
luận này, chúng tôi mong muốn sử dụng các kĩ thuật đã được nghiên cứu, đề xuất trong
những công trình đã có trên thế giới, cùng với việc thay đổi, cải tiến thích hợp để áp dụng
vào ngôn ngữ tiếng Việt. Do vậy, bên cạnh hai vấn đề đã chỉ ra ở trên, chúng tôi còn phả
i
đối mặt với các thách thức sau:
6

• Vấn đề thứ nhất là sự nhập nhằng của ngôn ngữ. Tiếng Việt khác với tiếng
Anh, là loại hình ngôn ngữ đơn lập, vì vậy việc phân biệt ranh giới từ và xác
định từ loại là một vấn đề phức tạp. Do vậy, ta cần xây dựng những bộ xử lý
ngôn ngữ tiếng Việt đủ mạnh để đảm bảo kết quả có độ chính xác cao.

Vấn đề thứ hai là lựa chọn chiến lược trích chọn hiệu quả để tìm ra các thuộc
tính sản phẩm.
Trong khóa luận này, chúng tôi sử dụng kĩ thuật khai phá luật kết hợp kết hợp cùng
với một số phương pháp xử lý ngôn ngữ tự nhiên để xây dựng mô hình trích chọn thuộc
tính sản phẩm. Khai phá luật kết hợp cho phép tìm ra tập tất cả đối tượng thỏa mãn điều
kiện do người dùng đặt ra. Đây là phương pháp được nhiều công trình nghiên cứu tương
tự áp dụng hiệu quả [12, 16]. Qua thử nghiệm đã cho thấy kết quả khá khả quan. Độ chính
xác đối với tiếng Anh đạt trên 68% (cao nhất là 87%).
Các bước giải quyết bài toán trong khóa luận như sau:
(1) Thu thập dữ liệu: nếu dữ liệu (là các đánh giá, nhận xét của người dùng vể
một sản phẩm) chưa có sẵ
n trong cơ sở dữ liệu, ta phải tiến hành crawl từ các
website bán hàng trực tuyến về;
(2) Tiền xử lý: chuẩn hóa văn bản, sửa các lỗi cú pháp, chính tả, loại bỏ các kí
hiệu vô nghĩa hoặc không có ý nghĩa quan trọng (như các kí tự thể hiện cảm
xúc trong ngôn ngữ chat qua mạng);
(3) Trích chọn ra các thực thể có thể là thuộc tính của sản phẩm;

(4) Xác định thuộc tính của sản ph
ẩm: áp dụng khai phá luật kết hợp trên tập cơ
sở dữ liệu đánh giá và tập thực thể thu được ở bước trên. Kết quả thu được sẽ
được tiến hành “cắt tỉa” để thu được kết quả cuối cùng là tập các thuộc tính
của sản phẩm xuất hiện trong đánh giá của người dùng.
1.3. Ý nghĩa và ứng dụng:
Trích chọn thuộc tính sản phẩm trong hệ thống mua bán trực tuyến tiếp cận khai phá
luật kết hợp là một đề tài có ý nghĩa và mang tính ứng dụng cao. Kết quả của bài toán sẽ
được sử dụng để tạo ra bản tóm tắt các ý kiến đánh giá của người dùng về một sản phẩm
trên hệ thống mua bán trực tuyến dựa theo các thuộc tính của sản phẩm đó. Đối với nh
ững
sản phẩm có số lượng đánh giá trên mạng khá lớn thì bản tóm tắt trên cung cấp cho người
7

dùng một cái nhìn toàn diện và chi tiết về sản phẩm đó, giúp họ tiết kiệm được thời gian
trong việc tham khảo thông tin để đưa ra quyết định mua hàng. Còn nhà sản xuất thông
qua các tóm tắt này cũng dễ dàng thu thập được các phản hồi của khách hàng trên mạng
đối với sản phẩm của mình, để từ đó cải tiến, hoàn thiện sản phẩm cho phù hợp với nhu
cầu của khách hàng. Chúng tôi tin rằng cùng với việ
c ngày càng nhiều người thực hiện
mua sắm và bày tỏ ý kiến của bản thân qua mạng thì ý nghĩa và lợi ích do kết quả trên
mang lại sẽ càng lớn.
8

Chương 2: CƠ SỞ LÝ THUYẾT
Như đã đề cập trong chương một, yêu cầu của bài toán là xác định tất cả thuộc tính
của sản phẩm được người dùng đánh giá, và để giải quyết vấn đề này chúng tôi sử dụng lý
thuyết khai phá luật kết hợp để tìm ra tập các thuộc tính phổ biến. Điều này xuất phát từ
quan sát thực tế sau. Các đánh giá sản phẩm thường có nội dung khác nhau và có thể gồm
khá nhiều th

ứ không liên quan trực tiếp tới sản phẩm, nhưng khi nhận xét về các thuộc
tính của sản phẩm, người dùng có xu hướng dùng những từ ngữ giống nhau. Do vậy, việc
sử dụng khai phá luật kết hợp để tìm các tập chỉ mục phổ biến (thường là các thuộc tính
của sản phẩm) là thích hợp.
Chương hai này sẽ trình bày một số vấn đề chính về khai phá luật kết hợp: tổ
ng quan,
các khái niệm cơ sở và thuật toán Apriori dùng trong khai phá luật kết hợp.
2.1. Khai phá luật kết hợp:
2.1.1. Định nghĩa:
Khai phá luật kết hợp được Rakesh Agrawal giới thiệu lần đầu vào năm 1993 [5],
và từ đó tới nay đã được nghiên cứu, phát triển mạnh, trở thành một thuật toán học máy
hiệu quả được áp dụng trong nhiều bài toán.
Khai phá luật kết hợp có thể được hiểu là công việc đi tìm tần số mẫu, mối kết hợp,
sự tương quan, hay các cấu trúc nhân quả phù h
ợp với nhu cầu của người dùng giữa các
tập đối tượng trong các cơ sở dữ liệu giao tác, cơ sở dữ liệu quan hệ, và những kho thông
tin khác [1].
Hiện nay, khai phá luật kết hợp được ứng dụng vào trong nhiều lĩnh vực như: mạng
viễn thông, quản lý rủi ro, quản lý thị trường, quản lý kho hàng, phân cụm, phân lớp trong
khai phá dữ liệu …
2.1.2. Các bước trong khai phá luật kết hợp:
Trong bài toán khai phá lu
ật kết hợp, để tìm ra các luật kết hợp thỏa mãn 2 giá trị
cho trước là độ hỗ trợ cực tiểu (minimum support) và độ tin cậy cực tiểu (minimum
confidence) từ một cơ sở dữ liệu có sẵn, công việc thực hiện được chia làm hai bước [5]:
9

(1) Tìm tất cả các tập chỉ mục phổ biến: một tập chỉ mục là phổ biến được xác
định qua việc tính độ hỗ trợ và thoả mãn độ hỗ trợ cực tiểu.
(2) Sinh ra các luật kết hợp mạnh từ các tập chỉ mục phổ biến: các luật phải

thoả mãn độ hỗ trợ cực tiểu và độ tin cậy cực ti
ểu.
Giả sử có tập chỉ mục phổ biến là L
k
, L
k
= {I
1
, I
2
, I
3
, …, I
k
}, các luật kết hợp của tập
chỉ mục này được sinh như sau: khởi tạo luật đầu tiên {I
1
, I
2
, I
3
, …, I
k-1
} → {I
k
}, sau đó
tiến hành kiểm tra độ tin cậy (confidence) để xác định luật trên có thỏa mãn hay không.
Thực hiện cắt bỏ phần tử cuối cùng của vế trái, chuyển sang vế phải để tạo thành luật mới,
rồi lại kiểm tra độ tin cậy. Quá trình trên được thực hiện cho tới khi vế trái trở thành tập
rỗng. Do bước thứ 2 khá đơn giản, không có gì phức tạp nên hầu hết các nghiên cứu v


khai phá luật kết hợp đều tập trung vào bước một.
Đối với bước thứ nhất trong khai phá luật kết hợp, ta lại có thể chia ra làm 2 bước
con: sinh tập chỉ mục ứng viên (candidate frequent itemsets) và sinh tập chỉ mục phổ biến
(frequent itemsets).
Trong đa số trường hợp, số lượng tập chỉ mục phổ biến sinh ra là rất lớn, kéo theo số
lượng luật kết hợp t
ạo ra thường là hàng nghìn, thậm chí hàng triệu luật. Người dùng cuối
gần như không thể hiểu hoặc đánh giá hết được một lượng lớn luật phức tạp như trên, do
đó hạn chế phần nào giá trị của kết quả thu được. Hiện nay đã có rất nhiều thuật toán hiệu
quả được đưa ra để giải quyết vấn đề này, bằng cách chỉ sinh luật phù hợp vớ
i nhu cầu
của người dùng (interest rules), sinh luật “không dư thừa” (“non-redundant” rules), hoặc
chỉ sinh luật thỏa mãn một tiêu chuẩn cụ thể nào đó như coverage, leverage, lift hoặc
strength. Phần dưới đây sau khi trình bày các khái niệm cơ sở trong lý thuyết khai phá
luật kết hợp, sẽ giới thiệu về một thuật toán kinh điển dùng để sinh luật kết hợp là Apriori.
2.2. Các khái niệm cơ sở:
Cho tập hợp I = {I
1
, I
2
, I
3
, …, I
n
} gồm n phần tử khác nhau, I được gọi là tập chỉ
mục (itemset), T là một giao tác (transaction) chứa một tập các phần tử thuộc I (T ⊆ I), D
là một cơ sở dữ liệu chứa m giao tác T khác nhau.
Một luật kết hợp là một phát biểu có dạng X→Y, trong đó X ⊆ I, Y ⊆ I và
X∩Y=Ø. Vế phải X được gọi là tiền đề, còn vế trái Y gọi là kết luận của luậ

t. Có hai độ
đo cơ bản cho luật kết hợp, đó là độ hỗ trợ (support) và độ tin cậy (confidence).
10

Độ hỗ trợ một tập chỉ mục X trong D, kí kiệu supp(X), được tính bằng phần trăm
số giao tác T trong D có chứa X (hay còn gọi là hỗ trợ X).

.
Giả sử độ hỗ trợ của một phần tử là 0,1%, điều đó có nghĩa là chỉ có 0,1% số giao
tác có chứa phần tử đó.
Độ hỗ trợ của một luật kết hợp r = X→Y, kí hiệu supp(r), biểu thị tần số luật có
trong các giao tác. Độ hỗ trợ thể hiện trong bao nhiêu phần trăm dữ liệu thì những điều ở
vế
trái và vế phải cùng xảy ra. Như vậy, độ hỗ trợ chính là xác xuất P(X∪Y):


Độ tin cậy của một luật kết hợp r = X→Y, kí hiệu conf(r), là số phần trăm các giao
tác trong D chứa cả X và Y trên số giao tác trong D chứa X. Độ tin cậy chính là xác xuất
có điều kiện P(Y|X), nó thể hiện nếu vế trái xảy ra thì có bao nhiêu khả năng vế phải cũng
xảy ra :


Độ tin cậy biểu thị độ mạnh của một luật kết hợp, giả sử độ tin cậy của luật r bằng
80%, có nghĩa là 80% số giao tác có chứa X thì cũng chứa Y.
Do cơ sở dữ liệu có kích thước lớn và người dùng thường chỉ quan tâm tới một tập
các phần tử nhất định, do vậy người ta đưa ra các ngưỡng giá trị cho độ hỗ trợ và độ tin
c
ậy nhằm loại bỏ các luật không phù hợp với yêu cầu của người dùng hoặc các luật vô
dụng. Hai ngưỡng này được gọi là độ hỗ trợ cực tiểu (minimum support) và độ tin cậy cực
tiểu (minimum confidence).

11

Tập chỉ mục X có supp(X) ≥ minsupp, với minsupp là độ hỗ trợ cực tiểu, được gọi là
tập chỉ mục phổ biến (frequent itemset hay large itemset). Một số tính chất điển hình của
tập mục phổ biến:
• Nếu A⊆B với A, B là các tập chỉ mục thì supp(A) ≥ supp(B).
• Một tập chứa một tập không phổ biến thì cũng là tập không phổ
biến.
• Các tập con của tập phổ biến cũng là tập phổ biến.
Các luật kết hợp thoả mãn cả hai ngưỡng độ hỗ trợ cực tiểu (minsupp) và độ tin cậy
cực tiểu (minconf) được gọi là luật kết hợp mạnh (strong), tức là supp(X→Y) ≥ minsupp
và conf(X∪Y) ≥ minconf. Người ta thường viết giá trị các độ hỗ trợ và độ tin cậy này
giữa 0% và 100% thay cho 0 tớ
i 1.
Nếu độ hỗ trợ cực tiểu minsupp có giá trị cao thì ta sẽ thu được ít tập chỉ mục phổ
biến, do vậy sẽ có ít luật hợp lệ phổ biến xuất hiện; còn ngược lại nếu đặt minsupp thấp
thì sẽ xuất hiện nhiều luật hợp lệ hiếm.
Còn đối với độ tin cậy cực tiểu minconf, nếu giá trị minconf cao thì thu được ít luật,
nhưng tấ
t cả các luật này "gần như đúng". Còn nếu minconf có giá trị thấp thì ta thu được
rất nhiều luật nhưng phần lớn "rất không chắc chắn".
Trong thực tế, người ta thường đặt giá trị minsupp trong khoảng 2-10% và minconf
trong khoảng 70-90%.
Ta đi vào xem xét một ví dụ nhỏ tương tự như bài toán phân tích bán hàng trong
siêu thị do Rakesh Agrawal đưa ra trong [5]. Giả sử có một cơ sở dữ liệu nhỏ chứa các
giao tác như sau:
Bảng 1. Bả
ng ví dụ về cơ sở dữ liệu chứa các giao dịch bán hàng của một siêu thị
Transaction ID Sữa Bánh mì Bơ Bia Táo Khăn
1

1 1 0 0 1 1
2
0 1 1 0 1 1
3
0 0 0 1 1 0
4
1 1 1 0 1 1
12

5
0 1 1 0 0 0
Mỗi một hàng ứng với một giao tác, mỗi giao tác là một danh sách các mặt hàng
được mua trong một lượt mua hàng của khách tại siêu thị. Giá trị 1 có nghĩa là mặt hàng
đó được mua, còn 0 có nghĩa là không được mua.
Tập chỉ mục ở đây là I = {sữa, bánh mì, bơ, bia, táo, khăn}.
Cơ sở dữ liệu D = {T
1
, T
2
, T
3
, T
4
, T
5
}, gồm 5 giao tác.
Xét một luật kết hợp X→Y sau: {bánh mì, bơ}→{khăn}
X = {bánh mì, bơ}. Các giao tác hỗ trợ X là T
2
, T

4
, T
5
⇒ supp(X) = 3/5 = 0.6 = 60%
Y = {khăn}, các giao tác hỗ trợ Y là T
1
, T
2
, T
4
⇒ supp(Y) = 3/5 = 0.6 = 60%
X∪Y = {bánh mì, bơ, khăn}, các giao tác hỗ trợ X∪Y là T
2
, T
4
⇒ supp(X∪Y) = 2/5
= 0.4 = 40%
supp(X→Y) = supp(X∪Y) = 0.4 = 40%
conf(X→Y) = supp(X∪Y)/supp(X) = 0.4/0.6 = 0.66 = 66%
Luật kết hợp trên thể hiện "nếu khách hàng mua bánh mì và bơ thì người đó sẽ mua
khăn trong 66% trường hợp. Bánh mì, bơ và khăn được mua chung trong 40% giao tác".
Nếu đặt minsupp = 2% thì tập X = {bánh mì, bơ} là một tập chỉ mục phổ biến. Đặt
minconf = 60% thì X→Y là một luật mạnh.
2.3. Thuật toán Apriori:
Hiện nay, Apriori [4] là thuật toán khai phá luật kết hợp nổi tiếng, sử dụng chiến
lược tìm kiếm theo chiều rộng (Breath-first search) để tính độ hỗ trợ của các tập chỉ mục
và tận dụng bổ đề downward closure [4] để tìm ra các tập ứng viên. Apriori rất hiệu quả
trong quá trình sinh tập ứng viên do áp dụng sử dụng kĩ thuật cắt tỉa để tránh phải đánh
giá một số tập ch
ỉ mục nhất định mà vẫn bảo đảm tính toàn vẹn. Phần dưới đây sẽ trình

bày về các nội dung chính của thuật toán Apriori: ý tưởng, cài đặt và một số hạn chế còn
tồn tại của thuật toán.
Ý tưởng chính của thuật toán Apriori:
13

• Tạo ra các tập chỉ mục phổ biến có 1 phần tử, rồi tiếp đến là 2 phần tử, 3 phần
tử... cho đến khi chúng ta tạo ra tập chỉ mục phổ biến của mọi kích thước.
• Mỗi tập chỉ mục được tạo ra phải được tính toán độ hỗ trợ.
• Tập chỉ mục phổ biến k phần tử được tạo ra từ
tập phổ biến k-1 phần tử. Bằng
cách, nối từng đôi một tập chỉ mục phổ biến k-1 phần tử đã có để tạo ra tập
ứng viên k phần tử. Sau đó, những tập ứng viên nào có chứa một tập con
không phải là phổ biến sẽ bị loại bỏ.
Apriori khác các thuật toán khác ở quá trình sinh tập ứng viên: chỉ sử dụng các tập
chỉ mục
đã được thấy là phổ biến trong lần duyệt trước để tìm các tập ứng viên mà không
cần quan tâm đến các giao tác trong cơ sở dữ liệu.
Cơ sở để cho ý tưởng trên dựa vào các tiên đề sau:
• Các tập con của tập chỉ mục phổ biến cũng là tập chỉ mục phổ biến [4]. Ví dụ,
nếu {AB} là một tập phổ biến thì {A} và {B} cũng là những tập phổ biến.

Một tập chứa một tập không phổ biến thì cũng là tập không phổ biến
(downward closure lemma [4]). Ví dụ, nếu {C} là tập không phổ biến thì
{AC} cũng là tập không phổ biến.
Vì vậy, các tập ứng viên k phần tử được sinh ra bằng cách nối các tập phổ biến có k-
1 phần tử lại. Sau đó những tập ứng viên nào có chứa một tập con không phải là phổ biến
sẽ bị lo
ại bỏ. Phương pháp này sinh ra số lượng tập ứng viên nhỏ hơn rất nhiều so với
cách duyệt hết dữ liệu, nói cách khác nó khá hiệu quả trong việc "tỉa gọn" không gian tìm
kiếm.

Cài đặt thuật toán Apriori :
Bảng 2. Bảng kí hiệu cho thuật toán Apriori
k-itemset
Tập chỉ mục có k phần tử.
L
k
(lagre k-itemset)
Tập chỉ mục phổ biến có k phần tử.
Mỗi phần tử thuộc tập này sẽ có 2 thuộc tính:
i. itemset (tập chỉ mục)
ii. count (biến đếm để đo độ hỗ trợ)
14

C
k

Tập chỉ mục ứng viên có k phần tử.
Mỗi phần tử thuộc tập này cũng có 2 thuộc tính:
i. itemset (tập chỉ mục)
ii. count (biến đếm để đo độ hỗ trợ)
Thuật toán Apriori:
Input: Cơ sở dữ liệu D và độ hỗ trợ cực tiểu minsupp.
Output: Tập chỉ mục phổ biến trong D.
Giả mã [4]:
1) L
1
= {large 1-itemsets};
2) for ( k = 2; L
k-1
≠ Ø; k++ ) do begin

3) C
k
= apriori-gen(L
k-1
); // Sinh tập ứng viên mới
4) forall transactions t ∈ D do begin
5) C
t
= subset(C
k
, t); // Tập ứng viên thuộc t
6) forall candidates c ∈ Ct do
7) c.count++;
8) end
9) L
k
= {c ∈ C
k
| c.count ≥ minsupp}
10) end
11) Answer = ;
Hàm apriori-gen: nhận tham số đầu vào là L
k-1
và trả lại kết quả là một tập chứa tất
cả các tập chỉ mục phổ biến có k phần tử L
k
. Hàm này thực hiện như sau :
• Bước 1 kết hợp: để tìm L
k
, tập C

k
được sinh ra bởi việc nối L
k-1
với chính nó.
Thành phần l
1
và l
2
của L
k-1
được nối nếu:
(l
1
[1] = l
2
[1]) ∧ (l
1
[2] = l
2
[2]) ∧ ...( l
1
[k-2] = l
2
[k-2]) ∧ (l
1
[k-1] < l
2
[k-1])
Kết quả thu được có dạng: l
1

[1] l
1
[2] ... l
1
[k-2] l
1
[k-1] l
2
[k-1].
1) insert into C
k

2) select p.item
1
, p.item
2
,..., p.item
k-1
, q.item
k-1

3) from L
k-1
p, L
k-1
q
4) where p.item1 = q.item
1
, . . ., p.item
k-2

= q.item
k-2
,
5) p.item
k-1
< q.item
k-1
;
15

• Bước 2 rút gọn: dựa vào tính chất "Những tập kích thước (k-1) không phổ
biến không thể là tập con của tập phổ biến kích thước k " để tiến hành "cắt
tỉa", rút gọn kích thước C
k
. Nếu một phần tử của C
k
có tập con k-1 phần tử
không thuộc L
k-1
thì phần tử đó không phải là phổ biến và bị loại khỏi C
k
.
6) forall k-itemsets c ∈ C
k
do
7) forall (k-1)-subsets s of c do
8) if (s ∉ L
k-1
) then
9)

delete c from C
k
;

Hàm subset: nhận tham số đầu vào là C
k
và một giao tác t ∈ D, trả lại tất cả phần tử
của C
k
có mặt trong t. Việc này được thực hiện bằng cách:
• Lưu C
k
vào một cây băm (hash-tree [15]) trong đó, mỗi một node sẽ chứa
một danh sách các tập chỉ mục c

C
k
(leaf node - lá) hoặc một bảng băm
(interior node - nút trong). Ban đầu mọi node đều được khởi tạo là lá, sau khi
số tập chỉ mục của một lá đạt đến một ngưỡng xác định nào đó thì lá được
chuyển thành nút trong. Để thêm một tập c vào cây, ta đi từ gốc xuống lá, sử
dụng hàm băm cho các nút trong để xác định hướng đi.
• Duyệt cây từ gốc cho tới các lá, lấy mọi phầ
n tử thuộc t tại lá và đưa vào tập
kết quả.
Ví dụ minh họa:
Giả sử có cơ sở dữ liệu giao tác như bên dưới [11], độ hỗ trợ cực tiểu minsupp là
40%, hãy tìm tất cả các tập chỉ mục phổ biến.
Bảng 3. Bảng cơ sở dữ liệu giao tác minh họa cho thuật toán Apriori
Transaction ID A B C D E

T1
1 1 1 0 0
T2
1 1 1 1 1
T3
1 0 1 1 0
T4
1 0 1 1 1
T5
1 1 1 1 0
Áp dụng thuật toán Apriori :
16

Duyệt dữ liệu lần 1:
Bảng 4. Bảng kết quả C
1
, L
1

C
1
L
1

itemset X supp(X) itemset X supp(X)
A 100% A 100%
B 60% B 60%
C 100% C 100%
D 80% D 80%
E 40% E 40%

Duyệt dữ liệu lần 2:
Bảng 5. Bảng kết quả C
2
, L
2
C
2
L
2

itemset X supp(X) itemset X supp(X)
A, B 60% A, B 60%
A, C 100% A, C 100%
A, D 80% A, D 80%
A, E 40% A, E 40%
B, C 60% B, C 60%
B, D 40% B, D 40%
B, E 20% B, E
loại
C, D 80% C, D 80%
C, E 40% C, E 40%
D, E 40% D, E 40%
BE bị loại do supp(BE) = 20% < minsupp = 40%.
Duyệt dữ liệu lần 3:
Để tạo ra C3, chỉ cần tìm xem xét các tập chỉ mục có phần tử đầu tiên giống nhau
(với lần duyệt thứ k, cần k-2 phần tử đầu tiên giống nhau)
17




Bảng 6. Bảng kết quả C
3
, L
3


C
3
L
3


itemset X supp(X) itemset X supp(X)
Nối AB với AC A, B, C 60% A, B, C 60%
Nối AB với AD A, B, D 40% A, B, D 40%
Nối AB với AE A, B, E
loại
A, B, E
loại
Nối AC với AD A, C, D 80% A, C, D 80%
Nối AC với AE A, C, E 40% A, C, E 40%
Nối AD với AE A, D, E 40% A, D, E 40%
Nối BC với BD B, C, D 40% B, C, D 40%
Nối CD với CE C, D, E 40% C, D, E 40%
ABE bị loại do BE không phải là tập phổ biến.
Duyệt dữ liệu lần 4:
Bảng 7. Bảng kết quả C
4
, L
4



C
4
L
4


itemset X supp(X) itemset X supp(X)
Nối ABC với
AB
D
A, B, C, D 40%
A, B, C 40%
Nối ACD với
AC
E
A, C, D, E 40%
A, B, D 40%
Duyệt dữ liệu lần 5:
Trong lần duyệt này, chúng ta không thể tạo ra tập ứng viên nào nữa do không còn 2
tập phổ biến 4 phần tử nào có 3 phần tử đầu tiên giống nhau. Thuật toán Apriori dừng ở
đây.
Kết luận:

×