Tải bản đầy đủ (.docx) (58 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

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.76 MB, 58 trang )

1

LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của riêng tôi.
Tất cả các số liệu và kết quả luận văn đều trung thực và chưa từng có ai công
bố trong các nghiên cứu khác.

Tp. Hồ Chí Minh, ngày 22 tháng 7 năm 2018
Học viên thực hiện luận văn

Lưu Thị Bích Diệp


2

LỜI CẢM ƠN
Đề hoàn thành luận văn này, ngoài những nỗ lực nghiên cứu của bản thân, tôi
xin chân thành cảm ơn TS. Nguyễn Phương, người hướng dẫn khoa học, đã định
hướng đi cho đề tài của tôi. Mặc dù không thể đồng hành cùng thầy đi hết khóa
luận, nhưng những chỉ bảo, góp ý, động viên của thầy luôn là nguồn cổ vũ tinh thần
để tôi hoàn thành đề tài.
Tôi cũng xin gửi lời cảm ơn đến quý Thầy/Cô tại Học viện Công nghệ Bưu
chính Viễn thông cơ sở Hồ Chí Minh đã hết lòng truyền đạt kiến thức trong thời
gian học tập tại Học viện.
Cuối cùng, tôi xin cảm ơn đến gia đình, bạn bè và đồng nghiệp, những người
luôn cổ vũ tinh thần và tạo điều kiện thuận lợi để tôi hoàn thành luận văn này.

Tp. Hồ Chí Minh, ngày 22 tháng 7 năm 2018
Học viên thực hiện luận văn

Lưu Thị Bích Diệp




3

MỤC LỤC
LỜI CAM ĐOAN.....................................................................................................i
LỜI CẢM ƠN..........................................................................................................ii
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT.........................................v
DANH SÁCH BẢNG..............................................................................................vi
DANH SÁCH HÌNH.............................................................................................vii
CHƯƠNG 1: GIỚI THIỆU CHUNG.....................................................................4
1.1. Giới thiệu chương...........................................................................................4
1.2. Đặt vấn đề......................................................................................................5
1.2.1. Mục tiêu...............................................................................................5
1.2.2. Đối tượng nghiên cứu..........................................................................5
1.2.3. Phạm vi nghiên cứu.............................................................................5
1.3. Kết luận chương.............................................................................................6
CHƯƠNG 2: NGHIÊN CỨU XỬ LÝ NGÔN NGỮ TỰ NHIÊN SỬ DỤNG
vnTOKENIZER, WORD2VEC VÀ SUPPORT VECTOR MACHINE..............7
2.1. Các khái niệm cơ bản.....................................................................................7
2.2. Phân loại Máy học..........................................................................................8
2.3. Tổng quan về xử lý ngôn ngữ tự nhiên.........................................................10
2.4. Đặc trưng của ngôn ngữ tiếng Việt..............................................................11
2.5. Công cụ tách từ vnTokenizer........................................................................12
2.6. Biểu diễn từ thành Vector đặc trưng sử dụng Word2vec...............................18
2.7. Cảm xúc người dùng và máy hỗ trợ vector (Support Vector Machine).......20
2.7.1. Cảm xúc người dùng (Sentiment).........................................................20
2.7.2. Máy hỗ trợ vector (Support Vector Machine).....................................21
2.8. Kết luận chương...........................................................................................26
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.........................................................................................................27
3.1. Phát biểu bài toán.........................................................................................27
3.2. Mô hình ứng dụng xử lý văn bản tiếng Việt.................................................28
3.3. Các giai đoạn xử lý dữ liệu...........................................................................29
3.3.1. Giai đoạn thu thập dữ liệu.....................................................................29
3.3.2. Giai đoạn tách từ sử dụng công cụ vnTokenizer...................................31
3.3.4. Biểu diễn vector sử dụng công cụ Word2vec.....................................34


4

3.3.5. Phân loại cảm xúc người dùng sử dụng Máy hỗ trợ vector (Support
Vector Machine)...............................................................................................39
3.4. Giao diện người dùng...................................................................................42
3.5. Nhận xét và đánh giá kết quả........................................................................44
3.6. Kết luận chương...........................................................................................45
KẾT LUẬN............................................................................................................46
1. Kết quả đạt được...........................................................................................46
1.1.
Về mặt lý thuyết.................................................................................46
1.2.
Về mặt thực tiễn.................................................................................46
2. Hạn chế.........................................................................................................46
3. Hướng phát triển...........................................................................................47
DANH MỤC CÁC TÀI LIỆU THAM KHẢO....................................................48


5

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


Viết tắt
AI
SVM
W
NLP

{xi}
P(s)

Tiếng Anh
Artificial intelligence

Support Vector Machine
Weight
Natural Language Processing
Product
The set whose elements are xi
Probability

Tiếng Việt
Trí tuệ nhân tạo
Máy hỗ trợ vector
Trọng số
Xử lý ngôn ngữ tự nhiên
Tích đại số.
Tập gồm các phần tử là xi
Xác suất



6

DANH SÁCH BẢNG

Bảng 2.1: Bảng thống kê chiều dài và số lượng từ được đo bằng âm tiết
Bảng 3.1: Môi trường thực hiện thực nghiệm
Bảng 3.2: Số lượng bài báo được thu thập
Bảng 3.3: Kết quả thu được sau giai đoạn tách từ
Bảng 1.4: Tỉ lệ gán nhãn chính xác bằng các thuật toán khác nhau

11
29
30
33
42


7

DANH SÁCH HÌNH
Hình 2.1: Quy trình tách từ theo phương pháp so khớp cực đại
Hình 2.2: Biểu đồ biểu diễn của một cụm từ
Hình 2.3: Xây dựng biểu đồ cho cụm từ S1S2…Sn
Hình 2.4: Ước tính giá trị của
Hình 2.5: Biểu diễn từ dưới dạng one-hot-vector
Hình 2.6: Vector của từ được biểu diễn bằng ma trận trọng số
Hình 2.7: Các siêu phẳng phân tách hai lớp dữ liệu
Hình 2.8: Biểu diễn siêu phẳng lề cực đại cho bộ phân lớp
Hình 3.1: Mô hình ứng dụng xử lý văn bản Tiếng Việt
Hình 3.2: Bài báo trên website vnexpress.net

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
Hình 3.4: Vòng lặp tách và gom 100 tệp tin thành 1 tệp tin
Hình 3.5: Mã chương trình gom tệp tin
Hình 3.6: Mã chương trình sử dụng công vụ vnTokenize
Hình 3.7: Quy trình biểu diễn từ thành vector đặc trưng với N=138.437
Hình 3.8: Tìm từ gần nhau với từ “sản phẩm”
Hình 3.9: Các bước thực hiện biểu diễn câu thành vector
Hình 3.10: Vector biểu diễn của bình luận “Tòa chuẩn xác”
Hình 3.11: Biểu diễn các bình luận đã được gán nhãn dưới dạng vector
Hình 3.12: Mã chương trình thực hiện chức năng biểu diễn câu thành vector
Hình 3.13: Huấn luyện và kiểm thử gán nhãn dữ liệu
Hình 3.14: Các bình luận được gán nhãn và tiến hành huấn luyện dữ liệu
Hình 3.15: Mã chương trình gán nhãn cảm xúc bằng các thuật toán khác
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
Hình 3.17: Câu bình luận được gán nhãn cảm xúc Tích cực
Hình 3.18: Câu bình luận được gán nhãn cảm xúc Tiêu cực
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

15
15
16
18
19
20
22
24
28
31
31
33

33
34
35
36
37
38
38
39
40
41
41
41
43
43
44


1

MỞ ĐẦU
Ngày nay, dịch vụ xã hội phát triển ngày càng cao cả về số lượng và chất
lượng. Các nhà cung cấp các dịch vụ, sản phẩm cho người sử dụng luôn hướng tới
việc thỏa mãn người dùng ở mức cao nhất. Vì vậy việc phân tích các phản hồi, bình
luận, quan điểm của người dùng đối với sản phẩm hoặc dịch vụ nào đó là rất quan
trọng với nhà cung cấp. Chính vì vậy, việc đo lường cảm xúc người tiêu dùng góp
phần quan trọng trong chiến lược quản lý và xây dựng thương hiệ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á.
Mạng xã hội phát triển rộng khắp, các thông tin về sản phẩm, dịch vụ được
nhiều người biết đến hơn. Các phản hồi cũng được cập nhật, chia sẻ liên tục từ
người dùng. Thông qua đây các doanh nghiệp tổ chức có thể trực tiếp tiếp cận với
người dùng một cách nhanh chóng và chính xác. Vì vậy việc phân tích các phản hồi
trên một cách tự động, nhanh chóng, trực tiếp góp phần tiết kiệm chi phí, nguồn lực
cho các doanh nghiệp đồng thời góp phần quan trọng trong việc định hướng và xây
dựng các chiến lược.
Để 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


2

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.
Thuật toán Support Vector Machines–SVM (Máy hỗ trợ Vector) được
Corters và Vapnik giới thiệu vào năm 1995. SVM rất hiệu quả để giải quyết các bài
toán với dữ liệu có số chiều lớn như các vector biểu diễn văn bản. Thuật toán SVM
ban đầu chỉ được thiết kế để giải quyết bài toán phân lớp nhị phân tức là số lớp hạn
chế là hai lớp. Hiện nay, SVM được đánh giá là bộ phân lớp chính xác nhất cho bài
toán phân lớp văn bản với tốc độ phân lớp rất nhanh và hiệu quả.
Khoa học kỹ thuật phát triền, khái niệm trí tuệ nhân tạo đã không còn lạ lẫm
với người dùng, các công trình nghiên cứu, các sản phẩm được cho ra đời và cải
tiến liên tục. Về lĩnh vực nghiên cứu liên quan đến ngôn ngữ tiếng Việt như: Nhận
dạng giọng nói, chữ viết tay, phân loại cảm xúc người tiêu dùng, …có thể kể ra một
số công trình nghiên cứu như sau:
-

“Bài toán thêm dấu cho tiếng Việt” của Lưu Tuấn Anh của Đại học

khoa học kĩ thuật Nagaoka. Nghiên cứu của tác giả nhằm xây dựng 1 một phần
mềm thêm dấu cho tiếng Việt dựa vào từ và âm tiết. Tác giả đề xuất phương pháp
mới tiến hành thêm dấu ở từng âm tiết một cách độc lập. Độ chính xác của phương
pháp này lên đến 94.7%.
Luận văn “Xây dựng mô hình đối thoại cho Tiếng Việt trên miền mơ
dựa vào phương pháp học chuỗi liên tiếp – Nhữ Báo Vũ, Đại học Quốc gia Hà Nội,


3

trường Đại học Công Nghệ”. Luận văn đi xây dựng một mô hình đối thoại sử dụng

mạng nơ-ron tái phát sẽ đọc chuỗi đầu vào tuần tự tại mỗi thời điểm, và dự đoán
một chuỗi đầu ra, cũng một dấu hiệu tại một thời điểm.
“A hybrid approach to word segmentation of VietNamese Texts - Lê
Hồng Phương, Nguyễn Thị Minh Huyền, Vũ Xuân Lương, Đại học quốc gia Hà Nội
”, thuật toán trình bày phương pháp tách từ tiếng Việt với độ chính xác 97%.
Nghiên cứu của Lê Hồng Phương và các cộng sự góp phần đắc lực vào lĩnh vực
nghiên cứu liên quan đễn xử lý ngôn ngữ và văn bản tiếng Việt.
“Ứng dụng xử lý ngôn ngữ tự nhiên trong dịch máy -Tiến sĩ Nguyễn
Chí Hiếu, khoa Công nghệ Thông tin, trường Đại học Công nghiệp Tp. HCM”. Bài
báo đề xuất một mô hình nhận biết và rút trích tự động cụm danh từ song ngữ từ dữ
liệu song ngữ Anh-Việt.
Và rất nhiều các công trình nghiên cứu khác có liên quan tới vấn đề xử lý
ngôn ngữ tự nhiên Tiếng Việt.
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.
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.



4

CHƯƠNG 1: GIỚI THIỆU CHUNG
1.1.

Giới thiệu chương
Trước đây, khi xem những bộ phim khoa học viễn tưởng về robot, về các

chương trình máy tính thông minh có thể nói chuyện được với con người một cách
linh hoạt, bản thân luôn đặt ra câu hỏi: Khi nào chế tạo ra được người máy ngoài
đời sống? Nhưng trên thực tế, khoa học đã phát triển đến một điểm mà nó bắt đầu
trùng với khoa học viễn tưởng. Chúng ta đang ngày càng tiến gần hơn với những gì
người ta có xu hướng gọi là “trí tuệ nhân tạo”.
Các dấu mốc quan trọng của lịch sử phát triển “trí tuệ nhân tạo” có thể kể
đến một số sự kiện gây tiếng vang lớn như [9]:
Năm 1950 - Nhà bác học Alan Turing đã tạo ra "Turing Test (phép thử
Turing)" để xác định xem liệu một máy tính có trí thông minh thực sự hay không.
Để vượt qua bài kiểm tra đó, một máy tính phải có khả năng đánh lừa một con
người tin rằng nó cũng là con người.
Năm 1952 - Arthur Samuel đã viết ra chương trình học máy (computer
learning) đầu tiên. Chương trình này là trò chơi cờ đam (Cờ đam là một nhóm các
trò chơi chiến lược trên bàn đối kháng cho hai người), và hãng máy tính IBM đã cải
tiến trò chơi này để nó có thể tự học và tổ chức những nước đi trong chiến lược để
giành chiến thắng.
Năm 1957 - Frank Rosenblatt đã thiết kế mạng nơron (neural network) đầu
tiên cho máy tính, trong đó mô phỏng quá trình suy nghĩ của bộ não con người.
Năm 1997, sau trận đấu lịch sử giữa kiện tướng cờ vua Garry Kasparov với
máy tính DeepBlue của IBM, niềm hy vọng về trí tuệ nhân tạo mới được hồi sinh.
Năm 2015, sự phát triển của nền tảng điện toán đám mây với chi phí ở mức
chấp nhận được, cùng những bộ dữ liệu phong phú, các công cụ phát triển phần

mềm miễn phí hoặc giá rẻ đã hỗ trợ rất nhiều cho các nhà nghiên cứu.
Năm 2016 - Thuật toán trí tuệ nhân tạo của Google đã đánh bại nhà vô địch
trò chơi Cờ Vây, được cho là trò chơi phức tạp nhất thế giới (khó hơn trò chơi cờ


5

vua rất nhiều). Thuật toán AlphaGo được phát triển bởi Google DeepMind đã giành
chiến thắng 4/5 trước nhà vô địch Cờ Vây.
Ngoài ra có rất nhiều ứng dụng của trí tuệ nhân tạo trong đời sống mà chúng
ta tiếp xúc hàng ngày như: trả lời email tự động, xe ô tô tự động không người lái,
các chương trình nhận dạng, … Điều này cho thấy Trí tuệ nhân tạo đang trở thành
một xu hướng phát triển mạnh mẽ.

1.2. Đặt vấn đề
1.2.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.

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

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


6

1.3. Kết luận chương
Đây là chương mở đầu của luận văn, giới thiệu một cách ngắn gọn về lịch xử
phát triển của ngành khoa học trí tuệ nhân tạo. Trí tuệ nhân tạo được ứng dụng trong
các lĩnh vực khác nhau, từ việc phục vụ đời sống hàng ngày của con người cho đến
giáo dục, tài chính ngân hàng, y tế…Qua đó có thể thấy trí tuệ nhân tạo đang ngày
càng phát triển lớn mạnh và có tầm quan trọng của trí tuệ nhân tạo nói chung và
máy học nói riêng đối với đời sống công nghệ của con người. Ngoài ra, chương 1
chỉ ra mục điêu cần đạt được của luận văn cần được thực hiện trong chương trình
thực nghiệm.


7

CHƯƠNG 2: NGHIÊN CỨU XỬ LÝ NGÔN NGỮ TỰ NHIÊN
SỬ DỤNG vnTOKENIZER, WORD2VEC VÀ SUPPORT
VECTOR MACHINE
2.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.
Để đơn giản có thể định nghĩa trí tuệ nhân tạo là một ngành khoa học máy

tính được xây dựng trên một nền tảng lý thuyết vững chắc và có thể ứng dụng trong
việc tự động hóa các hành vi thông minh của máy tính. Giúp máy tính có được
những trí tuệ của con người như: Biết suy nghĩ và lập luận để giải quyết vấn đề, biết
giao tiếp do hiểu ngôn ngữ, tiếng nói, biết học và tự thích nghi.
- 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


8

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

Phân loại Máy học
Trí tuệ nhân tạo có thể được hiểu đơn giản là được cấu thành từ các lớp xếp

chồng lên nhau, trong đó mạng thần kinh nhân tạo nằm ở dưới đáy, máy học nằm ở
tầng tiếp theo và Học sâu nằm ở tầng trên cùng.
Máy học là một thành phần trong hướng tiếp cận hành động như người, và
hướng tiếp cận này lại thuộc bốn hướng tiếp cận của AI. Để đạt được mục tiêu này,
các nhà khoa học đã nghiên cứu ra nhiều giải thuật và các hướng giải quyết khác
nhau [17]. 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. Dễ nhận ra, học có
giám sát tức là máy học dựa vào sự trợ giúp của con người, hay nói cách khác
con người dạy cho máy học và giá trị đầu ra mong muốn được định trước bởi

con người. Tập dữ liệu huấn luyện hoàn toàn được gán nhãn dựa vào con
người. Tập càng nhỏ thì máy tính học càng ít.
- 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 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. Trái ngược với Học có giám sát, tập dữ liệu
huấn luyện của Học không giám sát không do con người gán nhãn, máy tính
sẽ phải tự học hoàn toàn. Có thể nói, học Không giám sát thì giá trị đầu ra sẽ
phụ thuộc vào thuật toán Học không giám sát.


9

- 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). Nhiều
nhà nghiên cứu nhận thấy dữ liệu không gán nhãn, khi được sử dụng kết hợp
với một chút dữ liệu có gán nhãn, có thể cải thiện đáng kể độ chính xác. Để
gán nhãn dữ liệu cho một bài toán máy học thường đòi hỏi một chuyên viên có
kĩ năng để phân loại bằng tay các ví dụ huấn luyện. Chi phí cho quy trình này
khiến tập dữ liệu được gán nhãn hoàn toàn trở nên không khả thi, trong khi dữ
liệu không gán nhãn thường tương đối rẻ tiền. Trong tình huống đó, học nửa
giám sát có giá trị thực tiễn lớn lao.


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, Multilayer Perceptron, Back-Propagation.


10

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

2.3. Tổng quan về xử lý ngôn ngữ tự nhiên
Ngôn ngữ tự nhiên [18] là ngôn ngữ mà các loài động vật sáng tạo ra để giao
tiếp với đồng loại. Con người cũng là một loại động vật sử dụng ngôn ngữ để giao
tiếp. Thế giới ngôn ngữ của con người rất phong phú, theo thống kê của các nhà
khoa học thì có tới hàng ngàn ngôn ngữ tồn tại trên trái đất. 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ữ tự nhiên (natural language processing – NLP) [19] 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ì nó liên quan đến việc phải hiểu ý nghĩa ngôn ngữ - đây được coi là công cụ hoàn
hảo nhất của tư duy và giao tiếp.
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ó. Với sự ra đời và phổ biến của Internet, của sách báo điện tử, của máy tính
cá nhân, của viễn thông, của thiết bị âm thanh,...ai cũng có thể tạo ra dữ liệu văn
bản hay tiếng nói. Vấn đề là làm sao xử lý chúng, chuyển chúng từ các dạng chưa
hiểu đuợc thành các dạng có thể hiểu và giải thích đuợc, từ đó có thể tìm ra thông
tin, tri thức hữu ích cho mình.
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


11

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

2.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.
Dưới đây là bảng thống kê chiều dài và số lượng từ được đo bằng âm tiết:
Bảng 2.1: Bảng thống kê chiều dài và số lượng từ được đo bằng âm tiết

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


12

-

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

2.5.

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
Với đầu vào là các văn bản tiếng Việt, sau khi sử dụng công cụ vnTokenizer

để tách từ bằng phương pháp so khớp cực đại và xử lý nhập nhằng ta sẽ thu được
các văn bản đã được tách từ, từ đó thu được bộ từ điển từ.
Tách từ là một quá trình xử lý nhằm mục đích xác định ranh giới của các từ
trong câu văn, cũng có thể hiểu đơn giản rằng tách từ là quá trình xác định các từ
đơn, từ ghép… có trong câu. Đối với xử lý ngôn ngữ, để có thể xác định cấu trúc

ngữ pháp của câu, xác định từ loại của một từ trong câu, yêu cầu nhất thiết đặt ra là
phải xác định được đâu là từ trong câu. Vấn đề này tưởng chừng đơn giản với con
người nhưng đối với máy tính, đây là bài toán rất khó giải quyết.
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:


13

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.
Ví dụ 3: "Ăn cơm không được uống rượu." có thể được tách từ như sau:
Ăn / cơm / không / được / uống / rượu.
Ăn / cơm không / được / uống / rượu.
Vì đặc điểm này, bài toán tách từ trở thành 1 bài toán tiền đề cho các ứng
dụng xử lý ngôn ngữ tự nhiên khác như phân loại văn bản, tóm tắt văn bản, máy
dịch tự động,…
Với ngôn ngữ Tiếng Việt, thuộc loại hình đơn lập, mang đặc điểm là từ Tiếng
Việt không biến đổi hình thái, ranh giới từ không được xác định mặc nhiên bằng
khoảng trắng. Tiếng Việt có đặc điểm là ý nghĩa ngữ pháp nằm ở ngoài từ, phương
thức ngữ pháp chủ yếu là trật tự từ và từ hư. Cho nên có trường hợp một câu có thể
có nhiều ngữ nghĩa khác nhau tuỳ vào cách ta tách từ như thế nào, gây nhập nhằng
về ngữ nghĩa của câu.
Sự nhập nhằng trong Tiếng Việt có thể chia thành 2 dạng như sau:



Nhập nhằng chồng chéo: Chuỗi “abc” được gọi là nhập nhằng chồng

chéo nếu như từ “ab”, “bc” đều xuất hiện trong từ điển tiếng Việt.
Ví dụ: “Ông già đi nhanh quá” thì chuỗi “ông già đi” bị nhập nhằng chồng
chéo vì các từ “ông già” và “già đi” đều có trong từ điển.

Nhập nhằng kết hợp: Chuỗi “abc” được gọi là nhập nhằng kết hợp nếu
như từ “a”, “b”,”ab” đều xuất hiện trong từ điển tiếng Việt.
Ví dụ: “Bàn tay ta làm lên tất cả” thì chuỗi “bàn tay” bị nhập nhằng kết hợp,
do các từ “bàn”, “tay”, “bàn tay” đều có trong từ điển.


14

Điều đó cho thấy, công việc tách từ trong Tiếng Việt không phải là chuyện dễ
dàng, vì nó tạo ra các câu có ngữ nghĩa hoàn toàn khác nhau, gây ảnh hưởng đến
chất lượng huấn luyện mô hình học.
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.
Các tính năng chính của vnTokenizer:
- Tách các đơn vị từ vựng trong từ điển kèm thông tin từ loại.
- Tách các dấu chấm câu, các ký hiệu chữ và số.
- Tách các tên riêng, ngày tháng, các số (nguyên, thập phân).
Với đầu vào là các câu văn hay các văn bản, sau bước tách từ bằng phương
pháp so khớp cực đại sẽ thu được các đơn vị từ.

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.2: Quy trình tách từ theo phương pháp so khớp cực đại

Tuy nhiên, phương pháp này đôi khi dẫn đến tách từ sai do một số lượng lớn
các từ chồng chéo trong tiếng Việt. Hầu hết các từ ghép của tiếng Việt bao gồm hai


15

âm tiết, trường hợp thường xuyên nhất của sự nhập nhằng liên quan đến ba âm tiết
liên tiếp [8].
Xét chuỗi các âm tiết S1S2S3…Sn được biểu diễn bằng biểu đồ bên dưới,
trong đó cả hai phân đoạn (SiSi+1) và (Si+1Si+2) đều có thể đúng. Đây được gọi là
nhập nhằng chồng lên nhau và chuỗi SiSi+1Si+2 là chuỗi không rõ ràng trùng lặp.

Hình 2.2: Biểu đồ biểu diễn của một cụm từ

Cụm từ này được biểu diễn bằng đồ thị có hướng tuyến tính G=(V,E) với
V={vo, v1, …,vn, vn+1} như hình 2.2. Các đỉnh vo và vn+1 lần lượt là các đỉnh bắt đầu
và đỉnh cuối của đồ thị, n đỉnh từ v o đến vn được liên kết với n âm tiết của cụm từ,
cung (vi, vj) nếu Si+1, Si+2, …Sj kết hợp thành một từ với icả các từ có thể được tách bằng cách liệt kê các đường đi ngắn nhất trên đồ thị từ
đỉnh bắt đầu đến đỉnh kết thúc:

Hình 2.3: Xây dựng biểu đồ cho cụm từ S1S2…Sn

Lê Hồng Phương và các cộng sự sử dụng mô hình ngôn ngữ bigram được tạo
ra bởi kỹ thuật làm mịn nội suy tuyến tính.



16

Trong mô hình ngôn ngữ n-gram, xác suất của một chuỗi P(s) được biểu diễn
bởi xác suất của các từ tạo lên chuỗi, với xác suất của mỗi từ dựa trên điều kiện trên
n-1 từ cuối cùng. Chúng ta có:

Với

bao gồm các từ wi…wj, n có giá trị 2 hoặc 3 tương ứng với mô hình

bigram hoặc trigram.
Trong trường hợp của bigram n=2, để tính xác suất P(w i|wi-1) theo công thức
(1), sử dụng dữ liệu huấn luyện và ước tính tối đa (maximum likelihood) cho
P(wi|wi-1):

(2)
Với

là số lần xuất hiện chuỗi

, N là tổng số từ trong dữ liệu huấn

luyện. Dữ liệu huấn luyện càng nhỏ so với kích thước của mô hình đang được xây
dựng thì độ chính xác của ước tính tối đa càng thấp. Do đó, một loạt các kỹ thuật
làm mịn đã được phát triển để điều chỉnh ước tính khả năng tối đa để tạo ra xác suất
chính xác hơn. Kỹ thuật nội suy tuyến tính được áp dụng để làm mịn mô hình. Đây
là một kỹ thuật làm mịn đơn giản nhưng hiệu quả được sử dụng rộng rãi trong lĩnh
vực mô hình hóa ngôn ngữ. Trong phương pháp này, mô hình bigram được nội suy
với một mô hình unigram PML(wi)=c(wi)/N, mô hình này phản ánh tuần xuất số lần

xuất hiện của mỗi từ trong dữ liệu huấn luyện. Khi đó ước tính

là:

(3)
Với



.

Đối với mô hình làm mịn bigram có xác suất P(wi|(wi-1), có thể tính xác xuất
của 1 câu P(s) sử dụng công thức số (1). Với trường hợp thử nghiệm một tập hợp T
gồm n câu s1, s2, … sn, ta có xác suất của tất cả các câu trong tập hợp:

(4)


17

Chỉ số entropy Hp(T) của mô hình trên tập dữ liệu T được định nghĩa:

(5)
Với Nt là chiều dài của T đo lường bằng đơn vị từ. Entropy tỷ lệ nghịch với
xác suất trung bình mà một mô hình gán cho các câu trong dữ liệu kiểm thử, và
thường được giả định rằng hằng số entropy thấp thì hiệu suất của ứng dụng tốt hơn.
Bắt đầu từ một phần của tập huấn luyện được gọi là dữ liệu “xác thực”, ta
định nghĩa C(wi-1,wi) là số lần bigram (wi-1,wi) được tìm thấy trong bộ dữ liệu “xác
thực”. Chúng ta cần chọn


,

để tối đa hóa:

(6)
Với
Các giá trị




.
có thể được ước tính bằng một quá trình lặp đi lặp lại

được đưa ra trong Thuật toán 2. Khi tất cả các tham số của mô hình bigram đã được
ước tính, xác suất được làm mịn của các bigram có thể được tính toán dễ dàng bằng
(2). Những kết quả này được sử dụng tìm ra cụm từ có thể được tách. Ví dụ, với
chuỗi S, các xác suất có thể ước tính P(s) được ước tính bằng công thức (1). Trường
hợp tách từ nào có xác suất lớn nhất sẽ được chọn.

Hình 2.4: Ước tính giá trị của


18

2.6.

Biểu diễn từ thành Vector đặc trưng sử dụng Word2vec
Sử dụng bộ từ điển làm dữ liệu đầu vào, sau khi thực hiện chuyển đổi từ


thành vector bằng công cụ Word2vec, thu được đầu ra là bộ các vector từ, các
vevtor này được gọi là vector đặc trưng của từ. Với bộ các vector từ có thể thực
hiện được nhiều ứng dụng sau giai đoạn này, các ứng dụng có thể thực hiện như:
Tìm từ gần nhau, tìm vector đặc trưng của câu.
Đố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.
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

Tuy nhiên phương pháp này có nhiều nhược điểm:
-

Độ dài của một vector là quá lớn (bằng độ dài của từ điển, có thể lên

đến cả triệu),
Không xác định được sự tương quan giữa các từ vì tích vô hướng của
hai từ nào cũng bằng 0.
Không thu được nhiều ý nghĩa trong việc so sánh các từ với nhau
ngoại trừ so sánh bằng, các từ có ý nghĩa hơn không được nhấn mạnh.



×