- Ngoài ra còn có dịch tự động, tìm kiếm thông tin, tóm tắt văn bản, khai phá dữliệu Với tiếng Việt, các bài toán phổ biến có phân tách câu, tách từ, tự động thêm dấu từ.Sau ba năm học t
Trang 1TP Hồ Chí Minh, tháng 6 năm 2020
Trang 2Các bài toán phổ biến trong NLP bao gồm:
- Nhận dạng chữ viết: Có hai kiểu nhận dạng, thứ nhất là nhận dạng chữ in, ví dụnhận dạng chữ trên sách giáo khoa rồi chuyển nó thành dạng văn bản điện tử như dướiđịnh dạng doc của Microsoft Word chẳng hạn Phức tạp hơn là nhận dạng chữ viết tay, cókhó khăn bởi vì chữ viết tay không có khuôn dạng rõ ràng và thay đổi từ người này sangngười khác Với chương trình nhận dạng chữ viết in có thể chuyển hàng ngàn đầu sáchtrong thư viện thành văn bản điện tử trong thời gian ngắn Nhận dạng chữ viết của conngười có ứng dụng trong khoa học hình sự và bảo mật thông tin (nhận dạng chữ ký điệntử)
- Nhận dạng tiếng nói: Nhận dạng tiếng nói rồi chuyển chúng thành văn bản tươngứng Giúp thao tác của con người trên các thiết bị nhanh hơn và đơn giản hơn, chẳng hạnthay vì gõ một tài liệu nào đó bạn đọc nó lên và trình soạn thảo sẽ tự ghi nó ra Đây cũng
là bước đầu tiên cần phải thực hiện trong ước mơ thực hiện giao tiếp giữa con người vớirobot Nhận dạng tiếng nói có khả năng trợ giúp người khiếm thị rất nhiều
- Tổng hợp tiếng nói: Từ một văn bản tự động tổng hợp thành tiếng nói Thay vìphải tự đọc một cuốn sách hay nội dung một trang web, nó tự động đọc cho chúng ta.Giống như nhận dạng tiếng nói, tổng hợp tiếng nói là sự trợ giúp tốt cho người khiếm thị,nhưng ngược lại nó là bước cuối cùng trong giao tiếp giữa robot với người
- Ngoài ra còn có dịch tự động, tìm kiếm thông tin, tóm tắt văn bản, khai phá dữliệu
Với tiếng Việt, các bài toán phổ biến có phân tách câu, tách từ, tự động thêm dấu từ.Sau ba năm học tập trên trường, do mong muốn có thêm kinh nghiệm thực tế, cũng nhưmuốn được tham gia nghiên cứu và làm việc trong môi trường tốt, em có dự định là sẽ đi thựctập về Artificial Intelligence (Trí tuệ nhân tạo) đặc biệt là về NLP Vì vậy, em quyết định chọnAdMicro – Một môi trường học tập, làm việc, hiện đại – là nơi sẽ giúp em thực hiện dự địnhnày
Trang 3Đặc biệt cảm ơn thầy Tín anh Tùng đã training, hướng dẫn, giúp đỡ cho chúng em tậntình cả những khó khăn trong công việc, đến những khó khăn việc làm quen với môi trườngmới, đã chỉ dẫn chúng em về cách làm báo cáo, lên kế hoạch, những kỹ năng không thể thiếu.
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ềukiện em làm bài báo cáo này
Ngô Hoàng PhúcTP.HCM, ngày 19 tháng 6 năm 2020
Trang 4NHẬN XÉT CỦA KHOA
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Trang 6CHƯƠ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 phongtrong 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ẩmsá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ị đónggóp lớn vào sự phát triển của Internet Việt Nam trong một thập kỷ qua
2 Giới thiệu Admicro
Admicro thuộc Công ty cổ phần truyền thông Việt Nam VCcorp
Admicro hiện đang là mạng lưới kinh doanh quảng cáo trực tuyến hàng đầu tại thị trườngViệt Nam
VCCorp hiện đang sở hữu thương hiệu quảng cáo trực tuyến Admicro là đơn vị quảngcá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ị độcquyề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ườidù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ạokhông ngừng, Admicro luôn ở vị thế dẫn đầu thị trường, giúp các trang báo và trangthô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ạnhtranh được các website dịch vụ nước ngoài
Trang 7Hình: Các thành phần của AdMicro
Các sản phẩm quảng cáo sáng tạo, ứng dụng nền tảng công nghệ cloud computing, hệ thống xử lý dữ liệu lớn hàng tỷ bản ghi của Admicro giúp các doanh nghiệp tối ưu hóa hiệu quả marketing và tiếp cận nhanh nhất đến độc giả Internet Thông qua hệ thống Admicro, khách hàng có thể kiểm soát và đo lường số liệu theo thời gian thực, nhắm tới đúng đối tượng độc giả, khu vực, vùng miền, theo độ tuổi, giới tính
3 Giới thiệu bộ phận Adtech HCM
Adtech HCM là một bộ phận trong Adtech đảm nhiệm tìm hiểu và nghiên cứu, triển khai
và phát triển các lĩnh vực như Big Data, Computer Vision, NLP, …
Trang 8CHƯƠNG 2: NỘI DUNG THỰC TẬP
Đợt thực tập với lĩnh vực NLP nhằm mục đích giúp sinh viên thực tập được đào tạo kiếnthức về xử lý ảnh, đồng thời rèn luyện những kỹ năng mềm như làm việc nhóm, thuyết trình,giao tiếp Tại công ty, sinh viên có cơ hội được học tập, khám phá và làm việc trong một môitrường phát triển chuyên nghiệp
Công việc đã thực hiện
STT Nội dung công việc Mô tả công việc Thời gian
thực hiện Kết quả
1 Apache Hadoop Tìm hiểu về nguyên lý của
MapReduceTìm hiểu kiến trúc của Hadoop 1.0
Cài đặt Hadoop
17/02/2020 - 27/02/2020
Hoàn thành mô tả công việc
2 Apache Spark Cài đặt Spark
Tìm hiểu cơ chế hoạt động của Spark
28/02/2020 - 07/03/2020 Hoàn thành phần môtả công việc.
Tạo ứng dụng đếm
từ với Spark
3 Git Tìm hiểu về nguyên lý hoạt
động của GitCác lệnh thao tác trong GitCác workflow phổ biến trongGit
08/03/2020 - 21/03/2020
Hoàn thành phần mô
tả công việc
Tạo ứng dụng lưu trữ thông tin sách với Spring Boot
4 Spring và Spring
Boot
Tìm hiểu về Spring BootTìm hiểu cơ chế hoạt động của Spring Boot
08/03/2020 - 21/03/2020 Hoàn thành phần môtả công việc.
Tạo ứng dụng lưu trữ thông tin sách với Spring Boot
5 Machine Learning Tìm hiểu về thuật toán toán
ưu gradient-based
Tìm hiểu xác suất thống kê
27/03/2020 - 02/04/2020
Hoàn thành phần mô
tả công việc
Trang 9trong Machine Learning.
6 Deep Learning Tìm hiểu về mạng ANN,
activation functions, ứng dụng của lan truyền ngược
Tìm hiểu mạng CNN
03/04/2020 15/04/2020
-Hoàn thành phần mô
tả công việc
Hiện thực các lớp trong mạng CNN
7 NLP Tìm hiểu về bài toán Text
Classfication, Dimension Reduction và
WordEmbedding
Tìm hiểu phương pháp Neural Language Model
16/04/2020 - 10/05/2020
8 Data Labelling Hỗ trợ tìm các video và gán
nhãn dữ liệu cho bài toán phát hiện video 16/18+
17/02/2020 - 17/05/2020
Hoàn thành phần mô
tả công việc
Bảng: Các hoạt động trong thực tập
CHƯƠNG 3: CHI TIẾT VỀ PROJECT
1 Giới thiệu về text classification
Bài toán classification đã được nghiên cứu và áp dụng vào nhiều lĩnh vực thực tế Hầuhết các hệ thống phân loại văn bản có thể được chia làm 4 giai đoạn chính: trích xuất đặctrưng, giảm số chiều, phân loại và đánh giá
Theo bài toán, input đầu vào bao gồm bộ các văn bản thô D = {X1, X2 XN }, mỗi Xn bao gồm s câu, mỗi câu có ws chữ và mỗi chữ có lw Sau khi qua xử lý thì mỗi văn bản
Xn được dán một nhãn phân loại
Tông quan, có 4 mức độ khác nhau có thể được áp dụng trong phân loại văn bản:
Trang 101.1 Trích xuất đặc trưng
Văn bản ban đầu là bộ data khơng được cấu trúc, muốn xử lý được các văn bản cần phải chuyển chúng vào khơng gian đặc trưng cĩ cấu trúc (structured feature space) Trước hết data cần được làm sạch để loại bỏ các từ, ký tự khơng cần thiết Sau đĩ các phương pháp rút trích đặc trưng cĩ thể được áp dụng Các kĩ thuật phổ biến bao gồm Term Frequency-Inverse Document Frequency (TF-IDF), Term Frequency (TF), Word2Vec, and Global Vectors for Word Representation (GloVe)
1.2 Giảm số chiều
Data sau khi được chuyển sang dạng vector, nếu được đưa trực tiếp vào hệ thống, cĩ thể gây ra chậm trễ về thời gian và tăng yêu cầu bộ nhớ Vì thế, chúng ta cần phải cắt giảm số chiều của các vector Các phương pháp phổ biến bao gồm: Principal
Component Analysis (PCA), Linear Discriminant Analysis (LDA), and non-negative matrix factorization (NMF), unsupervised feature extraction dimensionality reductionnhư random projection, autoencoders, and t-distributed stochastic neighbor
embedding (t-SNE)
1.3 Phân loại văn bản
Phần quan trọng nhất trong quá trình là lựa chọn một classifier thích hợp Để xác địnhđược thuật tốn hợp lý nhất, chúng ta cần hiểu được bản chất của chúng Cĩ nhiều loại thuật tốn cĩ thể được sử dụng:
- Các thuật tốn cĩ tham số: boosting, bagging, Nạve Bayes Classifier (NBC) (chi phí tính tốn rẻ và yêu cầu ít bộ nhớ)
- Các thuật tốn khơng tham số: k-nearest neighbor (KNN), Support Vector Machine (SVM)
- Một số classifier dựa vào cây (tree-based classifiers) như decision tree và
random forest
1.4 Đánh giá
Giai đoạn cuối cùng là đánh giá, mục tiêu chính là để làm rõ hiệu quả của thuật tốn,
từ đĩ đưa ra điều chỉnh hoặc thay thế thích hợp Cĩ một số phương pháp đánh giá dành riêng cho thuật tốn phân loại văn bản: Fβ Score, Matthews Correlation
Coefficient (MCC), receiver operating characteristics (ROC), and area under the ROC curve (AUC)
Trang 112.1.6 Sửa chính tả
Đây là bước có thể được thực hiện hoặc không Các lỗi chính tả thường được bắt gặp trong văn bản không chính thống như trên mạng xã hội Có nhiều phương pháp có thểđược áp dụng như dựa vào hashing, hoặc ngữ nghĩa để phát hiện lỗi
2.2 Thể hiện của từ
Giữa các từ trong câu có mối liên hệ về cả ngữ nghĩa và cấu trúc, có nhiều nghiên cứu
đã giúp giảm thiểu sự mất mát mối quan hệ này
Trang 122.2.1 N-Gram
N-gram là kĩ thuật chia một câu thành các token chứa n chữ (hoặc ký tự) từ đó hình thành các BOW (bag of words) Thông thường sẽ dừng 2-gram hoặc 3-gram Kỹ thuật cải tiến là Syntactic N-Gram dựa vào kiến trúc cây
2.3 Từ có trọng số
Kỹ thuật được sử dụng rộng rãi nhất trong đánh trọng số cho từ là TF (term
frequency) Có thể cải tiến TF bằng cách sử dụng trọng số dạng log
2.3.1 BOW
Túi từ là mô hình để đơn giản hóa một đoạn văn bản, chuyển nó thành một vector, mỗi thành phần của vector được xác định dựa vào tiêu chí nào đó Tuy nhiên do văn bản là chuỗi liên tiếp các từ có quan hệ ngữ nghĩa, cấu trúc, khi chuyển thành BOW, các quan hệ này biến mất
Một hạn chế khác là BOW chuyển mỗi từ thành một one-hot-encoded vector, số chiều bằng số lượng từ có thể có, vì thế rất phí tài nguyên khi xử lý, lưu trữ
2.3.2 Term Frequency-Inverse Document Frequency
Đây là kĩ thuật đánh trọng số chữ, ý tưởng chính là nhấn mạnh vào ảnh hưởng của các từ trong một bộ văn bản
Tuy nhiên, TF-IDF không cho thấy được mối tương quan giữa các từ (nghĩa, cấu trúc) do mội từ được thể hiện bằng một chỉ số độc lập nhau
2.4 Word Embedding
WE là kỹ thuật học hỏi đặc trưng với mỗi từ (hoặc phrase) được chuyển thành một vector số thực N chiều Nhiều phương pháp đã được đưa ra, phổ biến là Word2Vec, GloVe và FastText
Mục tiêu chính là có thể rút trích đặc trưng của từ mà các đặc trưng đó có thể thể hiệnđược quan hệ cú pháp, ngữ nghĩa
Có nhiều mô hình đã được nghiên cứu để thiện thực kỹ thuật này, nổi bật có
Word2vec, Glove và Fast Mỗi mô hình có từng có độ phức tạp và yêu cầu thời gian riêng, lựa chọn mô hình phù hợp là sự lựa chọn giữa độ chính xác và độ phức tạp
3 Code mã hóa
Để hiện thực được bài toán phân loại văn bản, cần hiện thực các mô hình Word
Embedding để chuyển thông tin dạng văn bản sang thông tin số máy tính có thể xử lý được
Trang 14o Folder crawl: chữa tool trợ giúp khai thác dữ liệu cần thiết.
o File Normalization: giúp chuẩn hóa văn bản
3.2 Khai thác dữ liệu
3.2.1 Khai thác đường link bài báo
Công cụ khai thác dữ liệu được viết bằng ngôn ngữ Python, với module là
beautifulSoup, giúp rút trích thông tin từ file html
Các bài báo được khai thái được lấy từ hai trang thông tin điện tử phổ biến, bao gồm news.zing.vn và kenh14.vn Nội dụng đăng tải của hai trang này trải dài qua nhiều lĩnh vực (kinh tết, thời sự, pháp luật đến đời sống, giới trẻ …) và được viết bởi nhiều người nên có thể giúp bộ dữ liệu khai thác được đa dạng
Các bài báo thuộc từng loại được xếp vào các đường dẫn riêng, nên khi việc thực hiệnkhai thác dữ liệu khá đơn giản khi chỉ cần nối đường URL của trang chủ với phần đuôi thể hiện từng phân loại
Nội dung của file crawl_URL.py được thể hiện ở hình dưới
Trang 15Hình: Nội dung file crawl_URL.py
3.2.2 Khai thác nội dung bài báo
Sau khi các đường dẫn URL được lưu vào file riêng Nội dung các bài báo cỏ thể được khai thác dễ dàng
Thông thường, nội dung sẽ được đưa vào một tag HTML (<div>) để phân biệt với phần còn lại của trang (quảng cáo, bài báo khuyến nghị, header, footer…)
Trang 16Ngoài văn bản, một bài báo còn chứa các thông tin định dạng khác (hình ảnh,
video…) nên sau khi có được nội dung cần thực hiện lọc lại
Nội dung file crawl_text.py được thể hiện như hình
Hình: Nội dung file absURLs.csv
Trong articles.csv, mỗi bài báo được lưu trong một dòng được dẫn đầu bằng số thứ tự của URL tương ứng, phân biệt nhau bằng dấu ‘*’ Vì để đảm bảo tính ngẫu nhiên của
dữ liệu, các bài báo đã được xác trộn trước khi được lưu vào
Trang 17Hình :Nội dung file articles.csv
3.3 Tiền xử lý dữ liệu
3.3.1 Chuẩn hóa văn bản
Văn bản được khai thác còn chứa các kí tự dư ( dấu cách, các dấu câu…) nên cần được loại bỏ Việc này được thực hiện bởi các hàm trong file Normalization.py
Trang 18Hình: Nội dung file Normalize.py
Kết quả được lưu trong file preprocessed_articles.txt
Trang 19Hình : Nội dung file preprocessed_articles.txt
3.3.2 Nhóm từ
Vì các từ trong tiếng Việt được cấu từ từ các tiếng nên cần phải được nhóm lại Việc nhóm có thể được thực hiện bằng nhiều cách khác nhau
Trang 20Hình: Nội dung file segmented_articles.txt
3.3.2 Xây dựng bộ từ điển
Ngoài ra, còn cần có bộ từ điển tiếng Việt Vì mỗi bộ dữ liệu sẽ có một bộ từ đặc trưng, nên để đảm bảo cá mô hình WE có thể chuyển đổi toàn bộ từ, nên thay vì sử dụng bộ từ điển đã được đăng tải trên mạng, bộ từ riêng được xây dựng và lưu trong Dictionary.csv
3.4 Xây dựng mô hình
Có hai mô hình được hiện thực là Word2Vec và GloVe
3.4.1 Word2Vec
Trang 22Hình: Nội dung file Skipgram.py
Trang 233.4.2 Nâng cấp của Skipgram
Hình: Nội dung file hi-softmax.py 3.4.3 Mô hình Glove
Trang 25Hình: Nội dung file Glove.py
Trang 27Hình: Ma trận kết quả sau khi chạy Glove
Trang 28CHƯƠNG 4: TỔNG KẾT
Như vậy, trong ba tháng thực tập em đã học được các kiến thức về NLP đã học, đồng thời có thêm những kiến thức, kinh nghiệm mới về cách làm việc, các kỹ năng mềm , Môi trường làmviệc trẻ trung, vui vẻ, thoải mái cho việc học tập, nghiên cứu phát triển Được học hỏi, đào tạo
về các công nghệ mới nhất, đặc biệt trong lĩnh vực ML/Deeplearning đang vô cùng hot hiện nay Có cơ hội tham gia vào các bài toán đang triển khai thực tế, Có hệ thống máy tính mạnh cho việc chạy thử nghiệm các thuật toán ML
Chân thành cảm ơn sự giúp đỡ của các anh chị trong nhóm/ Cảm ơn thầy Huỳnh Ngọc Tín vàanh Trần Văn Tùng đã giúp em hoàn thành bài báo cáo này