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ự
Trang 1KHOA 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
Trang 2TP Hồ Chí Minh, ngày 14 tháng 1 năm 2021
NHẬN XÉT
Trang 3
MỤC LỤC
CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP 5
I Giới thiệu chung về công ty 5
II Sản phẩm của công ty 6
CHƯƠNG 2: NỘI DUNG THỰC TẬP 7
I Tìm hiểu công ty và các kỹ năng cơ bản trong công ty 7
1 Nghiên cứu kỹ thuật 7
2 Lịch làm việc 11
CHƯƠNG 3: CHI TIẾT PROJECT 13
I Giới thiệu về bài toán 13
II Thực hiện 14
III Kế hoạch 14
IV Kết quả thu được 15
DANH MỤC TÀI LIỆU THAM KHẢO 16
Tổng Kết 17
Trang 4LỜ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
Trang 5LỜ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
Trang 6CHƯƠ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ỷ qu a.
- 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
Trang 7mạ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
để cung cấp thông tin cho người dân và cạnh tranh được các website dịch vụ nước ngoà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
Trang 8- 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
Trang 9CHƯƠ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 toá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, quá 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 Ngoà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 quá trình làm
việc
Trang 10Trong 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ề toán và các thuật toá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, …
Trang 11Thự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
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à:
Xoá 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
Trang 12con 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 toá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ừ
Khái niệm cơ bản về Ngram: Trong lĩnh vực ngôn ngữ học tính toá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
toán
Trang 13Thờ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 toá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 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
Trang 14Trong 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
hoàn thành
Nhận xét của người hướng dẫn
1
Tìm hiểu về công ty và
các quy tắc cần tuân thủ
trong quá trình làm việc
Làm quen với các công cụ
hữu ích trong công việc
2
Anh Tuyên Bạn Hiếu Anh Tùng
100%
Trang 15Tìm hiểu về học máy
3
Tìm hiểu về giải thuật tính
khoảng cách 2 chuỗi
Tìm hiểu về các mô hình
mạng trong học máy
Anh Tuyên Bạn Hiếu Anh Tùng Thầy Huỳnh Ngọc Tín
95%
4
5
6
Tìm hiểu về paper liên
quan đến bài toán sửa lỗi
chính tả
Anh Tùng Bạn Hiếu Thầy Huỳnh Ngọc Tín
95%
7 Triển khai Model đầu tiên
theo paper
Anh Tùng Thầy Huỳnh Ngọc Tín
100%
8
9 Thực nghiệm và đánh giá Anh Tùng
Thầy Huỳnh Ngọc Tín
100%
Trang 16khác nhau để đánh giá, cải
thiện
Thầy Huỳnh Ngọc Tí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 toán cơ bản nhất trong xử lý ngôn ngữ tự nhiên Tính năng này có trong 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 Free-Text 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 quá 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 quá 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 viên nhằm tìm ra từ chính xác nhất để sửa (nếu câu có từ sai)
Trang 1720000 câu (gồm cả câu sai và đúng)
II 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
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%
Trang 18DANH MỤC TÀI LIỆU THAM KHẢO
[3] https://sites.google.com/a/jnlp.org/viet/kien-thuc-co-ban-ve-xu-ly-ngon-ngu-tu-nhien/mo-hinh-ngon-ngu
[5] Python for w2v and ngram
Trang 19Tổ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 để hoà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 hoàn thành bài báo cáo này.