Hiện nay, số lượng văn bản quá lớn, sử dụng phương pháp phân loại dữ liệu thủ công là điều không khả thi bởi có vô số văn bản cần phân loại. Mặt khác máy tính chỉ có thể hiểu được dữ liệu đầu vào ở dạng số mà phần lớn lượng thông tin hiện nay lại ở dạng văn bản – một dạng của ngôn ngữ tự nhiên nên vấn đề đặt ra ở đây là làm sao để chuyển dữ liệu ở dạng ký tự về dữ liệu dạng số sau đó tổ chức huấn luyện máy tính có thể hiểu để phân loại thông tin có hiệu quả cao nhất, nhanh chóng phân loại được thông tin theo thể loại đã định trước. Trước hết đã là bài toán phân loại thì chúng ta có thể dùng các thuật toán phân loại như: Naive Bayes, Decision Tree (Random Forest), Véc tơ Support Machine (SVM), Convolution Nơron Network (CNN), Recurrent Nơron Network (RNN)… Theo một số khảo sát, nghiên cứu thì kỹ thuật mạng Nơron tích chập CNN được đánh giá là có độ chính xác tốt với tính nhất quán dữ liệu khá cao và vượt trội hơn các kỹ thuật khác ở thời gian huấn luyện dữ liệu.
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA TRẦN THỊ THÚY HÀ C C R L T PHÂN LOẠI VĂN BẢN DỰA TRÊN CNN DU LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Đà Nẵng – Năm 2021 ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA TRẦN THỊ THÚY HÀ C C PHÂN LOẠI VĂN BẢN DỰA TRÊN CNN R L T DU Chuyên ngành : Khoa học máy tính Mã số : 8480101 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Người hướng dẫn khoa học: PGS.TS VÕ TRUNG HÙNG Đà Nẵng – Năm 2021 -i- LỜI CAM ĐOAN Tơi xin cam đoan cơng trình nghiên cứu riêng hướng dẫn trực tiếp PGS.TS Võ Trung Hùng Mọi tham khảo, số liệu, bảng biểu dùng luận văn trích dẫn rõ ràng tên tác giả, tên cơng trình, thời gian, địa điểm công bố Mọi chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tơi xin chịu hồn tồn trách nhiệm Tác giả C C Trần Thị Thúy Hà DU R L T -ii- TÓM TẮT ĐỀ TÀI PHÂN LOẠI VĂN BẢN DỰA TRÊN CNN Học viên: Trần Thị Thúy Hà Chuyên ngành: Khoa học máy tính Mã số: 8480101 Khóa:36 Trường Đại học Bách khoa – ĐHĐN Tóm tắt – Hiện nay, số lượng văn lớn, sử dụng phương pháp phân loại liệu thủ công điều không khả thi có vơ số văn cần phân loại Mặt khác máy tính hiểu liệu đầu vào dạng số mà phần lớn lượng thông tin lại dạng văn – dạng C C ngôn ngữ tự nhiên nên vấn đề đặt để chuyển liệu dạng ký tự liệu dạng số sau tổ chức huấn luyện máy tính R L T hiểu để phân loại thơng tin có hiệu cao nhất, nhanh chóng DU phân loại thông tin theo thể loại định trước Trước hết tốn phân loại dùng thuật tốn phân loại như: Naive Bayes, Decision Tree (Random Forest), Véc tơ Support Machine (SVM), Convolution Nơron Network (CNN), Recurrent Nơron Network (RNN)… Theo số khảo sát, nghiên cứu kỹ thuật mạng Nơron tích chập - CNN đánh giá có độ xác tốt với tính quán liệu cao vượt trội kỹ thuật khác thời gian huấn luyện liệu Luận văn bao gồm nội dung sau: (1) Tổng quan lý thuyết phương pháp xử lý ngôn ngữ tự nhiên (2) Tổng quan toán phân loại văn (3) Triển khai hệ thống nhận xét Từ khóa – Phân loại văn bản, mạng nơ ron tích chập, xử lý liệu, nhúng từ, siêu tham số -iii- (CONVOLUTIONAL NORON NETWORK) Abstract - Now, the amount of documents is too large, using manual data classification method is not feasible because there are countless documents to classify On the other hand, computers can only understand input data in the form of numbers, but most of the information today is in text form - a form of natural language so the problem is how to transfer data Character data about digital data, then computer training organizations can understand to classify information most effectively, quickly classify information according to predetermined categories C C First of all, the classification problem, we can use classification R L T algorithms such as: Naive Bayes, Decision Tree (Random Forest), Véc tơ Support Machine (SVM), Convolution Nơron Network (CNN), Recurrent DU Nơron Network (RNN) ) According to some surveys and studies, the convolutional nơron network technique - CNN is considered to have good accuracy with high data consistency and is superior to other techniques at data training time Whether The thesis includes the following contents: (1) Overview of theory and natural language processing methods (2) Overview of the text classification problem (3) Implementing system and commenting Key words - Classification of text, nơron networks, data processing, Word Embedding, hyperparameter -iv- MỤC LỤC LỜI CAM ĐOAN i TÓM TẮT ĐỀ TÀI ii MỤC LỤC iv DANH MỤC CÁC HÌNH ẢNH vi DANH MỤC BẢNG BIỂU vii DANH MỤC TỪ VIẾT TẮT viii MỞ ĐẦU 1 LÝ DO CHỌN ĐỀ TÀI MỤC TIÊU VÀ NHIỆM VỤ ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU C C PHƯƠNG PHÁP NGHIÊN CỨU R L T Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN BỐ CỤC LUẬN VĂN DU CHƯƠNG TỔNG QUAN VỀ CƠ SỞ LÝ THUYẾT 1.1 Tổng quan xử lý ngôn ngữ tự nhiên 1.2 Học sâu 10 1.2.1 Khái niệm 10 1.2.2 Học sâu mạng lưới thần kinh lớn 10 1.2.3 Học sâu học tính phân cấp 13 1.2.4 Học sâu - học mở rộng miền 16 1.3 Hứa hẹn học sâu dành cho ngôn ngữ tự nhiên 17 1.3.1 Hứa hẹn học sâu 17 1.3.2 Hứa hẹn mơ hình thay thả vào 18 1.3.3 Hứa hẹn mơ hình nlp 18 1.3.4 Hứa hẹn tính học tập 19 1.3.5 Hứa hẹn tiếp tục cải tiến 20 1.3.6 Hứa hẹn mô hình đầu cuối 20 1.4 Tiểu kết chương 21 -v- CHƯƠNG PHÂN LOẠI VĂN BẢN 23 2.1 Mơ tả tốn 23 2.2 Kỹ thuật Word Embeddings kết hợp CNN cho phân loại văn 26 2.3 Sử dụng kiến trúc CNN lớp 33 2.4 Siêu tham số CNN 39 2.5 Tiểu kết chương 42 CHƯƠNG 3: THỬ NGHIỆM VÀ ĐÁNH GIÁ 43 3.1 Đặc tả chương trình 43 3.2 Lựa chọn công cụ 44 3.2.1 Ngôn ngữ Python 44 3.2.2 Framework Tensorflow 46 C C 3.2.3 Keras 46 R L T 3.3 Các bước triển khai 47 3.4 Chuẩn bị liệu 48 DU 3.5 Cài đặt - ứng dụng 49 3.6 Đánh giá 59 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 61 TÀI LIỆU THAM KHẢO 62 Tài liệu tiếng Việt: 62 Tài liệu tiếng Anh: 62 -vi- DANH MỤC CÁC HÌNH ẢNH Hình 1 Mơ hình mạng thần kinh nhân tạo 11 Hình Lý sử dụng Deep Learning 13 Hình Cấu trúc CNN phân loại câu 24 Hình 2 Ví dụ mơ tả xử lý thành Véc tơ Word Embedding 28 Hình Phân bố mối quan hệ từ word2vec .29 Hình Mơ hình skip-gram word2vec 30 Hình Mơ hình mạng Nơron lớp ẩn word2vec 31 Hình Hoạt động lớp ẩn mơ hình hoạt động 32 Hình Cửa sổ trượt Sliding window 34 C C Hình Mơ tả cách Filter 3×3 phát Vertical Edge image .34 Hình Sơ đồ mơ hình lớp CNN .35 R L T Hình 10 Filter kích thước 2x2 để tính giá trị Pooling 36 DU Hình 11 Cấu trúc tổng qt mơ hình CNN 36 Hình 12 Một ví dụ Bộ lọc CNN Kiến trúc bỏ phiếu cho NNTN xử lý 38 Hình 13 Ma trận sử dụng Zero Padding 41 Hình Workflow quy trình giải học máy 43 -vii- DANH MỤC BẢNG BIỂU Bảng Bảng so sánh kích thước Filter 40 C C DU R L T -viii- DANH MỤC TỪ VIẾT TẮT STT TỪ VIẾT TẮT CNN MÔ TẢ Convolutional Nơron Network - Mạng nơ ron tích chập NLP Natural language processing - Xử lý ngôn ngữ tự nhiên DL Deep learning – Học sâu RNN Recurrent nơron network - Mạng nơ ron hồi quy NMT Nơron machine translation – Mô hình dịch máy API Application Programming Interface – phương thức trung gian kết nối ứng dụng thư viện khác C C DU R L T -59- best_model=keras.callbacks.ModelCheckpoint(filepath='cnn_best_ model.h5',monitor='val_acc',save_best_only=True,verbose=1) # Bắt đầu huấn luyện model_history=model.fit(train_data, train_labels, batch_size=5 12,validation_split=0.3, epochs=50,callbacks=[early_stopping,b est_model]) Kết thực hiện: C C R L T 3.6 Đánh giá DU Sau kết thúc trình huấn luyện, ta sử dụng test set để đánh giá độ xác mơ hình tạo sau: # Tải lên Mơ hình tốt model=keras.models.load_model(filepath='cnn_best_model.h5') # Đánh giá mơ hình thử nghiệm print(model.evaluate(test_data,test_labels)) Kết sau: Ta hiển thị biểu đồ Training accuracy - độ xác huấn luyện Validation accuracy – độ xác xác thực sử dụng history để đánh sau: import matplotlib.pyplot as plt # Get training accuracy and validation accuracy from model his tory history_dict = model_history.history -60- accuracy = history_dict['acc'] val_accuracy = history_dict['val_acc'] # Diplay a chart of training accuracy and validation accuracy epochs = range(1, len(accuracy) + 1) plt.plot(epochs, accuracy) plt.plot(epochs, val_accuracy) plt.title('Training and validation accuracy') plt.xlabel('No of Epochs') plt.ylabel('Accuracy') plt.legend(['Training accuracy', 'Val accuracy'], loc='center right') plt.show() Kết ta biểu đồ sau: C C DU R L T -61- KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Kết luận: Trong năm gần việc dùng mạng CNN cho xử lý ngôn ngữ tự nhiên trở nên phổ biến hiệu suất ngày cải thiện Theo số khảo sát, nghiên cứu kỹ thuật mạng nơ ron tích chập - CNN đánh giá có độ xác tốt với tính quán liệu cao vượt trội kỹ thuật khác thời gian huấn luyện - trainning liệu Luận văn nghiên cứu, tìm hiểu toán phân loại văn ứng dụng CNN thực phát triển, cài đặt chương trình thực giải cho toán dựa cách tiếp cận công bố qua nhiều báo, công trình khoa học giới Các kết mà luận văn đạt được, tương ứng với mục tiêu đề C C ban đầu sau R L T Ưu nhược điểm: Về ưu điểm: Về luận văn trình bày rõ sở lí thuyết, DU phương pháp phân loại văn bản, mơ hình tổng quan mạng nơ ron tích chập CNN phương pháp huấn luyện đánh giá cho mơ hình Thực nghiệm cho thấy khả phát triển rộng tương lai mô hình Về nhược điểm: Vì liệu thử nghiệm huấn luyện cịn liệu dử dụng tiếng Anh, liệu ban đầu lấy gần xử lý nên chưa thể rõ hết bước mô hình huấn luyện Hướng phát triển : Hướng phát triển tới đưa liệu đánh giá hoàn toàn tiếng Việt sử dụng liệu chưa qua xử lý trước Ngồi cịn tập trung nghiên cứu cải tiến phương pháp cho hợp lý xử lý đạt kết cao -62- TÀI LIỆU THAM KHẢO Tài liệu tiếng Việt: [1] Hội thảo quốc gia lần thứ XX: Một số vấn đề chọn lọc Công nghệ thông tin truyền thông – Quy Nhơn, 23-24/11/2017 Hướng tiếp cận khơng tồn văn cho tốn phân lớp tự động tin tiếng Việt [2] Machine Learning – Vũ Hữu Tiệp - 23/5/2018 Tài liệu tiếng Anh: [3] Theo A Primer on Nơron Network Models for Natural Language Processing, 2015 C C [4] Mathematical Linguistic, 2010 [5] What data scientists should know about deep learning, 2015 R L T [6] Deep Learning, 2015 DU [5] Dive into Deep Learning - Aston Zhang Zachary C Lipton Mu Li Alexander J Smola – 14/3/2019 [6] Nơron Network Methods in Natural Language Processing, 2017 [7] Natural Language Processing with Deep Learning, 2017 - Chris Manning, Lecture [8] Deep Learning For Natural Language Processing - Jacson Brownlee - 2017 [9] Kim Y Convolutional Nơron Networks for Sentence Classification 2014; [10] A Sensitivity Analysis of (and Practitioners’ Guide to) Convolutional Nơron Networks for Sentence Classification, 2015 [11] Zhang Y, Wallace B A Sensitivity Analysis of (and Practitioners’ Guide to) Convolutional Nơron Networks for Sentence Classification C C DU R L T C C U D R L T C C U D R L T C C U D R L T C C U D R L T C C U D R L T C C U D R L T C C U D R L T C C U D R L T C C U D R L T C C U D R L T ... ngữ tự nhiên DU CHƯƠNG 2: PHÂN LOẠI VĂN BẢN Chương trình bày tốn phân loại văn kỹ thuật xử lý ngôn ngữ tự nhiên Word Embeddings mơ hình nơ ron tích chập cho phân loại văn CHƯƠNG 3: THỬ NGHIỆM... trọng để làm tiền đề cho việc tìm hiểu tốn phân loại văn chương C C DU R L T -23- CHƯƠNG PHÂN LOẠI VĂN BẢN Chương trình bày mơ tả sơ lược toán phân loại văn kỹ thuật xử lý ngơn ngữ tự nhiên Word... luyện máy tính R L T hiểu để phân loại thơng tin có hiệu cao nhất, nhanh chóng DU phân loại thông tin theo thể loại định trước Trước hết tốn phân loại dùng thuật tốn phân loại như: Naive Bayes, Decision