TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KHOA HỌC MÁY TÍNH
LUẬN VĂN THẠC SĨ
ĐỀ TÀI
LỌC NHẬN XÉT RÁC SẢN PHẨM
CÔNG NGHỆ BẲNG TIẾNG ANH
TRONG THƯƠNG MẠI ĐIỆN TỬ
NGÀNH KHOA HỌC MÁY TÍNH
Mã số: 60.48.01
GVHD: PGS.TS. ĐỖ VĂN NHƠN
---o0o--SVTH : TRẦN NGỌC HUY
TP. Hồ Chí Minh, 10/2016
LỜI CẢM ƠN
Trong suốt quá trình thực hiện luận văn, tôi đã nhận được rất nhiều sự giúp đỡ tận tình
của quý thầy cô hướng dẫn cùng sự động viên từ gia đình, người thân và bạn bè. Nhân dịp
hoàn thành luận văn, tôi xin gửi lời cám ơn sâu sắc và chân thành tới:
PGS.TS Đỗ Văn Nhơn – Trưởng Khoa Khoa Học Máy Tính Trường Đại Học Công
Nghệ Thông Tin, tuy luôn bận rộn với công việc nghiên cứu và giảng dạy riêng của mình,
thầy vẫn luôn quan tâm và hướng dẫn tôi hằng tuần để đảm bảo tiến độ luận văn. Đặc biệt, với
chuyên môn và kiến thức trong lĩnh vực nghiên cứu của mình, thầy đã chỉ dẫn và hướng tôi
theo sát đề tài và phạm vi luận văn. Qua đó, tôi đã học hỏi được rất nhiều, không chỉ kiến thức
chuyên môn mà còn là thái độ nghiên cứu một cách khoa học, nghiêm túc, đúng chuẩn mực,
giúp tôi hoàn thành luận văn một cách tốt nhất.
Các thầy cô, các anh chị trợ giảng tại Khoa Khoa Học Máy Tính Đại Học Công Nghệ
Thông Tin TP. Hồ Chí Minh, chúng tôi đã học được từ các thầy cô và các anh chị những kiến
thức chuyên môn quý báu trong khoảng thời gian 2 năm cao học. Có thể những kiến thức đó
không trực tiếp được sử dụng trong luận văn này, nhưng phần nào đã giúp tôi có một nền tảng
chuyên môn vững chắc để tự tin hơn khi thực hiện luận văn.
Và đặc biệt, lời cảm ơn cuối cùng tôi xin được dành cho gia đình và những người thân
của tôi, những người luôn sát cánh và động viên tôi trong những lúc khó khăn nhất, đó chính
là nguồn động lực tinh thần quý giá giúp tôi hoàn thành luận văn ngày hôm nay.
Một lần nữa tôi cảm ơn và ghi nhận tất cả những sự giúp đỡ kể trên. Với tất cả sự nỗ lực
và cố gắng của bản thân trong hơn 6 tháng thực hiện, tôi đã hoàn thành được luận văn, và tất
nhiên sẽ không tránh khỏi những thiếu sót cần phải hoàn thiện, rất mong nhận được sự góp ý
của quý thầy cô và các bạn.
TP. Hồ Chí Minh, tháng 10/2016
Trần Ngọc Huy
2
LỜI CAM ĐOAN
Tôi xin cam đoan bản báo cáo luận văn tốt nghiệp này là công trình nghiên cứu thực sự
của cá nhân tôi, được thực hiện trên cơ sở nghiên cứu lý thuyết, nghiên cứu các công trình
liên quan và nghiên cứu khảo sát thực tế dưới sự hướng dẫn của PGS.TS Đỗ Văn Nhơn. Các
số liệu, kết quả mà chúng tôi đưa ra trong luận văn hoàn toàn chưa được công bố dưới bất kỳ
hình thức nào trước khi luận văn này được trình bày với hội đồng đánh giá Khoa Khoa Học
Máy Tính Đại Học Công Nghệ Thông Tin TP. Hồ Chí Minh.
Trong quá trình hoàn thành nội dung luận văn, tôi có tham khảo qua một số tài liệu liên
quan đã được nêu rõ trong danh mục Tài Liệu Tham Khảo của luận văn.
Một lần nữa, tôi xin khẳng định tính trung thực trong lời cam kết trên.
TP. Hồ Chí Minh, tháng 10/2016
Trần Ngọc Huy
3
MỤC LỤC
DANH SÁCH HÌNH VẼ............................................................................................................ 6
DANH SÁCH BẢNG................................................................................................................. 7
CHƯƠNG 1. GIỚI THIỆU TỔNG QUAN ................................................................................ 8
1.1.
Giới thiệu ..................................................................................................................... 8
1.2.
Mục tiêu ....................................................................................................................... 9
1.3.
Phạm vi ...................................................................................................................... 10
1.4.
Đóng góp luận văn ..................................................................................................... 10
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT ......................................................................................... 12
2.1.
Nhận diện nhận xét rác dựa trên nội dung ................................................................. 12
2.2.
Nhận diện nhận xét rác dựa trên hành vi ................................................................... 16
2.3.
Các nghiên cứu khác về spam .................................................................................... 17
2.4.
Các nghiên cứu về Ontology...................................................................................... 20
2.5.
Khái niệm Ontology................................................................................................... 22
2.6.
Ngôn ngữ OWL ......................................................................................................... 23
2.7.
Gán nhãn từ loại ......................................................................................................... 24
2.8.
Phân tích cú pháp ....................................................................................................... 25
2.9.
Công cụ hỗ trợ ........................................................................................................... 26
CHƯƠNG 3. MÔ HÌNH VÀ THUẬT GIẢI............................................................................ 29
3.1.
Nhận xét rác và các vấn đề ........................................................................................ 29
3.2.
Thuật giải ................................................................................................................... 34
3.3.
Mô hình và cấu trúc Ontology ................................................................................... 40
3.4.
Mô đun tiền xử lý....................................................................................................... 43
3.5.
Mô đun nhận diện phi nhận xét ................................................................................. 47
3.6.
Mô đun nhận diện nhận xét trên hãng........................................................................ 49
3.7.
Mô đun nhận diện nhận xét lạc đề ............................................................................. 50
3.8.
Mô đun nhận diện nhận xét không thực..................................................................... 51
CHƯƠNG 4. THỰC NGHIỆM VÀ ĐÁNH GIÁ .................................................................... 54
4.1.
Xây dựng tập kiểm thử .............................................................................................. 54
4.2.
Các độ đo ................................................................................................................... 54
4
4.3.
Kết quả thực nghiệm trên tập kiểm thử 1 .................................................................. 56
4.4.
Kết quả thực nghiệm trên tập kiểm thử 2 .................................................................. 59
4.5.
Lưu đồ hoạt động của ứng dụng ................................................................................ 62
4.6.
Mô tả mã nguồn ......................................................................................................... 62
4.7.
Tái sử dụng chương trình ........................................................................................... 72
4.8.
Giao diện chương trình .............................................................................................. 73
CHƯƠNG 5. KẾT LUẬN ........................................................................................................ 77
5.1.
Kết quả đạt được ........................................................................................................ 77
5.2.
Hạn chế và hướng phát triển ...................................................................................... 78
TÀI LIỆU THAM KHẢO ........................................................................................................ 79
PHỤ LỤC A. BẢNG KÍ HIỆU LOẠI TỪ ............................................................................... 81
PHỤ LỤC B. BẢNG KÍ HIỆU CÚ PHÁP............................................................................... 82
PHỤ LỤC C. TỪ ĐIỂN CÁC MẪU BẤT THƯỜNG ............................................................. 83
PHỤ LỤC D. TỪ ĐIỂN CÁC MẪU TỪ KHÔNG NÓI QUÁ ................................................ 84
5
DANH SÁCH HÌNH VẼ
Hình 2.1. Các chức năng chính của Protégé ............................................................................. 27
Hình 2.2. Giao diện trực quan hướng người dùng của Protégé ................................................ 27
Hình 3.1. Sơ đồ tổng quan hệ thống nhận diện nhận xét rác .................................................... 40
Hình 3.2. Mô hình Ontology .................................................................................................... 42
Hình 3.3. Sơ đồ hoạt động của mô đun tiền xử lý .................................................................... 43
Hình 3.4. Sơ đồ hoạt động của mô đun nhận diện nhận xét rác ............................................... 47
Hình 4.1. Kết quả đánh giá toàn hệ thống trên 2 tập kiểm thử ................................................. 61
Hình 4.2. Biểu đồ so sánh hiệu suất giữa các mô đun nhận diện ............................................. 61
Hình 4.1. Lưu đồ hoạt động ứng dụng demo............................................................................ 62
Hình 4.2. Sơ đồ mô tả pakage view của ứng dụng ................................................................... 63
Hình 4.3. Sơ đồ mô tả pakage controller của ứng dụng ........................................................... 64
Hình 4.4. Sơ đồ mô tả pakage business.processing của ứng dụng ........................................... 65
Hình 4.5. Sơ đồ mô tả pakage business.algorithm của ứng dụng ............................................. 67
Hình 4.6. Sơ đồ mô tả pakage model.data của ứng dụng ......................................................... 68
Hình 4.7. Sơ đồ mô tả pakage controller của ứng dụng ........................................................... 71
Hình 4.8. Giao diện chính của ứng dụng .................................................................................. 73
Hình 4.9. Giao diện kiểm tra một câu nhận xét ........................................................................ 74
Hình 4.10. Giao diện hiển thị kết quả kiểm tra một câu nhận xét ............................................ 75
Hình 4.11. Giao diện kiểm tra một tập các câu nhận xét.......................................................... 75
Hình 4.12. Giao diện hiển thị kết quả kiểm tra tự động nhiều câu nhận xét ............................ 76
6
DANH SÁCH BẢNG
Bảng 3.1. Bảng thống kê số lượng thực thể trong Ontology .................................................... 43
Bảng 3.2. Kết quả trả về của mô hình gán nhãn từ loại............................................................ 45
Bảng 3.3. Kết quả trả về của mô hình phân tích cú pháp ......................................................... 46
Bảng 4.1. Ma trận thống kê kết quả dự đoán và kỳ vọng ......................................................... 55
Bảng 4.2. Ví dụ ma trận thống kê kết quả dự đoán và kỳ vọng ............................................... 56
Bảng 4.3. Kết quả thực nghiệm trên tập kiểm thử 1 ................................................................. 56
Bảng 4.4. Bảng phân chia các tập kiểm thử con....................................................................... 57
Bảng 4.5. Kết quả đánh giá hiệu suất mô đun nhận diện phi nhận xét trên tập 1..................... 58
Bảng 4.6. Kết quả đánh giá hiệu suất mô đun nhận diện nhận xét trên hãng trên tập 1 ........... 58
Bảng 4.7. Kết quả đánh giá hiệu suất mô đun nhận diện nhận xét lạc đề trên tập 1 ................ 58
Bảng 4.8. Kết quả đánh giá hiệu suất mô đun nhận diện nhận xét không thực trên tập 1........ 58
Bảng 4.9. Kết quả thực nghiệm trên tập kiểm thử 2 ................................................................. 59
Bảng 4.10. Kết quả đánh giá hiệu suất mô đun nhận diện phi nhận xét trên tập 2................... 59
Bảng 4.11. Kết quả đánh giá hiệu suất mô đun nhận diện nhận xét trên hãng trên tập 2 ......... 60
Bảng 4.12. Kết quả đánh giá hiệu suất mô đun nhận diện nhận xét lạc đề trên tập 2 .............. 60
Bảng 4.13. Kết quả đánh giá hiệu suất mô đun nhận diện nhận xét không thực trên tập 2...... 60
7
CHƯƠNG 1. GIỚI THIỆU TỔNG QUAN
1.1. Giới thiệu
Trong thế giới công nghệ thông tin, thuật ngữ SPAM (Stupid Pointless Annoying
Message) ban đầu ra đời để chỉ những thư điện tử được viết ra một cách vô nghĩa, vô mục
đích, và hoàn toàn không có giá trị, được gửi đi mà người nhận không hề mong muốn. Cùng
với sự phát triển của thế giới Internet, thuật ngữ SPAM ngày càng mở rộng ý nghĩa của nó.
Ngày nay thuật ngữ này không những chỉ được sử dụng để chỉ những email vô nghĩa, nó còn
được dùng để ám chỉ những thông tin vô nghĩa hoặc có nghĩa được truyền đi thông qua
Internet mà đại đa số người đọc đều không mong muốn nhận được. Phạm vi sử dụng của
SPAM rất rộng, có thể là các bài viết trên diễn đàn, các câu bình luận trên các blog cá nhân,
các dịch vụ tán gẫu (chat), hoặc gần đây nhất là trên các mạng xã hội. Ở đây tôi sẽ đề cập tới
một phạm vi cụ thể hơn, đó là các câu nhận xét trên các trang web thương mại điện tử sẽ đề
cập rõ hơn sau đây.
Mua bán trực tuyến là một trong những hình thức phổ biến của thương mại điện tử. Với
mua bán trực tuyến, mọi hoạt động mua bán sẽ diễn ra thông qua Internet. Người mua dễ dàng
có được sản phẩm mình mong muốn mà không phải tới tận nơi để giao dịch. Nắm được xu
hướng đó, rất nhiều website mua bán trực tuyến đã ra đời và hoạt động rất hiệu quả. Một số
trang web rất thành công và có tầm ảnh hưởng lớn như: amazon.com, ebay.com. Theo một
bản khảo sát số liệu năm 2010 tại Mỹ - [Jasen, 2010], 78% số người dùng Internet thường tìm
hiểu các sản phẩm hoặc dịch vụ thông qua các thông tin trực tuyến trên Internet, trong đó
khoảng 32% thường để lại lời nhận xét cho sản phẩm trên các trang thương mại điện tử, do số
người sử dụng trong độ tuổi trẻ từ 18 đến 29 tuổi chiếm đến 77%, nên số lượng người dùng sẽ
tăng lên theo hàng năm.
Khảo sát tỉ lệ người dùng internet theo giới tính và độ tuổi tại Mỹ có tìm kiếm sản phẩm
trực tuyến [Jasen, 2010].
Giới tính
Nam
77%
Nữ
79%
Độ tuổi
18 – 29
77%
30 – 49
80%
50 – 64
81%
65+
68%
8
Tỉ lệ người dùng lun cao hơn 60%, chứng tỏ sức hút ngày càng lớn của thương mại điện
tử là không thể chối cãi. Cũng chính vì mọi hoạt động đều diễn ra trực tuyến, người dùng sẽ
không có cơ hội để tận mắt chứng kiến những món hàng mà mình quan tâm, liệu rằng món
hàng có thực sự tốt như những lời quảng cáo hay không, liệu rằng website mình sẽ giao dịch
có thực sự uy tín hay không. Lúc này, những lời nhận xét trên mạng là thực sự hữu ích. Đó có
thể là những đánh giá từ các chuyên gia, từ những người đã từng sử dụng sản phẩm hoặc
những người đã từng thực hiện giao dịch trên các website mua bán trực tuyến. Người mua
hàng sẽ tham khảo những nhận xét này để rút ra quyết định đúng đắn nhất cho mình.
Sẽ không có gì đáng quan tâm nếu những nhận xét ấy được viết ra với mục đích chia sẻ
mang tính xây dựng và giúp đỡ người đọc khác một cách khách quan. Tuy nhiên, bên cạnh
những nhận xét bình thường ấy, còn có rất nhiều những nhận xét không đáng tin được các tổ
chức cũng như cá nhân viết ra với nhiều mục đích khác nhau. Chúng có thể là những nhận xét
phá hoại, quảng cáo. Hoặc là nói quá, hay nói sai sự thật nhằm nâng cao uy tín cho một sản
phẩm, nhằm hạ thấp một sản phẩm hoặc vì một số mục đích lợi nhuận và phi lợi nhuận khác
nữa. Những nhận xét dạng này thường gây phiền hà và mất thời gian cho người đọc, hoặc
không còn mang tính khách quan, người đọc cũng vì thế mà nhận được những nhận xét không
đáng tin cậy, dẫn tới những quyết định sai lầm khi lựa chọn sản phẩm. Chúng được gọi chung
là nhận xét rác (opinion spam).
Nhận xét về sản phẩm có ý nghĩa rất quan trọng đối với cả hai bên trong mua bán trực
tuyến. Khách hàng, người sử dụng dịch vụ từ các trang web thương mại điện tử sẽ tham khảo
nguồn ý kiến từ những khách hàng khác thông qua những nhận xét này, từ đó đưa ra quyết
định tốt nhất khi họ muốn lựa chọn mua một sản phẩm nào đó. Nhà cung cấp sản phẩm hoặc
dịch vụ cũng dựa trên nguồn nhận xét này để tìm hiểu ý kiến, nhu cầu của khách hàng, từ đó
có thể đưa ra những phân tích và chiến lược kinh doanh cần thiết để đáp ứng khách hàng.
Ví dụ, một câu nhận xét sau đây sẽ có 3 thành phần chính như sau:
1) Loại sản phẩm: MobilePhone
2) Tên sản phẩm: Apple Iphone 5
3) Nội dung:
Are you kidding? Even if the changes in the iphone 5 wasn't as big as expected. They
are still way bigger then the changes made between the samsung galaxy phones.Samsung has
made 3 different phones that's almost an exact copy of eachother. Samsung havn't come with
something new since the touchscreen.If you are complaining about the Iphones beeing to
simmilar to eachother and that's the reason you're changing to Samsung. I'd recommend you
to think again.
1.2. Mục tiêu
Những nhận xét rác như trên cần được loại bỏ để người đọc có những thông tin chính
xác về sản phẩm. Mục tiêu của đề tài là nghiên cứu giải pháp để phân loại các nhận xét rác
trong thương mại điện tử, tập trung vào ba nhóm sản phẩm chính đó là laptop, smart phone và
9
camera. Đầu vào của bài toán sẽ là các nội dung văn bản dùng để nhận xét sản phẩm thuộc
một trong ba nhóm sản phẩm bên trên, sau quá trình phân tích tính toán, kết quả nhận được là
loại nhận xét của văn bản đầu vào, chi tiết bao gồm những mục tiêu cụ thể như sau:
- Tìm hiểu và xác định các loại nhận xét rác hiện có trên các trang thương mại điện tử,
bao gồm các loại nhận xét rác đã được nghiên cứu và những nhận xét rác mới phát sinh.
- Nghiên cứu bài toán lọc nhận xét rác và một số phương pháp đi trước, từ đó vận dụng
đề xuất giải pháp dựa trên hướng tiếp cận Ontology.
- Nghiên cứu bài toán phân tích câu nhận xét cũng như chủ đề câu nhận xét để có được
dữ liệu cần thiết trong phân loại nhận xét rác sau này, hướng tiếp cận mã nguồn mở sử dụng
các phương pháp gán nhãn từ loại (dựa trên luật hoặc dựa trên xác xuất) và phân tích cú pháp
(n-gram).
- Thực hiện ứng dụng để thực nghiệm và đánh giá.
1.3. Phạm vi
Nhận xét rác được sử dụng rất nhiều trên Internet. Những loại website phổ biến có thể
kể đến như website bán hàng thương mại điện tử, các diễn đàn, blog cá nhân và gần đây nhất
là các mạng xã hội. Tuy nhiên, trong phạm vị luận văn, tôi chỉ tập trung vào những nhận xét
rác trên các website bán hàng thương mại điện tử.
Có rất nhiều phương pháp và hướng tiếp cận khác nhau đã được các tác giả nghiên cứu
và đề xuất để phân loại các nhận xét rác. Trong phạm vi luận văn, bài toán nhận diện nhận xét
rác được giải quyết theo hướng tiếp cận sử dụng Ontology. Vấn đề này sẽ được thảo luận rõ
hơn trong Chương 3.
Như đã đề cập ở trên, phương pháp giải quyết bài toán mà tôi đề xuất có sử dụng
Ontology và việc xây dựng Ontology cần đảm bảo tính hoàn thiện và chính xác để phục vụ
cho giải thuật phát hiện. Do đó, trong phạm vi luận văn, tôi đã giới hạn việc xây dựng
Ontology với hai loại sản phẩm là: hotel, e-Products (phone, camera, laptop).
1.4. Đóng góp luận văn
Trong các phương pháp tiếp cận bài toán nhận diện nhận xét rác mà tôi đã tìm hiểu, hầu
hết các tác giả đều sử dụng phương pháp học máy và xây dựng tập đặc trưng để huấn luyện
cho mô hình phân loại. Trong luận văn này, tôi đề xuất một phương pháp mới là xây dựng và
sử dụng Ontology để nhận diện nhận xét rác. Cụ thể sẽ được trình bày trong các chương sau.
Trong quá trình tìm hiểu và phân tích kho dữ liệu các câu nhận xét trên các trang web
thương mại điện tử, tôi phát hiện một loại nhận xét rác mới tạm gọi là nhận xét lạc đề. Một
loại nhận xét thường đánh giá vào chủ đề khác với chủ đề mà nó thực sự cần hướng tới. Các
tác giả trước đó thường bỏ qua loại nhận xét này hoặc nhìn nhận theo một phương diện khác.
Tôi sẽ định nghĩa cụ thể và đề ra hướng giải quyết cho loại nhận xét rác này trong Chương 3.
Một đóng góp quan trọng nữa trong đề tài của tôi đó là mô hình Ontology mà tôi đã xây
dựng để phục vụ cho hệ thống nhận diện nhận xét rác. Với cơ sở tri thức bao gồm hai loại sản
10
phẩm là: hotel, e-Product (camera, mobilephone, laptop), tôi hy vọng đó sẽ là một nguồn dữ
liệu hữu ích cho các nghiên cứu sau này.
Bên cạnh đó, để phục vụ cho giải thuật phát hiện nhận xét rác, tôi cũng đã xây dựng hai
bộ từ điển nhỏ: một là từ điển các mẫu bất thường, hai là từ điển các từ không nói quá (phụ
lục C và phụ lục D). Tôi sẽ đề cập chi tiết hơn ở những chương sau.
11
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
2.1. Nhận diện nhận xét rác dựa trên nội dung
Để phân loại các nhận xét rác, [Ott et al., 2011] sử dụng mô hình phân loại dựa trên học
máy. Cụ thể, bài toán phân loại các nhận xét rác được tiếp cận theo ba hướng: xác định thể
loại văn bản (genre identification), ngôn ngữ học tâm lý (psycholinguistic) và phân loại văn
bản (text catigorization).
Tập dữ liệu sử dụng bao gồm 800 câu nhận xét chia làm 2 loại: 400 câu nhận xét tin cậy
và 400 câu nhận xét rác, tất cả đều là những đánh giá tích cực cho 20 khách sạn được lựa chọn
sẵn. 400 nhận xét tin cậy được sang lọc từ 6977 nhận xét từ website TripAdvisor, được viết
bởi các du khách đã từng có trải nghiệm thật sự ở khách sạn mà họ đánh giá. Ngược lại 400
nhận xét rác cũng là những nhận xét tích cực, tuy nhiên, người nhận xét chưa từng ở khách
sạn, và họ được thuê để viết những nhận xét đó với mục đích quảng bá cho khách sạn và đánh
lừa những du khách khác.
Với hướng tiếp cận thứ nhất, mỗi nhận xét được tách thành các POS (part of speech), sự
phân bố tần suất xuất hiện của các POS phụ thuộc vào thể loại văn bản chứa chúng. Để phát
hiện nhận xét rác, chỉ xem xét hai thể loại chính sau: tin cậy (truthful) và lừa đảo (deceptive),
tương ứng với 2 loại nhận xét trong tập dữ liệu sử dụng. Như vậy, bằng cách tìm ra mối quan
hệ giữa tần suất xuất hiện của POS và thể loại văn bản, một nhận xét rác sẽ được phát hiện khi
phân bố POS của nó chỉ ra mối quan hệ với thể thể loại văn bản tương ứng.
Hướng tiếp cận thứ hai theo ngôn ngữ học tâm lý (psycholinguistic) là sử dụng phần
mềm LIWC (Linguistic Inquiry and Word Count), một công cụ phân tích văn bản tự động.
Đồng thời tạo ra một bộ phân loại văn bản sử dụng đầu ra của LIWC là tập hợp gồm 80 nhóm
từ khóa ứng với 80 khía cạnh ngữ nghĩa tâm lý khác nhau. Mỗi nhóm từ tương ứng với một
đặc tính của bộ phân loại, có thể chia làm bốn nhóm chính sau: ngôn ngữ (linguistic
processes), tâm lý (psychological processes), vấn đề cá nhân (personal concerns), ngôn ngữ
nói (spoken categories).
Hướng tiếp cận cuối cùng là phân loại văn bản sử dụng N-gram, mà cụ thể là Unigram
(1-gram), Bigram+ (2-gram+), và Trigram+ (3-gram+). N-gram là một mô hình phổ biến
dùng để tách từ trong lĩnh vực xử lý ngôn ngữ tự nhiên. Các nhận xét trong tập dữ liệu được
tách bằng mô hình N-gram và xây dựng tập đặc tính tương ứng.
Cuối cùng, công trình xây dựng một bộ phân loại dựa trên mô hình học máy sử dụng
Naïve Bayes và Support Vector Machine. Mô hình phân loại này được huấn luyện sử dụng 5
tập đặc tính thu được từ 3 phương pháp tiếp cận kể trên, bao gồm: POS, LIWC, UNIGRAM,
BIGRAM+, TRIGRAM+. Thêm vào đó, tác giả còn tổ hợp hai tập đặc tính LIWC và
BIGRAM+ , kết quả thực nghiệm cho thấy phương pháp tổ hợp này cho độ chính xác cao hơn
so với khi sử dụng các tập đặc tính đơn lẻ.
Nếu như [Ott et al., 2011] sử dụng các kỹ thuật phân tích phức tạp của xử lý ngôn ngữ
tự nhiên và tập trung vào phân tích tâm lý đánh giá của câu nhận xét, thì các tác giả của
12
[Jindal and Liu, 2008] đã đề xuất một chiến lược khác đơn giản hơn, đó là sử dụng tập các
nhận xét trùng lắp. Cụ thể như sau, đầu tiên, các nhận xét rác được chia thành ba loại chính:
-
Nhận xét không thực (untruthful): những nhận xét tích cực được viết với mục đích
quáng bá hoặc nói quá cho một sản phẩm, hoặc viết những nhận xét tiêu cực với mục
đích hạ uy tín của sản phẩm khác.
-
Nhận xét trên hãng (review on brand only): những nhận xét không liên quan tới sản
phẩm, mà chỉ tập trung đánh giá và nói về thương hiệu, hãng sản xuất, hay nhà phân
phối sản phẩm đó.
-
Phi nhận xét (non-review): những câu không bao hàm ý kiến, nhận định của người
viết: câu hỏi, câu trả lời, quảng cáo, ký tự ngẫu nhiên …
Đối với nhận xét rác loại 2 và 3, việc xác định và bỏ qua những nhận xét rác loại này
không mấy khó khăn đối với người đọc. Nhưng với loại 1, người đọc sẽ rất khó để nhận ra và
họ dễ dàng bị đánh lừa. Như vậy mức độ nguy hiểm của những nhận xét loại này cao hơn
nhiều so với hai loại còn lại. Các tác giả đã nghiên cứu phương pháp và mô hình cho cả ba
loại nhận xét rác, nhưng phần lớn vẫn tập trung vào nhận xét rác loại 1.
Tập dữ liệu được sử dụng là 5.8 triệu câu nhận xét trên 6.7 triệu sản phẩm từ 2.14 triệu
thành viên của website thương mại điện tử amazon.com. Mỗi nhận xét gồm 8 thành phần
thuộc tính như sau: <Product ID> <Reviewer ID> <Rating> <Date> <Review Title>
<Review Body> <Number of Helpful Feedbacks> <Number of Feedbacks>. Thông qua tập
dữ liệu này, một số thống kê quan trọng được thực hiện để tìm ra mối quan hệ có quy luật
giữa một số cặp thuộc tính.
Đầu tiên là mối quan hệ giữa số lượng nhận xét so với số lượng thành viên đưa ra nhận
xét. Thống kê chỉ ra rằng, hầu hết thành viên chỉ đưa ra chỉ một hoặc một vài nhận xét, trong
khi đó một vài thành viên lại đưa ra một số lượng rất lớn các nhận xét. Như thế, khả năng
spam của những thành viên này rất cao, và hầu hết những nhận xét rác chỉ được viết bởi một
vài thành viên loại này, việc sao chép lại những nhận xét rác của chính mình để nhận xét cho
những sản phẩm khác nhau nhằm đạt mục tiêu spam là không thể tránh khỏi. Tương tự, thống
kê trên mối quan hệ giữa số lượng nhận xét và số lượng sản phẩm được nhận xét cho thấy
rằng, hầu hết các sản phẩm đều chỉ nhận được rất ít các nhận xét, trong khi một phần nhỏ số
sản phẩm còn lại nhận được rất nhiều nhận xét từ các thành viên. Khả năng có những nhận xét
được sao chép lại trong số những nhận xét này là rất cao. Hai thống kê kể trên có ý nghĩa rất
quan trọng trong việc tìm ra các nhận xét trùng lắp, làm cơ sở cho việc phát hiện nhận xét rác.
Ngoài ra công trình còn đề cập một số thống kê khác dựa trên chỉ số xếp hạng của sản phẩm
và số lượng phản hồi (feedback) cho các nhận xét.
Giống như hầu hết các nghiên cứu khác về nhận xét rác, các tác giả cũng sử dụng bài
toán phân loại để xây dựng công cụ phát hiện nhận xét rác. Ba mô hình phổ biến được sử
dụng là: hồi quy logic, SVM và Naïve Bayes. Tuy nhiên, một vấn đề khó khăn được đặt ra là
việc xây dựng tập huấn luyện cho bộ phận loại nói trên. Đối với nhận xét rác loại 2 và 3, tập
huấn luyện đơn giản được gán nhãn thủ công bằng tay. Tuy nhiên, với nhận xét rác loại 1,
không thể áp dụng phương pháp thủ công được. Thực nghiệm chứng minh rằng hầu hết các
nhận xét trùng lặp hoặc gần trùng lắp đều là nhận xét rác loại 1, công trình áp dụng kinh
nghiệm này để xây dựng tập huấn luyện tương ứng với nhận xét rác loại 1.
13
Để xây dựng tập các nhận xét trùng lắp và gần trùng lắp nói trên, công trình sử dụng
phép so sánh nội dung dựa trên mô hình Bigram và tính toán độ tương đồng (similarity score)
giữa hai câu nhận xét. Độ tương đồng giữa hai nhận xét được tính bằng tỷ lệ giữa phần giao
so với phần hợp của hai tập Bigram, còn là sai biệt Jaccard. Hai nhận xét được xem là trùng
lắp và được gán nhãn positive (spam) nếu như độ tương đồng lớn hơn 90%, còn lại được gán
nhãn là negative (non-spam). Một điểm đáng chú ý nữa đó là: tuy tập huấn luyện coi các nhận
xét trùng lắp hoặc gần trùng lắp là các nhận xét rác, nhưng mô hình phân loại được huấn
luyện với mục đích không chỉ phát hiện các nhận xét trùng lắp này mà mục đích chính là để
phát hiện các nhận xét rác không đáng tin (loại 1) ngay cả khi các nhận xét này không hề
trùng lắp.
Để tăng hiệu suất của mô hình phân loại, công trình còn chia nhỏ tập huấn luyện thành
36 tập đặc tính tương ứng với những đặc tính của một câu nhận xét có ảnh hưởng lớn tới việc
quyết định xem nhận xét đó có phải là nhận xét rác hay không. Một cách tổng quát, có thể
gom 36 đặc tính đó thành ba thể loại chính sau:
-
Đặc tính liên quan tới nội dung của câu nhân xét.
-
Đặc tính liên quan tới thành viên viết câu nhận xét.
-
Đặc tính liên quan tới sản phẩm được nhận xét.
Một đặc điểm nữa của nhận xét rác cũng được nghiên cứu gần đây đó là độ hữu ích
(utility) của một câu nhận xét. Có những nhận xét chúng ta có thể nhận định rõ ràng đó là
nhận xét tích cực hay tiêu cực. Khi đọc những nhận xét như thế này, chúng ta có thể hiểu
được mục đích của người nhận xét. Tuy nhiên những nhận xét như thế có thể không đáng tin
cậy hay những nhận xét đó dù đáng tin nhưng lại không hữu ích để người đọc có thể đưa ra
một quyết định cho mình. Những nhận xét trên mạng là rất đa dạng, chúng ta rất dễ dàng bắt
gặp một tập hợp các nhận xét mà tích cực có, tiêu cực có, hữu ích có hay cả những nhận xét
không hữu ích cũng có. Vấn đề đặt ra là làm thế nào để chúng ta tận dụng được sự đa dạng
của nguồn thông tin và qua đó lấy được những thông tin mà chúng ta mong muốn. Một
phương pháp được nghiên cứu và đề xuất trong [Zhang and Varadarajan, 2006] là chấm điểm
độ hữu ích (utility scoring). Những nhận xét hữu ích là những nhận xét tin cậy cậy và chứa
đựng trong chúng những thông tin mà người đọc mong muốn. Một ví dụ của nhận xét không
hữu ích là những nhận xét trung lập, những nhận xét dạng này không bày tỏ rõ quan điểm của
người nhận xét và vì vậy người đọc sẽ khó khăn trong việc ra quyết định cho mình.
Chúng ta hãy cùng xem xét một công thức sau:
𝐸(𝑃) =
∑𝑛𝑖=1 𝑢(𝑇𝑖 (𝑃)) ∗ 𝑃𝑜𝑙𝑎𝑟𝑖𝑡𝑦(𝑇𝑖 (𝑃))
∑𝑛𝑖=1 𝑢(𝑇𝑖 (𝑃))
(2.1)
Trong đó, E(P) của sản phẩm P là trung bình trọng số ứng với mỗi nhận xét Ti(P). Với
công thức này, chúng ta sẽ có được độ hữu ích của nhận xét, thay vì chỉ tập trung vào việc
phân loại một nhận xét là tích cực hay tiêu cực.
Với một nhận xét T, mỗi khía cạnh của nhận xét: f1(T),. . . ,fj(T),. . . , fP(T) đều có thể
tính toán được. Nhiệm vụ của chúng ta là xấp xỉ hàm u(T) = F(f1, . . . , fj, . . . , fP) bằng hai
giải thuật hồi quy:
14
-
-Support Vector Regression (-SVR): mô tả mối quan hệ không tuyến tính giữa giá
trị mục tiêu và khía cạnh của nhận xét.
-
Hồi quy tuyến tính đơn (SLR): SLR là một công cụ hồi quy đã được hiện thực bởi
WEKA và đã được sử dụng rộng rãi trong nhiều ứng dụng.
Và ứng với một nhận xét T, chúng ta có những đặc trưng riêng. Những đặc trưng đó sẽ
được tính toán và áp dụng vào các giải thuật hồi quy:
-
Đặc trưng độ tương tự của từ vựng: đặc trưng này cho biết sự giống nhau giữa nhận
xét của khách hàng với đặc tính kỹ thuật của sản phẩm. Ví dụ như một nhật xét tốt là
một nhận xét chủ quan dựa trên sự quan sát khách quan, phản ánh những khía cạnh
của sản phẩm một cách hợp lý.
-
Đặc trưng độ hời hợt của cú pháp: đặc trưng này thống kê số từ đặc trưng (cũng có
thể là số câu) của một nhận xét theo:
o Danh từ riêng: là những từ nói về những vấn đề cụ thể, chẳng hạn như là các
vấn đề về kỹ thuật hay là các khái niệm.
o Số: là những từ xác định số lượng.
o Động từ khiếm khuyết.
o Thán từ: là những từ biểu lộ cảm xúc.
o Tính từ so sánh hơn và so sánh nhất: là những từ thể hiện sự so sánh.
o Trạng từ so sánh hơn và so sánh nhất: tương tự như trên, đây cũng là những từ
thể hiện sự so sánh.
o Từ loại dạng WH: là những từ có nhiều trong các câu hỏi hay các mệnh đề
quan hệ.
-
Đặc trưng độ chủ quan của từ vựng: Khía cạnh này tính toán số lượng các từ chủ
quan, dựa vào:
o Tính từ chủ quan được nghiên cứu trong [Wiebe, 2000].
o Tính từ chủ quan được nghiên cứu trong [Hatzivassiloglou and Wiebe, 2000]:
Tính từ động (Dynamic adjectives): careful, serious.
Tính từ phân cực dương (Polarity Plus adjectives): amusing.
Tính từ phân cực âm (Polarity Minus adjectives): awful.
Tính từ thang độ dương (Gradability Plus adjectives): appropriate.
Tính từ thang độ âm (Gradability Minus adjectives): potential.
o Danh sách danh từ chủ quan mạnh (strong subjective nouns) và danh từ chủ
quan yếu (weak subjective nouns) được tạo bởi Basilisk [Thelen and Riloff,
2002].
o Danh sách danh từ chủ quan mạnh (ví dụ như domination, evil) và danh từ chủ
quan yếu (ví dụ như reaction, security) được tạo bởi MetaBoot [Riloff et al.,
2003].
Một kinh nghiệm là chúng ta chỉ nên sử dụng những đánh giá có ít nhất 10 lượt bầu
chọn để có được hiệu quả tốt nhất cho mô hình hồi quy. Kết quả u(T) thu được sau khi tính
toán sẽ có giá trị nằm trên đoạn [0, 1], giá trị này phản ánh độ hữu ích của nhận xét T.
15
2.2. Nhận diện nhận xét rác dựa trên hành vi
Có rất nhiều loại hành vi bất thường của người đánh giá mà qua thực nghiệm cho thấy
các nhận xét được viết bởi những người này có khả năng là nhận xét rác rất cao. Chính vì thế,
phương pháp phát hiện nhận xét rác dựa trên hành vi đã được đề cập tới trong [Jindal et al.,
2010] và [Lim et al., 2010].
Phương pháp đầu tiên được sử dụng là tìm kiếm các mẫu bất thường bằng cách sử dụng
các luật không kì vọng [Jindal et al., 2010]. Phương hướng tiếp cận của nghiên cứu này là xác
định các mẫu nhận xét bất thường, tức là các mẫu nhận xét gắn với những hành vi đáng ngờ
của người nhận xét. Với phương pháp này, kỹ thuật độc lập miền sẽ được sử dụng để xây
dựng các luật không kì vọng.
Dữ liệu được sử dụng bao gồm tập hợp các thuộc tính cơ bản: A = {A1, …, An} và tập
thuộc tính phân lớp: C = {c1, …, cm}, tập thuộc tính phân lớp bao gồm m giá trị rời rạc. Các
luật sẽ được biểu diễn dưới dạng: X ci, với X là tập hợp các điều kiện từ các thuộc tính
trong A và ci là một lớp trong C. Với mỗi luật như vậy sẽ có: xác suất điều kiện Pr(ci|X) (gọi
là độ tin cậy) và xác suất đồng thời Pr(X, ci) (gọi là độ hỗ trợ).
Một ví dụ đưa ra xét trên ứng dụng của chúng ta, dữ liệu có thể được biểu diễn như sau:
mỗi nhận xét được xây dựng từ tập các thuộc tính cơ bản: {MÃ SỐ NHẬN XÉT, MÃ SỐ
NHÃN HÀNG, MÃ SỐ SẢN PHẨM} và tập các thuộc tính phân lớp biểu diễn ý kiến của người
nhận xét: {TÍCH CỰC, TIÊU CỰC, TRUNG LẬP}.
Độ không kì vọng được định nghĩa là độ lệch so với độ kì vọng. Vì thế độ kì vọng chính
là chìa khóa của vấn đề. Với độ kì vọng, chúng ta có hai nguyên lý để định nghĩa:
-
Tập thuộc tính cơ bản và tập thuộc tính phân lớp độc lập với nhau.
-
Chúng ta dùng các luật ngắn hơn (shorter rule) để tính toán độ kì vọng cho các luật
dài hơn (longer rule).
-
Dựa vào hai nguyên lý của độ kì vọng đã nêu ở trên, chúng ta xây dựng nên bốn luật
không kì vọng khác nhau:
-
Độ không kì vọng cho độ tin cậy: luật này tìm ra được những người luôn đánh giá
tích cực trên một nhãn hàng trong khi những người khác đều đánh giá ngược lại.
-
Độ không kì vọng cho độ hỗ trợ: được dùng trong trường hợp có liên quan đến tỷ lệ
của mẫu, luật này tìm ra được những người viết rất nhiều nhận xét cho một nhãn hàng
trong khi những người khác chỉ viết một vài nhận xét cho nhãn hàng đó.
-
Độ không kì vọng cho độ phân phối thuộc tính: được sử dụng để xét xem là tập dữ
liệu của lớp chỉ tập trung vào một vài thuộc tính hay bao phủ tất cả các giá trị. Luật
này tìm ra rằng đa số những nhận xét tích cực cho một nhãn hàng chỉ xuất phát từ một
người cho dù đã có một số lượng lớn người nhận xét trên nhãn hàng đó.
-
Độ không kì vọng cho thuộc tính: luật này tìm ra những người chỉ nhận xét tích cực
trên một nhãn hàng và luôn nhận xét tiêu cực trên các nhãn hàng khác.
Một phương pháp khác được giới thiệu trong [Lim et al., 2010] là chấm điểm hành vi và
phát hiện ra những người thường hay đưa ra những nhận xét rác. Tập dữ liệu sử dụng là tập
các nhận xét cho các sản phẩm mProducts được thu thập từ trang web amazon.com. Đi kèm
16
với từng câu nhận xét là các thuộc tính quan trọng đi kèm như: người nhận xét, sản phẩm
được nhận xét,… Tập dữ liệu này được sàng lọc qua một số bước: bỏ đi những nhận xét của
người dùng nặc danh, bỏ đi những sản phẩm trùng lắp, bỏ đi những người dùng thụ động (ít
nhận xét), bỏ đi những sản phẩm không phổ biến (ít được nhận xét) và bỏ đi những thương
hiệu có nhiều tên khác nhau.
Dựa trên các mẫu nhận xét rác được trích ra từ tập dữ liệu, xác định được một vài hành
vi bất thường sau có khả năng là spam:
-
Nhắm mục tiêu vào sản phẩm: người dùng cố gắng đưa ra những nhận xét tích cực
hoặc tiêu cực cho một sản phẩm nào đó, nhằm nâng cao hoặc hạ thấp chất lượng của
sản phẩm đó, mặc dù chất lượng thực sự có thể khác.
-
Nhắm mục tiêu vào nhóm sản phẩm: tương tự như hành vi số một, nhưng người dùng
nhắm mục tiêu vào một nhóm sản phẩm cùng hãng, cùng thương hiệu, hay cùng một
nhà phân phối.
-
Cho điểm lệch: người dùng đưa ra điểm số sai lệch so với điểm số trung bình của sản
phẩm thì có khả năng spam cao hơn so với người dùng đưa ra điểm số gần với điểm
số trung bình.
-
Cho điểm lệch sớm: người dùng có xu hướng đưa ra nhận xét hoặc cho điểm sản
phẩm rất sớm để đánh lạc hướng những người dùng khác.
Sau cùng, một hàm đánh giá điểm số spam sẽ được xây dựng để chấm điểm spam cho
người dùng dựa trên mỗi hành vi bất thường nói trên. Điểm số spam sau cùng sẽ là điểm số
spam tổng hợp của bốn hành vi.
Như đã đề cập ở trên, hầu hết các nghiên cứu trên nhận xét rác đều sử dụng giải thuật
huấn luyện, nhưng đều tiếp cận ở một góc nhìn, một là theo góc nhìn nội dung của nhận xét,
hai là theo góc nhìn hành vi của người nhận xét, ta gọi đó là giải thuật đơn (single-view
algorithm). Một phương pháp được đề xuất để tối ưu giải thuật huấn luyện cho mô hình phân
loại đó là giải thuật đồng huấn luyện (two-view co-training algorithm) [Li et al., 2011]. Thực
nghiệm từ công trình chứng minh rằng, một nhận xét của spammer có 85% khả năng là nhận
xét rác. Vì thế, việc xác định tác giả của nhận xét có phải là spammer hay không cũng là một
nhiệm vụ của mô hình phân loại này. Kết quả sau khi sử dụng giải thuật đồng huấn luyện nói
trên là bộ phân loại có khả năng nhận diện nhận xét rác dựa vào nội dung và xác suất người
viết nhận xét đó có là spammer hay không.
2.3. Các nghiên cứu khác về spam
Một số nghiên cứu khác liên quan tới nhận xét rác có thể kể đến như: spam theo nhóm,
web spam. Spam theo nhóm là một nhóm những người nhận xét, họ làm việc cùng nhau để
viết ra các nhận xét rác nhằm nâng cao hay hạ thấp uy tín của một sản phẩm. Mức độ nguy
hiểm của hình thức spam này phụ thuộc vào độ lớn của nhóm. Nếu một nhóm spam chỉ hợp
tác cùng làm việc với nhau trên một vài sản phẩm thì việc phát hiện là rất khó khăn. Tuy
nhiên, những người spam theo nhóm thường được thuê bởi những công ty hay những dịch vụ
marketing, họ sẽ cùng nhau làm việc trên rất nhiều nhiều sản phẩm. [Mukherjee et al., 2011]
đã đưa ra một phương pháp để phát hiện spam theo nhóm, được tiến hành lần lượt qua từng
17
bước như sau: khai phá các mẫu thường xuyên để tìm ra các nhóm ứng viên, xác thực lại các
nhóm ứng viên bằng cách sử dụng những tiêu chí đánh giá các hành vi bất thường và cuối
cùng là xếp hạng các nhóm ứng viên. Chúng ta sẽ lần lượt tiếp cận cụ thể từng bước của
phương pháp này:
-
Bước 1: khai phá các mẫu thường xuyên để tìm ra các nhóm ứng viên: trong bước
này, chúng ta sẽ trích xuất ra các bộ dữ liệu. Mỗi bộ dữ liệu sẽ biểu diễn một sản
phẩm duy nhất cùng với tất cả mã số của những người đã nhận xét trên sản phẩm đó.
Sử dụng các bộ dữ liệu này, chúng ta có thể biểu diễn các mẫu thường xuyên. Các
mẫu cuối cùng tìm được chính là các ứng viên cho các nhóm spam.
-
Bước 2: xác thực lại các nhóm ứng viên bằng cách sử dụng những tiêu chí đánh giá
các hành vi bất thường. Có thể những nhóm ứng viên đã tìm được không thực sự là
nhóm spam, do đó ta cần phải xác thực lại thông qua 8 tiêu chí:
o Khung thời gian: những người nhận xét thuộc cùng một nhóm spam có xu
hướng làm việc cùng nhau để viết những nhận xét rác trong một thời gian
ngắn.
o Độ lệch nhóm: khi các thành viên trong một nhóm làm việc cùng nhau, họ sẽ
cùng đánh giá tích cực hay tiêu cực trên cùng một sản phầm. Những nhận xét
của nhóm này sẽ có độ lệch đáng kể so với những nhận xét của khác trên sản
phẩm. Độ lệch này cảng lớn thì khả năng là nhóm spam càng lớn.
o Tương tự nội dung trong nhóm: những người nhận xét trong cùng một nhóm
spam thường chia sẻ những nhận xét với nhau. Vì vậy những nhận xét thuộc
cùng một sản phẩm của nhóm này sẽ có độ tương đồng về nội dung.
o Tương tự nội dung của từng thành viên: những thành viên trong một nhóm có
thể không biết nhau, họ đơn thuần chỉ sao chép hay chỉnh sửa những nhận xét
của chính mình. Nhưng nếu có nhiều người cùng thực hiện thao tác này, rất có
thể họ cùng thuộc về một nhóm spam.
o Khung thời gian sớm: một nhóm spam thường sẽ đưa ra nhận xét ngay khi
một sản phẩm được bán ra hoặc ngay khi trang web cho phép được viết nhận
xét cho một sản phẩm. Mục đích là gây ra tác động mạnh tới suy nghĩ của
người đọc cũng như những người nhận xét tiếp theo sau này.
o Tỷ lệ độ lớn nhóm: được tính bằng tỷ lệ giữa độ lớn của nhóm trên tổng số
những người nhận xét một trên sản phẩm. Trường hợp xấu nhất xảy ra khi tất
cả những người nhận xét trên một sản phẩm đều thuộc về nhóm spam. Khi đó
tác hại sẽ rất lớn.
o Độ lớn nhóm: được đo bằng số lượng thành viên trong một nhóm spam. Nhóm
spam càng lớn thì mức độ ảnh hưởng của nhóm càng nghiêm trọng.
o Số sản phẩm: là số lượng sản phẩm mà nhóm spam đã cùng nhau làm việc.
Nếu một nhóm spam đã cùng nhau thực hiện việc spam trên nhiều sản phẩm,
đó thực sự là điều đáng báo động.
18
-
Bước 3: xếp hạng các nhóm ứng viên đã tìm được. Kết quả xếp hạng là mức độ mà
một nhóm có khả năng là một nhóm spam. Việc xếp hạng được thực hiện thông qua
ba hàm đánh giá:
h1(G): G → R+, h1(G) = GCS(G) + MCS(G)
(2.2)
h2(G): G → R+, h2(G) = GS(G) + SC(G) + TW(G)
(2.3)
h3(G): G → R+, h3(G) = RGS(G) + ETF(G) + GD(G)
(2.4)
o h1(*): dùng cho tiêu chí tương tự nội dung trong nhóm và tương tự nội dung
của từng thành viên.
o h2(*): xếp hạng dựa trên điểm có được từ độ lớn nhóm, số sản phẩm và khung
thời gian. Theo hàm tính toán này, một nhóm có điểm số cao thì nhóm này
thực sự rất đáng nghi ngờ.
o h3(*): xếp hạng những nhóm spam dựa trên hành vi nhận xét sản phẩm ngay
khi sản phẩm vừa được đưa ra nhằm tạo ra ảnh hưởng lớn.
Kết qủa trả về từ 3 hàm xếp hạng sau đó sẽ được học bởi SVM và tiến hành phân loại
cuối cùng cho các nhóm ứng viên.
Trong các nghiên cứu về spam, web spam là một lĩnh vực đã được nghiên cứu lâu dài và
được ứng dụng nhiều trong thực tế. Web spam được hiểu là những website có chứa nội dung
rác, hoặc những nội dung không đúng với những gì người đọc mong đợi và gây ra cảm giác
phiền hà bị quấy rối khi lướt web. Hầu hết các web spam cố gắng tận dụng những kỹ thuật
SEO để tăng thứ hạng của mình trên các công cụ tìm kiếm, nhằm tiếp cận người đọc và đạt
mục đích quảng cáo hay phá hoại. [Ntoulas et al., 2006] đã đề xuất một vài hướng tiếp cận để
phân loại các web spam, cũng như một vài kinh nghiệm được đưa ra nhằm tối ưu bài toán.
Tập dữ liệu sử dụng để khảo sát là 105.484.446 website được thu thập từ hệ thống
crawler của MSN Search, đươc lọc và trích lấy tập mẫu gồm 17.168 pages, trong đó gồm
2364 spam pages và 14804 non-spam pages. Sử dụng tập mẫu này làm tập huấn luyện cho mô
hình phân loại. Để gia tăng độ chính xác trong việc phân loại, công trình còn sử dụng 2 kỹ
thuật bagging và boosting. Ý tưởng là tạo ra tập hợp các bộ phân loại và tạo thành một bộ
phân loại tổ hợp.
Công trình tập trung nghiên cứu mô hình phân loại web spam bằng phương pháp phân
tích nội dung, do đó các kinh nghiệm hướng nội dung được đưa vào để huấn luyện cho mô
hình, bao gồm:
-
Số lượng từ chứa trong trang web: các web spam thường có xu hướng chèn vào nội
dung trang web các từ khóa hay được người dùng tìm kiếm càng nhiều càng tốt, khi
đó website sẽ dễ dàng tiếp cận người dùng hơn thông qua kết quả trả về của các công
cụ tìm kiếm. Kỹ thuật SEO này gọi là “keyword stuffing”.
-
Số lượng từ chứa trong tiêu đề trang web: các công cụ tìm kiếm dò tìm cả trong tiêu
đề của của trang web, “keyword stuffing” được các web spammer áp dụng cho cả nội
dung của tiêu đề. Do đó, các web spam thường có những tiêu đề dài hơn những tiêu
đề bình thường.
19
-
Độ dài trung bình của các từ: đôi khi người dùng thường có xu hướng bỏ qua khoảng
trắng khi gõ từ khóa trên các công cụ tìm kiếm, các web spam tận dụng điều này bằng
cách nối các từ đơn với nhau thành một từ dính liền, ví dụ: “freemp3” thay vì “free
mp3”, “freepictures” thay vì “free pictures”. Do đó, độ dài trung bình của các từ là
một kinh nghiệm hữu ích để phát hiện web spam.
-
Số lượng các anchor text: anchor text là chuỗi ký tự bên trong cặp thẻ <a> </a> (chứa
trong mã HTML của trang web). Chuỗi ký tự này đại diện cho liên kết mà thẻ <a> trỏ
đến. Như vậy, trang web được trỏ đến sẽ xuất hiện trong kết quả trả về của các công
cụ tìm kiếm nếu như người dùng tìm kiếm với từ khóa trùng với anchor text. Một loại
web spam nữa được nhắc tới là các web spam chuyên cung cấp anchor text cho các
website khác.
-
Tỷ lệ nội dung hiển thị: để che dấu kỹ thuật “key stuffing” khỏi các bộ lọc spam, một
số web spam chèn rất nhiều các từ khóa phổ biến vào trong các thẻ đặc biệt của mã
HTML, các thẻ này được trình duyệt bỏ qua và nội dung sẽ không được hiển thị. Kích
thước nội dung hiển thị của những web spam này nhỏ hơn rất nhiều so với kích thước
toàn bộ nội dụng của trang được viết bằng mã HTML.
-
Khả năng nén nội dung: nhiều web spam có xu hướng sao chép những từ khóa và lặp
đi lặp lại nhiều lần để đánh lừa công cụ tìm kiếm. Khả năng nén càng cao thì một
website càng có khả năng là web spam.
-
Một số phương pháp khác như: fraction of top-words in the text, fraction of text in
top-words, Independent n-gram likelihoods, Conditional n-gram likelihoods.
2.4. Các nghiên cứu về Ontology
Mô hình đề xuất sẽ đề cập tới trong Chương 3 sẽ sử dụng Ontology để giải quyết bài
toán nhận diện nhận xét rác. Do đó, ngoài các nghiên cứu về opnion spam đã được đề cập ở
trên, một số nghiên cứu khác về Ontology sau đây cũng được tham khảo để làm cơ sở cho
việc xây dựng mô hình phân loại.
Với sự phát triển ngày càng lớn mạnh của Internet, kho dữ liệu khổng lồ trực tuyến này
cũng ngày càng được mở rộng. Việc tìm kiếm một thông tin hay một tài liệu thông qua các
công cụ tìm kiếm sẽ đôi khi gây phiền hà cho người sử dụng vì kết quả trả về không đúng như
mong đợi, hoặc thậm chí trả về những kết quả không liên quan. Rất nhiều nghiên cứu trong
lĩnh vực truy hồi thông tin đã đưa ra nhiều phương pháp khác nhau để tối ưu hóa việc tìm
kiếm. Một phương pháp được đề xuất trong công trình [Nagypál, 2005] đó là sử dụng
Ontology để lưu trữ cơ sở tri thức nhằm tăng độ hiệu quả của việc truy hồi thông tin.
Một vài nguyên do để lý giải cho việc trả về kết quả tìm kiếm không hợp lý được đề cập
tới như sau:
-
Thứ nhất: do sự mơ hồ, không rõ ràng của ngôn ngữ tự nhiên, người tìm kiếm có thể
nhập vào những từ khóa đồng nghĩa, có nghĩa là từ khóa này đại diện cho nhiều đối
tượng khác nhau, ví dụ khi người dùng nhập vào “Washington”, công cụ tìm kiếm
không thể biết được người này đang tìm kiếm tên của một người, hay tên của một
thành phố.
20
-
Thứ hai: do những khái niệm cấp cao, mơ hồ hay trừu tượng. Những khái niệm dạng
này thường không được nhắc tới tường minh trong các tài liệu. Công cụ tìm kiếm khó
có thể nhận diện được những kết quả phù hợp cho những truy vấn thuộc loại này.
-
Thứ ba: những mối quan hệ về mặt ngữ nghĩa, mà tiêu biểu nhất là mối quan hệ bộ
phận sẽ không được khai thác khi thực hiện truy hồi thông tin. Ví dụ, khi tìm kiếm
với từ khóa “EU” hay “G7”, những kết quả liên quan có chứa thông tin bộ phận như
“Germany”, “Berlin”, “England” sẽ không được trả về nếu như công cụ tìm kiếm chỉ
đơn thuần sử dụng phương pháp so trùng từ khóa.
-
Cuối cùng, đó là vấn đề về thời gian. Với những từ khóa về thời gian như “20th
centery”, nếu chỉ dùng so trùng từ khóa thì không thể tìm ra các nguồn tài liệu có
chứa những từ như “1945” hay “1975”.
Để giải quyết những vấn đề nêu trên, tác giả thêm vào quy trình truy hồi thông tin
truyền thống của một công cụ tìm kiếm những cơ sở tri thức được lưu trong một Ontology,
còn gọi là hệ thống truy hồi thông tin dựa trên Ontology. Công cụ tìm kiếm sẽ tham khảo cơ
sở tri thức từ Ontology để đưa ra các kết quả tìm kiếm tối ưu hơn, dựa trên ngữ nghĩa, quan hệ
giữa các từ khóa, chứ không dừng lại ở mức so trùng từ vựng. Ngoài ra, Ontology còn được
sử dụng để hỗ trợ quá trình lập chỉ mục (indexing).
Một nghiên cứu khác về Ontology được mô tả trong [Junwu et al., 2010]. Điện thoại di
động nói chung và smartphone nói riêng trong năm gần đây đã và đang đạt được những bước
tiến đáng kể về mặt công nghệ. Sự phát triển của công nghệ cho ra đời nhiều loại điện thoại
khác nhau, với nhiều đặc điểm và công nghệ đi kèm khác nhau, kéo theo sự mở rộng đáng kể
về số lượng các khái niệm trong tri thức về mobile. Đó chính là một khó khăn lớn đối với
những ai cần nghiên cứu về mobile, đặc biệt là các nhà nghiên cứu, lập trình hay thậm chí cả
khách hàng cần mua sản phẩm mobilephone và tham khảo thông tin sản phẩm của họ trên các
website. Các website hiện nay giới thiệu sản phẩm với một vài thuộc tính sơ lược, nhiều vấn
đề sẽ phát sinh nếu như xuất hiện những thuộc tính trùng tên, hay những thuộc tính không
được đề cập rõ ràng chi tiết gây nhặp nhằng cho người sử dụng.
Công trình xây dựng một Ontology về mobile, còn gọi là MO (Mobile Ontolgy), sử
dụng công cụ Protégé dựa trên ngôn ngữ OWL. Với MO xây dựng được, công trình đã tiến
hành thực nghiệm truy vấn tri thức dựa trên SPARQL và chỉ ra rằng MO giúp cải thiện độ
hiệu quả và tin cậy trong quá trình truy vấn tri thức (Knowledge Retrieval), đồng thời cung
cấp một cơ sở dữ liệu từ vựng hữu ích cho các web ngữ nghĩa (semantic web) trong lĩnh vực
mobile.
21
2.5. Khái niệm Ontology
Trong khoa học máy tính nói chung và lĩnh vực xử lý thông tin nói riêng, Ontology
được định nghĩa là một mô hình dữ liệu dùng để biểu diễn một cách hình thức các khái niệm
thuộc một lĩnh vực nào đó và quan hệ giữa những khái niệm này. Mô hình Ontology được xây
dựng sẽ bao gồm một bộ từ vựng dùng để mô tả các khái niệm của một lĩnh vực cụ thể nào
đó. Đồng thời Ontology cũng bao gồm những đặc tả cho nghĩa của từng từ trong tập từ vựng.
Ontology thường được sử dụng trong các lĩnh vực trí tuệ nhân tạo, xử lý ngôn ngữ tự nhiên,
semantic web, khoa học thông tin v.v. Là một công cụ hữu ích để khái niệm hóa cơ sở tri thức
về một lĩnh vực nào đó theo dạng cơ sở dữ liệu mà máy tính có thể hiểu được.
Có nhiều kiến trúc và ngôn ngữ khác nhau để mô tả và xây dựng Ontology. Tuy nhiên
hầu hết các Ontology đều bao gồm 4 thành phần chính sau: đối tượng (thể hiện), lớp (khái
niệm), thuộc tính và các quan hệ.
Đối tượng (hay thể hiện): là thành phần cơ bản nhất của một Ontology. Các đối tượng
trong một Ontology có thể kể đến như:
-
Các đối tượng cụ thể: con người, con thú, xe đạp, điện thoại, trang web, khách sạn,
bàn ghế.
-
Các đối tượng trừu tượng: con số và từ.
Lớp (hay khái niệm): có thể được hiểu là những nhóm, bộ hoặc tập hợp các đối tượng có
chung những đặc tính nào đó. Theo một cách hiểu khác, lớp là các đối tượng trừu tượng được
định nghĩa bởi giá trị của các mặt ràng buộc khiến chúng phải là thành viên của một lớp khác.
Lớp có thể là tập hợp các đối tượng, các lớp khác, hay tập hợp tổ hợp của cả đối tượng và các
lớp khác. Một số ví dụ của lớp:
-
Person: lớp con người.
-
Vehicle: lớp xe cộ.
-
Thing: lớp tất cả mọi thứ, hay các đối tượng trừu tượng có thể được mô tả bởi các tiêu
chuẩn để làm một thứ gì đó.
Thuộc tính: Các đối tượng trong một Ontology có thể được mô tả bằng các tính chất,
đặc điểm của chúng và thường được gọi chung là thuộc tính. Một thuộc tính có thể là một lớp
hay một cá thể. Kiểu của đối tượng và kiểu của thuộc tính xác định kiểu của quan hệ giữa
chúng. Một quan hệ giữa một đối tượng và một thuộc tính biểu diễn một sự kiện đặc thù cho
đối tượng mà nó có liên hệ. Ví dụ đối tượng iPhone có các thuộc tính như sau:
-
<có tên> iPhone.
-
<có bộ phận> pin .
-
<có một trong các màu> {trắng, đen}.
-
<có giá> 300 USD.
Một Ontology được xem là đúng và đủ ý nghĩa khi các lớp của nó có liên hệ với các lớp
khác, hay nói cách khác, các lớp đều cần phải có thuộc tính.
22
Một đặc điểm quan trọng khác của Ontology là quan hệ, quan hệ định nghĩa cách mà
các đối tượng trong Ontology liên hệ với nhau như thế nào. Diễn đạt các quan hệ càng tốt thì
Ontology được xây dựng sẽ có ngữ nghĩa càng cao và càng thể hiện rõ quan hệ của các đối
tượng, lớp trong thực tế. Điều đó thể hiện sức mạnh của Ontology. Thông thường, một
Ontology bao gồm 3 loại quan hệ chuẩn sau: quan hệ gộp (‘là lớp cha của’), quan hệ cụ thể
hóa (“là lớp con của”), và quan hệ bộ phận (“là một bộ phận của”).
Ngoài những quan hệ chuẩn này, Ontology thường chứa thêm một số dạng quan hệ làm
trau chuốt hơn ngữ nghĩa mà chúng mô hình hóa. Ontology thường phân biệt các nhóm quan
hệ khác nhau. Ví dụ nhóm các quan hệ về:
-
Quan hệ giữa các lớp.
-
Quan hệ giữa các thực thể.
-
Quan hệ giữa một thực thể và một lớp.
-
Quan hệ giữa một đối tượng đơn và một tập hợp.
-
Quan hệ giữa các tập hợp.
2.6. Ngôn ngữ OWL
OWL (The Web Ontology Language) là một ngôn ngữ dùng để xuất bản và chia sẻ dữ
liệu trên Internet thông qua những mô hình dữ liệu gọi là “Ontology”. Ontology được định
nghĩa là mô hình dữ liệu dùng để biểu diễn một cách hình thức các khái niệm thuộc một lĩnh
vực nào đó và quan hệ giữa những khái niệm này.
OWL được xây dựng dựa trên nền tảng của RDF. OWL là một ngôn ngữ đánh dấu gần
như XML dùng để diễn tả các thực thể, các lớp, các thuộc tính cũng như mối quan hệ giữa
chúng nhưng được mở rộng hơn so với lược đồ RDF về mặt từ vựng. Tất cả các yếu tố, các
tính chất của RDF và lược đồ RDF cũng có thể được sử dụng để tạo ra một văn bản OWL.
OWL cung cấp một mô hình dữ liệu và một cú pháp đơn giản sao cho các hệ thống độc
lập có thể trao đổi và sử dụng nó. Đồng thời, nó cũng được thiết kế không phải chỉ để hướng
tới người sử dụng mà còn để cho các hệ thống máy tính có thể hiểu và khai thác được thông
tin. Mục đích chính của OWL là tạo ra một nền tảng chuẩn để quản lý tài nguyên trên Web.
OWL được chia làm ba phiên bản ngôn ngữ con: OWL Lite, OWL DL và OWL Full.
-
OWL Lite: là phiên bản đơn giản nhất trong 3 phiên bản. Phiên bản OWL Lite hỗ trợ
cho những người dùng chỉ cần sự phân lớp theo thứ bậc và các ràng buộc đơn giản.
Chẳng hạn như với các ràng buộc về tập hợp, nó chỉ cho phép tập hợp giá trị của 0
hay 1.
-
OWL DL (OWL Description Logic): bao gồm tất cả các cú pháp, ngữ nghĩa của ngôn
ngữ OWL nhưng chỉ được sử dụng một cách hạn chế. Phiên bản này hỗ trợ cho những
người dùng cần sự diễn cảm tối đa đồng thời cũng cần duy trì tính chất tính toán toàn
vẹn (tất cả các kết luận phải được đảm bảo để tính toán) và tính chất quyết định (tất cả
các tính toán sẽ kết thúc trong khoảng thời gian hạn chế). OWL DL cũng được chỉ
định theo sự tương ứng với logic mô tả.
23
-
OWL Full: phiên bản này hướng tới những người dùng cần sự diễn cảm tối đa và sự
tự do của RDF mà không cần đảm bảo sự tính toán của các biểu thức. OWL Full cho
phép một Ontology bổ sung thêm ý nghĩa của các từ vựng được định nghĩa trước
(RDF hoặc OWL).
OWL Lite là phiên bản dễ hiểu nhất và phiên bản phức tạp nhất là OWL Full. Mối liên
hệ giữa các phiên bản con của OWL:
-
Mọi Ontology hợp lệ dựa trên OWL Lite đều là Ontology hợp lệ trên OWL DL.
-
Mọi Ontology hợp lệ dựa trên OWL DL đều là Ontology hợp lệ trên OWL Full.
-
Mọi kết luận hợp lệ dựa trên OWL Lite đều là kết luận hợp lệ trên OWL DL.
-
Mọi kết luận hợp lệ dựa trên OWL DL đều là kết luận hợp lệ trên OWL Full.
2.7. Gán nhãn từ loại
POS tagging (gán nhãn từ loại) là công việc xác định loại từ của tất cả các từ loại trong
một văn bản. Gán nhãn từ loại là một thao tác rất quan trọng và bắt buộc phải có đối với mọi
hệ thống xử lý ngôn ngữ tự nhiên, là bước phân tích đầu tiên trong nhiều bộ phân tích cú
pháp. Về ứng dụng, gán nhãn từ loại rất hữu ích trong nhiều lĩnh vực như: truy hồi thông tin,
tổng hợp hội thoại, nghiên cứu biên soạn từ điển, khai thác thuật ngữ và nhiều ứng dụng khác.
Một ví dụ cụ thể để minh họa cho cách thức hoạt động của bộ gán nhãn từ loại: xét một câu
đưa vào như sau:
My dog also likes eating sausage
Với một câu có nội dung như trên, sau khi được xử lý bằng bộ gán nhãn từ loại, chúng
ta sẽ có kết quả trả về:
My/PRP$ dog/NN also/RB likes/VBZ eating/VBG sausage/NN
Trong đó:
-
PRP$: đại từ sở hữu.
-
NN: danh từ số ít.
-
RB: trạng từ.
-
VBZ: động từ ở ngôi thứ 3 số ít.
-
VBG: động từ ở dạng tiếp diễn.
Trong thực tế, quá trình gán nhãn gặp rất nhiều khó khăn do sự nhập nhằng giữa các
loại từ. Cùng một từ, trong những ngữ cảnh khác nhau sẽ có vai trò khác nhau. Đặc biệt, một
số ngôn ngữ sử dụng chữ tượng hình hoặc có sử dụng từ ghép, công việc gán nhãn từ loại sẽ
trở thành một thách thức lớn. Sự nhập nhằng giữa các loại từ được thể hiện rõ ràng thông qua
2 câu minh họa sau:
Plant/N need light and water (1)
Each one plant/V one (2)
24
Như ta thấy, cùng một từ nhưng trong câu số (1), plant đóng vai trò là danh từ trong
câu, còn trong câu số (2) plant lại làm nhiệm vụ là một động từ. Để giải quyết vấn đề này, các
nhà nghiên cứu ngôn ngữ đã đưa ra một số lượng lớn các tập huấn luyện cho hệ thống gán
nhãn từ loại mà trong đó, các tập huấn luyện chính là bộ các câu mẫu đã được gán nhãn sẵn.
Thêm vào đó, với những trường hợp nhập nhằng, loại từ của một từ loại sẽ được quyết định
bằng một trong hai phương pháp: phương pháp gán nhãn dựa trên luật và phương pháp gán
nhãn dựa trên xác suất. Nhờ những cách thức giải quyết như trên, hiện nay bài toán gán nhãn
từ loại cho tiếng Anh đã được giải quyết khá tốt. Các mô hình gán nhãn cũng liên tục ra đời
và được cải tiến đã cho kết quả phân loại có độ chính xác cao, rất đáng tin cậy.
2.8. Phân tích cú pháp
Parsing (phân tích cú pháp) được định nghĩa là quá trình phân tích một đoạn văn bản và
đưa ra mô tả về cấu trúc ngữ pháp của các thành phần (các câu, các ngữ, các cụm từ cũng như
các từ) trong đoạn văn bản đó. Mô hình hoạt động dựa trên tập các ràng buộc về cú pháp của
một ngôn ngữ, chẳng hạn như: S NP VP (một câu sẽ được hình thành từ một ngữ danh từ
và một ngữ động từ). Đầu tiên, với một đoạn văn bản được đưa vào, đoạn văn bản đó sẽ được
hệ thống gán nhãn từ loại và sau khi gán nhãn, mỗi từ có đặc điểm hình thái xác định. Sau đó
quá trình kiểm tra cú pháp tiến hành phân tích và tổ hợp các từ ở đầu vào, dựa trên các luật cú
pháp để loại bỏ các trường hợp bất quy tắc và từng bước dựng lên cấu trúc cú pháp (cây phân
tích) của câu. Kết quả đạt được là hình thái của câu. Hệ thống sẽ không trả về kết quả nếu như
dữ liệu đưa vào sau khi phân tích không thể tìm được một cấu trúc ngữ pháp nào thích hợp
cho dữ liệu đó. Một ví dụ cụ thể đưa ra để minh họa cho kết quả trả về của hệ thống phân tích
cú pháp, với đoạn văn bản đưa vào như sau:
My dog also likes eating sausage
Ở đây, kết quả trả về sau khi hệ thống tiến hành phân tích cú pháp xử lý được hiển thị
theo dạng cây để người dùng có thể theo dõi dễ dàng hơn.
(ROOT
(S
(NP (PRP$ My) (NN dog))
(VP
(ADVP (RB also))
(VBZ likes)
(NP (JJ eating) (NN sausage)))))
Theo như kết quả hệ thống phân tích:
-
Dữ liệu nhập vào là một câu: S (My dog also likes eating sausage).
-
Câu này bao gồm một ngữ danh từ: NP (My dog) và một ngữ động từ: VP (also likes
eating sausage). Chi tiết hơn, ta còn biết thêm được là trong ngữ động từ có chứa ngữ
danh từ bên trong nó: NP (eating sausage).
Bài toán phân tích cú pháp là chủ đề nghiên cứu của hai cộng đồng gồm những người
làm ngôn ngữ và những người làm tin học. Với những người làm ngôn ngữ thì ngôn ngữ là
25