Qua tìm hiểu và nghiên cứu tôi xin thựchiện một đề tài còn khá mới và thú vị, mang tính ứng dụng vào đời sống là: Ứng Dụng Hệ Thống Học Sâu Tự Động Thêm Dấu Cho Tiếng Việt với các công n
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
-HUỲNH DƯƠNG KHANG
ỨNG DỤNG HỆ THỐNG HỌC SÂU
TỰ ĐỘNG THÊM DẤU CHO TIẾNG VIỆT
ĐỀ CƯƠNG LUẬN VĂN THẠC SĨ
Trang 2ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
Trang 3MỤC LỤC
1 Giới Thiệu Đề Tài 1
1.1 Tính Cấp Thiết Và Lý Do Chọn Đề Tài 1
1.2 Các Công Trình Liên Quan 2
2 Mục Tiêu, Giới Hạn Và Đối Tượng Nghiên Cứu 1
2.1 Mục Tiêu Nghiên Cứu 1
2.2 Đối Tượng Nghiên Cứu 2
2.3 Phạm Vi Nghiên Cứu 2
3 Cơ Sở Lý Thuyết Và Phương Pháp Nghiên Cứu 4
3.1 Cơ Sở Lý Thuyết 4
3.2 Chuẩn Bị Nghiên Cứu 6
3.3 Phương Pháp Thiết Kế Nghiên Cứu 7
3.3.1 Phương Pháp Thu Thập Và Phân Tích Số Liệu 7
3.3.2 Phương Pháp Xử Lý Tiếng Việt 7
3.3.3 Phương Pháp Xây Dựng Mô Hình Học Sâu 7
3.3.4 Đánh Giá Kết Quả 8
4 Nội Dung Dự Kiến Của Luận Văn 9
5 Kế Hoạch Triển Khai 11
6 Kết Luận 13
7 Tài Liệu Tham Khảo 14
Trang 41. GIỚI THIỆU ĐỀ TÀI
1.1.TÍNH CẤP THIẾT VÀ LÝ DO CHỌN ĐỀ TÀI
Ngày nay, trí thông minh nhân tạo là một lĩnh vực phát triển rất mạnh vớinhiều ứng dụng thực tế và các chủ đề nghiên cứu rất tích cực Con người ngàynay tìm kiếm các phần mềm thông minh để tự động hóa lao động, hiểu được
âm thanh hay hình ảnh, chuẩn đoán y học và có thể hỗ trợ nghiên cứu khoahọc cơ bản AI - Artificial Intelligence (Trí Tuệ Nhân Tạo), và cụ thể hơn làMachine Learning (Học Máy hoặc Máy Học) nổi lên như một bằng chứng củacuộc cách mạng công nghiệp lần thứ tư (1 - động cơ hơi nước, 2 - năng lượngđiện, 3 - công nghệ thông tin) Trí Tuệ Nhân Tạo đang len lỏi vào mọi lĩnhvực trong đời sống mà có thể chúng ta không nhận ra Xe tự hành của Google
và Tesla, hệ thống tự tag khuôn mặt trong ảnh của Facebook, trợ lý ảo Siricủa Apple, hệ thống gợi ý sản phẩm của Amazon, hệ thống gợi ý phim củaNetflix, máy chơi cờ vây AlphaGo của Google DeepMind, …, chỉ là một vàitrong vô vàn những ứng dụng của AI/Machine Learning
Thuật ngữ trí tuệ nhân tạo có thể được hiểu là trí tuệ được biểu diễn bởi bất cứmột hệ thống nhân tạo nào, do con người lập trình tạo nên với mục tiêu giúp
máy tính có thể tự động hóa các hành vi thông minh như con người Artificial
Intelligence (AI) được hiểu là bản sao trí thông minh của con người trong
máy tính Khi nghiên cứu về AI lần đầu được bắt đầu, các nhà nghiên cứu đãthử tái tạo trí thông minh con người cho một vài việc cụ thể - như là chơigame Họ đã giới thiệu một lượng lớn các quy tắc mà máy tính cần phải tuântheo Máy tính phải có một danh sách cụ thể các hành động khả thi và quyết
định đưa ra từng hành động dựa vào các quy tắc này [1] Machine Learning,
theo Wikipedia, được hiểu là một ngành học thuộc khoa học của máy tính,giúp máy tính có khả năng tự học mà không phải lập trình một cách rõ rang.Những năm gần đây, khi mà khả năng tính toán của các máy tính được nâng
Trang 5công nghệ lớn, Machine Learning đã tiến thêm một bước dài và một lĩnh vựcmới được ra đời gọi là Deep Learning Deep Learning đã giúp máy tính thựcthi những việc tưởng chừng như không thể vào 10 năm trước: phân loại cảngàn vật thể khác nhau trong các bức ảnh, tự tạo chú thích cho ảnh, bắt chướcgiọng nói và chữ viết của con người, giao tiếp với con người, hay thậm chí cảsáng tác văn hay âm nhạc Sự thành công của Deep Learning trong hầu nhưmọi lĩnh vực là không thể phủ nhận, bên cạnh những thành tựu to lớn về xử lýảnh, xử lý âm thanh, xử lý tiếng nói thì xử lý ngôn ngữ tự nhiên (NLP) cũngđang là một trong những lĩnh vực gặt hái được rất nhiều thành công.
Mặc dù xử lý ngôn ngữ không phải là một lĩnh vực mới và được nghiên cứukhá nhiều trên thế giới Với việc phát triển của ngành Khoa Học Máy Tínhnói chung và Deep learning nói riêng việc ứng dụng các thành tựu của Xử LýNgôn Ngữ tự nhiên rất đa dạng và hữu ích về nhiều mặt, các thư viện, môhình dành cho việc xử lý ngôn ngữ khá nhiều nhưng đa số chỉ hỗ trợ các ngônngữ Tiếng Anh hoặc các ngôn ngữ phổ biến Là sinh viên ngành khoa họcmáy tính, có kiến thức về Deep Learning tôi muốn nghiên cứu, ứng dụngnhững thành tựu về xử lý ngôn ngữ tự nhiên lên chính ngôn ngữ mẹ đẻ củamình là Tiếng Việt với các đặc thù về ngữ pháp, văn phạm, từ vựng đặc trưng
và không phổ biến trên thế giới Trong Tiếng Việt cũng có các nghiên cứu vàcông bố khoa học như: [2] [3] [4] [5] Qua tìm hiểu và nghiên cứu tôi xin thựchiện một đề tài còn khá mới và thú vị, mang tính ứng dụng vào đời sống là:
Ứng Dụng Hệ Thống Học Sâu Tự Động Thêm Dấu Cho Tiếng Việt với
các công nghệ mới đi đầu trong deep learning trong một vài năm gần đây nhưthư viện keras của tensorflow, mô hình neural network, ứng dụngbeam_search, …
1.2.CÁC CÔNG TRÌNH LIÊN QUAN
Các nghiên cứu về dịch máy (machine translation) đã được nghiên cứu từ rấtlâu trước đây và đạt được các thành tựu nhất định trong những năm gần đâybằng việc thay thế mô hình thống kê (Statistical Machine Translate) trước đây
Trang 6bằng các mô hình dịch máy neural network [6] Về đề tài dịch máy có rấtnhiều các công trình liên quan đến đề tài Tiếng Việt hiện tại như:
- Neural Machine Translation: A Review – Trong bài báo này, truy
nguyên nguồn gốc của các kiến trúc NMT hiện đại với các từ và cáccâu embedding và các ví dụ trước đây của chúng mạng bộ giải mã-giải
mã Bài báo kết thúc với một cuộc khảo sát về các xu hướng gần đâytrong lĩnh vực này [6]
- Neural Machine Translation Between Vietnamese And English: An
Empirical Study – Bài báo này nêu bật những nỗ lực của tác giả trong
việc cải thiện các bản dịch tiếng Anh-Việt theo hai hướng: (1) Xâydựng kho văn bản tiếng Việt - tiếng Anh mở lớn nhất cho đến nay và(2) Các thử nghiệm mở rộng với các mô hình neural mới nhất để đạtđược điểm BLEU cao nhất Các thí nghiệm của chúng tôi cung cấp các
ví dụ thực tế về việc sử dụng hiệu quả các mô hình dịch máy thần kinhkhác nhau với các cặp ngôn ngữ tài nguyên thấp [3]
- VnCoreNLP: A Vietnamese Natural Language Processing Toolkit: Bài
báo trình bày một bộ công cụ nhanh và dễ sử dụng, cụ thể làVnCoreNLP, một bộ xứ lý Java NLP cho tiếng Việt VnCoreNLP hỗtrợ các tác vụ xử lý ngôn ngữ tự nhiên (NLP) chính bao gồm phân đoạn
từ, gắn thẻ lời nói (POS), nhận dạng thực thể có tên (NER) và phân tích
cú pháp phụ thuộc và đạt được kết quả hiện đại (SOTA) cho các kếtquả này nhiệm vụ [5]
- Sentiment Analysis for Vietnamese: bài viết này giải quyết vấn đề
phân tích cảm xúc ở cấp độ câu và xây dựng một hệ thống dựa trên quytắc bằng cách sử dụng khung Gate Kết quả thử nghiệm trên một loạtcác đánh giá sản phẩm máy tính là rất hứa hẹn [4]
Trang 7Bên cạnh đó còn khá nhiều công trình nhưng đề tài về áp dụng dịch máy để
xử lý thêm dấu câu tự động này theo cá nhân tôi nhận thấy có ứng dụng cao
và chưa có công bố khoa học nào
Trang 82 MỤC TIÊU, GIỚI HẠN VÀ ĐỐI TƯỢNG
NGHIÊN CỨU
2.1.MỤC TIÊU NGHIÊN CỨU
Mục tiêu nghiên cứu của đề tài này là áp dụng các kỹ thuật tiên tiến, mới nhấtcủa Xử Lý Ngôn Ngữ Tự Nhiên (NLP) vào Tiếng Việt để chuyển đổi từ mộtcâu nhập vào không dấu có thể trả về một câu có dấu, có ý nghĩa và sát vớisuy nghĩ của tác giả nhất có thể Hướng tiếp cận tôi muốn thực hiện ở đây là
sử dụng một mô hình dịch máy (Machine Translation) với ngôn ngữ nguồn làTiếng-Việt-không-dấu và ngôn ngữ đích là Tiếng-Việt-có-dấu kết hợp các kỹthuật mới của Deep Learning:
Ví dụ: input: hom nay toi di hoc => output: hôm nay tôi đi học
Việc tạo ra được kết quả sau ứng dụng có thể dùng cho các nghiên cứu khácnhư dự đoán tự hoàn thành tìm kiếm (như công cụ của google), sửa lỗi chính
tả (điển hình ở đây là các lỗi liên quan đến dấu câu), Ngoài ra, qua việc vậndụng, tiếp cận theo nhiều phương pháp khác nhau giúp cho sau việc hoànthành để tài này có thể giới thiệu một cách chi tiết hơn về các công nghệ mớitrong Deep Learning hiện nay, phương pháp training model language có thểsinh ra model dùng để áp dụng thêm cho một vài bài toán hay nghiên cứu liênquan
Mục tiêu:
- Hoàn thành đề tài trong khoảng thời gian kế hoạch
- Nắm rõ được kiến thức trong đề tài và trình bày chi tiết, dễ hiểu
- Có sản phẩm demo và có kết quả
Trang 9- Đánh giá được đề tài về mức độ hoàn thiện và kết quả khoa học
- Trình bày được hướng mở rộng đề tài
2.2.ĐỐI TƯỢNG NGHIÊN CỨU
Đối tượng nghiên cứu của đề tài là ngôn ngữ Tiếng Việt, với sự đặc thù củangôn ngữ gồm các ngữ điệu được tạo thành bởi các dấu câu và sự đa dạng vềnghĩa cũng như từ vựng Với một từ ngữ hay một câu khi ta đặt vào dấu câukhác nhau có thể dẫn đến sai lệch rất lớn về ngữ nghĩa dẫn đến khó hiểu chongười đọc cũng như mất đi sự tinh tế hay trong sáng của ngôn ngữ Việt Nam
Ví dụ ở câu nói “Mua nuoc lon o mien tay co rat nhieu ca vi the nen am thuc
o cac vung nay rat phong phu va da dang”, khi ta đọc một câu không có dấu
sẽ thấy rất tối nghĩa và thậm chí không hiểu được ý nghĩa của câu này nhưng
khi thêm dấu vào ta có câu “Mùa nước lớn ở miền tây có rất nhiều cá vì thế nên ẩm thực ở các vùng này rất phong phú và đa dạng” Một ví dụ khác mà dấu câu làm thay đổi nghĩa hoàn toàn câu nói như ở câu “nha trang co bai bien rat dep” nếu thêm dấu câu “Nha Trang có bãi biển rất đẹp” hay một cách khác là “Nhà Trắng có bãi biển rất đẹp”, khi ta đọc hai câu trên và hiểu
thì sẽ thấy nội dung của câu khác nhau và thông tin đưa vào sẽ khác biệt hoàntoàn Tuy nhiên, với những thông tin giao tiếp trong cuộc sống thông thườngcon người (hay đặc biệt là người Việt Nam) có thể dễ dàng biết được là ở đây
đang nói ý câu thứ nhất và từ đúng là “Nha Trang”, nhưng làm sao máy tính
có thể hiểu được như chúng ta?
Các dấu của Tiếng Việt ở đây không chỉ nói về những thanh âm như “sắc,huyền, hỏi, ngã, nặng” mà ở đây còn nói về các ký tự đặc biệt chỉ có ở TiếngViệt như “â, ă, ơ, ô, ư, ê, đ” và sự kết hợp có ý nghĩa giữ các từ với nhau chứkhông đơn thuần là thêm dấu cho chúng
Trang 102.3.PHẠM VI NGHIÊN CỨU
Phạm vi nghiên cứu của đề tài này tôi dùng phương pháp học máy trong đóquan tâm đến các khía cạnh là khả năng áp dụng các mạng nơ ron học sâu(deep neural network) vào bài toán này so với các giải thuật học máy căn bảnkhác như thế nào
Bên cạnh đó, bài toán cần rất nhiều dữ liệu huấn luyện cho máy tính và nguồn
dữ liệu chủ yếu lấy từ các trang web trên internet, các bài báo mạng, các trang
du lịch,… nên các từ ngữ là những từ thường dùng, các câu thông dụng vàxuất hiện trong cuộc sống thường nhật với ngôn ngữ là Tiếng Việt quốc ngữ
và vì thế các từ ngữ mới của giới trẻ hiện nay, các từ ngữ địa phương hay dântộc hiếm xuất hiện trong tập dữ liệu, hay các tên riêng, địa danh ít xuất hiệntrong tập dữ liệu huấn luyện có thể dẫn đến ảnh hướng đến kết quả dự đoán ítnhiều
Trang 113 CƠ SỞ LÝ THUYẾT VÀ PHƯƠNG PHÁP
NGHIÊN CỨU
3.1.CƠ SỞ LÝ THUYẾT
Qua quan sát và phân tích các ví dụ ở mục 2.2, tôi thấy rằng chúng ta có thể
dễ dàng dự đoán được câu “nha trang co bai bien rat dep” trên do kiến thứccủa con người có thể biết rằng ở Nhà Trắng thì không có bãi biển, hay nóicách khác là chúng ta ít nhắc về “bãi biển” khi nói đến “Nhà Trắng” nhưng lại
dễ dàng thấy rằng từ “Nha Trang” và “bãi biển” xuất hiện cùng nhau khánhiều, hay hầu hết khi nói đến “Nha Trang” thì sẽ thấy có từ “bãi biển” xuấthiện Từ quan sát trên tôi quyết định dùng các phương pháp deep learning,bằng cách huấn luyện máy học một lượng dữ liệu đủ lớn để phân biệt những
từ hay xuất hiện cùng nhau và tăng độ chính xác của dự đoán lên kết hợp với
mô hình dịch máy được áp dụng các kỹ thuật mới là dùng neural network với
mô hình Seq2Seq để đưa ra dự đoán chính xác nhất
Trong đề tài “Ứng dụng hệ thống học sâu tự động thêm dấu cho Tiếng
Việt”, tôi tập trung nghiên cứu các vấn đề sau:
- Machine Translation: là nhiệm vụ dịch một câu x ở một ngôn ngữ(ngôn ngữ nguồn) thành một câu y ở một ngôn ngữ khác (ngôn ngữđích) mà ý nghĩa của câu không đổi
Các hệ thống machine translation được bắt đầu nghiên cứu từ năm 1954.Trước đây, người ta giải quyết bài toán này dựa trên thống kê là chủ yếu, gọi
là Statistical Machine Translation Vài năm trở lại đây, với sự phát triển vượtbậc của các kĩ thuật học máy, Neural Machine Translation được đưa vàonghiên cứu và có những cải thiện vược bậc cho các hệ thống dịch máy Đây làphương pháp dịch mà quá trình dịch được dựa trên 1 mạng neural duy nhất.Kiến trúc này được gọi là sequence-to-sequence( seq2seq) do đầu vào và đâu
Trang 12thường) Các kiến trúc mạng thường được sử dụng là các kiến trúc mạng cho
dữ liệu dạng time-series như RNN, LSTM, [6] …
Bài toán thêm dấu cho tiếng Việt được mình hiểu ở đây như một bài toánSequence2Sequence, công việc được thực hiện tương tự như việc dịch từ mộtngôn ngữ nguồn sang một ngôn ngữ đích, điểm đặc biệt khá thú vị ở đây là cảhai ngôn ngữ nguồn và đích đều là Tiếng Việt, việc dịch từ Tiếng Việt sangTiếng Việt cũng gây ra một số khó khăn đặc biệt nhất định [7] [8]
- Mạng nơ-ron hồi quy (RNN - Recurrent Neural Network) là một thuậttoán được chú ý rất nhiều trong thời gian gần đây bởi các kết quả tốtthu được trong lĩnh vực xử lý ngôn ngữ tự nhiên RNN ra đời với ýtưởng chính là sử dụng một bộ nhớ để lưu lại thông tin từ từ nhữngbước tính toán xử lý trước để dựa vào nó có thể đưa ra dự đoán chínhxác nhất cho bước dự đoán hiện tại Ở các bài toán máy dịch hiện đại
áp dụng RNN vào cho thấy kết quả chính xác cao và chất lượng cảithiện đáng kể [9] vì thế ở bài toán này tôi áp dụng mô hình RNN vớicác cải tiến mới là LSTM mà thử nghiệm thêm mô hình GRU để sosánh kết quả hai mô hình
Về mô hình LSTM và mô hình GRU tôi sẽ áp dụng mô hình truyền thống củaMạng Neural Hồi Quy (RNN)
- Beamsearch: Tìm kiếm beam (beam search) giống như tìm kiếm theo
bề rộng, nó phát triển các đỉnh ở một mức rồi phát triển các đỉnh ở mứctiếp theo Tuy nhiên, trong tìm kiếm theo bề rộng, ta phát triển tất cảcác đỉnh ở một mức, còn trong tìm kiếm beam, ta hạn chế chỉ phát triển
k đỉnh tốt nhất (các đỉnh này được xác định bởi hàm đánh giá) Do đótrong tìm kiếm beam, ở bất kỳ mức nào cũng chỉ có nhiều nhất k đỉnhđược phát triển, trong khi tìm kiếm theo bề rộng, số đỉnh cần phát triển
ở mức d là bd (b là nhân tố nhánh) Trong bài toán này Beam search
Trang 13dùng Beam N-gram để tìm ra được N đáp án với xác suất cao nhất đểcho kết quả và quan sát tốt nhất để điều chỉnh mô hình một cách hợp lý.
3.2.CHUẨN BỊ NGHIÊN CỨU
Quá trình thực hiện thêm dấu cho từ Tiếng Việt bằng phương pháp học sâu sẽđược tiến hành qua các bước sau:
- Thu thập dữ liệu nguồn dữ liệu
- Tìm hiểu giải thuật phù hợp với bài toán
- Tìm hiểu, phân tích đặc trưng cấu trúc các báo tiếng Việt Quá trìnhnày được thực hiện bằng các kĩ thuật thăm dò, khảo sát, khai phá dữliệu kết hợp góc nhìn thực tế về ngôn ngữ tiếng Việt, cung cấp kiếnthức cho quá trình chuẩn bị dữ liệu, làm sạch dữ liệu
- Bài toán đòi hỏi lượng dữ liệu lớn nên đòi hỏi người làm nghiên cứuphải có kỹ năng phân tích dữ liệu Việc thu thập dữ liệu là một trongnhững vấn đề cần thực hiện đầu tiên trong bài toán
- Một số loại trang web cần thiết cho việc lấy dữ liệu là:
o Đối với các loại tên riêng, địa danh đặc sắc: chọn lấy nội dung từcác trang báo du lịch, giới thiệu địa danh
o Đối với các từ ngữ thông dụng: lấy từ các trang báo mạng, cáctrang chia sẻ kiến thức, các diễn đàng
o Ngoài ra, lấy thông tin từ nguồn dữ liệu hỗ trợ wiki tiếng việt(link tham khảo)
Trang 14Các công việc thực hiện nêu trên được gọi là Tiền xử lý dữ liệu trong DeepLearning
- Tiến hành tiền xử lý văn bản, tách câu, tách từ hợp lý Trong giai đoạnnày vận dụng các quan sát thống kê học được cho phép chúng tôi chọnlọc, rút trích và có thể tạo ra các đặc trưng bậc cao hơn từ dữ liệu đã có
- Đo đạc độ chính xác của các giải thuật sử dụng, so sánh lựa chọn giảithuật phù hợp nhất với tập dữ liệu
- Viết Báo cáo khoa học trình bày kết quả đạt được
3.3.PHƯƠNG PHÁP THIẾT KẾ NGHIÊN CỨU
3.3.1 PHƯƠNG PHÁP THU THẬP VÀ PHÂN TÍCH SỐ LIỆU
- Dữ liệu báo tiếng việt dự kiến được thu thập từ các trang báo điện tửphổ biến hiện nay như: Báo mới, vnexpress, ivivu,
3.3.2 PHƯƠNG PHÁP XỬ LÝ TIẾNG VIỆT
Có khá nhiều thư viện hỗ trợ cho việc tiền xử lý này Trong đề tài này tôi vậndụng các thư viện có sẵn cho Tiếng Anh và một vài thư viện trong [5] để thựchiện việc tiền xử lý dữ liệu
3.3.3 PHƯƠNG PHÁP XÂY DỰNG MÔ HÌNH HỌC SÂU
- Tiến hành thử nghiệm các bước tiến xử lý văn bản tiếng Việt trên bộ
dữ liệu thu thập được Các bước tiền xử lý dự kiến thực hiện:
- Làm sạch dữ liệu: Dữ liệu cần cho bài toán này là dữ liệu TiếngViệt, được thu thập từ các trang web mạng và phải có tính ngẫunhiên cao, số lượng lớn Nội dung của dữ liệu phải chứa nhiềuTiếng Việt Các câu tiếng Anh nên bị lược bỏ để tránh nhiễu dữ liệu