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

Xác định bài viết chứa ý định người dùng trên diễn đàn (LV thạc sĩ)

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

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------

Đỗ Thị Thu Hà

XÁC ĐỊNH BÀI VIẾT CHỨA Ý ĐỊNH
NGƯỜI DÙNG TRÊN DIỄN ĐÀN
LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)

HÀ NỘI - 2016


HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------

Đỗ Thị Thu Hà

XÁC ĐỊNH BÀI VIẾT CHỨA Ý ĐỊNH
NGƯỜI DÙNG TRÊN DIỄN ĐÀN

Chuyên ngành: Khoa học máy tính
Mã số: 60.48.01.01

LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)

NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. NGÔ XUÂN BÁCH

HÀ NỘI - 2016



i

LỜI CAM ĐOAN
Tôi xin cam đoan, luận văn này là công trình nghiên cứu khoa học thực thụ
của cá nhân, được thực hiện dưới sự hướng dẫn khoa học của TS. Ngô Xuân Bách.
Các số liệu, kết quả nghiên cứu và kết luận được trình bày trong luận văn là
trung thực và chưa được công bố ở bất kỳ hình thức nào.
Tôi xin chịu trách nhiệm về công trình nghiên cứu của mình.

HỌC VIÊN

Đỗ Thị Thu Hà


ii

LỜI CẢM ƠN
Lời đầu tiên, tôi xin chân thành cảm ơn TS. Ngô Xuân Bách – Học viện
Công nghệ Bưu chính Viễn Thông, người đã trực tiếp hướng dẫn tôi thực hiện luận
văn này. Với sự hướng dẫn, cung cấp tài liệu, động viên của Thầy đã giúp tôi vượt
qua nhiều khó khăn về chuyên môn trong suốt quá trình thực hiện luận văn.
Tôi xin chân thành cảm ơn, Ban Giám đốc, Ban chủ nhiệm Khoa Sau Đại
học và Khoa Công nghệ Thông tin, cùng các Thầy, Cô đã giảng dạy và quản lý đào
tạo trong suốt hai năm theo học tại Học viện Công nghệ Bưu chính Viễn thông.
Tôi xin chân thành cảm ơn, Hội đồng chấm đề cương đã đưa ra góp ý cho đề
cương luận văn, giúp tôi xác định rõ và hoàn thiện hơn về mục đích cũng như nội
dung cho luận văn.
Cuối cùng, tôi xin cảm ơn gia đình, bạn bè, và các đồng nghiệp đã động viên,
tạo điều kiện cho tôi trong suốt thời gian học tập và nghiên cứu.

Một lần nữa, tôi xin chân thành cảm ơn !


iii

MỤC LỤC
LỜI CAM ĐOAN .....................................................................................................i
LỜI CẢM ƠN .........................................................................................................ii
MỤC LỤC ............................................................................................................ iii
DANH MỤC KÝ HIỆU, VIẾT TẮT ...................................................................... vi
DANH MỤC CÁC BẢNG ....................................................................................vii
DANH MỤC CÁC HÌNH VẼ ..............................................................................viii
MỞ ĐẦU ................................................................................................................ 1
CHƯƠNG 1: TỔNG QUAN BÀI TOÁN PHÁT HIỆN Ý ĐỊNH NGƯỜI DÙNG 3
1.1. Xử lý ngôn ngữ tự nhiên ............................................................................ 3
1.2. Khái niệm phân loại văn bản ...................................................................... 4
1.2.1. Bài toán phân loại văn bản.................................................................. 6
1.3. Bài toán phát hiện ý định người dùng trên diễn đàn .................................... 7
1.4. Các nghiên cứu liên quan ........................................................................... 8
1.5. Kết chương .............................................................................................. 10
CHƯƠNG 2: CÁC PHƯƠNG PHÁP PHÁT HIỆN Ý ĐỊNH NGƯỜI DÙNG
DỰA TRÊN HỌC MÁY ....................................................................................... 11
2.1. Phương pháp giải quyết bài toán .............................................................. 11
2.2. Các phương pháp biểu diễn đặc trưng của văn bản ................................... 12
2.2.1. Phương pháp TF-IDF ....................................................................... 12
a. Giới thiệu phương pháp ............................................................... 12
2.2.2. Phương pháp N-Gram ...................................................................... 16
a. Giới thiệu phương pháp ............................................................... 16
b. Công thức tính “xác suất thô” ...................................................... 17
2.3. Các phương pháp học máy xây dựng mô hình phân lớp dữ liệu................ 18



iv

2.3.1. Phương pháp Naïve Bayes ................................................................ 18
a. Định lý Bayes .............................................................................. 18
b. Mạng Bayes (Bayesian Network) ................................................ 19
c. Khái niệm mạng Bayes ................................................................ 19
d. Tính độc lập xác suất trong mạng Bayes ...................................... 20
e. Cách xây dựng mạng Bayes ......................................................... 21
f. Phân lớp Naive Bayes .................................................................. 22
2.3.2. Phương pháp SVM (Support Vector Machine) ................................. 22
a. Giới thiệu phương pháp ............................................................... 22
b. Thuật toán SVM .......................................................................... 23
c. Huấn luyện SVM ......................................................................... 25
d. Các ưu thế của SVM trong phân lớp văn bản ............................... 26
2.4. Xây dựng chương trình giải quyết bài toán ............................................... 27
2.4.1. Thuật toán EM ................................................................................. 27
2.4.2. Thuật toán FS-EM ............................................................................ 29
2.4.3. Thuật toán Co-Class ......................................................................... 30
2.5. Kết chương .............................................................................................. 32
CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ ................................................ 33
3.1. Dữ liệu thực nghiệm................................................................................. 33
3.2. Thiết lập thực nghiệm .............................................................................. 34
3.3. Công cụ thực nghiệm ............................................................................... 34
3.3.1. Thực nghiệm trên 1 miền dữ liệu ...................................................... 35
3.3.2. Thực nghiệm trên 2 miền dữ liệu ...................................................... 36
a. Kịch bản 1 ................................................................................... 36
b. Kịch bản 2 ................................................................................... 37
3.4. Kết quả thực nghiệm ................................................................................ 37



v

3.4.1. Thực nghiệm trên 1 miền dữ liệu ...................................................... 37
3.4.2. Thực nghiệm trên 2 miền dữ liệu ...................................................... 38
a. Kịch bản 1 ................................................................................... 38
b. Kịch bản 2 ................................................................................... 39
3.4.3. So sánh kết quả thực nghiệm Co-Class với các thuật toán khác ........ 42
3.5. Nhận xét thực nghiệm và kết luận ............................................................ 44
KẾT LUẬN VÀ KIẾN NGHỊ ............................................................................... 46
PHỤ LỤC.............................................................................................................. 47
TÀI LIỆU THAM KHẢO ..................................................................................... 49


vi

DANH MỤC KÝ HIỆU, VIẾT TẮT

EM

Expectation - Maximization

Cực đại hóa kỳ vọng

NPL

Natural language processing

Xử lý ngôn ngữ tự nhiên


OCI

Online commercial intention

Ý định thương mại trực tuyến

SVM

Support Vector Machine

Máy véc-tơ hỗ trợ


vii

DANH MỤC CÁC BẢNG
Bảng 3.1: Danh sách trang web thu thập dữ liệu ......................................... 33
Bảng 3.2: Danh sách tập dữ liệu thu được và nhãn dữ liệu .......................... 33
Bảng 3.3: Độ chính xác trung bình khi thực nghiệm dữ liệu cùng miền ...... 38
Bảng 3.4: Độ chính xác khi thực nghiệm dữ liệu khác miền kịch bản 1....... 39
Bảng 3.5: Độ chính xác khi thực nghiệm chủ đề “Điện thoại”, “Điện tử”.... 40
Bảng 3.6: Độ chính xác khi thực nghiệm chủ đề “Camera”, “TV” .............. 41


viii

DANH MỤC CÁC HÌNH VẼ
Hình 1.1: Bài toán phân lớp văn bản ............................................................. 4
Hình 1.2: Bài toán phát hiện ý định người dùng ............................................ 7

Hình 2.1: Phương pháp xây dựng chương trình cho bài toán ....................... 11
Hình 2.2: Mô tả mô hình vector của văn bản ............................................... 14
Hình 3.1: So sánh độ chính xác khi thực nghiệm cùng miền 3 thuật toán .... 42
Hình 3.2: So sánh độ chính xác khi thực nghiệm chéo miền 3 thuật toán .... 43
Hình 3.3: So sánh độ chính xác khi thực nghiệm chéo miền 3 thuật toán .... 43


1

MỞ ĐẦU
Thế kỷ 21 là thời kỳ của cuộc cách mạng của công nghệ thông tin bùng nổ,
công nghệ thông tin đã phát triển mạnh mẽ và có đóng góp lớn trong việc phát triển
xã hội và kinh tế. Trước sự phát triển ngày càng mạnh mẽ của công nghệ thông tin,
trong mọi lĩnh vực của đời sống, người dùng ngày càng yêu cầu những ứng dụng
mới thông minh và đạt hiệu quả cao, hỗ trợ phần lớn trong công việc.
Trong thời gian gần đây, mạng internet ngày càng phát triển mạnh mẽ và
rộng rãi, tại diễn đàn mua bán hay thảo luận, ta vẫn bắt gặp những bài viết như “Tôi
đang tìm mua một TV plasma 40 inch” hay “Có ai biết chỗ bán quyển sách này
không?”. Như vậy trong trường hợp đó, ta thấy rằng người dùng hiện đang có ý định
muốn mua một chiếc TV hay một quyển sách. Từ ý định này, có thể dễ dàng đưa ra
quảng cáo dựa trên ý định của người dùng về sản phẩm mà họ đang quan tâm.
Đã có một số đề tài trước đây nghiên cứu về chủ đề phân tích ý định người
dùng như “Online commercial intention identification” việc xác định ý định người
dùng được dựa trên lịch sử người dùng tìm kiếm trên mạng xã hội hay những
website tìm kiếm. Hoặc trong đề tài phân tích quan điểm người dùng “Natural
Language Processing” dựa trên ý định người dùng mong muốn, nhận xét về sản
phẩm. Như vậy trong những đề tài trước, việc phân tích quan điểm hay ý định người
dùng chủ yếu dựa vào hành vi của người dùng.
Trong luận văn sẽ trình bày một hướng xác định khác của bài toán là việc
phát hiện phân tích ý định của người dùng cần được dựa vào chính những nội dung,

dữ liệu mà người dùng đưa ra. Ví dụ như trong tình huống người dùng nhập “Tôi
thấy iPhone nên có màn hình lớn hơn” sẽ có ý nghĩa khác so với câu “Tôi muốn
mua một chiếc iPhone 5S”.
Luận văn sẽ làm rõ cách giải quyết các vấn đề dưới đây:
-

Xác định bài viết có chứa ý định giữa nhiều bài viết không có ý định.


2

-

Trong một văn bản chứa rất nhiều dữ liệu không liên quan tới chủ đề,
tuy nhiên việc xử lý tập dữ liệu cần tìm ra được đâu là dữ liệu nhiễu
không liên quan tới ý định người dùng để trích xuất ra được kết quả
phân lớp chính xác nhất.

-

Khi thực hiện xác định ý định người dùng trên 1 chủ đề mới mà chưa
có dữ liệu thực để làm dữ liệu học máy. Việc áp dụng bài toán xác
định ý định người dùng chéo miền là rất quan trọng. Như vậy luận
văn sẽ làm rõ được phương pháp xác định ý định người dùng trong 2
trường hợp: dữ liệu cùng miền và dữ liệu chéo miền.

Để xây dựng chương trình xác định ý định người dùng, luận văn đưa ra các
phương pháp xác định ý định người dùng đã có trước đây như thuật toán EM, thuật
toán FS-EM và đề xuất thuật toán Co-Class áp dụng trong trường hợp xác định ý
định với dữ liệu trái miền giúp cải thiện được kết quả thu được.

Luận văn được chia làm 3 phần:
Chương 1: Luận văn giới thiệu chung về lĩnh vực xử lý ngôn ngữ tự nhiên,
các bài toán ứng dụng của lĩnh vực xử lý ngôn ngữ tự nhiên như phân loại văn bản,
phân loại quan điểm v.v. Giới thiệu về bài toán phát hiện ý định người dùng trên
diễn đàn.
Chương 2: Luận văn trình bày về các phương pháp phát hiện ý định sử dụng
phương pháp học máy: phương pháp phân lớp dữ liệu, phương pháp biểu diễn đặc
trưng cho văn bản, thuật toán học máy sử dụng trong đề tài. Phát biểu bài toán mở
rộng của đề tài là khi áp dụng cho 2 trường hợp dữ liệu cùng miền và chéo miền,
đưa ra giải pháp và so sánh về độ phức tạp giữa các thuật toán
Chương 3: Luận văn trình bày về kết quả thực nghiệm thuật toán để cuối
cùng đưa ra kết quả so sánh trong quá trình cài đặt thực tế, phân tích, đánh giá kết
quả thu được và đưa ra kết luận.


3

CHƯƠNG 1:

TỔNG QUAN BÀI TOÁN PHÁT HIỆN Ý
ĐỊNH NGƯỜI DÙNG

Trong chương này, luận văn trình bày chung về lĩnh vực xử lý ngôn ngữ tự
nhiên, các bài toán ứng dụng của lĩnh vực xử lý ngôn ngữ tự nhiên như phân loại
văn bản, phân loại quan điểm v.v Hướng tiếp cận, lý do chọn đề tài và giới thiệu bài
toán phát hiện ý định người dùng trên diễn đàn
1.1. Xử lý ngôn ngữ tự nhiên
Trong mọi lĩnh vực của đời sống, đi cùng với sự phát triển ngày càng mạnh
mẽ của công nghệ thông tin, người dùng yêu cầu những ứng dụng máy tính mới hỗ
trợ được phần lớn công việc, các ứng dùng đòi hỏi sự thông minh và đạt hiệu quả

cao. Mặc dù vậy vẫn tồn tại khoảng cách lớn giữa tư duy con người và máy tính,
một trong những trở ngại lớn nhất là vấn đề ngôn ngữ. Ngôn ngữ tự nhiên của con
người và ngôn ngữ của máy tính có nhiều khác biệt. Sự khác nhau này dẫn tới sự ra
đời của lĩnh vực nghiên cứu xử lý ngôn ngữ tự nhiên.
Xử lý ngôn ngữ tự nhiên (natural language processing – NLP) là một nhánh
của trí tuệ nhân tạo, tập trung vào các ứng dụng xử lý trên ngôn ngữ của con người.
Trong trí tuệ nhân tạo thì xử lý ngôn ngữ tự nhiên là một trong những phần khó nhất
vì xử lý ngôn ngữ tự nhiên liên quan đến việc xây dựng các hệ thống máy tính hiểu
được tư duy và ý nghĩa của ngôn ngữ con người, từ đó có thể tiến hành xử lý chúng.
Xử lý ngôn ngữ là một kĩ thuật quan trọng nhằm giúp máy tính hiểu được
ngôn ngữ của con người, qua đó hướng dẫn máy tính thực hiện và giúp đỡ con
người trong những công việc có liên quan đến ngn ngữ như: dịch thuật, phân tích dữ
liệu văn bản, nhận dạng tiếng nói, tìm kiếm thông tin v.v.
Xử lý ngôn ngữ tự nhiên là lĩnh vực đã được nghiên cứu từ nhiều năm nay và
đạt được nhiều bước tiến quan trọng trong những năm gần đây, đặc biệt trong việc
xây dựng các ứng dụng như dịch máy, tìm kiếm thông tin, trích chọn thông tin, tóm
tắt văn bản, trả lời tự động và khai phá quan điểm [1] [2] v.v.


4

1.2. Khái niệm phân loại văn bản
Trong những năm gần đây, sự phát triển vượt bậc của công nghệ thông tin
dẫn đến việc tăng chóng mặt số lượng các giao dịch thông tin trên mạng Internet
đặc biệt là các trang tin tức điện tử, mạng xã hội, diễn đàn trao đổi thông tin… Do
đó mà số lượng văn bản xuất hiện trên mạng Internet cũng tăng theo nhanh chóng.
Với lượng thông tin lớn như vậy, một yêu cầu lớn đặt ra với chúng ta là làm sao có
thể tổ chức và tìm kiếm thông tin một cách có hiệu quả nhất, từ đó có thể dễ dàng
khai thác nguồn thông tin vô tận đó nhanh và chính xác, đem lại kết quả cao nhất.
Từ những yêu cầu trên, ý tưởng cho bài toán phân loại văn bản xuất hiện để giúp

giải quyết những vấn đề trên. Tuy nhiên, trên thực tế khối lượng thông tin trên
Internet lại quá lớn, như vậy việc phân loại văn bản thủ công tuy đem lại kết quả
cao nhưng lại không thể thực hiện được. Hướng giải quyết cho tất cả vấn đề trên là
xây dựng các hệ thống học máy phân loại văn bản tự động.
Phân loại văn bản là xử lý nhóm các tài liệu thành các lớp khác nhau. Việc
phân lớp tài liệu liên quan đến xử lý ra quyết định. Với mỗi xử lý phân loại, đầu vào
là một văn bản, cần phải có một quyết định đưa ra xem văn bản đó có thuộc lớp nào
hay không. Nếu tài liệu thuộc một lớp nào đó thì sau đó cần chỉ ra lớp mà tài liệu đó
thuộc vào. Ví dụ đưa ra một văn bản bất kỳ như “Apple vừa cho ra mắt sản phẩm
Iphone 7”, như vậy cần chỉ được văn bản trên thuộc lớp công nghệ di động, chứ
không phải thuộc lớp thể thao, giải trí, xã hội…

Hình 1.1: Bài toán phân lớp văn bản

Đặc điểm nổi bật của bài toán này là sự đa dạng của chủ đề văn bản và tính
đa chủ đề của văn bản. Tính đa chủ đề của văn bản làm cho sự phân loại chỉ mang
tính tương đối và có phần chủ quan, nếu do con người thực hiện, và dễ bị nhập


5

nhằng khi phân loại tự động. Rõ ràng một bài viết về giáo dục cũng có thể xếp vào
kinh tế nếu như bài viết bàn về vấn đề đầu tư cho giáo dục và tác động của đầu tư
này đến kinh tế - xã hội. Về bản chất, một văn bản là một tập hợp từ ngữ có liên
quan với nhau tạo nên nội dung ngữ nghĩa của văn bản. Từ ngữ của một văn bản là
đa dạng do tính đa dạng của ngôn ngữ (đồng nghĩa, đa nghĩa, từ vay mượn nước
ngoài,…) và số lượng từ cần xét là lớn. Thông thường, các lớp cho trước là các chủ
đề nào đó, những cũng có nhiều ứng dụng mà các lớp được thiết lập theo những tiêu
chí khác, như phân lớp theo độ ưu tiên, phân lớp theo chủ đề.
Các hệ thống phân loại văn bản thường làm việc cùng với các thuật toán tự

học (Learning algorithm). Để thực thi thuật toán, cần cung cấp một tập mẫu để cho
máy tính học. Tập mẫu này gồm có một tập các văn bản được gán nhãn và phân lớp
trước, từ cơ sở đó, khi một văn bản được cung cấp cho hệ thống, thì hệ thống sẽ xử
lý thông tin, tiến hành so sánh văn bản đó với các tập mẫu cho trước để phân loại
văn bản. Bài toán phân loại văn bản là bài toán khó và đang được nghiên cứu rất
nhiều trong thời gian gần đây.
Việc phân loại văn bản có thể thực hiện bằng phương pháp thủ công, tức là
đọc nội dung từng văn bản và gán văn bản đó vào một lớp nào đó. Nhưng thực tế,
hệ thống gồm rất nhiều văn bản, vậy nên cách này sẽ tốn rất nhiều thời gian và công
sức mà đôi khi việc phân lớp thủ công lại không chính xác khi gặp phải những khó
khăn như sau:
-

Đối với các lĩnh vực đặc biệt, phân loại các chủ đề về chuyên ngành
như y tế, tài chính, ngân hàng ... vào các lớp cho trước thì cần có sự
hiểu biết về các lĩnh vực đó

-

Phân loại thủ công đôi khi không chính xác vì quyết định phụ thuộc
vào sự hiểu biết và mục đích của người thực hiện phân loại, như vậy
kết quả thu được sẽ mang tính cá nhân là chủ yếu

-

Quyết định của 2 cá nhân khác nhau có thể nảy sinh bất đồng về quan
điểm.


6


Như vậy phương pháp phân loại văn bản thủ công là không khả thi. Do vậy,
các hệ thống cần phải sử dụng các phương pháp phân loại văn bản tự động, để phân
lớp tự động người ta sử dụng các phương pháp học máy trong trí tuệ nhân tạo như:
Naïve Bayes, K láng giềng gần nhất, mạng nơron, máy vector hỗ trợ… để giải quyết
bải toán.
Chính vì những nhược điểm của phương pháp thủ công nên việc xây dụng
một bộ phân lớp văn bản tự động là một điều rất quan trọng và cần thiết, đặc biệt là
khi hầu hết các thông tin được sinh ra và lưu trữ điện tử. Việc phân lớp văn bản sẽ
giúp tối ưu việc lưu trữ dữ liệu một cách hiệu quả nhất để dễ dàng tìm kiếm và đạt
kết quả cao.
1.2.1. Bài toán phân loại văn bản
Phân loại văn bản đã trở thành lĩnh vực nghiên cứu chính trong hệ thống
thông tin hiện nay bởi sự đa dạng của các ứng dụng biến thể của nó. Phân loại văn
bản là công việc được sử dụng để hỗ trợ trong quá trình tìm kiếm thông tin
(Information Retrieval), trích chọn thông tin (Information Extraction), lọc văn bản
tự động. Một trong những ứng dụng của phân loại văn bản là trong lĩnh vực hiểu
văn bản, việc phân lớp văn bản có thể sử dụng để lọc các văn bản hoặc một phần
văn bản chứa dữ liệu cần tìm mà không làm mất đi ý nghĩa của văn bản
Phân loại văn bản có nhiều bài toán biến thể như:
-

Phân cụm văn bản: Đưa các văn bản có nội dung giống nhau vào các
nhóm [8]

-

Tóm tắt văn bản: Tóm tắt nội dung của một văn bản cho trước

-


Xác định quan điểm văn bản

Tuy nhiên, trong nội dung luận văn sẽ tập trung vào 2 dạng biến thể của bài
toán phân loại văn bản là:
-

Bài toán phân lớp dữ liệu

-

Bài toán ra quyết định, xác định quan điểm của văn bản


7

1.3. Bài toán phát hiện ý định người dùng trên diễn đàn
Trong thời gian gần đây, mạng internet ngày càng phát triển mạnh mẽ và
rộng rãi, tại diễn đàn mua bán hay thảo luận, ta vẫn bắt gặp những bài viết như “Tôi
đang tìm mua một TV plasma 40 inch” hay “Có ai biết chỗ bán quyển sách này
không?”. Như vậy trong trường hợp đó, ta thấy rằng người dùng hiện đang có ý
định muốn mua một chiếc TV hay một quyển sách. Từ ý định này, ta có thể dễ dàng
đưa ra quảng cáo dựa trên ý định của người dùng về sản phẩm mà họ đang quan
tâm.
Vậy nên ý tưởng của luận văn là sẽ đi sâu vào giải quyết bài toán xác định ý
định người dùng, giả sử trong tình huống ta thu thập một tập các văn bản trên diễn
đàn về một chủ đề bất kỳ, dựa vào nội dung của văn bản đó, ta cần xác định và đưa
ra kết luận rằng người dùng có thực sự quan tâm, hay có nhu cầu muốn mua sản
phẩm đó hay không.


Hình 1.2: Bài toán phát hiện ý định người dùng

Tuy nhiên, không phải tất cả các bài viết của người dùng đều thể hiện ý định
rõ ràng là cần mua, bán sản phẩm nào đó như “Đã có ai đọc quyển sách này chưa”,
bài viết chỉ muốn hỏi về nội dung của quyển sách mà không có nhu cầu mua. Hay
các bài viết chứa một lượng dữ liệu lớn, nhưng chỉ có một phần nhỏ trong đó thể
hiện ra ý định của người dùng, còn phần còn lại chỉ là dữ liệu nhiễu gây khó khăn


8

trong quá trình phát hiện ý định của người dùng như “Năm kia tôi mua chiếc máy
tính để bàn này với giá 10 triệu đồng, máy sử dụng 2 năm vẫn mới và chạy tốt. Tôi
đang muốn nhượng lại máy tính để đổi máy tính xách tay. Nhân tiện, tôi muốn mua
máy tính xách tay với giá 15 triệu trở xuống. Có ai bán không?”.
Như vậy việc xác định ý định văn bản của người dùng không chỉ dừng lại ở
việc phân biệt bài viết có thể hiện rõ ràng ý định của người dùng hay không, mà ta
còn cần phải xác định được ý định của người dùng trên một tập dữ liệu nhiễu không
liên quan, để trích xuất ra được kết quả chính xác.
Hiện nay, trên thế giới đã có một số nghiên cứu về việc phân loại văn bản và
xác định ý định của người dùng trên mạng xã hội. Nhưng các nghiên cứu này chỉ
đạt kết quả cao khi áp dụng trên dữ liệu cùng miền và đưa ra kết quả không chính
xác trên dữ liệu chéo miền. Mà trên thực tế, ta không thể thu thập được dữ liệu đầy
đủ cho tất cả các miền, như vậy việc áp dụng dữ liệu của miền này để xác định ý
định cho dữ liệu của miền dữ liệu khác mà đạt được kết quả chính xác cao là rất
quan trọng [3].
Luận văn gặp một số khó khăn khi xây dựng phương pháp giải quyết bài toán
xác định ý định người dùng như sau:
-


Xác định những bài viết có chứa ý định rõ ràng

-

Giữa những thông tin gây nhiễu, xác định chính xác ý định của bài
viết thể hiện

-

Nghiên cứu áp dụng bài toán xác định ý định người dùng trong 2
trường hợp: dữ liệu cùng miền và dữ liệu chéo miền.

1.4. Các nghiên cứu liên quan
Trước đây, đã có một số nghiên cứu về chủ đề phân tích quan điểm trên
mạng xã hội [6].
Ví dụ như trong đề tài “Online commercial intention (OCI) identification
[4]” việc xác định ý định người dùng được dựa trên lịch sử người dùng tìm kiếm
trên mạng xã hội hay những website tìm kiếm. Khi xác định quan điểm người dùng
dựa trên lịch sử tìm kiếm của người dùng, việc xác định sẽ dựa trên từ khóa được sử


9

dụng (thường là 2-3 từ), ví dụ khi người dùng muốn tìm kiếm hoặc mua 1 mặt hàng
thì thay vì viết “Tôi muốn mua 1 chiếc TV” thì người dùng sẽ nhập từ khóa “TV
Sony” hoặc “TV Samsung” để tìm kiếm. Như vậy khi xác định quan điểm dựa vào
hành vi tìm kiếm sẽ không đánh giá chính xác ý định của người dùng tại thời điểm
đó.
Hoặc trong đề tài “Natural Language Processing” [7] việc xử lý ngôn ngữ tự
nhiên được dựa trên quan điểm người dùng cần hoặc muốn. Ví dụ như trong câu

“Chiếc iPhone 7 khá tốt, nhưng nếu màn hình lớn hơn 1 chút sẽ tốt hơn”, sẽ khác
biệt với câu “Tôi đang muốn mua 1 chiếc iPhone 7”, việc xác định quan điểm ở đây
sẽ phù hợp với mục đích cần thu thập ý kiến nhận xét để đưa ra một đánh giá chung
về sản phẩm nào đó.
Hiện nay, việc phân tích quan điểm hay ý định người dùng chủ yếu dựa vào
lịch sử tìm kiếm, hay từ khóa tìm kiếm của người dùng trên internet, các mạng xã
hội rất phổ biến hay còn gọi là dựa vào hành vi của người dùng. Như vậy điểm khác
biệt của luận văn ở đây là việc phát hiện phân tích ý định của người dùng được dựa
vào chính những nội dung, dữ liệu mà người dùng đưa ra.
Hiện nay đã có một số nghiên cứu về việc phân loại văn bản và xác định ý
định của người dùng trên mạng xã hội. Nhưng các nghiên cứu này chỉ đạt kết quả
cao khi áp dụng trên dữ liệu cùng miền và đưa ra kết quả không chính xác trên dữ
liệu chéo miền. Mà trên thực tế, ta không thể thu thập được dữ liệu đầy đủ cho tất cả
các miền, như vậy việc áp dụng dữ liệu của miền này để xác định ý định cho dữ liệu
của miền dữ liệu khác mà đạt được kết quả chính xác cao là rất quan trọng.
Như chương 1 đã trình bày, trong phần này đề tài trình bày rõ hơn về phương
pháp xác định ý định của người dùng trên diễn đàn. Phương pháp áp dụng xác định
ý định của người dùng sẽ làm rõ được những vấn đề sau:
-

Xác định những bài viết có chứa ý định và bài viết không có ý định

-

Việc xử lý tập dữ liệu để trích xuất ra được đâu là dữ liệu nhiễu
không liên quan tới ý định người dùng để trích xuất ra được kết quả
chính xác.


10


-

Nghiên cứu áp dụng bài toán xác định ý định người dùng trong 2
trường hợp: dữ liệu cùng miền và dữ liệu chéo miền.

1.5. Kết chương
Xử lý ngôn ngữ tự nhiên là một lĩnh vực mới tuy nhiên khá quen thuộc với
mọi người và hiện nay trở thành xu hướng nghiên cứu mới cho ngành công nghệ
thông tin.
Như vậy Chương 1 đã trình bày khái quát về lĩnh vực xử lý ngôn ngữ tự
nhiên, giới thiệu về bài toán phân loại văn bản. Sau đó đề xuất bài toán xác định ý
định người dùng và các nghiên cứu liên quan tới đề tài xác định ý định người dùng,
từ đó đưa ra những vấn đề cần làm rõ và giải quyết trong luận văn.
Trong Chương 2, luận văn sẽ trình bày về hướng giải quyết cho bài toán xác
định ý định người dùng, và đi sâu hơn trình bày về các phương pháp sẽ áp dụng để
giải quyết bài toán.


11

CHƯƠNG 2:

CÁC PHƯƠNG PHÁP PHÁT HIỆN Ý ĐỊNH

NGƯỜI DÙNG DỰA TRÊN HỌC MÁY
Trong chương này, luận văn trình bày chi tiết về các phương pháp được áp
dụng trong bài toán phát hiện ý định người dùng. Chương 2 gồm 3 phần:
-


Trình bày về phương pháp giải quyết bài toán phát hiện ý định người
dùng đã có, đưa ra hướng phát triển thuật toán để cải thiện kết quả xử
lý trong 2 trường hợp dữ liệu cùng miền và chéo miền.

-

Trình bày về các phương pháp biểu diễu đặc trưng cho văn bản được
áp dụng trong bài toán phát hiện ý định người dùng: N-Gram, TFIDF.

-

Trình bày về các phương pháp học máy, xây dựng mô hình phân lớp
dữ liệu cho bài toán phát hiện ý định người dùng: Naïve Bayes,
Support Vector Machine (SVM)

2.1. Phương pháp giải quyết bài toán
Các bước thực hiện để xây dựng phương pháp giải quyết cho bài toán xác
định ý định người dùng được mô tả như trong hình vẽ dưới đây:

Hình 2.1: Phương pháp xây dựng chương trình cho bài toán

Để giải quyết bài toán xác định ý định của người dùng trên diễn đàn, ta sẽ
thực hiện xác định qua 2 giai đoạn chính như sau:
 Giai đoạn Huấn luyện: sẽ thu thập dữ liệu mẫu, thực hiện tiền xử lý (loại bỏ
các ký tự đặc biệt, ký tự thừa, các từ stopwords không ảnh hưởng tới ý nghĩa
của văn bản). Xây dựng 2 bộ dữ liệu học đã gán nhãn và bộ dữ liệu thực


12


nghiệm chưa gán nhãn. Trong đề tài giai đoạn huấn luyện sẽ sử dụng 2 thuật
toán là TF-IDF, và N-Gram với n=1,2,3…
 Giai đoạn Phân loại: sẽ tiến hành thực hiện các thuật toán trích chọn đặc
trưng và phân lớp cần thiết để xác định các đặc trưng và các lớp dữ liệu đầu
ra. Sử dụng kết quả ở giai đoạn Tiền xử lý làm dữ liệu đầu vào cho các thuật
toán trích chọn đặc trưng và phân lớp, từ đó đưa ra kết luận về nhãn của bộ
dữ liệu chưa gán nhãn. Giai đoạn phân loại trong đề tài sẽ sử dụng 2 thuật
toán là SVM và thuật toán Naïve Bayes để tiến hành phân lớp cho dữ liệu.
Các phần tiếp theo của chương 2 sẽ trình bày chi tiết hơn về các thuật toán
được lựa chọn và áp dụng vào việc xác định ý định của văn bản.
2.2. Các phương pháp biểu diễn đặc trưng của văn bản
2.2.1. Phương pháp TF-IDF
a. Giới thiệu phương pháp
Mục đích của việc phân loại là để phân loại ra các thông điệp mà chứa văn
bản không phù hợp với chủ đề của danh sách, các tính năng văn bản là các tính
năng chính trong hệ thống. Các tính năng văn bản sẽ đại diện cho sự liên quan giữa
chủ đề của văn bản với danh sách như thế nào. Mỗi danh sách có một chủ đề khác
nhau (hoặc nhiều chủ đề), vì vậy hệ thống cần một phương thức để tự động lấy ra
chủ đề chính của 1 nguồn danh sách, và tính toán sự tương tự của thông điệp với
chủ đề của nguồn.
Trong phương pháp tiếp cận truyền thống cũng là một trong những phương
pháp được sử dụng nhiều nhất đó là phương pháp tần suất thuật ngữ ”term
frequency” (TF) hay tần suất thuật ngữ - nghịch đảo tần suất văn bản “term
frequency-inverse document frequency” (viết tắt là TF-IDF) được sử dụng trong
việc phân loại văn bản. Về cơ bản thì thuật toán TF-IDF là một kỹ thuật giúp
chuyển đổi thông tin dưới dạng văn bản thành một mô hình vector trong không gian
qua các trọng số. Mô hình vector trong không gian và thuật toán TF-IDF được phát
triển bởi Gerard Salton vào đầu thập niên 1960s.
Mặc dù đơn giản, nhưng mô hình vector không gian và những cải tiến của nó
hiện nay vẫn là cách phổ biến để biểu diễn văn bản trong khai phá dữ liệu và truy



13

xuất thông tin. Tuy nhiên, một trong những điểm yếu của mô hình vector không
gian là số chiều lớn (high- dimensonal), có khoảng cỡ chục triệu chiều trong không
gian vector nếu như luận văn áp dụng chúng vào cơ chế tìm kiếm web.
Phương pháp này chỉ ra tầm quan trọng của một từ với văn bản trong hàng
loạt các văn bản như thế nào. Trong TF-IDF, tầm quan trọng của một từ với văn bản
lớn hơn khi nó được sử dụng ở trong một văn bản, và nó sẽ thấp hơn khi một từ xuất
hiện nhiều trong nhiều bộ văn bản.
Thuật toán này được biểu diễn dưới công thức sau:
TF-IDF(t, d, D) = TF(t, d) * IDF(t, D)

(2.1)

Trong đó:
-

t là thuật ngữ hay có thể là một từ trong văn bản.

-

d là văn bản cần được phân loại chủ đề.

-

D là tập hợp tất cả các văn bản.

Khi đó thì:

TF(t, d) = frequency(t, d)
-

(2.2)

Frequency(t, d) là tần suất xuất hiện của thuật ngữ t trong văn bản d.

Và:
IDF(t, D) = log

𝑁

{|𝑑∈𝐷:𝑡∈𝑑|}

(2.3)

Trong đó:
-

N là tổng số văn bản trong bộ dữ liệu

-

|{d ∈ D ∶ t ∈ d}| là số văn bản thuật ngữ t xuất hiện trong bộ dữ liệu

Trọng số TF-IDF đạt kết quả cao khi tần suất của thuật ngữ trong văn bản
cần phân loại cao và tần suất của thuật ngữ đó trong bộ dữ liệu chung để từ đó ta có
thể phân loại ra được các thuật ngữ phổ biến với từng chủ đề. Do trọng số trong
hàm log của IDF luôn lớn hơn hoặc bằng 1, vì vậy giá trị của IDF và TF-IDF luôn
lớn hơn hoặc bằng 0. Nếu một thuật ngữ xuất hiện trong nhiều tài liệu, thì trọng số

bên trong hàm log sẽ có cận là 1, khi đó IDF và TF-IDF sẽ có cận là 0.


14

Sau khi trọng số TF-IDF được tính toán sẽ sinh ra một chỉ số TF-IDF đại
diện cho giá trị một vector của văn bản đó. Từ đó ta có thể tính được tổng các
vector sinh ra một vector cho cả văn bản, sau đó sử dụng vector để tính tần suất và
so sánh, đánh giá văn bản.

Hình 2.2: Mô tả mô hình vector của văn bản

Trong đó:
-

X1, X2,…,Xn là các từ xuất hiện trong câu

-

W0, W1, W2,… ,Wn là các vector ứng với từng từ trong một văn bản.

Tương tự với 2 văn bản cũng như vậy, sau đó hệ thống có thể tính toán được
tính tương đồng lượng giác giữa các vector trong văn bản. Ngoài ra các vector có
thể được sử dụng trong việc phân loại thuật toán như một vector các tính năng,
trong trường hợp này thuật toán phân loại sẽ học những thuộc tính có ích để quyết
định việc phân loại. Trọng số TF-IDF là trọng số phổ biến được sử dụng trong các
công cụ tìm kiếm cũng như các công việc phân loại văn bản khác nhau. So với
phương pháp tần số văn bản nghịch đảo, TF-IDF cho kết quả là một số thấp hơn với
mỗi thuật ngữ nếu thuật ngữ đó xuất hiện nhiều lần trong bộ văn bản chung, điều
này giúp loại bỏ các thuật ngữ phổ biến ví dụ như “the” hay “and” trong tiếng Anh,

hoặc những từ thường gặp mà danh sách stopwords còn thiếu. Tuy nhiên, trong
trường hợp mà bộ văn bản gồm nhiều chủ đề, tần suất xuất hiện của một thuật ngữ


15

không đánh giá được là thuật ngữ này liên quan đến danh sách. Vì vậy kế hoạch
tính trọng số thường không sử dụng để nhận diện chủ đề của từng văn bản trong
một bộ văn bản chung.
Vì việc thực hiện tính trọng số không phù hợp với mục đích phân loại của đề
tài, nên trong luận văn áp dụng một phương pháp mới mà về cơ bản điểm số là sự
tương đồng của một văn bản so với chủ đề chính của một nguồn dữ liệu. Khó khăn
ở đây chính là để phân biệt tần suất các từ thực sự liên quan với chủ đề chính của
nguồn, và công việc đó là thường xuyên vì những từ đó thường khá phổ biến. Việc
phân biệt này là khả thi khi luận văn quan sát tần số xuất hiện của các từ trong một
nguồn dữ liệu chung lớn hơn. Khi tần số của một từ trong một nguồn có chủ đề đặc
biệt (hay gọi là nguồn local) và trong một nguồn dữ liệu chung (hay gọi là nguồn
global), khi mà một lượng người dùng lớn cập nhật các thông điệp để so sánh, tần
số của từ có thể giúp đánh giá mặc dù từ đó tần suất sử dụng nhiều trong nguồn.
Việc so sánh tần số sẽ đưa ra một cách nhìn chính xác hơn về độ liên quan giữa một
từ cụ thể với một nguồn dữ liệu chủ đề như thế nào.
Ví dụ, giả sử có một nguồn dữ liệu chủ đề bao gồm các bài viết từ một danh
sách của một tập người dùng trên Twitter về chủ đề cơ sở dữ liệu, và có một nguồn
cấp dữ liệu chung lớn hơn thu thập tất cả các bài viết bởi người dùng của Twitter về
các chủ đề khác nhau. Xét về trực quan từ “MySQL” sẽ được xuất hiện thường
xuyên trong nguồn dữ liệu chủ đề, như là kết quả của sở thích của người dùng về hệ
thống cơ sở dữ liệu. Không giống như nguồn dữ liệu tập trung, nguồn dữ liệu chung
sẽ chứa nhiều người dùng với nhiều sở thích khác nhau. Vậy sẽ có hàng ngàn chủ
đề khác nhau trong nguồn dữ liệu chung này và một trong số chúng sẽ là hệ thống
cơ sở dữ liệu. Vì vậy, tần số của chủ đề cơ sở dữ liệu trong nguồn dữ liệu chung sẽ

thấp nhiều, do đó từ “MySQL” sẽ xuất hiện với tần số ít hơn. Nếu luận văn đưa ra
một từ phổ biến như thời gian, con người hoặc hôm nay, dự kiến rằng những từ này
rất phổ biến trong cả nguồn dữ liệu chủ đề và nguồn dữ liệu chung. “Today” có thể
xuất hiện thường xuyên hơn “MySQL” trong nguồn dữ liệu chủ đề, tuy nhiên luận
văn sẽ có thể phân biệt được 2 từ này bởi tần số của chúng trong nguồn dữ liệu


×