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

Nghiên cứu ứng dụng máy học và đề xuất ứng dụng xử lý văn bản tiếng Việt (tt)

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 (669.18 KB, 25 trang )

i

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

LƯU THỊ BÍCH DIỆP

NGHIÊN CỨU ỨNG DỤNG MÁY HỌC
VÀ ĐỀ XUẤT ỨNG DỤNG XỬ LÝ VĂN
BẢN TIẾNG VIỆT

Chuyên nghành:
Mã số:

Hệ thống thông tin
84.80.104

TÓM TẮT LUẬN VĂN THẠC SĨ

TP HỒ CHÍ MINH - 2018


ii

Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

Người hướng dẫn khoa học: TS. NGUYỄN PHƯƠNG
(Ghi rõ học hàm, học vị)

Phản biện 1: ……………………………...............................



Phản biện 2: ………………………..................................

Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc
sĩ tại Học viện Công nghệ Bưu chính Viễn thông.
Vào lúc: ....... giờ ....... ngày ....... tháng ....... .. năm ...............

Có thể tìm hiểu luận văn tại:
Thư viện của Học viện Công nghệ Bưu chính Viễn thông


1
MỞ ĐẦU

Có rất nhiều các doanh nghiệp đã đầu tư chi phí trong việc khảo sát lấy ý kiến người sử dụng về
sản phẩm, dịch vụ thông qua các phiếu đánh giá hoặc phiếu lấy ý kiến. Sau đó các phiếu đánh giá được
mang về phân loại một cách thủ công. Việc này gây mất rất nhiều chi phí và nguồn lực của công ty, chưa
kể đến sự hạn chế về số lượng phiếu đánh giá.
Để có cái nhìn đúng về các nội dung bình luận hoặc phản hồi thì việc phân tích ngữ nghĩa của câu
văn, đoạn văn là rất quan trọng, việc hiểu sai có thể ảnh hưởng tới kết quả của các bước, các quyết định,
các chiến lược tiếp theo. Câu văn hay đoạn văn chính là một trong những hình thức thể hiện ngôn ngữ tự
nhiên bằng văn bản. Vì vậy việc xử lý ngôn ngữ tự nhiên là một nhánh của trí tuệ nhân tạo tập trung vào
các ứng dụng 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ì liên quan đến việc phải hiểu ý nghĩa ngôn ngữ. Có rất nhiều ứng dụng xử lý
ngôn ngữ tự nhiên như: Nhận dạng chữ viết, nhận dạng tiếng nói, dịch tự động,…Để thực hiện được
những ứng dụng mang tính trí tuệ ưu việt, thì công nghệ Machine Learning, dịch ra tiếng Việt có nghĩa là
Máy Học, đã được áp dụng một cách linh hoạt. Máy học, là một tập con của trí tuệ nhân tạo có lịch sử
phát triển với những bước sơ khai từ năm 1950 do nhà bác học Alan Turing khởi sáng, là nơi mà các thuật
toán máy tính được sử dụng để tự học từ dữ liệu và thông tin. Đến nay, công nghệ Máy học đã thực sự lan
tỏa rộng khắp và đóng một vai trò quan trọng trong các phát minh và ứng dụng công nghệ của đời sống

con người. Máy học đã được áp dụng rất nhiều trong các ngành công nghiệp đang làm việc với hàm lượng
lớn dữ liệu như: Các dịch vụ tài chính, Chính phủ, chăm sóc sức khỏe, dầu khí, vận tải,…Với mong muốn
được tiếp cận và nghiên cứu sâu về lĩnh vực Máy học, em chọn đề tài: “Nghiên cứu ứng dụng máy học và
đề xuất ứng dụng xử lý văn bản tiếng Việt” với hy vọng đóng góp một phần công sức đưa thuật ngữ Máy
học đến gần với người dùng hơn.
Tập trung vào vấn để xử lý văn bản Tiếng Việt sử dụng ứng dụng máy học, luận văn được trình
bày theo bố cục từng chương như sau:
Chương 1: Tổng quan về máy học: Chương này sẽ trình bày tổng quan về lịch sử phát triển của
trí tuệ nhân tạo, tính cấp thiết của đề tài và chi tiết các mục tiêu cần đạt được của chương trình thực
nghiệm.
Chương 2: Nghiên cứu xử lý ngôn ngữ tự nhiên sử dụng vnTokenizer, word2vec và support
vector machine: Nội dung chương này trình bày các khái niệm liên quan đến lĩnh vực máy học, các khái
niệm thường được nhắc đến trong lĩnh vực xử lý ngôn ngữ tự nhiên và phân loại máy học và đi sâu vào
nghiên cứu các đặc điểm của ngôn ngữ tiếng Việt, các thuật toán trong ứng dụng vnTokenizer, word2vec
và Support Vevtor Machine.


2
Chương 3: Xây dựng ứng dụng xử lý văn bản tiếng Việt: Thực hiện xây dựng ứng dụng xử lý
văn bản tiếng Việt vào việc phân tích và phân loại cảm xúc người dùng. Sau khi chạy thực nghiệm đưa ra
kết luận về độ chính xác của bài thực nghiệm.


3
CHƯƠNG 1: GIỚI THIỆU CHUNG
1. Mục tiêu
Với sự phát triển mạnh mẽ của mạng xã hội, diễn đàn, báo chí, các cơ quan doanh nghiệp tiếp cận
với các phản hồi của khách hàng về sản phẩm của họ một cách nhanh chóng và dễ dàng. Thay vì trước
đây, các cơ quan doanh nghiệp phải thực hiện lấy ý kiến người tiêu dùng bằng các bản khảo sát ý kiến
trên giấy. Nhằm giúp các cơ quan, doanh nghiệp tổng hợp các ý kiến đánh giá một cách nhanh chóng, rõ

ràng, bài luận thực hiện đề tài “Nghiên cứu ứng dụng máy học và đề xuất ứng dụng xử lý văn bản tiếng
Việt” .
Mục tiêu chung của luận văn: Đề xuất mô hình phân loại các câu bình luận, nhận xét, phản hồi của
người dùng về một sản phầm hay dịch vụ.
Mục tiêu cụ thể là phân loại các câu bình luận thành 2 nhóm: Tích cực và tiêu cực:
-

Gán nhãn mỗi câu bình luận bất kỳ nhập vào từ người dùng.

-

Gán nhãn và hiển thị tỉ lệ 2 nhóm bình luận sau mỗi bài báo, diễn đàn.

2. Đối tượng nghiên cứu
Đề tài của luận văn được thực hiện dựa trên các thuật toán xử lý ngôn ngữ tự nhiên và các thuật
toán của máy học.
3. Phạm vi nghiên cứu
Chương trình thực nghiệm của luận văn được thực hiện trong phạm vi nghiên cứu các ứng dụng xử
lý văn bản tiếng Việt.


4

CHƯƠNG 2: NGHIÊN CỨU XỬ LÝ NGÔN NGỮ TỰ NHIÊN
SỬ DỤNG vnTOKENIZER, WORD2VEC
VÀ SUPPORT VECTOR MACHINE
1.
-

Các khái niệm cơ bản

Trí tuệ nhân tạo: Trên thế giới hiện có nhiều định nghĩa khác nhau về trí tuệ nhân tạo hay còn gọi là
AI (Artificial Intelligence) [10].


Theo Wikipedia, trí tuệ nhân tạo (Artificial Intelligence - viết tắt là AI) là trí tuệ được biểu diễn
bởi bất cứ một hệ thống nhân tạo nào. Thuật ngữ này thường dùng để nói đến các máy tính có
mục đích không nhất định và ngành khoa học nghiên cứu về các lý thuyết và ứng dụng của trí tuệ
nhân tạo.



Bellman (1978) định nghĩa: Trí tuệ nhân tạo là tự động hoá các hoạt động phù hợp với suy nghĩ
con người, chẳng hạn các hoạt động ra quyết định, giải bài toán,…



Rich và Knight (1991) cho rằng: Trí tuệ nhân tạo là khoa học nghiên cứu xem làm thế nào để máy
tính có thể thực hiện những công việc mà hiện con người còn làm tốt hơn máy tính.

- Máy học (Machine Learning): Máy học là một lĩnh vực của khoa học máy tính đã phát triển từ
nghiên cứu về nhận dạng khuôn mẫu và học thuyết tính toán trong trí thông minh nhân tạo.
Theo Arthur Samuel (1959): Máy học là ngành học cung cấp cho máy tính khả năng học hỏi mà không
cần được lập trình một cách rõ ràng.
-

Xử lý ngôn ngữ tự nhiên (NLP): Là một nhánh của Trí tuệ nhân tạo, tập trung vào việc nghiên cứu
sự tương tác giữa máy tính và ngôn ngữ tự nhiên của con người [14]. Mục tiêu của lĩnh vực này là
giúp máy tính hiểu và thực hiện hiệu quả những nhiệm vụ liên quan đến ngôn ngữ của con người như:
Tương tác giữa người và máy, cải thiện hiệu quả giao tiếp giữa con người với con người, hoặc đơn
giản là nâng cao hiệu quả xử lý văn bản và lời nói.

2. Phân loại Máy học
Có hai cách phổ biến phân nhóm các thuật toán Machine learning: Dựa trên phương thức học và

dựa trên chức năng của mỗi thuật toán [25].


Phân loại máy học dựa trên phương thức học:
- Học có giám sát (Supervised Learning): Là một kĩ thuật học máy để học tập từ tập dữ liệu được
gán nhãn cho trước. Tập dữ liệu cho trước sẽ chứa nhiều bộ dữ liệu. Mỗi bộ dữ liệu có cấu trúc theo
cặp {x, y} với x được xem là dữ liệu thô (raw data) và y là nhãn của dữ liệu đó. Nhiệm vụ của học
có giám sát là dự đoán đầu ra mong muốn dựa vào giá trị đầu vào.
- Học không giám sát (Unsupervised learning): Là một kĩ thuật của máy học nhằm tìm ra một mô
hình hay cấu trúc bị ẩn bởi tập dữ liệu không được gán nhãn cho trước.Học không giám sát khác


5
với Học có giám sát là không thể xác định trước đầu ra từ tập dữ liệu huấn luyện được. Tùy thuộc
vào tập huấn luyện kết quả đầu ra sẽ khác nhau.
- Học bán giám sát (semi-supervised learning): Là một lớp của kỹ thuật máy học, sử dụng cả dữ
liệu đã gán nhãn và chưa gán nhãn để huấn luyện - điển hình là một lượng nhỏ dữ liệu có gán nhãn
cùng với lượng lớn dữ liệu chưa gán nhãn. Học nửa giám sát đứng giữa học không giám sát (không
có bất kì dữ liệu có nhãn nào) và có giám sát (toàn bộ dữ liệu đều được gán nhãn).


Phân loại máy học dựa trên chức năng:
Hướng nghiên cứu Máy học có rất nhiều thuật toán được chia theo các chức năng thực hiện khác

nhau. Luận văn xin liệt kê một số thuật toán được phân loại như sau:
- Thuật toán hồi quy: Linear Regression, Logistic Regression, Stepwise Regression.
- Thuật toán phân loại: Linear Classifier, Support Vector Machine (SVM), Kernel SVM, Sparse

Representation-based classification (SRC).
- Thuật toán dựa trên cá thể: k-Nearest Neighbor (kNN), Learning Vector Quantization (LVQ).
- Thuật toán chuẩn hóa: Ridge Regression, Least Absolute Shrinkage and Selection Operator
(LASSO), Least-Angle Regression (LARS).
- Thuật toán Bayesian: Naive Bayes, Gaussian Naive Bayes.
- Thuật toán phân nhóm: k-Means clustering, k-Medians, Expectation Maximization (EM).
- Thuật toán mạng nơ-ron nhân tạo: Perceptron, Softmax Regression, Multi-layer Perceptron,
Back-Propagation.
- Thuật toán giảm kích thước: Principal Component Analysis (PCA), Linear Discriminant
Analysis (LDA).
- Thuật toán đồng bộ: Boosting, AdaBoost, Random Forest.
3.

Tổng quan về xử lý ngôn ngữ tự nhiên

Ngôn ngữ tự nhiên có 2 dạng là chữ viết và âm thanh (tiếng nói). Ngôn ngữ của mỗi dân tộc,
quốc gia lại khác nhau bao gồm cách viết và cách phát âm.
Xử lý ngôn ngữ chính là xử lý thông tin khi đầu vào là “dữ liệu ngôn ngữ” (dữ liệu cần biến đổi)
gồm có dữ liệu “văn bản” hay “tiếng nói”. Các dữ liệu liên quan đến ngôn ngữ viết (văn bản) và nói
(tiếng nói) đang dần trở nên là kiểu dữ liệu chính con người có và lưu trữ dưới dạng điện tử. Đặc điểm
chính của các kiểu dữ liệu này là không có cấu trúc hoặc nửa cấu trúc và chúng không thể lưu trữ trong
các khuôn dạng cố định như các bảng biểu. Theo đánh giá của công ty Oracle, hiện có đến 80% dữ liệu
không có cấu trúc trong lượng dữ liệu loài người đang có.
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 ngôn 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,...


6
4. Đặc trưng của ngôn ngữ tiếng Việt

Trước khi đi sâu vào tìm hiểu đặc trưng của ngôn ngữ tiếng Việt, bài luận xin giới thiệu một định
nghĩa sau làm ví dụ về định nghĩa từ:
“Từ là đơn vị nhỏ nhất có nghĩa, có kết cấu vỏ ngữ âm bền vững, hoàn chỉnh, có chức năng gọi
tên, được vận dụng độc lập, tái hiện tự do trong lời nói để tạo câu”.
Theo nghiên cứu và tổng hợp của Vietnam Lexicography Center, Tiếng Việt có khoảng 40.181
từ, số âm tiết là 7.729 âm tiết. Trong đó có 81.55% các âm tiết đồng thời là các từ đơn, 70.72% các từ
ghép có 2 âm tiết, 13.59% các từ ghép có 3, 4 âm tiết, 1.04% các từ ghép có từ 5 âm tiết trở lên.
Tiếng Việt có các phương thức cấu tạo như sau [4]:
Từ đơn:
Từ đơn, hay còn gọi là từ có 1 âm tiết, là các từ được cấu tạo bởi 1 từ duy nhất, ví dụ: Tôi, bạn,
hoa, quả, …
Từ ghép:
Từ ghép là các từ được tạo lên từ hai hoặc nhiều hơn hai từ. Giữa các từ có mối quan hệ về nghĩa
với nhau, vì thế ta cũng có các loại từ ghép khác nhau.
-

Từ ghép đẳng lập: Các thành phần cấu tạo từ có mối quan hệ bình đẳng với nhau, ví dụ: đi
đứng, ăn nói,...

-

Từ ghép chính phụ: Các thành phần cấu tạo từ có mối quan hệ phụ thuộc với nhau về nghĩa.
Thành phần phụ sẽ có vai trò làm chuyên biệt hóa, tạo sắc thái cho thành phần chính: Ví dụ:
hoa hồng, đường sắt, áo xanh,…

Từ láy:
Một từ được coi là từ láy khi các yếu tố cấu tạo nên có thành phần ngữ âm được lặp lại, ví dụ:
long lanh, lung linh ….
Độ dài từ láy thay đổi từ 2 tiếng đến 4 tiếng. Nhưng trong tiếng Việt đa số là từ láy hai tiếng.
Ngoài ra, trong văn bản còn có các thành phần sau:


4.

-

Thành ngữ (cao chạy xa bay, tránh vỏ dưa gặp vỏ dừa…).

-

Quán ngữ (nói tóm lại, đáng chú ý là, mặt khác thì…).

-

Tên riêng (người, địa danh, tổ chức).

-

Các dạng ngày – tháng – năm.

-

Các dạng số – chữ số – kí hiệu.

-

Dấu câu, dấu ngoặc.

-

Từ tiếng nước ngoài.


-

Chữ viết tắt.

Công cụ tách từ vnTokenizer


7
Trong tiếng Việt, dấu cách (khoảng trắng) không mang ý nghĩa phân tách các từ mà chỉ mang ý
nghĩa phân tách các âm tiết với nhau. Để thấy được tầm quan trọng của việc tách từ, ta xét các ví dụ sau:
Ví dụ 1: Từ “Đất nước” được tạo ra từ 2 âm tiết “Đất” và “Nước”, cả 2 âm tiết này đều có nghĩa
riêng khi đứng độc lập, nhưng khi ghép lại sẽ mang một nghĩa khác.
Ví dụ 2: "Xoài phun thuốc sâu không ăn." có thể được tách từ như sau, với ý nghĩa hoàn toàn
khác nhau:
Xoài / phun thuốc / sâu / không / ăn.
Xoài / phun / thuốc sâu / không / ăn.
vnTokenizer là công vụ tách từ Tiếng Việt được nhóm tác giả Lê Hồng Phương, Nguyễn Thị
Minh Huyền, Vũ Xuân Lương phát triển dựa trên phương pháp so khớp cực đại (Maximum Matching)
với tập dữ liệu sử dụng là bảng âm tiết tiếng Việt và từ điển từ vựng tiếng Việt với giả thiết: Những từ dài
thường có độ chính xác cao hơn những từ ngắn. Phiên bản đầu tiên được viết từ năm 2001.
Quy trình thực hiện tách từ theo phương pháp so khớp cực đại như sau:

Hình 2.1: Quy trình tách từ theo phương pháp so khớp cực đại
5. Biểu diễn từ thành Vector đặc trưng sử dụng Word2vec
Đối với xử lý ngôn ngữ tự nhiên, việc biểu diễn một từ dưới dạng một vector đóng vai trò cực kỳ
quan trọng. Giai đoạn này giúp ích rất nhiều trong việc tìm từ gần nghĩa, trái nghĩa, mô phỏng câu, thậm
chí là tìm các câu có nghĩa tương đồng. Word2vec là một trong những phương pháp đơn giản và dễ hiểu.



8
Một cách đơn giản nhất để biểu diễn 1 từ bằng 1 vector là dùng one-hot vector. Trong đó, mỗi
vector sẽ có độ dài bằng với số từ trong từ điển, và mỗi vector chỉ có 1 phần tử khác 0, và bằng 1, tại vị trí
tương ứng với vị trí của từ đó trong từ điển.
Ví dụ: Nếu từ điển có số lượng là 5 từ, từ “Hoa”, “hồng” có số thứ tự là 3, 5 trong từ diển, thì
vector biểu diễn hai từ theo cách dùng one-hot vecotor là:

Hình 2.5: Biểu diễn từ dưới dạng one-hot vector
Word2vec giúp biến 1 từ ở dạng one-hot vector thành một vector có số chiều nhỏ hơn rất nhiều
(300 đến 1000).
Word2vec biểu diễn các từ dưới dạng một phân bố quan hệ với các từ còn lại. Mỗi từ được biểu
diễn bằng một vector có các phần tử mang giá trị là phân bố quan hệ của từ này đối với các từ khác trong
từ điển.
Khi đó, đầu vào là một one-hot vector đại diện cho từ đầu vào và đầu ra cũng là một one-hot
vector đại diện cho từ đầu ra, nhưng vector đầu ra sẽ thực sự là một phân bố xác suất (tức là, một loạt các
giá trị cách nhau bởi dấu phẩy, không phải là một one-hot vector một chiều).
6.

Cảm xúc người dùng (Sentiment)

Sentiment được hiểu theo nghĩa tiếng Việt là “cảm xúc người dùng”. Việc phân tích cảm xúc nói
một cách dễ hiểu là lắng nghe và thấu hiểu những gì đang được nói về thương hiệu, sản phẩm, chủ đề …
trên các phương tiện truyền thông xã hội nói như thế nào, tốt hay xấu, và tốt về mặt nào, xấu về mặt nào.
Như vậy việc phân tích cảm xúc được chia thành Tích cực, Tiêu cực. Sự tương quan giữa số lượng của
từng loại thảo luận sẽ nói lên thái độ chung của người dùng đối với thương hiệu, sản phẩm…
7. Máy hỗ trợ vector (Support Vector Machine)
Các vector đặc trưng của các câu bình luận được gán nhãn tiêu cực hoặc tích cực được dùng làm
bộ dữ liệu huấn luyện cho Support vector machine (SVM), qua đó thu được hai lớp dữ liệu tương ứng với
2 loại nhãn: Tiêu cực, tích cực.
SVM rất hiệu quả để giải quyết bài toán dữ liệu có số chiều lớn, giải quyết vấn đề overfitting rất

tốt (dữ liệu có nhiễu và tách rời nhóm hoặc dữ liệu huấn luyện quá ít). Ngoài ra SVM còn là phương pháp
phân lớp nhanh.


9
Đặt vấn đề bài toán [24]: Xác định xem một điểm dữ liệu mới sẽ được thuộc về lớp nào. Mỗi
điểm dữ liệu được biểu diễn dưới dạng một vector p-chiều, và muốn biết liệu có thể chia tách hai lớp dữ
liệu bằng một siêu phẳng p−1 chiều. Đây gọi là phân loại tuyến tính. Có nhiều siêu phẳng có thể phân
loại được dữ liệu. Một lựa chọn hợp lý trong chúng là siêu phẳng có lề lớn nhất giữa hai lớp.

Hình 2.7: Các siêu phẳng phân tách hai lớp dữ liệu
Theo hình minh họa, siêu phẳng H3 không chia tách được hai lớp dữ liệu, siêu phẳng H1 phân
tách hai lớp với lề nhỏ và siêu phẳng H2 phân tách hai lớp với lề cực đại (khoảng cách lớn nhất từ siêu
phẳng đến các điểm lân cận của hai lớp), và lề càng lớn thì sai số tổng quát hóa của bộ phân lớp càng tốt
hơn.

Hình 2.8: Biểu diễn siêu phẳng lề cực đại cho bộ phân lớp SVM trên 2 lớp


10

CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG GÁN NHÃN
CÁC CÂU BÌNH LUẬN TIẾNG VIỆT
1.

Phát biểu bài toán
Yêu cầu của hệ thống: Sử dụng thuật toán SVM gán nhãn, phân loại các câu bình luận sau mỗi bài

báo pháp luật của trang báo điện tử vnexpress.vn
Kiến trúc của hệ thống: 2 chức năng

- Gán nhãn mỗi câu bình luận bất kỳ nhập vào từ người dùng.
- Gán nhãn và hiển thị tỉ lệ 2 nhóm bình luận sau mỗi bài báo pháp luật của trang báo điện tử
vnexpress.vn.
Tiêu chí đánh giá kết quả: Số lượng câu bình luận được gán nhãn đúng trên bộ dữ liệu được test.
Bài toán được phát biểu cụ thể như sau:
Input (Đầu vào): Nhập vào một bình luận bất kỳ có liên quan đến lĩnh vực pháp luật, hoặc địa chỉ
website của một bài báo.
Output (Đầu ra): Đối với bình luận của người đọc nhập vào sẽ được phân loại (gán nhãn): Tích cực,
tiêu cực. Đối với địa chỉ website của một bài báo sẽ chỉ ra trong số các bình luận có cảm xúc tích cực, số
bình luận có cảm xúc tiêu cực.


11

2.

Mô hình ứng dụng xử lý văn bản tiếng Việt
Chi tiết các bước thực hiện bài toán được mô tả như hình bên dưới:


12
Chi tiết các bước thực hiện như thu thập dữ liệu, xử lý dữ liệu, biểu diễn từ/câu thành vector đặc
trưng, gán nhãn sẽ được trình bày chi tiết ở các phần tiếp theo của luận văn.
Ngoài ra, luận văn lựa chọn các trang báo điện tử để thu thập dữ liệu vì các bài báo đã được
chuẩn hóa tiếng Việt trước khi đăng, rất ít trường hợp lỗi xảy ra như: thiếu dấu, sai chính tả, từ lóng, …
3. Các giai đoạn xử lý dữ liệu
3.1. Giai đoạn thu thập dữ liệu
Gần 130.00 bài báo điện tử được thư thập theo các chủ đề như sau:
Bảng 3.2: Số lượng bài báo được thu thập
STT


Chủ đề

Số lượng bài đã lấy

Tỷ lệ bài có thể sử dụng

1

Giáo dục

72918

97%

2

Pháp luật

53291

97%

3

Thế giới

2671

85%


4

Thể thao

955

80%

Các bài viết trên trang báo được lấy về dưới dạng file text, cấu trúc file bao gồm tác giả, nội
dung, tiêu đề, địa chỉ bài viết dưới định dạng mã JSON.

Hình 3.3: Cấu trúc 1 bài báo được lấy về dạng 1 tập tin dữ liệu
3.2. Giai đoạn tách từ sử dụng công cụ vnTokenizer
Giai đoạn tách từ của chương trình thực nghiệm được tóm tắt như sau:
-

Inphut (đầu vào): Các bài báo đã được thu thập ở bước 3.3.1

-

Output (đầu ra): Các bài báo đã được tách từ và bộ từ điển thu được sau khi tách từ

Giai đoạn tách từ sử dụng công tụ vnTokenizer của tác giả Lê Hồng Phương và các cộng sự
Giai đoạn tách từ, luận văn sử dụng công cụ vnTokenize của tác giả Lê Hồng Phương và các cộng
sự, công cụ tách từ này có độ chính xác gần 97%, là một trong những công cụ tách từ tiếng Việt tốt nhất
hiện nay.
Đối với việc xử lý văn bản, bước xử lý ngôn ngữ tự nhiên là quan trọng nhất, quyết định độ chính
xác của bài thực nghiệm. Giai đoạn tách từ thực hiện qua các bước sau:



Tách các danh từ riêng, các cụm từ có quy tắc thông thường: Trong văn bản, các danh từ riêng
như: Tên người, địa danh,…Các cụm từ có quy tắc chỉ thời gian, ngày tháng năm… được tách ra
trước.


13


So khớp cực đại: Mục đích của bước này là tìm cụm từ dài nhất. Đối với mỗi câu trong văn bản,
thực hiện so khớp cực đại với bộ từ điển đã được tách trước đó của vnTokenizer để tìm ra cụm từ
có nghĩa dài nhất.

Ví dụ: Tôi học công nghệ thông tin.
 Cách tách 1: Tôi_học_công_nghệ_thông_tin
 Cách tách 2: Tôi_học_công_nghệ thông_tin
 Cách tách 3: Tôi_học_công nghệ thông tin
Cách tách thứ 3 trong ví dụ trên được chọn vì tạo ra được cụm từ dài hơn.
Kết quả thu được sau giai đoạn tách từ:
Bảng 3.3: Kết quả thu được sau giai đoạn tách từ
Tổng số lượng từ

Số từ trong bộ từ điển

Thời gian tách từ

107.265.107

138.437


~ 9600s

Mã chương trình sử dụng công cụ vnTokenize tách từ được thể hiện như bên dưới:

Hình 3.6: Mã chương trình sử dụng công vụ vnTokenize
3.3.

Biểu diễn vector sử dụng công cụ Word2vec

Giai đoạn biểu diễn vector sử dụng công vụ Word2vec có dữ liệu đầu vào và đầu ra như sau:
-

Input (đầu vào): Bộ từ điển thu được sau giai đoạn tách từ ở bước 3.3.2 được trình bầy
trong luận văn.

-

Output (đầu ra): Vector đặc trưng của từ, vector đặc trưng của câu.

Giai đoạn biểu diễn vevtor đặc trưng được chia làm 2 giai đoạn: Biểu diễn từ thành vector đặc
trưng và biểu diễn câu bình luận thành vector đặc trưng.
3.3.1. Biểu diễn từ thành vector đặc trưng
Bước tiếp theo của bài thực nghiệm là thực hiện biểu diễn từ thành các vector. Bài thực nghiệm
sử dụng thuật toán đã được giới thiệu ở phần 2.6: “Biểu diễn từ thành Vector đặc trưng sử dụng
Word2vec” của chương 2.
-

Input (đầu vào): Bộ từ điển thu được ở giai đoạn tách từ.

-


Output (đầu ra): Bộ vector từ.

Các bước thực hiện biểu diễn vector đặc trưng của từ được cụ thể hóa như hình bên dưới:


14

Hình 3.7: Quy trình biểu diễn từ thành vector đặc trưng với N=138.437
Bộ từ điển thu được ở giai đoạn tách từ với số lượng từ thu được là 138.437 từ được sử dụng làm
dữ liệu đầu vào của giai đoạn biểu diễn từ thành vector đặc trưng.
Gán N=138.437 (với 138.437 là số lượng từ của bộ từ điển), các từ trong bộ từ điển được biểu
diễn thành các one-hot vector với số chiều là [1 x N].
Word2vec tiến hành giảm số chiều của các one-hot vector bằng cách lấy tích của phép nhân ma
trận one-hot vector với ma trận trọng số có kích thước [N x 200].
[1 x N] x [N x 200] = [1 x 200]
Kết quả phép nhân thu được ma trận mới với kích thước: [1 x 200]. Trong đó các giá trị của ma
trận trọng số [N x 200] được tìm ra bằng cách sử dụng mạng nơ-ron có kích thước cửa sổ là 5 và số node
trong lớp ẩn là 200.
3.3.2.

Biểu diễn câu bình luận thành các vector đặc trưng
-

Input (đầu vào): Các câu bình luận sau mỗi bài báo pháp luật trên báo điện từ
vnexpress.net

-

Output (đầu ra): Bộ vector biểu diễn các câu bình luận.


Các câu bình luận được biểu diễn thành các vector đặc trưng bằng cách tính vector trung bình của
các từ có trong câu bình luận dựa trên bộ từ điển vector từ thu được ở bước 3.3.4.1 được trình bày trong
luận văn


15
Các bước thực hiện của giai đoạn biểu diễn câu bình luận thành các vector đặc trưng được mô
hình hóa bằng hình bên dưới:

Hình 3.9: Các bước thực hiện biểu diễn câu thành vector đặc trưng
Gần 2430 câu bình luận trên các bài báo pháp luật của trang báo điện tử vnexpress.net được thu
thập. Các câu bình luận được gán nhãn bởi thủ công vowis 2 loại nhãn: Tích cực và tiêu cực.
Trên cơ sở là bộ vector từ, các câu bình luận đã được gán nhãn và tiền xử lý dữ liệu sẽ được biểu
diễn dưới dạng vector bằng cách tính trung bình cộng của các vector xuất hiện trong câu bình luận.
Vector của các câu bình luận cũng có số chiều là [1 x 200].
Ngoài ra, trong nội dung của các bài báo làm dữ liệu đầu vào với các từ viết tắt có diễn giải, khi
người dùng nhập bình luận có chứa từ viết tắt đó thì chương trình thực nghiệm sẽ hiểu được nghĩa của từ
viết tắt đó.
Ví dụ: Trong bài báo đầu vào có từ “THCS” là từ viết tắt của từ “Trung học cơ sở”. Cách viết
trong một bài báo thường là: “trung học cơ sở (THCS)”. Khi người dùng nhập bình luận có từ “THCS”,
chương trình thực nghiệm tự động hiểu từ “THCS” là viết tắt của cụm từ “Trung học cơ sở”.
3.3.3. Phân loại cảm xúc người dùng sử dụng Máy hỗ trợ vector
Thực hiện huấn luyện dữ liệu bằng công tụ SVM với đầu vào là bộ vector đặc trưng của câu bình
luận thu được ở bước 3.3.4.2 được trình bầy trong luận văn.
-

Input (đầu vào): Các câu bình luận chưa được gán nhãn.

-


Output (đầu ra): Các câu bình luận được gán nhãn.

Quá trình huấn luyện dữ liệu và kiểm thử chương trình được mô hình hóa bằng hình như sau:
Bài luận sử dụng SVM tuyến tính để phân loại các câu bình luận với các tham số : 'C': 0.1,
'kernel': 'linear'.


16

Hình 3.13: Huấn luyện và kiểm thử gán nhãn dữ liệu
Bộ vector của gần 2430 câu bình luận về chuyên mục pháp luật trên trang báo điện tử vnexpress
được sử dụng làm dữ liệu huyến luyện và kiểm thử của giai đoạn gán nhán phân loại cảm xúc người dùng.
Chương trình thực nghiệm thực hiện huấn luyện và kiểm thử bằng phương pháp xác thực chéo
(cross validation). Các câu bình luận sẽ được chia làm 10 phần dữ liệu. Thực hiện tuần tự mang 9 phần dữ
liệu đi gán nhãn thủ công làm dữ liệu huấn luyện và 1 phần còn lại sử dụng là dữ liệu kiểm thử. Dữ liệu
test được gán nhãn dựa vào phương pháp so sánh vector. Vector của dữ liệu kiểm thử gần với vector nào
đã được gán nhãn nhất thì nhãn của vector đó sẽ được gán cho vector của dữ liệu kiểm thử. Do đó có thể
xếp dữ liệu test vào phân lớp tương ứng với nhãn được gán.
Giai đoạn kiểm thử dừng lại khi các phần dữ liệu đầu vào đều được kiểm thử một lần. Tỷ lệ gãn
nhãn chính xác của thuật toàn được tính bằng cách lấy trung bình các tỷ lệ gán nhãn chính xác của các lần
kiểm thử.
4.

Giao diện người dùng
Giao diện người dùng thể hiện 2 chức năng chính:
-

Gán nhãn dữ liệu cho cầu bình luận bất kỳ được nhập từ người dùng.


-

Gán nhãn và tính tỉ lệ các cầu bình luận dưới một bài báo pháp luật của trang vnexpress
bằng cách nhập địa chỉ của bài báo điện tử.

Giao diện người dùng được thiết kế bằng ngôn ngữ HTML và chạy bằng trình duyệt web.


17

Hình 3.16: Các chức năng của ứng dụng được thực hiện bằng các thẻ HTML
Giao diện người dùng có hai chức năng chính:
- Chức năng thứ nhất: Phân loại (gán nhãn) cảm xúc cho câu bình luận được nhập trực tiếp trên
ứng dụng. Sau khi nhập câu bình luận, người dùng chọn chức năng “Lấy kết quả” để xem nhãn cảm
xúc được gán cho câu bình luận. Để độ chính xác của việc gán nhãn cảm xúc cao, các câu bình luận
nhập vào nên có độ dài không quá 20 từ.
-

Hình 3.17: Câu bình luận được gán nhãn cảm xúc Tích cực


18

Hình 3.18: Câu bình luận được gán nhãn cảm xúc Tiêu cực
- Chức năng thứ hai: Nhập địa chỉ bài báo pháp luật trên trang báo điện tử vnexpress.net và chọn
chức năng “lấy kết quả” để xem kết quả phân tích. Kết quả thể hiện các nhãn cảm xúc được gán
cho các câu bình luận dưới bài báo và tỉ lệ các nhãn cảm xúc đã gán.

Hình 3.19: Chức năng gán nhãn các câu bình luận cho một bài báo
5.


Nhận xét và đánh giá kết quả
Qua quá trình thực nghiệm, kết quả ghi nhận được tỷ lệ phân loại (gán nhãn) chính xác là ~75%.
Các nguyên nhân ảnh hưởng tới độ chính xác của bài thực nghiệm có thể kể đến như:
- Số lượng bình luận được gán nhãn còn ít, vì không phải bài báo nào cũng có bình luận, và số
lượng bình luận có nội dung trùng nhau là khá nhiều. Ví dụ như bình luận “May quá, em ấy đã đủ
18 tuổi” được lặp lại khá nhiều lần.
- Quá trình gán nhãn các bình luận được thực hiện thủ công bởi con người nên kết quả của việc gán
nhãn bị ảnh hưởng bởi cảm xúc, quan điểm của người gán nhãn tại các thời điểm gán nhãn khác
nhau.


19
6.

Kết luận chương
Chương 3 là chương quan trọng nhất của bài luận, chương này mô tả chi tiết các bước giải quyết

vấn đề của bài toán xử lý các câu bình luận dưới mỗi bài báo pháp luật của trang vnexpress.net để phân
loại cảm xúc của người đọc thành hai lớp: Tiêu cực và tích cực.


20
KẾT LUẬN
1.

Kết quả đạt được

1.1.


Về mặt lý thuyết
Luận văn tìm hiểu được kiến thức cơ bản về trí tuệ nhân tạo, đặc biệt về lĩnh vực máy học với

thuật toán phân lớp SVM.
Ngoài ra luận văn còn tìm hiểu được một số công cụ liên quan đến vấn đề xử lý ngôn ngữ tiếng
Việt đó là vnTokenize, là công cụ nổi tiếng và phổ biến cho vấn đề xử lý ngôn ngữ tiếng Việt. Tóm tắt
được các đặc trưng của ngôn ngữ tiếng Việt.
Vấn đề phân tích cảm xúc của người bình luận là vấn đề hiện nay đang được trú trọng với tất cả
các ngành trong xã hội, nhất là thời đại công nghệ.
1.2.

Về mặt thực tiễn
Luận văn đã nêu được giải pháp kỹ thuật xây dựng ứng dụng xử lý các câu bình luận nhằm mục

đích phân loại cảm xúc các câu bình luận của người dùng.
Việc kết hợp lý thuyết xử lý các câu bình luận và phân loại cảm xúc người dùng giúp giảm chi
phí về tài chính cũng như nguồn lực cho các chương trình khảo sát. Đưa ra kết quả đánh giá tương đối
chính xác trong thời gian ngắn, đáp ứng nhu cầu đối với các ngành nghề, đặc biệt là ngành nghề kinh
doanh, giải trí.
2.

Hạn chế
Giao diện người sử dụng còn đơn giản.
Lượng dữ liệu bình luận được gán nhãn thủ công chưa nhiều, ảnh hưởng đến tỷ lệ chính xác của

bài thực nghiệm.
Phần xử lý các câu bình luận chưa linh hoạt đối với các loại văn bản, bài thực nghiệm mới chỉ
thực hiện xử lý văn bản tiếng Việt là các bài báo điện tử đã được chuẩn hóa bởi các cơ quan báo chí.
Chức năng phân tích bài báo chưa được áp dụng cho các bài báo điện tử trên các trang báo khác
nhau.

Độ chính xác của việc phân loại các câu bình luận còn phụ thuộc vào độ dài của các câu bình
luận. Tỷ lệ chính xác của chương trình thực nghiệm cao với các câu bình luận có độ dài dưới 20 từ. Với
các câu có độ dài trên 20 từ, vector biểu diễn của câu bình luận này có thể rơi vào những vùng dữ liệu mà
SVM chưa được huấn luyện nên có thể làm giảm tỷ lệ chính xác của chương trình thực nghiệm.
3. Hướng phát triển
Xây dựng giao diện thân thiện, trực quan hơn.
Có thể thực hiện xử lý các loại văn bản tiếng Việt, bao gồm các văn bản chưa được chuẩn hóa.
Thu thập và gán nhãn số lượng lớn các bình luận làm tăng tỉ lệ chính xác của ứng dụng.
Mở rộng vấn đề phân loại các bình luận ở các lĩnh vực khác của đời sống.


21
Thực hiện phân loại cảm xúc các bình luận trực tuyến cho tất cả các bài báo điện tử bao gồm các
câu bình luận có độ dài trên 20 từ.


22
DANH MỤC CÁC TÀI LIỆU THAM KHẢO

[1].

PGS.TS. Lê Hoàng Thái, Trường Đại học Khoa Học Tự Nhiên, ĐHQG TP.Hồ Chí Minh,
“Mạng nueron nhân tạo”.
Lưu Tuấn Anh, Đại học khoa học kĩ thuật Nagaoka, “Xử lý ngôn ngữ tự nhiên tiếng

[2].
Việt”.
[3].

Hoàng Phê chủ biên, “Từ điển tiếng việt”, Nxb Đà Nẵng và Trung tâm Từ điển học– Đà

Nẵng.

[4].

Nguyễn Thị Minh Huyền, Hoàng Thị Tuyền Linh, Vũ Xuân Lương, “Hướng dẫn nhận
biết đơn vị từ trong văn bản Tiếng Việt”- Báo cáo SP8.2.
Lâm Quang Tường, Phạm Thế Phi, Đỗ Đức Hào, “Tóm tắt văn bản tiếng Việt tự động với

[5].

mô hình sequence to sequence”, Trường Đại học Khoa học Tự nhiên, Đại học Quốc gia Thành
phố Hồ Chí Minh, 20/10/2017
IlyaSutskever, OriolVinyals, QuocV. Le, “Sequence to Sequence Learning with Neural

[6].

Networks”, 14/12/2014.
[7].

Jonas Gehring, Michael Auli, David Grangier, Denis Yarats, Yann N.Dauphin,
“Convolutional Sequence to Sequence Learning”. 08/05/2017.
Le Hong Phuong, Nguyen Thi Minh Huyen, Azim Roussanaly, Ho Tuong Vinh, “A

[8].

Hybrid Approach to Word Segmentation of Vietnamese Texts”, 27/10/2008.
[9].

/>truy cập ngày 09/10/2017.


[10].

/>
ung-dung-cua-tri-tue-nhan-tao-trong-t/1321, truy cập ngày 09/10/2017.
[11].

truy cập ngày 20/11/2017.

[12].

/>
tich-sentiment-cam-xuc-cua-cac-Social-Listening-Tool, truy cập ngày 20/12/2017.
[13].

/>
ung-dung-cua-tri-tue-nhan-tao-trong-t/1321, truy cập ngày 20/12/2017.
[14].

truy cập ngày

20/12/2017.
[15].

/>
[16].

/>
ngày 20/12/2017.

truy


cập


23
[17].

truy cập

ngày 25/12/2017.
[18].

a/p/xu-ly-ngon-ngu-tu-nhien-voi-python-p1-GrLZDbXw5k0, truy cập

ngày 27/12/2017.
[19].

/>
%AF_t%E1%BB%B1_nhi%C3%AAn, truy cập ngày 27/12/2017.
[20].

, truy cập

ngày 20/1/2018.
[21].

/>
truy cập ngày 20/1/2018.
[22].


truy

cập ngày 25/1/2018.
[23].

truy cập ngày 28/1/2018.

[24].

truy cập ngày

28/1/2018.
[25].

/>

×