1. Trang chủ
  2. » Cao đẳng - Đại học

báo cáo thực tập xây dựng phần mềm chỉnh sửa lỗi chính tả cho tiếng việt

17 25 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 318,76 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Chính vì muốn được tiếp cận quy trình làm việc và các bài toán AI đang gặp trong tình hình hiện tại, 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

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO THỰC TẬP

Xây dựng phần mềm chỉnh sửa lỗi chính tả cho

Tiếng Việt

Thực tập sinh : Ngô Trung Hiếu

Trang 2

TP Hồ Chí Minh, tháng 7 năm 2020

Trang 3

LỜI MỞ ĐẦ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 biệt hơn, các thuật toán AI ứng dụng như Deep learning đang được phát triển một cách vô cùng mạnh mẽ và chóng mặt, các nhánh con như Computer Vision và Natural Language Processing cũng từ đó mà phát triển lên

Sau bốn năm học tập trên trường và có may mắn được gặp thầy Tín Thầy đã truyền cảm hứng cho em về lĩnh vực CNTT trong AI Chính vì muốn được tiếp cận quy trình làm việc và các bài toán AI đang gặp trong tình hình hiện tại, 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 4

LỜI CẢM ƠN

Trân trọng gửi lời cảm ơn Công ty VCCorp nói chung và thầy Huỳnh Ngọc Tín nói riêng

đã tạo điều kiện cho em có cơ hội được 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 cảm ơn anh Tuyên là người đã hỗ trợ em từ lúc em mới vào công ty, từ những quy trình tới setup những môi trường, thủ tục cần thiết Cảm ơn anh Tùng đã hỗ trợ các vấn đề

kỹ thuật cũng như chia sẻ cách làm việc, phong cách của công ty để giúp em hòa nhập một cách nhanh nhất ạ

Cũng xin 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 em làm bài báo cáo này

Ngô Trung Hiếu TpHCM, ngày 14 tháng 7 năm 2020

Trang 5

NHẬN XÉT CỦA KHOA

Trang 6

MỤC LỤC

1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty 9

Trang 7

Chương 1: Giới thiêu công ty thực tập

1 Giới thiệu công ty 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

Với việc được chia thành nhiều bộ phận, 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 để 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

2 Sản phẩm của công ty

#1 Adnetwork

Tiếp cận 97.6% người dùng Internet, với 5 nhóm chuyên mục lớn, hơn 1000+ publishers, 30 đối tác độc quyền, cùng 10000+ nhà mua quảng cáo

#1 Mobile Adnetwork

Trang 8

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

#1 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

#1 Product Innovation

Dẫn đầu thị trường trong cung cấp tính năng đột phá, sở hữu 22 sản phẩm & giải pháp, nổi bật với: quảng cáo hiển thị, truyền thông, mua tự động, mobile

Trang 9

Chương 2: Nội dung thực tập

Đợt thực tập với chủ đề "Xây dựng phần mềm sửa lỗi 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 của một bài toán AI khi

áp dụng vào thực tế

1 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 (như đã nhắc đến ở trê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…

Kết quả : Hiểu thêm về bộ phận Adtech, quá trình thành lập và phát triển Có thêm 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

2 Nghiên cứu kỹ thuật

2.1 Các công cụ làm việc

Thời gian : 4 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.

Trong thời gian này, supervisor đã hướng dẫn thực tập sinh tìm hiểu về các công

cụ sẽ giúp ích cho trong công việc sau này Một số phần mềm trong số đó như OpenVPN - sử dụng trong làm việc với server, Redmine – sử dụng để làm việc nhóm

Hệ điều hành Linux để làm việc dễ dàng hơ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, so với việc dùng các IDE

2.2 Tìm hiểu cơ bản về AI

Thời gian : 5 ngày (1 tuần)

Nội dung : Được training kiến thức,toán cơ bản, thuật toán AI cơ bản

- Thuật toán AI cơ bản

Các kiến thức cơ bản về AI như khái niệm Linear Regression, Logistic Regression, Gradient Descent

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.

Trang 10

Kết quả :

- Nắm rõ về kiến thức cơ bản của AI

- Có được những kiến thức quan trọng cho việc lập trình AI

2.3 Tìm hiểu về Deep Learning và các thư viện đi kèm

Nội dung: Các kiến thức cơ bản như Neural Network, CNN, RNN và thư viện keras,

tensorflow, xử lý dữ liệu như numpy, pandas đi kèm

- Khái niệm cơ bản về Neural Network

Còn được gọi là 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 — machine learning, 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 của học máy Mục đích của nó để giải quyết vấn đề tương tự cách con người thực hiện

- Khái niệm cơ bản về CNN:

Convolutional Neural Network (CNNs – Mạng nơ-ron tích chập) là một trong những mô hình Deep Learning tiên tiến Nó giúp cho chúng ta xây dựng được những hệ thống thông minh với độ chính xác cao như hiện nay Như hệ thống xử lý ảnh lớn như Facebook, Google hay Amazon đã đưa vào sản phẩm của mình những chức năng thông minh như nhận diện khuôn mặt người dùng, phát triển xe hơi tự lái hay drone giao hàng tự động

- Khái niệm cơ bản về RNN

Ý tưởng chính của RNN (Recurrent Neural Network) là sử dụng chuỗi các thông tin Trong các mạng nơ-ron truyền thống tất cả các đầu vào và cả đầu ra là độc lập với nhau Tức là chúng không liên kết thành chuỗi với nhau Nhưng các

mô hình này không phù hợp trong rất nhiều bài toán Ví dụ, nếu muốn đoán từ tiếp theo có thể xuất hiện trong một câu thì ta cũng cần biết các từ trước đó xuất hiện lần lượt thế nào chứ nhỉ? RNN được gọi là hồi quy (Recurrent) bởi lẽ chúng thực hiện cùng một tác vụ cho tất cả các phần tử của một chuỗi với đầu ra phụ thuộc vào cả các phép tính trước đó Nói cách khác, RNN có khả năng nhớ các thông tin được tính toán trước đó Trên lý thuyết, RNN có thể sử dụng được thông tin của một văn bản rất dài

- Tensorflow - Keras

Tensorflow là một thư viện mã nguồn mở cung cấp khả năng xử lí tính toán

số học dựa trên biểu đồ mô tả sự thay đổi của dữ liệu Tensor được sử dụng khi bạn cần giải quyết các bài toán supervised learning

Trang 11

Keras là một open source cho Neural Network được viết bởi ngôn ngữ Python Nó

là một library được phát triển vào năm 205 bởi Francois Chollet, là một kỹ sư nghiên cứu Deep Learning Keras có thể sử dụng chung với các thư viện nổi tiếng như Tensorflow, CNTK, Theano

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

● Có thể xử lý tập dữ liệu khác nhau về định dạng: chuỗi thời gian, bảng không đồng nhất, ma trận dữ liệu

● Khả năng import dữ liệu từ nhiều nguồn khác nhau như CSV, DB/SQL

● Có thể xử lý vô số phép toán cho tập dữ liệu: subsetting, slicing, filtering, merging, groupBy, re-ordering, and re-shaping,

● Xử lý dữ liệu mất mát theo ý người dùng mong muốn: bỏ qua hoặc chuyển sang 0

● Xử lý, phân tích dữ liệu tốt như mô hình hoá và thống kê

● Tích hợp tốt với các thư viện khác của python

● Cung cấp hiệu suất tốt và có thể tăng tốc thậm chí hơn cả sử dụng Cython ( extension C cho python)

Thực hiện :

- Tham gia đầy đủ các buổi training.

- Tìm kiếm tài liệu trên mạng để tìm hiểu thêm.

Kết quả :

- Hiểu được những khái niệm cơ bản trong lập trình Deep Learning

- Sử dụng thư viện cho bài toán

2.4 Thực hiện project

Trang 12

Sau 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ề AI, Deep Learning và thư viện đi kèm Trong tháng thứ hai, trainer đã hướng dẫn thực tập sinh áp dụng những kiến thức đã học để thực hiện một project Chi tiết đồ

án sẽ được nói ở phần sau

3 Lịch làm việc

Mứ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, cách tổ chức của công ty

- Làm quen với các

công cụ làm việc trong công ty

- Học cách trao đổi,

làm việc qua email

Thanh Anh Tuyên

2 - Tìm hiểu về AI AnhThanh Anh TuyênNguyễn

3 - Tìm hiểu về DeepLearning AnhThanh Anh TuyênNguyễn

4 - Tìm hiểu về paperbài toán Sửa lỗi

tiếng việt

Thầy Huỳnh Ngọc Tín

5 - Lên kế hoạch

- Lập plan

Thầy Huỳnh Ngọc Tín

6

- Viết Model đầu tiên

theo paper

- Thực nghiệm và

đánh giá

Thầy Huỳnh Ngọc Tín

7

- Tiếp tục cải thiện

model

- Thực nghiệm và

đánh giá

Thầy Huỳnh Ngọc Tín

8

- Tìm hiểu cách tối ưu, phát triển model bằng nhiều phương pháp khác nhau thông qua kết quả trước đó

Thầy Huỳnh Ngọc Tín

Trang 14

Chương 3: Chi tiết về project

1 Giới thiệu về bài toán

Tự động phát hiện và sửa lỗi chính tả (Auto 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 auto 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 Nhưng với tiếng Việt thì sao?

1.1 Paper tham khảo

1.2 Thuật toán

Mô tả

- Training model n-gram: Unigram, Bigram, Trigram bằng cách đếm tần số xuất hiện và sau đó tính xác suất của n-gram

- Tính xác suất của một từ mà đã cho các từ láng giềng bằng công thức geometric mean function được gợi ý trong paper

- Sử dụng xác suất có được từ model và công thức trên để tiến hành sửa lỗi

2 Thực hiện

Ngô Trung Hiếu

3 Kế hoạch

Giai đoạn tìm hiểu các paper liên quan:

- Paper Using large n-gram

- Paper về word2vec

Giai đoạn training model

Giai đoạn thử nghiệm

Giai đoạn đánh giá

Trang 15

Giai đoạn cải tiến

Kết quả :

- Đạt được ~60% kết quả trên tập test

Trang 16

TÀI LIỆU THAM KHẢO

For Paper

https://www.researchgate.net/publication/282937386_Using_Large_N-gram_for_Vietnamese_Spell_Checking

For AI

https://machinelearningcoban.com/

Các bài báo NLP có liên quan tới bài toán

https://towardsdatascience.com/embedding-for-spelling-correction-92c93f835d79

https://www.analyticsvidhya.com/blog/2019/08/comprehensive-guide-language-model-nlp-python-code/

Trang 17

TỔNG KẾT

Như vậy, chỉ trong vòng thời gian thực tập, em đã build được base model để 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 model 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

Ngày đăng: 05/09/2021, 21:07

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w