Đề tài 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

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. 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

pdf53 trang | Chia sẻ: lvcdongnoi | Lượt xem: 2722 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Đề tài 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, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
% 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ử. Lk (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 Ck 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) L1 = {large 1-itemsets}; 2) for ( k = 2; Lk-1 ≠ Ø; k++ ) do begin 3) Ck = apriori-gen(Lk-1); // Sinh tập ứng viên mới 4) forall transactions t ∈ D do begin 5) Ct = subset(Ck , t); // Tập ứng viên thuộc t 6) forall candidates c ∈ Ct do 7) c.count++; 8) end 9) Lk = {c ∈ Ck | c.count ≥ minsupp} 10) end 11) Answer = ; Hàm apriori-gen: nhận tham số đầu vào là Lk-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ử Lk. Hàm này thực hiện như sau : • Bước 1 kết hợp: để tìm Lk , tập Ck được sinh ra bởi việc nối Lk-1 với chính nó. Thành phần l1 và l2 của Lk-1 được nối nếu: (l1[1] = l2[1]) ∧ (l1[2] = l2[2]) ∧ ...( l1[k-2] = l2[k-2]) ∧ (l1[k-1] < l2[k-1]) Kết quả thu được có dạng: l1[1] l1[2] ... l1[k-2] l1[k-1] l2[k-1]. 1) insert into Ck 2) select p.item1, p.item2,..., p.itemk-1, q.itemk-1 3) from Lk-1 p, Lk-1 q 4) where p.item1 = q.item1, . . ., p.itemk-2 = q.itemk-2, 5) p.itemk-1 < q.itemk-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 Ck. Nếu một phần tử của Ck có tập con k-1 phần tử không thuộc Lk-1 thì phần tử đó không phải là phổ biến và bị loại khỏi Ck. 6) forall k-itemsets c ∈ Ck do 7) forall (k-1)-subsets s of c do 8) if (s ∉ Lk-1) then 9) delete c from Ck; Hàm subset: nhận tham số đầu vào là Ck và một giao tác t ∈ D, trả lại tất cả phần tử của Ck có mặt trong t. Việc này được thực hiện bằng cách: • Lưu Ck 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 ∈ Ck (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ả C1, L1 C1 L1 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ả C2, L2 C2 L2 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ả C3, L3 C3 L3 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ả C4, L4 C4 L4 itemset X supp(X) itemset X supp(X) Nối ABC với ABD A, B, C, D 40% A, B, C 40% Nối ACD với ACE 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: 18 Apriori là một thuật toán linh hoạt và hiệu quả trong việc tìm các tập chỉ mục phổ biến trong khai phá luật kết hợp. Ngoài ra, đây còn là một thuật toán dễ cài đặt. Tuy nhiên, vẫn còn 2 hạn chế trong thuật toán này. Một là độ phức tạp của quá trình sinh tập ứng viên gây tốn nhiều thời gian và bộ nhớ. Ví dụ: 104 tập chỉ mục phổ biến 1 phần tử sẽ tạo ra 107 tập ứng viên 2 phần tử. Để phát hiện một tập phổ biến kích thước 100 thì cần tạo ra 2100 ≈1030 tập ứng viên (một con số khổng lồ). Hai là số lần duyệt cơ sở dữ liệu của thuật toán Apriori phụ thuộc vào độ dài của tập phổ biến dài nhất tìm được. Các vấn đề trên có thể gây ra tình trạng nghẽn cổ chai cho thuật toán Apriori. Hiện nay, có khá nhiều thuật toán mới được cải tiến dựa trên Apriori. 2.4. Tổng kết chương: Trong chương này, chúng ta đã xem xét các vấn đề cơ bản của lý thuyết khai phá luật kết hợp theo hướng ứng dụng vào 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 ta đã hiểu được tư tưởng chủ đạo của khai phá luật kết hợp và thấy được khả năng tìm kiếm các tập phổ biến của thuật toán Apriori dựa trên hai tiền đề quan trọng. Áp dụng thuật toán Apriori vào bài toán của khóa luận, kết hợp một số kĩ thuật xử lý ngôn ngữ tự nhiên, chúng ta sẽ tìm được tập các thuộc tính phổ biến của sản phẩm từ cơ sở dữ liệu các đánh giá của người dùng trên mạng. Chương đầu đã giới thiệu về bài toán tóm tắt đánh giá sản phẩm nói chung và bài toán trích chọn thuộc tính sản phẩm trên hệ thống mua bán trực tuyến nói riêng. Chương tiếp theo sẽ đề cập đến bài toán chính của khoá luận một cách chi tiết, phân tích những vấn đề sẽ gặp phải với bài toán trích chọn thuộc tính sản phẩm trên hệ thống mua bán trực tuyến. Và cũng trong chương tới, chúng ta sẽ xem xét việc xây dựng bộ trích chọn thuộc tính sản phẩm áp dụng thuật toán Apriori. 19 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 3.1. Giới thiệu: Trong chương một, chúng tôi đã giới thiệu một cách tổng quát về 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, về các nhu cầu thực tế, ứng dụng cũng như ý nghĩa của bài toán. Chương này sẽ trình bày việc giải quyết bài toán trích chọn thuộc tính sản phẩm, phân tích đầy đủ các thách thức đối với bài toán và đưa ra các hướng giải quyết cụ thể cho các vấn đề đó. Đồng thời, chương này cũng đưa ra mô hình trích chọn thuộc tính sản phẩm áp dụng khai phá luật kết hợp cùng với một số kĩ thuật xử lý ngôn ngữ tự nhiên. 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: Như đã phân tích ở phần trước, nhu cầu tóm tắt các đá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 sẽ ngày càng gia tăng. Vì vậy bài toán tóm tắt đánh giá sản phẩm ra đời, trong đó bài toán trích chọn thuộc tính sản phẩm là một vấn đề khó khăn và cần phải giải quyết nhất. Đây là bài toán liên quan tới lĩnh vực trích chọn từ khóa (terminology extraction), một lĩnh vực con của trích chọn thông tin (information extraction). Do vậy chúng ta phải giải quyết những vấn đề chính sau: • Tự động trích chọn các thực thể trong văn bản: ta cần tìm được tập các từ hoặc cụm từ có thể là thuộc tính của sản phẩm trong tất cả các đánh giá của người dùng (tập thực thể này được gọi là tập ứng viên). • Sau đó, từ tập ứng viên trên, ta cần xác định được các thuộc tính sản phẩm (chính là các terminology). Vấn đề cốt lõi của bài toán là tìm ra chiến lược trích chọn thuộc tính tốt nhất. 20 5.2.1. Tự động trích chọn các thực thể trong văn bản: Mỗi một đánh giá về sản phẩm của người dùng là một văn bản mà ta cần xử lý, các thuộc tính sản phẩm xuất hiện trong đó sẽ là các thực thể cần được trích chọn. Qua quan sát dữ liệu cho thấy các thuộc tính sản phẩm thường xuất hiện dưới dạng là một danh từ, do đó để trích chọn được chúng ta có thể căn cứ vào dấu hiệu đó. Để làm được như vậy chúng ta cần một bộ gán nhãn từ loại. Khó khăn gặp phải là hiện nay lĩnh vực xử lý tiếng Việt còn hạn chế cả về mặt số lượng nghiên cứu cũng như kết quả đạt được [2]. Trong khóa luận này, chúng tôi sử dụng hai chương trình xử lý ngôn ngữ tiếng Việt đã có là JVnSegmenter [7] và VnQTAG [3] để thực hiện việc tách từ và gán nhãn. Chi tiết sẽ được trình bày trong mô hình hệ thống đề xuất. 5.2.2. Xác định thuộc tính của sản phẩm từ tập ứng viên: Trong bài toán trích chọn từ khóa (terminology extraction), về cơ bản có hai loại kĩ thuật chính để xác định các từ khóa trong tập văn bản: một là các kĩ thuật hình thức dựa trên mô tả ngữ nghĩa của từ khóa, thường là các cụm danh từ, hai là các kĩ thuật thống kê, các kĩ thuật loại này dựa trên thực tế là các từ ghép thành một từ khóa thì thường được tìm thấy cạnh nhau và lặp lại nhiều lần để tiến hành việc trích chọn. Tuy nhiên cả hai phương pháp trên đều có những hạn chế của riêng mình. Trong phương pháp hình thức, việc sử dụng các cụm danh từ để trích chọn thường tạo ra quá nhiều các kết quả không phải là từ khóa cần tìm. Thêm vào đó, hiện nay việc xác định các cụm danh từ tiếng Việt còn rất hạn chế trong kết quả đạt được. Còn đối với phương pháp thống kê, trích chọn theo các cụm từ có xác suất xuất hiện cao thì hạn chế gặp phải là thường bỏ xót quá nhiều các từ khóa có số lần xuất hiện thấp, các từ khóa có nhiều cách viết khác nhau và các từ khóa chỉ gồm một từ. Để khắc phục các hạn chế trên, trong khóa luận này chúng tôi sử dụng mô hình áp dụng kĩ thuật khai phá luật kết hợp trong đó áp dụng thuật toán Apriori kết hợp thêm một số kĩ thuật rút gọn, cắt tỉa khác để tìm ra tập các từ khóa phổ biến (các thuộc tính có xác suất xuất hiện cao). Ngoài ra trong mô hình này chúng tôi còn thực hiện việc tìm kiếm các thuộc tính ít phổ biến dựa trên ý kiến đánh giá của người dùng. Phần dưới đây sẽ trình bày về mô hình trích chọn thuộc tính sản phẩm dựa trên khai phá luật kết hợp. 21 3.3. Mô hình trích chọn thuộc tính sản phẩm: Đối với bài toán trích chọn thuộc tính sản phẩm được người mua hàng đánh giá trong hệ thống bán hàng trực tuyến, khóa luận này sử dụng mô hình tương tự như trong hệ thống [13]. 3.3.1. Cấu trúc hệ thống trích chọn thuộc tính sản phẩm: 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. Đầu tiên, ta tiến hành thu thập đá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 để đưa vào cơ sở dữ liệu các đánh giá. Việc thu thập dữ liệu có thể tiến hành tự động bằng cách crawl các đánh giá sản phẩm từ một website bán hàng trực tuyến về. Dữ liệu thu được sẽ được xử lý để tách từ, gán nhãn từ loại rồi đưa vào module trích chọn các thuộc tính phổ biến, kết quả thu được là một tập các thuộc tính CSDL các từ thể hiện ý kiến CSDL thuộc tính ít phổ biến Đánh giá sản phẩm CSDL các đánh giá CSDL thuộc tính phổ biến Trích chọn thuộc tính Tách từ Gán nhãn từ loại Trích chọn các thuộc tính phổ biến Trích chọn các thuộc tính ít phổ biến Trích chọn các từ thể hiện ý kiến 22 được nhiều người đánh giá (phổ biến ở đây có nghĩa là xuất hiện nhiều). Dựa vào kết quả trên, trích chọn ra các từ thể hiện ý kiến và cuối cùng là xác định các thuộc tính ít phổ biến (có số lần xuất hiện thấp). Theo mô hình trên, công việc giải quyết bài toán sẽ được chia làm 5 bước chính sau: • Tách từ. • Gán nhãn từ loại. • Trích chọn các thuộc tính phổ biến của sản phẩm. • Trích chọn các từ thể hiện ý kiến. • Cuối cùng là tìm các thuộc tính ít phổ biến. 3.3.2. Tách từ: Bước đầu tiên trong quá trình trích chọn thuộc tính sản phẩm là tách từ. Đối với tiếng Anh, các từ được phân cách bởi dấu cách hoặc. Tuy nhiên, với tiếng Việt thì không đơn giản như vậy, một từ tiếng Việt có thể gồm nhiều hơn một âm tiết. Do đó không phải lúc nào ta cũng có thể tiến hành tách từ dựa vào dấu cách. Sau khi tìm hiểu một số chương trình tách từ, chúng tôi sử dụng chương trình JVnSegmenter của nhóm nghiên cứu [7], đây là chương trình tách từ tiếng Việt sử dụng mô hình CRFs (conditional random fields) cho kết quả có độ chính xác cao. Ví dụ: Câu = “Nokia N81 đời mới gồm 2 phiên bản: N81 8GB và N81 2GB” Sau khi qua công đoạn tách từ, ta có các từ tiếng Việt trong cặp ngoặc như sau: [Nokia] [N81] [đời mới] [gồm] [2] [phiên bản]: [N81] [8GB] [và] [N81 2GB] Do chất lượng dữ liệu tiếng Việt còn chưa cao, người dùng khi bày tỏ ý kiến của mình qua mạng thường vi phạm một trong các lỗi như viết tiếng Việt không dấu, cú pháp không chuẩn, sai chính tả… vì vậy, trước khi dữ liệu được đưa qua JVnSegmenter, chúng ta cần tiến hành một số bước tiền xử lý như thêm dấu câu, chỉnh sửa các lỗi chính tả, loại bỏ các kí tự không có ý nghĩa (ví dụ một số người có thói quen sử dụng các kí tự biểu hiện cảm xúc của ngôn ngữ chat vào trong cả cách viết bình thường, đối với bài toán của chúng ta, các từ này không cung cấp thông tin cần thiết nên sẽ bị loại bỏ). 23 3.3.3. Gán nhãn loại từ: Dữ liệu sau khi được tách từ, sẽ được tiến hành gán nhãn từ loại (phân biệt danh từ, tính từ, động từ, …). Trong khóa luận này, chúng tôi sử dụng chương trình VnQTAG của nhóm tác giả [3] để tiến hành công việc trên. VnQTAG được nhóm tác giả trên chỉnh sửa lại thành phiên bản dùng cho tiếng Việt từ phần mếm QTAG của nhóm tác giả O. Mason, Đại học Bermingham, Anh. QTAG là một bộ gán nhãn xác suất độc lập với ngôn ngữ. Phương pháp xử lý của QTAG có thể mô tả tổng quát như sau. Dựa vào kho dữ liệu đã được gán nhãn bằng tay, bộ gán nhãn tìm những nhãn có thể được và tần số của nó cho từng từ trong kho dữ liệu mới đã được tách từ. Nếu việc tìm kiếm một từ trong danh sách từ vựng đã học thất bại thì tất cả các nhãn sẽ được gán cho từ đó. Cuối cùng, bộ gán nhãn thực hiện bước loại bỏ nhập nhằng bằng cách sử dụng thông tin về xác suất phân bố từ vựng đã được học trước đó. Dữ liệu đầu vào của chương trình VnQTAG là văn bản đã được phân tách từ trong từng câu (kết quả của bước tách từ ở phần trên), kết quả đầu ra của chương trình là một từ loại tương ứng sẽ được gán cho từng từ trong văn bản. Hệ thống sử dụng đồng thời từ điển để liệt kê các từ loại có thể cho một từ, và một kho văn bản mẫu để loại bỏ nhập nhằng. Ví dụ về kết quả thu được sau khi đưa dữ liệu qua VnQTAG: hồi lên sáu <w pos=","> , có lần tôi đã nhìn thấy <w pos="Nn"> một bức tranh <w pos="Jd"> tuyệt đẹp Hạn chế còn tồn tại của VnQTAG chính là chương trình chưa có khả năng nhận diện các cụm danh từ, việc gán nhãn từ loại mới chỉ xác định được các danh từ. Trong khi bài toán của chúng ta yêu cầu cần xác định cả các cụm danh từ (điều này sẽ được giải thích cụ thể trong phần sau). Đây là một vấn đề khó cần được giải quyết; trong hệ thống trích chọn thuộc tính sản phẩm sử dụng khai phá luật kết hợp, chúng tôi mới chỉ có thể xác định được một số cụm danh từ nhất định. 24 3.3.4. Trích chọn thuộc tính phổ biến: Mục tiêu của bước này là xác định được các thuộc tính của sản phẩm được nhiều người dùng nhận xét (chúng tôi gọi là các thuộc tính phổ biến). Tuy nhiên, do độ phức tạp về ý nghĩa của ngôn ngữ tự nhiên nên ở đây chúng tôi chỉ tập trung vào các thuộc tính xuất hiện một cách rõ ràng trong câu. Khái niệm rõ ràng được hiểu như sau: • “Chất lượng ảnh chụp rất tốt” – thuộc tính “chất lượng ảnh” là rõ ràng. • “Mặc dù đắt, nhưng tôi vẫn quyết định mua.” – thuộc tính “giá bán” là không rõ ràng, hệ thống không xác định được các thuộc tính kiểu này. Do số lượng các thuộc tính không rõ ràng trong các đánh giá ít hơn thuộc tính rõ ràng nên việc bỏ qua các thuộc tính kiểu này không làm ảnh hưởng nhiều tới kết quả. Để tìm ra các thuộc tính phổ biến, chúng tôi sử dụng kĩ thuật khai phá luật kết hợp trong đó tập chỉ mục là tập các thuộc tính sản phẩm, mỗi một câu trong đánh giá là một giao tác, còn cơ sở dữ liệu giao tác chính là tập các đánh giá đầu vào. Qua việc khảo sát các đánh giá sản phẩm trên các hệ thống mua bán trực tuyến, chúng tôi rút ra kết luận: hầu hết các thuộc tính của sản phẩm xuất hiện trong các đánh giá đều ở dạng danh từ hoặc cụm danh từ. Vì vậy, ở đây chúng tôi chỉ tập trung vào việc khai phá luật kết hợp trên tập các danh từ và cụm danh từ có mặt trong đánh giá sản phẩm. Phương pháp thực hiện sẽ gồm 3 bước như sau. Bước một, sinh tập chỉ mục, hệ thống thực hiện trích chọn ra các danh từ trong tập dữ liệu các đánh giá sản phẩm đã được gán nhãn từ loại ở bước trên. Dựa vào các danh từ này chúng tôi tạo ra một file giao tác. File này có cấu trúc như sau: mỗi dòng trong file là một dãy các kí tự 0, 1 cách nhau bởi dấu cách, có độ dài bằng nhau và bằng số danh từ tìm được ở trên, thể hiện cho một câu trong tập các đánh giá sản phẩm. Mỗi một số trong dãy 0, 1 thể hiện sự xuát hiện của một danh từ trong câu: 0 có nghĩa là danh từ đó không xuất hiện trong câu, còn 1 là có xuất hiện. File giao tác này chính là cơ sở dữ liệu giao tác sẽ dùng trong thuật toán Apriori ở bước sau. Bước hai, áp dụng thuật toán Apriori trên tập chỉ mục và cơ sở dữ liệu giao tác thu được ở bước trên, ta sẽ thu được các tập chỉ mục phổ biến (frequent itemsets), mỗi đối tượng thuộc các tập này có khả năng là một thuộc tính của sản phẩm. Một tập chỉ mục được coi là phổ biến khi các từ trong tập này xuất hiện ít nhất trong c% số câu của tập dữ liệu (minimum support = c%, c là giá trị do chúng ta định trước). Chú ý ở bước này, 25 chúng ta sẽ không chạy thuật toán Apriori để tìm hết tất cả các tập phổ biến mà chỉ tìm các tập phổ biến có độ dài trong giới hạn xác định, bởi vì các thuộc tính của sản phẩm cũng có giới hạn về số từ (trong khảo sát các đánh giá sản phẩm điện thoại, chúng tôi nhận thấy độ dài tối đa của một thuộc tính là 5 từ - ví dụ như cụm danh từ sau “màn hình tinh cảm ứng”). Vì vậy chúng tôi sẽ đưa ra ngưỡng giới hạn độ dài tối đa của tập chỉ mục phổ biến cần tìm. Nhờ vậy tiết kiệm được thời gian và công sức. Sau khi tìm được các tập chỉ mục phổ biến, hệ thống thực hiện bước 3: “cắt tỉa” các đối tượng không phải thuộc tính. Việc “cắt tỉa” gồm 2 bước con: • Compactness pruning (cắt tỉa bảo đảm tính chặt chẽ): trong bước này, chúng tôi kiểm tra các thuộc tính có nhiều hơn 2 từ trở lên để loại bỏ những cụm từ vô nghĩa. Nguyên nhân là do khi thực hiện khai phá luật kết hợp, thuật toán chỉ quan tâm tới số lần xuất hiện của các từ, tức là độ hỗ trợ của từ, chứ không quan tâm tới vị trí xuất hiện của từ trong câu, điều này dẫn tới khả năng trong các tập chỉ mục phổ biến tìm được có chứa nhiều cụm từ vô nghĩa. Ví dụ: có tập chỉ mục phổ biến 1 phần tử {hệ điều hành, Symbian}. Khi áp dụng thuật toán Apriori để tìm tập chỉ mục phổ biến 2 phần tử, giả sử ta thu được kết quả là {hệ điều hành Symbian, Symbian hệ điều hành}. Ta thấy ngay chỉ có "hệ điều hành Symbian" mới là thuộc tính cần tìm, còn "Symbian hệ điều hành" là một cụm từ vô nghĩa phải loại bỏ. Để loại bỏ được các kết quả vô nghĩa, chúng tôi đưa ra khái niệm "cụm từ chặt chẽ" như sau: + giả sử f là một cụm từ phổ biến gồm n từ tạo ra từ thuật toán Apriori, f={w1, w2, …,wn}. Nếu tồn tại một câu s chứa toàn bộ w1, w2, …,wn và khoảng cách giữa wi và wi+1 trong s không quá 3 thì f được coi là "chặt" đối với s. + Nếu f xuất hiện trong m câu thuộc tập dữ liệu đánh giá, và f là "chặt" đối với ít nhất 2 trong m câu trên thì f là một cụm từ chặt chẽ. Đối với những cụm từ không thỏa mãn điều kiện chặt chẽ trên, hệ thống sẽ tiến hành loại bỏ khỏi tập thuộc tính phổ biến. • Redundancy pruning (cắt tỉa dư thừa): bước này tập trung vào loại bỏ các thuộc tính thừa (những thuộc tính là danh từ đơn). Ví dụ về một thuộc tính dư thừa như sau: trong bản đánh giá về sản phẩm điện thoại X, người tiêu dùng đề cập tới “tuổi thọ pin 26 ngắn”, khi thực hiện tách từ, gán nhãn và sinh tập thuộc tính phổ biến, trong kết quả thu được có 2 thuộc tính “tuổi thọ” và “tuổi thọ pin”. Ta thấy ở đây thuộc tính “tuổi thọ” là dư thừa do nó đóng vai trò không quan trọng so với thuộc tính “tuổi thọ pin”. Vì vậy, hệ thống sẽ loại bỏ các thuộc tính thừa này. Tuy nhiên, không phải cứ có một thuộc tính khác bao hàm mình thì thuộc tính con sẽ bị loại bỏ, bởi vì có thể thuộc tính con vẫn mang ý nghĩa quan trọng. Ví dụ như ở trường hợp sau, “màn hình”, “màn hình chính”, “màn hình ngoài”, lúc này ta không thể loại bỏ thuộc tính “màn hình”. Để xác định một thuộc tính là dư thừa hay không, chúng tôi sử dụng độ đo pure support, có thể dịch là độ hỗ trợ hoàn toàn (kí hiệu là p-support). Độ đo p-support được định nghĩa như sau: p-support của một thuộc tính f được tính bằng phần trăm số câu trong đó chứa thuộc tính f mà không chứa các thuộc tính khác là cha của thuộc tính đó (f phải xuất hiện dưới dạng danh từ trong các câu này, nguyên nhân là do trong tiếng Việt, các từ không có thay đổi dạng khi chuyển từ danh từ sang từ loại khác, vì thế để chắc chắn cụm từ f xuất hiện trong câu đúng là thuộc tính của sản phẩm thì f phải ở dạng danh từ); một thuộc tính được gọi là cha nếu thuộc tính đó có bao hàm thuộc tính khác trong mình (ví dụ: "màn hình cảm ứng" là thuộc tính cha của thuộc tính "màn hình"). Chúng ta xem xét ví dụ sau để hiểu rõ hơn về p-support: trong tập dữ liệu đánh giá sản phẩm, thuộc tính “màn hình” có độ hỗ trợ là 9% (xuất hiện trong 9% câu thuộc tập dữ liệu). “Màn hình” lại là tập con của cụm từ “màn hình cảm ứng”. Giả sử độ hỗ trợ của “màn hình cảm ứng” là 5%, thì p-support của thuộc tính “màn hình” sẽ là 4% (9% - 5%). Nếu một thuộc tính có giá trị p-support nhỏ hơn ngưỡng p-support cực tiểu do ta đưa ra và tồn tại một thuộc tính cha của thuộc tính kia thì ta sẽ xếp nó vào dạng thuộc tính thừa và loại bỏ. Sau khi thực hiện 2 bước cắt tỉa, ta thu được tập các từ và cụm từ là thuộc tính phổ biến của sản phẩm. 3.3.5. Trích chọn từ thể hiện ý kiến: Từ thể hiện ý kiến là các từ dùng để biểu đạt ý kiến khen hay chê của người viết. Qua quá trình khảo sát các đánh giá sản phẩm trên hệ thống mua bán hàng trực tuyến, chúng tôi rút ra nhận xét là các từ thể hiện ý kiến thường là tính từ hoặc cụm tính từ xuất hiện gần các từ hoặc cụm từ chỉ thuộc tính của sản phẩm. Ví dụ như trong câu “phím bấm rất đẹp”, “đẹp” là tính từ thể hiện ý kiến, “phím bấm” là thuộc tính sản phẩm. Vì thế dựa vào tập các thuộc tính phổ biến tìm được ở bước trên, chúng ta có thể trích xuất ra các từ 27 thể hiện ý kiến trong tập các đánh giá sản phẩm. Mục đích của bước này là để từ các từ thể hiện ý kiến này, chúng ta tìm ra được các thuộc tính ít phổ biến (điều này cũng dựa vào hai nhận xét rút ra từ quan sát thực tế: các từ thể hiện ý kiến và thuộc tính sản phẩm thường xuất hiện cùng nhau trong một câu; và người dùng có xu hướng dùng cùng một tính từ để nhận xét về nhiều đối tượng khác nhau). Việc trích chọn các từ thể hiện ý kiến trong các đánh giá được tiến hành như sau: Đối với mỗi một câu trong cơ sở dữ liệu các đánh giá, nếu chứa bất kì thuộc tính phổ biến nào thì trích chọn ra tính từ ở gần thuộc tính đó, và tính từ đó được coi là từ thể hiện ý kiến. for mỗi câu trong CSDL các đánh giá if (nó chứa thuộc tính phổ biến) { Tìm tính từ gần thuộc tính sản phẩm nhất và lưu vào tập các từ thể hiện ý kiến. } 3.3.6. Trích chọn thuộc tính ít phổ biến: Định nghĩa thuộc tính ít phổ biến: trái với thuộc tính phổ biến là những thuộc tính được người dùng đánh giá nhiều nhất, thuộc tính không phổ biến là các thuộc tính chỉ được một số ít người dùng nhắc đến. Tuy nhiên, những thuộc tính này vẫn có thể được một số khách hàng hoặc chính nhà sản xuất quan tâm muốn biết. Do vậy hệ thống vẫn phải trích chọn được những thuộc tính kiểu này. Cũng như đối với thuộc tính phổ biến, ở đây chúng tôi cũng chỉ tập trung vào các thuộc tính rõ ràng (khái niệm rõ ràng xem lại ở mục 3.3.4). Như đã đề cập đến ở phần trước, quan sát đánh giá sản phẩm trên hệ thống mua bán trực tuyến, chúng tôi rút ra hai nhận xét quan trọng sau: • Một là các từ thể hiện ý kiến thường xuất hiện cùng các từ chỉ thuộc tính sản phẩm trong một câu. 28 • Hai là người dùng có thể dùng các tính từ giống nhau khi đánh giá các đối tượng khác nhau. Ví dụ: cùng một tính từ “đẹp” được dùng để nhận xét cho 2 thuộc tính khác nhau: “Nokia N81 có thiết kế đẹp mắt” và “Chất lượng ảnh rất đẹp”. Do vậy, dựa vào các từ thể hiện ý kiến đi cùng các thuộc tính phổ biến, chúng ta có thể tìm ra các thuộc tính ít phổ biến theo nguyên tắc bắc cầu. Việc trích chọn các thuộc tính ít phổ biến được thực hiện như sau, với tập các đánh giá sản phẩm, tập các thuộc tính phổ biến và tập các từ thể hiện ý kiến tìm được ở bước trên, ta thực hiện duyệt tất cả các câu trong tập đánh giá, nếu câu nào không chứa các thuộc tính phổ biến, nhưng có các từ thể hiện ý kiến thì thực hiện trích chọn danh từ, cụm danh từ gần từ đó nhất và đưa vào tập các thuộc tính ít phổ biến: for mỗi câu trong CSDL các đánh giá if (nó không chứa thuộc tính phổ biến nhưng chứa từ thể hiện ý kiến) { Tìm danh từ hoặc cụm danh từ gần từ thể hiện ý kiến nhất và lưu kết quả vào tập các thuộc tính ít phổ biến. } Vấn đề gặp phải là việc trích chọn này có thể đưa ra các danh từ hoặc cụm danh từ không phải thuộc tính của sản phẩm, nguyên nhân là do người dùng thường sử dụng tính từ để đánh giá mọi thứ, bao gồm cả sản phẩm và những thứ không liên quan (các đánh giá có thể chứa cả những câu không liên quan tới sản phẩm). Tuy nhiên, đây không phải là vấn đề nghiêm trọng, do số lượng thuộc tính ít phổ biến chỉ chiếm một phần nhỏ tổng số thuộc tính trong thực nghiệm. Các thuộc tính ít phổ biến chỉ được sinh ra nhằm đảm bảo tính hoàn thiện của hệ thống. 3.3.7. Đánh giá, nhận xét về mô hình sử dụng: Mô hình đưa ra trong khóa luận có nhiều ưu điểm như xác định được cả thuộc tính phổ biến và ít phổ biến một cách hiệu quả, tốc độ nhanh, không cần tập dữ liệu training. Tuy nhiên vẫn còn tồn tại một số hạn chế chưa giải quyết được: 29 • Thứ nhất là việc xác định thuộc tính sản phẩm thực hiện ở mức độ từ, không xét đến các thông tin ngữ nghĩa ở mức độ câu, do vậy hệ thống có thể trích chọn ra các đối tượng không phải là thuộc tính của sản phẩm. • Hai là mô hình mới chỉ tìm ra được các thuộc tính thuộc từ loại danh từ. • Thứ ba là vấn đề về từ đồng nghĩa, trong kết quả trích chọn có thể có các từ đồng nghĩa, do vậy chúng ta phải kết hợp chúng lại làm một nhóm. Phương pháp giải quyết hiện tại đối với tiếng Anh là sử dụng một bộ từ điển đơn ngữ, sử dụng WordNet [8], sử dụng từ điển đồng nghĩa, và sử dụng máy tìm kiếm [14]. Đối với tiếng Việt, do hạn chế về thời gian, kiến thức cũng như các công cụ liên quan mà chúng tôi tạm thời chưa đưa vào giải quyết vấn đề này trong mô hình trên. • Cuối cùng là chưa giải quyết được vấn đề thuộc tính ẩn (không rõ ràng). 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: Hiện nay trên thế giới có khá nhiều công trình nghiên cứu về lĩnh vực trích chọn thuộc tính sản phẩm trong các đánh giá của khách hàng với nhiều cách tiếp cận khác nhau. Phần này sẽ điểm qua một số mô hình trích chọn có cách tiếp cận khác với khóa luận: • Đầu tiên là OPINE, một hệ thống trích chọn thông tin không giám sát, được xây dựng trên nền tảng hệ thống KnowItAll [6] dùng để trích chọn thuộc tính sản phẩm và ý kiến đánh giá trong các đánh giá sản phẩm trực tuyến. Một đặc điểm nổi trội của OPINE là khả năng trích chọn cả thuộc tính rõ ràng và thuộc tính không rõ ràng. • Thứ hai là mô hình của Heng Ren, Jingye Wang, và Tony Wu [10]. Trong mô hình này, quá trình trích chọn sẽ đi từ mức độ câu rồi mới xuống đến mức độ từ. Bước đầu tiên là xác định các câu trong đánh giá có khả năng chứa thuộc tính của sản phẩm. Bước 2, dùng luật kết hợp và PMI (Point- wise Mutual Information) để trích chọn ra các thuộc tính trong đó. Để xác định câu có chứa thuộc tính hay không, nhóm tác giả áp dụng một vài phương pháp học máy như Naïve Bayesian, Spy EM, phương pháp Rocchio, SVM dựa trên Rocchio, Biased-SVM. 30 • Ngoài ra còn có mô hình trích chọn tự động thuộc tính sản phẩm từ các đánh giá sản phẩm trực tuyến sử dụng mô hình entropy cực đại kết hợp với các đặc trưng cú pháp và từ vựng của nhóm tác giả Gamgarn Somprasertsri và Pattarachai Lalitrojwong [9]. Phương pháp tiến hành như sau: trích chọn các thuộc tính từ một tập dữ liệu đã gán nhãn, sau đó tiến hành huấn luyện mô hình entropy cực đại, và sử dụng mô hình đã được huấn luyện để trích chọn ra các thuộc tính của sản phẩm. Cuối cùng áp dụng kĩ thuật xử lý ngôn ngữ tự nhiên để xác định các thuộc tính còn lại. 3.4. Tổng kết chương: Chương này đã đi vào xem xét các nội dung chính của 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. Trình bày hai thách thức cơ bản và một số phương pháp giải quyết. Đồng thời đưa ra mô hình trích chọn thuộc tính sản phẩm sử dụng kĩ thuật xử lý ngôn ngữ tự nhiên và khai phá luật kết hợp khá hiệu quả. Chương tiếp theo trình bày các thử nghiệm thực tế trên tập dữ liệu cụ thể được lấy từ các hệ thống mua bán trực tuyến tiếng Việt và đánh giá kết quả thu được. 31 Chương 4: THỰC NGHIỆM VÀ ĐÁNH GIÁ 4.1. Môi trường thử nghiệm: 4.1.1. Môi trường phần cứng: Bảng 8. Cấu hình hệ thống thử nghiệm Thành phần Chỉ số CPU Intel Pentum IV 2.4GHz Memory (RAM) 1.00 GB HDD 80 GB System type 32 bit Operating System 4.1.2. Công cụ phần mềm: Hiện tại trong lĩnh vực xử lý ngôn ngữ tiếng Việt, số phần mềm nguồn mở hoàn thiện còn khá hạn chế. Để tiến hành thực nghiệm, chúng tôi sử dụng công cụ mã nguồn mở JvnSegmenter của nhóm tác giả Nguyễn Cẩm Tú và Phan Xuân Hiếu. Nguồn: Đây là bộ công cụ viết trên Java sử dụng mô hình CRFs để thực hiện tách từ cho ngôn ngữ tiếng Việt. Ngoài ra, chúng tôi còn sử dụng bộ công cụ gán nhãn từ loại VnQTAG của nhóm tác giả Nguyễn Thị Minh Huyền, Vũ Xuân Lương, Lê Hồng Phương. Nguồn: Cuối cùng là các thành phần khác trong hệ thống trích chọn thuộc tính sản phẩm do chúng tôi tự xây dựng (cài đặt Apriori, bộ trích chọn thuộc tính). 4.2. Dữ liệu thực nghiệm: Dữ liệu thực nghiệm là các đánh giá sản phẩm sản phẩm điện thoại của người dùng viết bằng ngôn ngữ tiếng Việt lấy trên các trang bán hàng trực tuyến như vatgia.com, 32 thegioididong.com… Các đánh giá có cấu trúc gồm tiêu đề và nội dung ý kiến, ngoài ra còn có các thông tin về số điểm (rating), thời gian và người đánh giá. Hình 3. Ví dụ về các đánh giá sản phẩm Nokia E90 trên website thegioididong.com Sau khi được lấy về, dữ liệu được tổ chức dưới dạng file text, mỗi file lưu tất cả đánh giá cho một sản phẩm cụ thể. Có tổng cộng 23 loại điện thoại, với tổng cộng 700 đánh giá được thu thập làm dữ liệu thực nghiệm. Dưới đây, chúng tôi trình bày kết quả đạt được đối với 6 sản phẩm tiêu biểu. Nội dung cần lấy 33 Bảng 9. 6 sản phẩm tiêu biểu trong số các mẫu thực nghiệm STT Tên sản phẩm Số lượng đánh giá Số lượng thuộc tính 1 800 sapphire arte 12 36 2 Nokia 5800 XpressMussic 27 30 3 Nokia N73 Music Edition 60 52 4 Nokia N81 - 8GB 21 47 5 Nokia N95 53 42 6 Samsung F480 17 37 Dữ liệu sau khi lấy về sẽ được tiến hành tiền xử lý: + Thêm dấu câu đối với các đánh giá không gõ có dấu. + Sửa các lỗi chính tả. + Loại bỏ các kí tự biểu cảm trong ngôn ngữ chat (emoticons). Nhận xét: Các đánh giá sản phẩm trên ngôn ngữ tiếng Việt trong các hệ thống mua bán trực tuyến nói chung có nhiều hạn chế về số lượng cũng như chất lượng. + Về số lượng: rất khó để tìm một trang bán hàng trực tuyến nào có số lượng đánh giá tiếng Việt về một sản phẩm lên quá con số một trăm. Vì vậy việc thu thập các đánh giá về cùng một sản phẩm phải tiến hành trên nhiều hệ thống mua bán trực tuyến khác nhau. + Còn về chất lượng các đánh giá, tồn tại hạn chế chính ở cả mặt hình thức và nội dung. Về hình thức, vấn đề gặp phải ở đây là tồn tại một số lượng khá lớn người dùng có thói quen viết tiếng Việt không dấu. Hiện nay lại chưa có hệ thống xử lý ngôn ngữ tiếng Việt nào có khả năng bổ sung dấu cho văn bản tiếng Việt không dấu. Vì vậy, chúng tôi bắt buộc phải tiến hành chuẩn hóa bằng tay, thực hiện việc thêm dấu cho các đánh giá viết không dấu. Đây là một công đoạn tốn nhiều thời gian và công sức nhất trong khâu tiền xử lý. Về nội dung, các đánh giá phần lớn còn khá sơ sài (cá biệt một lượng không nhỏ 34 đánh giá chỉ gồm có 1, 2 câu nhận xét với nội dung chung chung). Trong quá trình thu thập dữ liệu, chúng tôi đã cố gắng chọn lọc ra các đánh giá có chất lượng nội dung khá trở lên. 4.3. Kết quả thực nghiệm: Tiến hành thử nghiệm trên tập các dữ liệu tiếng Việt đã qua tiền xử lý như giới thiệu ở trên. Kết quả thu được như sau. 4.3.1. Tách từ và gán nhãn từ loại: • Tách từ: + Đọc dữ liệu từ file văn bản chứa các đánh giá tiếng Việt (mã hóa UTF-8) thu thập được vào JvnSegmenter để tiến hành tách từ. + Kết quả trả lại có dạng như sau: [Tuyệt vời] , [nhưng] [...] [Mới] [mua] [con] [này] [được] [2] [hôm] . [Dùng] [thấy] [rất] [ổn] , [có] [điều] [pin] [mau] [hết] , [1] [ngày] [là] [hết sạch] . [Tình hình] [này] [phải] [kiếm] [quả] [Pin] [khác] [khủng] [hơn] [mới] [xong] . [Ngoài ra] [thì] [camera] [mặt] [trước] [xấu kinh] , [dùng] [video call] [thì] [tệ] [thật] . [Nhưng] [về cơ bản] [thì] [các] [tính năng] [khác] [rất] [tuyệt] , [đặc biệt] [xem] [phim] [mp4] [trên] [màn hình] [16] [triệu] [màu] , [hehe] , [các] [máy] [khác] [khóc hận] [Ưu điểm] : [Nhiều] [Nhược điểm] : [Pin] [mau hết] [Đánh giá] : [10 /10] [Nhận xét] [lúc] : [00:44:00] [18/04/2007] [Email] : [my_memory_21_08@yahoo.com] + Lưu kết quả trên ra file có cấu trúc mỗi dòng là một từ trong cặp ngoặc vuông để làm dữ liệu đầu vào cho bộ gán nhãn VnQTAG. + Đánh giá kết quả tách từ: độ chính xác cao, thời gian thực hiện nhanh. • Gán nhãn từ loại: + Chạy công cụ VnQTAG với dữ liệu đầu vào là các file text thu được ở bước trên. 35 + Kết quả trả lại là các file chứa dữ liệu đã được gán nhãn. File này có cấu trúc như sau: Tuyệt vời , nhưng ... . Mới mua con này được 2 hôm . … + Đánh giá kết quả gán nhãn: Do thời gian thực nghiệm có hạn nên chúng tôi chưa thể tiến hành gán nhãn tập dữ liệu bằng tay để tiến hành đánh giá độ chính xác của kêt quả gán nhãn tự động bằng VnQTAG. Tuy nhiên, qua quan sát, chúng tôi nhận thấy kết quả gán nhãn từ loại có độ chính xác chưa cao. 4.3.2. Trích chọn thuộc tính phổ biến: • Sinh các tập chỉ mục phổ biến: + Bước 1: sinh tập chỉ mục, trích chọn ra các từ được gán nhãn danh từ trong kết quả thu được trên. Theo kết quả gán nhãn từ loại, các danh từ được chia làm 8 nhóm nhỏ. Bảng 10. Các loại danh từ Loại danh từ Kí hiệu nhãn Danh từ riêng Np Danh từ đơn thể Nc Danh từ tổng thể Ng Danh từ loại thể Nt Danh từ chỉ đơn vị Nu Danh từ trừu tượng Na 36 Danh từ số lượng Nn Danh từ vị trí Nl Bảng 11. Số lượng danh từ trong tập đánh giá mỗi sản phẩm STT Tên sản phẩm Số lượng danh từ 1 800 sapphire arte 222 2 Nokia 5800 XpressMussic 353 3 Nokia N73 Music Edition 798 4 Nokia N81 - 8GB 481 5 Nokia N95 809 6 Samsung F480 306 + Bước 2: tạo cơ sở dữ liệu giao tác. Đối với mỗi một sản phẩm, tạo một ma trận m×n, trong đó mỗi hàng ứng với một câu trong tập dữ liệu các đánh giá về sản phẩm đó, còn mỗi cột ứng với một danh từ trong tập chỉ mục thu được ở bước trên. 0 0 0 0 0 0 0 0 0 0 0 0 0...0 0 0 0 0 0 1 0 0 0 0 0 0 1...1 0 1 1 0 0 0 0 0 0 0 0 0 0...0 ... 1 1 0 1 1 0 0 0 0 0 0 0 0...0 + Bước 3: chạy thuật toán Apriori với dữ liệu đầu vào là tập chỉ mục và cơ sở dữ liệu sinh ở bước trên, đầu ra là các tập chỉ mục phổ biến thỏa mãn ngưỡng hỗ trợ cực tiểu minsupp. Mỗi tập chỉ mục phổ biến sẽ tương ứng với một thuộc tính. Ví dụ: giả sử L1 = {A, B, C, D …}, L2={[AB],[AC],…} thì A, B, C, D và AB, AC có thể là thuộc tính của sản phẩm. Trong quá trình thực nghiệm, chúng tôi rút ra các nhận xét sau: + Nếu tạo tập chỉ mục I gồm tất cả các danh từ thu được sau khi gán nhãn từ loại, thì các tập chỉ mục phổ biến Lk sinh ra sẽ chứa rất nhiều các phần tử không phải là thuộc tính của sản phẩm. Dựa vào khảo sát các thuộc tính là 37 danh từ đơn và danh từ ghép trong các đánh giá, chúng tôi đưa ra chiến lược chọn lọc danh từ như sau: sử dụng I={Nc, Ng, Na, Np} để tìm L1, và sử dụng I={Nc, Ng, Na, Np, Nu, Nl} để tìm Lk với k > 1. + Hầu hết các thuột tính sản phẩm xuất hiện trong các đánh giá đều có độ dài nhỏ hơn 3 từ (thuộc tính dài nhất được tạo ra bằng cách ghép 3 từ đơn lại với nhau). Vì vậy, chúng tôi chỉ lấy kết quả gồm các tập chỉ mục phổ biến 3 phần tử trở xuống (Lk với k ≤ 3), bỏ qua các Lk còn lại. Điều này giúp tiết kiệm thời gian và công sức cho bước cắt tỉa mà không làm ảnh hưởng tới kết quả của bài toán. + Ngoài ra, để loại bỏ bớt các kết quả không phù hợp, chúng tôi sử dụng 2 ngưỡng minsupp khác nhau cho L1 và Lk (1< k ≤ 3). Minsupp cho L1 là 2%, trong khi minsupp cho Lk là 1%. Minsupp cho L1 cao hơn để loại bỏ bớt các danh từ không quan trọng. Kết quả thu được như bảng bên dưới: 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 Thuộc tính phổ biến (khai phá luật kết hợp) Tên sản phẩm Số thuộc tính xác định bằng tay Recall Precision 800 sapphire arte 36 0.500 0.008 Nokia 5800 XpressMussic 30 0.500 0.063 Nokia N73 Music Edition 52 0.385 0.177 Nokia N81 - 8GB 47 0.596 0.002 Nokia N95 42 0.404 0.091 Samsung F480 37 0.649 0.006 Trung bình 40 0.506 0.058 • Cắt tỉa kết quả thu được: 38 + Bước 1 - compactness prunning: cắt tỉa nhằm đảm bảo tính chặt chẽ của kết quả. Thực hiện như đã đề cập trong mô hình ở chương 3. + Bước 2 - redundancy prunning: cắt tỉa loại bỏ thuộc tính thừa. Ở đây chúng tôi đặt ngưỡng p-support = 2. + Kết quả đạt được thể hiện trong bảng dưới đây. 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 Compactness prunning Redundancy prunning Tên sản phẩm Số thuộc tính xác định bằng tay Recall Precision Recall Precision 800 sapphire arte 36 0.306 0.297 0.306 0.333 Nokia 5800 XpressMussic 30 0.500 0.263 0.433 0.255 Nokia N73 Music Edition 52 0.365 0.253 0.365 0.253 Nokia N81 - 8GB 47 0.489 0.2 0.468 0.212 Nokia N95 42 0.405 0.227 0.405 0.243 Samsung F480 37 0.568 0.247 0.568 0.273 Trung bình 40 0.438 0.248 0.424 0.262 4.3.3. Tìm tập các từ thể hiện ý kiến: Phương pháp thực hiện như sau: • Tìm các câu trong đó có xuất hiện các thuộc tính sản phẩm. • Lấy ra các tính từ có trong đó (dựa vào kết quả gán nhãn từ loại). • Chọn ra các tính từ ở gần thuộc tính nhất để đưa vào tập các từ thể hiện ý kiến. Chúng tôi chọn các tính từ ở gần thuộc tính nhất vì thông thường đây là các tính từ bổ nghĩa cho danh từ (thuộc tính) mà ta tìm được ở trên. 4.3.4. Trích chọn thuộc tính ít phổ biến: Tiến hành tương tự như trên: • Tìm các câu trong đó có xuất hiện các từ thể hiện ý kiến. 39 • Lấy ra các danh từ có trong đó (dựa vào kết quả gán nhãn từ loại). • Chọn ra các danh từ ở gần các từ thể hiện ý kiến nhất để đưa vào tập các thuộc tính ít phổ biến. Kết quả trích chọn cuối cùng được thể hiện trong bảng dưới đây: 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. Xác định thuộc tính ít phổ biến Tên sản phẩm Số thuộc tính xác định bằng tay Recall Precision 800 sapphire arte 36 0.324 0.324 Nokia 5800 XpressMussic 30 0.433 0.25 Nokia N73 Music Edition 52 0.365 0.253 Nokia N81 - 8GB 47 0.468 0.212 Nokia N95 42 0.476 0.213 Samsung F480 37 0.568 0.266 Trung bình 40 0.439 0.253 Bảng 15. Độ đo F1 của kết quả sau các bước. Tên sản phẩm Số thuộc tính gán nhãn bằng tay Compactness prunning Redundancy prunning Xác định thuộc tính ít phổ biến 800 sapphire arte 36 0.301 0.319 0.324 Nokia 5800 XpressMussic 30 0.345 0.321 0.317 Nokia N73 Music Edition 52 0.299 0.299 0.299 Nokia N81 - 8GB 47 0.284 0.292 0.291 Nokia N95 42 0.291 0.304 0.294 40 Samsung F480 37 0.344 0.369 0.362 Trung bình 40 0.311 0.317 0.314712 Hình 4. Đồ thị độ đo F1 của kết quả sau các bước trích chọn. 4.4. Đánh giá kết quả thực nghiệm: Để tiến hành đánh giá kết quả thực nghiệm, chúng tôi tiến hành xác định các thuộc tính sản phẩm có trong các đánh giá bằng con người. Số thuộc tính tìm được hầu hết là các thuộc tính rõ ràng (như đã ví dụ ở trên), các thuộc tính không rõ ràng chiếm một tỉ lệ rất nhỏ (1-5%). Cột các thuộc tính tìm được bằng tay trong bảng 12, 13 cho ta thấy số lượng thuộc tính tìm được bằng cách này đối với mỗi một sản phẩm. Bảng 12, 13 và 14 cho ta thấy độ chính xác và độ hồi tưởng của tập thuộc tính tìm được ở mỗi bước: • Sau khi áp dụng thuật toán Apriori là: 5.8% và 50.6% • Sau khi thực hiện cắt tỉa Compactness prunning: 24.8% và 43.8% 41 • Sau khi thực hiện cắt tỉa Redundancy prunning: 26.2% và 42.4% • Sau khi trích chọn các thuộc tính ít phổ biến: 25.3% và 43.9% Trong bảng 12, kết quả sau bước sinh tập thuộc tính phổ biến bằng phương pháp khai phá luật kết hợp có độ chính xác rất thấp. Chứng tỏ các tập chỉ mục phổ biến sinh ra còn chứa quá nhiều phần tử không phải thuộc tính. Bảng 13 cho thấy kết quả sau khi thực hiện hai bước cắt tỉa. Độ chính xác đã được nâng lên đáng kể, độ hồi tưởng chỉ giảm đi vài phần trăm. Điều này chứng tỏ 2 phương pháp cắt tỉa đưa ra là hiệu quả. Trong bảng 14, hai cột cuối cho ta thấy kết quả sau khi trích chọn các thuộc tính ít phổ biến. Ta thấy có sự giảm nhẹ về độ chính xác trung bình, tuy nhiên do các thuộc tính ít phổ biến thường được xếp hạng khá thấp nên các kết quả này hầu như không ảnh hưởng tới người dùng. Kết quả trích chọn thuộc tính sản phẩm trên tiếng Việt còn thấp là do các nguyên nhân chính sau: • Việc gán nhãn từ loại còn nhiều sai sót. • Chưa có một công cụ hoàn thiện để xác định được các cụm danh từ trong văn bản tiếng Việt. Trong khóa luận này, chúng tôi chỉ mới tìm ra các cụm danh từ có cấu tạo từ các danh từ đơn bằng cách áp dụng luật kết hợp. Vì vậy, kết quả còn bỏ sót các thuộc tính là cụm danh từ có cấu tạo khác như danh từ + động từ (“nắp trượt”, “chế độ rung”…). • Đây là công trình đầu tiên trong lĩnh vực trích chọn thuộc tính sản phẩm trong các đánh giá xử lý trên ngôn ngữ tiếng Việt, thêm vào đó là hạn chế về thời gian và kiến thức nên tập dữ liệu để tiến hành thử nghiệm cũng như cơ sở để đánh giá kết quả chưa được hoàn thiện. Từ những kết quả và đánh giá trên, chúng ta có thể kết luận rằng mô hình trích chọn thuộc tính sản phẩm trong hệ thống mua bán trực tuyến ứng dụng khai phá luật kết hợp là một mô hình có nhiều tiềm năng. Để thu được kết quả tốt hơn thì cần phải đầu tư nhiều công sức và có quy mô hơn, từ việc thu thập dữ liệu cho tới hoàn thiện các thành phần xử lý ngôn ngữ tiếng Việt của hệ thống. 42 4.5. Tổng kết chương: Trong chương này chúng ta đã xem xét kết quả của quá trình thử nghiệm mô hình trích chọn thuộc tính sản phẩm trong hệ thống mua bán trực tuyến áp dụng khai phá luật kết hợp. Qua phân tích và đánh giá đã cho thấy tính đúng đắn của phương pháp sử dụng trong khóa luận, nếu được đầu tư, hoàn thiện trong tương lai thì đây là một mô hình có nhiều triển vọng áp dụng vào thực tế. 43 KẾT LUẬN Khóa luận đã trình bà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”. Các vấn đề của bài toán đã được trình bày, phân tích và đưa ra các hướng giải quyết cụ thể. Khóa luận đã sử dụng tiếp cận khai phá luật kết hợp là một phương pháp học máy linh hoạt, hiệu quả, thích hợp với bài toán trích chọn thuộc tính sản phẩm. Những kết quả chính mà khóa luận đạt được: • Phân tích các vấn đề xung quanh bài toán trích chọn thuộc tính thuộc tính sản phẩm trong hệ thống mua bán trực tuyến. • Xây dựng mô hình trích chọn thuộc tính sản phẩm trong tiếng Việt Do khuôn khổ có hạn về thời gian cũng như lượng kiến thức có được và gặp khó khăn trong quá trình thu thập dữ liệu thử nghiệm nên còn một số vấn đề mà khóa luận phải tiếp tục hoàn thiện và phát triển trong thời gian tới: • Thử nghiệm trên một dữ liệu lớn hoàn chỉnh hơn. • Xây dựng các phương pháp hiệu quả hơn trong việc trích chọn cụm danh từ tiếng Việt. 44 TÀI LIỆU THAM KHẢO Tiếng Việt: [1] Đỗ Phúc. Giáo trình Khai thác Dữ liệu. Trường Đại học Công nghệ thông tin TP. Hồ Chí Minh, Đại học Quốc gia TP. Hồ Chí Minh. 2006. [2] Hồ Tú Bảo, Lương Chi Mai. Về xử lý tiếng Việt trong Công nghệ thông tin. Viện Công nghệ Thông tin, Viện Khoa học và Công nghệ Việt Nam, 2006. [3] Nguyễn Thị Minh Huyền, Vũ Xuân Lương, Lê Hồng Phương. Sử dụng bộ gán nhãn từ loại xác suất QTAG cho văn bản tiếng Việt. Kỷ yếu hội thảo ICT.rda'03. Hà Nội. 22-23 tháng 2, 2003 Tiếng Anh: [4] Agrawal, R. and Srikant, R. Fast algorithms for mining association rules. In Proc. 20th Int. Conf. Very Large Data Bases, 487-499. 1994. [5] Agrawal, R., Imielinski, T., and Swami, A. N. Mining association rules between sets of items in large databases. In Proceedings of the 1993 ACM SIGMOD International Conference on Management of Data, 207-216. [6] Ana-Maria Popescu and Oren Etzioni. Extracting Product Features and Opinions from Reviews. In HLT '05: Proceedings of the conference on Human Language Technology and Empirical Methods in Natural Language Processing (2005), 339-346. [7] Cam Tu Nguyen and Xuan Hieu Phan. JVnSegmenter: A Java-based Vietnamese Word Segmentation Tool. 2007. [8] Fellbaum, C. (Edit). WordNet, An Electronic Lexical Database. The MIT Press. 2001. [9] Gamgarn Somprasertsri, Pattarachai Lalitrojwong. Automatic product feature extraction from online product reviews using maximum entropy with lexical and syntactic features. Information Reuse and Integration, 2008. IEEE International Conference on Volume , Issue , 13-15 July 2008, 250 - 255 [10] Heng Ren, Jingye Wang, and Tony Wu. Customer review feature extraction. 45 [11] Knowledge Discovery in Databases, Apriori Itemset Generation. In computer science 831. University of Regina. [12] M. Hu and B. Liu. 2004. Mining and Summarizing Customer Reviews. In KDD, pages 168–177, Seattle, WA. 2004 [13] M. Hu and B. Liu. Mining Opinion Features in Customer Reviews. In AAAI’04, 2004. [14] M. Hu and B. Liu. Opinion Extraction and Summarization on the Web. In AAAI’06, 2006 [15] R. C. Merkle. A digital signature based on a conventional encryption function. Crypto '87 [16] S. Blair-Goldensohn, K. Hannan, R. McDonald, T. Neylon, G. A. Reis and J. Reynar. Building a sentiment summarizer for local service reviews. In WWW Workshop on NLP in the Information Explosion Era, 2008. [17] Santosh Raju, Prasad Pingali, and Vasudeva Varma. An Unsupervised Approach to Product Attribute Extraction. Tech report, International Institute of Information Technology, India, 2009

Các file đính kèm theo tài liệu này:

  • pdfTrí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.pdf
Luận văn liên quan