TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
THỰC TẬP DOANH NGHIỆP
XÂY DỰNG ỨNG DỤNG SỬA LỖI CHÍNH TẢ CHO
TIẾNG VIỆT
Công ty thực tập:
Công ty Cổ phần VCCORP
Người phụ trách:
TS. Huỳnh Ngọc Tín
Thực tập sinh:
Dương Xuân Hiệp - 16520376
TP. Hồ Chí Minh, ngày 14 tháng 1 năm 2021
Dương Xuân Hiệp
TS. Huỳnh Ngọc Tín
NHẬN XÉT
........................................................................................................................................................
........................................................................................................................................................
........................................................................................................................................................
........................................................................................................................................................
........................................................................................................................................................
........................................................................................................................................................
........................................................................................................................................................
........................................................................................................................................................
........................................................................................................................................................
........................................................................................................................................................
........................................................................................................................................................
........................................................................................................................................................
........................................................................................................................................................
........................................................................................................................................................
........................................................................................................................................................
........................................................................................................................................................
........................................................................................................................................................
........................................................................................................................................................
........................................................................................................................................................
........................................................................................................................................................
........................................................................................................................................................
.....................
........................................................................................................................................................
.
........................................................................................................................................................
.
........................................................................................................................................................
.
........................................................................................................................................................
.
2
Dương Xuân Hiệp
TS. Huỳnh Ngọc Tín
........................................................................................................................................................
.
3
Dương Xuân Hiệp
TS. Huỳnh Ngọc Tín
MỤC LỤC
CHƯƠNG 1: GIỚI THIỆU CƠNG TY THỰC TẬP...........................................7
I.Giới thiệu chung về cơng ty..............................................................................................................7
II.Sản phẩm của cơng ty......................................................................................................................8
CHƯƠNG 2: NỘI DUNG THỰC TẬP................................................................9
I. Tìm hiểu công ty và các kỹ năng cơ bản trong công ty.................................................................................... 9
1. Nghiên cứu kỹ thuật..................................................................................................................................... 9
2Lịch làm việc................................................................................................................................................. 13
CHƯƠNG 3: CHI TIẾT PROJECT....................................................................14
I.Giới thiệu về bài toán................................................................................................................................... 14
II.Thực hiện.................................................................................................................................................... 15
III.Kế hoạch.................................................................................................................................................... 15
IV.Kết quả thu được....................................................................................................................................... 16
DANH MỤC TÀI LIỆU THAM KHẢO.............................................................17
Tổng Kết........................................................................................................................................................ 18
4
Dương Xn Hiệp
TS. Huỳnh Ngọc Tín
LỜI NĨI ĐẦU
Ngày nay, lĩnh vực AI đang nổi lên với một nhu cầu cấp bách và đầy thiết
yếu. Các ứng dụng của AI đã gây nên một phần tác động lớn đối với trải nghiệm
của người dùng và tính chất thương mại hóa của một công ty.
Cùng với xu thế phát triển của thế giới, Việt Nam đã có bước phát triển
mạnh mẽ, trở thành nền kinh tế hội nhập, năng động, hấp dẫn đầu tư trong khu vực.
Trong bối cảnh phát triển và hội nhập quốc tế, cùng với sự phát triển mạnh mẽ của
cuộc cách mạng công nghiệp 4.0, Việt Nam xác định tập trung phát triển cơng nghệ
trí tuệ nhân tạo (AI) - một mũi nhọn, được dự báo trở thành ngành công nghệ đột
phá nhất trong tương lai.
Sau bốn năm học tập trên trường, do muốn tiếp xúc, học hỏi những lợi ích
mà AI mang lại , nhờ may mắn gặp gỡ thầy Tín đã tạo cơ hội cho em được tiếp xúc
và truyền cảm hứng cho em trong lĩnh vực CNTT trong AI. Và qua đó, do muốn
được tiếp cận, tìm hiểu hơn về quy trình tạo ra một bài toán AI để giải quyết các
vấn đề trong hiện tại, do đó VCCorp chính là cơng ty lý tưởng để cho em thực hiện
dự định này và cũng như là có thêm kinh nghiêm để rèn giũa bản thân thật tốt trước
khi ra trường.
5
Dương Xuân Hiệp
TS. Huỳnh Ngọc Tín
LỜI CẢM ƠN
Em xin gửi lời cảm ơn tới các anh chị tại công ty VCCorp nói chung và thầy
Huỳnh Ngọc Tín nói riêng vì đã tạo điều kiện cho em có cơ hội thực tập tại công
ty.
Chỉ trong một thời gian ngắn, nhưng nhờ sự chỉ dẫn nhiệt tình của anh chị
trong cơng ty, những buổi seminar hàng tuần. Em đã học hỏi được nhiều điều về kỹ
năng cứng cũng như mềm. Đồng thời hịa nhập với văn hóa cơng ty và các hoạt
động ngoại khóa nói riêng.
Đặc biệt em xin cảm ơn anh Tùng là người hỗ trợ em từ lúc vào công ty, anh
đã tận tình hướng dẫn em từ các thủ tục cần thiết tới cài đặt môi trường làm việc,
anh cũng góp ý thêm những điều em cịn sai sót để sửa lại và làm việc tốt hơn.
Cám ơn anh Tùng và bạn Hiếu đã giúp đỡ em các vấn đề kỹ thuật, cách làm việc,
phương pháp tìm hiểu và tiếp cận một bài toán cụ thể. Và cũng cảm ơn em Phạm
Huỳnh Tấn Đạt và em Nguyễn Trường Khoa Nguyên đã làm partners của em trong
suốt quá trình thực tập, hỗ trợ em trao đổi và củng cố lại các kiến thức, kỹ thuật
cịn thiếu và sai sót.
Em cũng cảm ơn thầy cô trong khoa Công nghệ phần mềm đã nhiệt tình hỗ
trợ, tạo điều kiện cho em làm báo cáo này.
Dương Xuân Hiệp
TP. Hồ Chí Minh, ngày 14 tháng 01 năm 2020
6
Dương Xn Hiệp
TS. Huỳnh Ngọc Tín
CHƯƠNG 1: GIỚI THIỆU CƠNG TY THỰC TẬP
I.
Giới thiệu chung về công ty
Logo của VCCorp
-
Được thành lập vào năm 2006, Công ty CP VCCorp (VCCorp) là công ty tiên
phong trong lĩnh vực công nghệ và nội dung số. Với hơn 10 năm hình thành và
phát triển, VCCorp đã xây dựng được một hệ sinh thái Internet rộng lớn với rất
nhiều sản phẩm sáng tạo, hữu ích trong nhiều lĩnh vực (quảng cáo trực tuyến,
thương mại điện tử, trị chơi trực tuyến...) phủ sóng trên 90% người sử dụng
Internet và mobile, có giá trị đóng góp lớn vào sự phát triển của Internet Việt Nam
-
trong một thập kỷ qua.
Công ty được chia thành nhiều bộ phận khác nhau. Trong đó, bộ phận mà em đang
thực tập chính là Admicro
-
VCCorp hiện đang sở hữu thương hiệu quảng cáo trực tuyến Admicro là đơn vị
quảng cáo trực tuyến lớn nhất hiện nay với hệ thống quảng cáo trên 200 website
uy tín hàng đầu, gần 30 website trong số đó thuộc sở hữu của VCCorp hoặc
VCCorp là đơn vị độc quyền khai thác quảng cáo. Với độ phủ tới trên 50 triệu độc
giả, tương đương 90% người dùng Internet và mobile tại Việt Nam, cùng với sức
mạnh về công nghệ, và sự sáng tạo không ngừng, Admicro luôn ở vị thế dẫn đầu
thị trường, giúp các trang báo và trang thơng tin điện tử Việt Nam có nguồn thu tốt
7
Dương Xn Hiệp
TS. Huỳnh Ngọc Tín
để cung cấp thơng tin cho người dân và cạnh tranh được các website dịch vụ nước
ngồi.
II. Sản phẩm của cơng ty
Là một Cơng ty công nghệ hàng đầu Việt Nam, các sản phẩm của VCCorp
có độ phủ sóng mạnh trên hầu hết các lĩnh vực về công nghệ và internet như:
thương mại điện tử, quảng cáo trực truyến, online media, mobile content,
social media… Trên 90% lượng người dùng Internet tại Việt Nam sử dụng
sản phẩm của VCCorp mỗi ngày đã khẳng định sự phong phú và đa dạng về
sản phẩm và lĩnh vực mà không phải công ty công nghệ nào cũng đạt được.
Các sản phẩm của công ty:
-
Thương mại điện tử: Luôn đi tiên phong, khai phá thị trường TMĐT tại
Việt Nam - khối TMĐT của VCCorp đã khẳng định được tên tuổi và thị
phần của mình bằng việc chiếm thị phần lớn nhất, với lượng khách hàng lên
tới hơn 10 triệu và số giao dịch chiếm 30% tổng dung lượng giao dịch
TMĐT trên thị trường.
-
Online Media: Khối nội dung trực thuộc VCCorp hoạt động trong lĩnh vực
xuất bản, phát hành thông tin chuyên nghiệp trên Internet (Cafef, cafebiz,
kenh14, afamily,…)
-
Mobile Adnetwork : Tiếp cận 95% người dùng Mobile, hệ thống Mobile
Adnetwork tiếp cận người dùng trên mobile web & mobile app.
-
Adtech : Sở hữu hơn 45 tỉ view/tháng, AdTech áp dụng hầu hết những công
nghệ tân tiến nhất vào Adnetwork.
8
Dương Xuân Hiệp
TS. Huỳnh Ngọc Tín
CHƯƠNG 2: NỘI DUNG THỰC TẬP
Đợt thực tập vừa qua với chủ đề “Xây dựng ứng dụng sửa lỗi chính tả cho Tiếng
Việt” nhằm giúp cho sinh viên tiếp cận các phương pháp học máy, cũng như nắm
được quy trình giái quyết, áp dụng một bài tốn AI vào thực tế.
I. Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty
Thời gian: 1 ngày
Nội dung: Giới thiệu về công ty, cách tổ chức của công ty
Được nghe người phụ trách giới thiệu về cơng ty, q trình thành lập và phát
triển, quy trình làm việc từ cao xuống thấp, cách thức tổ chức của cơng ty .
Ngồi ra, thực tập sinh cịn được giới thiệu về cách thức làm việc trong công ty
như thời gian đi làm, các quy định cần phải tuân thủ, cách sử dụng email trong
công việc, setup các môi trường cần thiết wifi, VPN, git, redmine và giới thiệu
qua các bài toán mà team đang giải quyết.
Kết quả: Hiểu hơn về bộ phận Admicro, quá trình thành lập và phát triển. Có
các kỹ năng về việc sử dụng email trong cơng việc, làm việc có kế hoạch, có kỷ
luật, có trách nhiệm hơn.
1. Nghiên cứu kỹ thuật
1.1 Cơng cụ làm việc
Thời gian: 5 ngày
Nội dung: Tìm hiểu về các cơng cụ sẽ được sử dụng trong q trình làm
việc
9
Dương Xuân Hiệp
TS. Huỳnh Ngọc Tín
Trong thời gian này, thực tập sinh được các anh chị trong team hướng dẫn
sử dụng các công cụ hỗ trợ trong công việc sau này.
OpenVPN: Sử dụng để làm việc nhóm, server.
Hệ điều hành Linux: Cài đặt các package cần thiết để bắt đầu làm việc,
chạy thử chương trình.
Skype: Kênh trao đổi, liên lạc giữa các thành viên trong team.
Visual Studio Code: IDE sử dụng cho việc thực hiện cài đặt đánh giá, thử
nghiệm cho bài toán.
Jupyter Notebook: Setup chạy thử nghiệm cho thuật toán.
Thực hiện: Thực hành sử dụng các phần mềm đã nêu trên.
Kết quả: Lập trình sử dụng các cơng cụ miễn phí, giúp dễ dàng kết hợp các
cơng cụ với nhau.
1.2 Tìm hiểu cơ bản về Machine Learning
Thời gian: 5 ngày
Nội dung: Được training các kiến thức cơ bản về tốn và các thuật tốn
máy học
• Tìm hiểu về tổng quan về các thuật ngữ supervised và unsupervised
• Đọc tài liệu các thuật toán cơ bản trong máy học: Linear Regression,
Logistic Regression, …
Thực hiện:
• Tham gia đầy đủ các buổi training của cơng ty.
• Kiểm tra về kiến thức đã học.
Kết quả: Nắm được các kiến thức cơ bản của Machine Learning
10
Dương Xn Hiệp
TS. Huỳnh Ngọc Tín
1.3 Tìm hiểu cơ bản về Deep Learning
Thời gian: 15 ngày
Nội dung: Tìm hiểu, áp dụng các kiến thức cơ bản về giải thuật Edit
Distance, các thuật ngữ trong Neural Network cũng như các cấu trúc mạng
liên quan như: Ngram và Word2Vec.
Khái niệm cơ bản về Edit Distance: giải thuật thể hiện khoảng cách khác
biệt giữa 2 chuỗi ký tự. Giải thuật tính khoảng cách giữa chuỗi S và chuỗi T
dựa vào số bước ít nhất biến chuỗi S thành chuỗi T thông qua 3 phép biến
đổi là:
• Xố 1 ký tự.
• Thêm 1 ký tự.
• Thay ký tự này bằng ký tự khác.
Khái niệm cơ bản về Neural Network: Neural Network (Mạng thần kinh
nhân tạo), là một thể loại giải thuật của học máy, lấy cảm hứng từ bộ não
con người. Nó là một trong những giải thuật phổ biến nhất được sử dụng
trong thế giới học máy. Mục đích là để giải quyết các task cụ thể thông qua
việc liên kết các neuron trong mạng neural tương tự cách con người thực
hiện.
Khái niệm cơ bản về Word2Vec: là một kỹ thuật xử lý ngơn ngữ tự nhiên.
Thuật tốn sử dụng một mơ hình mạng thần kinh để học các liên kết từ (sự
liên quan của từ) từ một kho ngữ liệu văn bản có dung lượng lớn. Sau khi
được huấn luyện, mơ hình có thể phát hiện các từ đồng nghĩa hoặc gợi ý các
từ bổ sung cho một phần của câu. Các vectơ được lựa chọn cẩn thận sao cho
một hàm toán học đơn giản sẽ cho biết mức độ của độ tượng tự ngữ
nghĩa giữa các từ.
11
Dương Xuân Hiệp
TS. Huỳnh Ngọc Tín
Khái niệm cơ bản về Ngram: Trong lĩnh vực ngơn ngữ học tính tốn và xác
suất, n-gram là một chuỗi tiếp giáp của n phần tử từ một mẫu văn bản hay lời
nói cho trước. Các phần tử có thể là âm tiết, chữ cái, từ hoặc các cặp cơ sở tùy
theo ứng dụng. Các n-gram được thu thập điển hình từ một tập dữ liệu văn
bản hoặc tập dữ liệu lời nói.
Thực hiện:
• Tham gia đầy đủ các buổi training của cơng ty.
• Seminar về kiến thức đã học.
Kết quả: Nắm được các kiến thức cơ bản của học sâu và vận dụng vào bài
tốn.
1.4 Tìm hiểu các thư viện hỗ trợ cho bài toán
Thời gian: 2 ngày
Numpy: Numpy là một thư viện lõi phục vụ cho khoa học máy tính của
Python, hỗ trợ cho việc tính tốn các mảng nhiều chiều, có kích thước lớn
với các hàm đã được tối ưu áp dụng lên các mảng nhiều chiều đó. Numpy
đặc biệt hữu ích khi thực hiện các hàm liên quan tới Đại Số Tuyến Tính.
Pandas: Pandas là là thư viện mã nguồn mở với hiệu năng cao cho phân tích
dữ liệu trong Python được phát triển bởi Wes McKinney trong năm 2008.
Chỉ với hơn 1 năm phát triển nó đã trở thành một thư viện chuẩn cho việc
phân tích dữ liệu khi dùng Python, một số tính năng nổi bật của pandas:
Python: Python là ngơn ngữ lập trình hướng đối tượng, cấp cao, mạnh mẽ,
được tạo ra bởi Guido van Rossum. Nó dễ dàng để tìm hiểu và đang nổi lên
như một trong những ngơn ngữ lập trình nhập mơn tốt nhất cho người lần
đầu tiếp xúc với ngơn ngữ lập trình. Python có cấu trúc dữ liệu cấp cao mạnh
12
Dương Xuân Hiệp
TS. Huỳnh Ngọc Tín
mẽ và cách tiếp cận đơn giản nhưng hiệu quả đối với lập trình hướng đối
tượng.
Thực hiện: Tham gia đầy đủ các buổi training
Kết quả: Sử dụng các thư viện hỗ trợ vào bài toán tìm hiểu.
Thực hiện project
Sau hơn một tháng được training và thực hành, thực tập sinh đã nắm
được những kiến thức cơ bản về học máy và các thư viện đi kèm. Trong
tháng thứ hai, thực tập sinh sẽ áp dụng những kiến thức đã học để thực
hiện một bài toán thực tế. Chi tiết đồ án sẽ được nói ở phần sau.
2 Lịch làm việc
Tuần
Cơng Việc
Tìm hiểu về cơng ty và
Người hướng dẫn
Mức độ
Nhận xét của
hoàn
người hướng
thành
dẫn
Anh Tuyên
100%
Anh Tuyên
100%
các quy tắc cần tuân thủ
trong quá trình làm việc
1
Làm quen với các cơng cụ
hữu ích trong cơng việc
2
Tìm hiểu về học máy
Bạn Hiếu
13
Dương Xn Hiệp
TS. Huỳnh Ngọc Tín
Anh Tùng
3
4
5
6
7
8
9
Tìm hiểu về giải thuật tính Anh Tun
khoảng cách 2 chuỗi
95%
Bạn Hiếu
Anh Tùng
Tìm hiểu về các mơ hình
Thầy Huỳnh Ngọc Tín
mạng trong học máy
Tìm hiểu về paper liên
Anh Tùng
quan đến bài toán sửa lỗi
Bạn Hiếu
chính tả
Thầy Huỳnh Ngọc Tín
Triển khai Model đầu tiên Anh Tùng
theo paper
Thầy Huỳnh Ngọc Tín
Thực nghiệm và đánh giá
Anh Tùng
95%
100%
100%
Thầy Huỳnh Ngọc Tín
10
So sánh, cài đặt các model Anh Tùng
100%
khác nhau để đánh giá, cải Thầy Huỳnh Ngọc Tín
thiện
CHƯƠNG 3: CHI TIẾT PROJECT
I.
Giới thiệu về bài toán
Tự động phát hiện và sửa lỗi chính tả (Spell Correction) là một trong những
bài tốn cơ bản nhất trong xử lý ngơn ngữ tự nhiên. Tính năng này có trong
14
Dương Xuân Hiệp
TS. Huỳnh Ngọc Tín
các ứng dụng soạn thảo văn bản, nhập liệu, nhận dạng… Với việc viết văn
bản trên điện thoại di động rất dễ sinh ra lỗi, tính năng tự động sửa lỗi chính
tả là thành phần khơng thể thiếu trong bất cứ bàn phím nào. Các kỹ thuật
spell correction đã rất phát triển và hoạt động rất tốt với nhiều ngôn ngữ,
nhất là tiếng Anh. Trong tiếng Việt, spell correction cũng là một bài toán dai
dẳng, địi hỏi sự kiên trì của người học.
1.1. Paper tham khảo
Unsupervised Context-Sensitive Spelling Correction of Clinical FreeText with Word and Character N-Gram Embedding
1.2. Thuật toán
- Xây dựng bộ từ điển Tiếng Việt hỗ trợ cho q trình huấn luyện mơ
hình
- Crawl dữ liệu (Tiếng Việt) từ nhiều nguồn khác nhau trên Internet
nhằm tạo ra một tập dữ liệu lớn hỗ trợ cho q trình tạo mơ hình
- Xây dựng mơ hình biểu diễn ngữ nghĩa của từ nhờ Word2Vec
- Áp dụng Edit Distance nhằm tạo các ứng viên, từ đó xếp hạng ứng
1.3.
II.
viên nhằm tìm ra từ chính xác nhất để sửa (nếu câu có từ sai)
Dataset
20000 câu (gồm cả câu sai và đúng)
Thực hiện
Dương Xuân Hiệp
III.
Kế hoạch
Giai đoạn tìm hiểu các paper liên quan:
- Paper về Edit Distance
- Paper về Word2Vec
Giai đoạn training model
- Xây dụng tập data 20000 câu
- Chia thành 15000 dữ liệu train và 5000 dữ liệu test
15
Dương Xuân Hiệp
TS. Huỳnh Ngọc Tín
Giai đoạn thử nghiệm
- Tuning các tham số nhằm cải thiện quá trình sửa lỗi
Giai đoạn đánh giá
- Sử dụng độ đánh giá Recall và Precision.
Giai đoạn cải tiến
- Tham khảo các paper có thể giúp khả năng cải thiện mơ hình
IV.
Kết quả thu được
Mơ hình lại kết quả tốt nhất với Recall là 90% và Precision là 84%.
16
Dương Xuân Hiệp
TS. Huỳnh Ngọc Tín
DANH MỤC TÀI LIỆU THAM KHẢO
[1] />[2] a/p/so-luoc-word2vec-6J3ZgBoAKmB
[3] />[4] />[5] Python for w2v and ngram
17
Dương Xuân Hiệp
TS. Huỳnh Ngọc Tín
Tổng Kết
Như vậy, chỉ trong vòng thời gian thực tập, em đã xây dựng được mơ
hình cơ bản để hồn thành mục tiêu của cơng việc, đồng thời từ đó có
thể tiếp tục xây dựng và phát triển nghiên cứu để cải thiện bài toán của
mình hơn nữa trong tương lai
Chân thành cảm ơn sự giúp đỡ của các anh trong công ty. Cảm ơn thầy
Huỳnh Ngọc Tín đã giúp em hồn thành bài báo cáo này.
18