1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án Tìm hiểu về mô hình Word2Vec và ứng dụng xử lý cho dữ liệu tiếng Việt

62 49 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 62
Dung lượng 2,17 MB

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC QUẢN LÝ VÀ CƠNG NGHỆ HẢI PHỊNG - ĐỒ ÁN TỐT NGHIỆP NGÀNH: CÔNG NGHỆ THÔNG TIN Sinh Viên: Liêu Vương Phúc Minh Giảng Viên Hướng Dẫn: Ths.Nguyễn Thị Xuân Hương Hải Phòng - 2021 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC QUẢN LÝ VÀ CƠNG NGHỆ HẢI PHỊNG - TÌM HIỂU VỀ MƠ HÌNH WORD2VEC VÀ ỨNG DỤNG XỬ LÝ CHO DỮ LIỆU TIẾNG VIỆT ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY NGÀNH: CƠNG NGHỆ THƠNG TIN Sinh Viên: Liêu Vương Phúc Minh Giảng Viên Hướng Dẫn: Ths.Nguyễn Thị Xuân Hương Hải Phòng - 2021 ĐỒ ÁN TỐT NGHIỆP Trường Đại học Quản lí Cơng nghệ Hải Phòng BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC QUẢN LÝ VÀ CƠNG NGHỆ HẢI PHỊNG NHIỆM VỤ ĐỀ TÀI TỐT NGHIỆP Sinh viên: Liêu Vương Phúc Minh Lớp : CT2101M Ngành : Công nghệ thông tin Mã SV: 1712111002 Tên đề tài: Tìm hiểu mơ hình Word2Vec ứng dụng xử lý cho liệu tiếng Việt ĐỒ ÁN TỐT NGHIỆP Trường Đại học Quản lí Cơng nghệ Hải Phịng LỜI CẢM ƠN Lời cho em gửi lời cảm ơn sâu sắc đến gia đình, người thân em Đã động viên, giúp đỡ, cổ vũ, tạo cho em thêm động lực để em hồn thành đồ án thời gian giao Em xin gửi lời cảm ơn đến Ban Giám Hiệu Trường Đại học Quản lý Công nghệ Hải Phòng, Ban, Ngành hỗ trợ hết mức tạo điều kiện tốt để em đăng kí đồ án tốt nghiệp Em xin cảm ơn đến thầy, cô Khoa Công nghệ thông tin, Trường Đại học Quản lý Cơng nghệ Hải Phịng, giúp em có kiến thức bổ ích vịng năm vừa qua, giúp em có tảng kiến thức vững để em có thẻ thực đồ án Em xin gửi lời cảm ơn chân thành đến cô Ths Nguyễn Thị Xuân Hương, dành nhiều thời gian công sức, vật chất tinh thần giúp em thể hoàn thành đồ án cách trơn tru Em xin chân thành cảm ơn! Hải Phòng, ngày tháng năm 2021 Sinh viên Liêu Vương Phúc Minh ĐỒ ÁN TỐT NGHIỆP Trường Đại học Quản lí Cơng nghệ Hải Phịng MỤC LỤC LỜI CẢM ƠN MỤC LỤC DANH MỤC CÁC HÌNH VẼ VÀ CÁC BẢNG BẢNG CÁC TỪ VIẾT TẮT MỞ ĐẦU CHƯƠNG WORD2VEC 1.1 GIỚI THIỆU VỀ WORD2VEC 1.2 CHI TIẾT MƠ HÌNH 11 1.2.1 Mơ hình CBOW Skip-Grams 11 1.2.2 Lớp làm giả 12 1.2.3 Kiến trúc mạng nơ-ron: 12 1.2.4 Lớp ẩn 14 1.2.5 Lớp đầu 15 1.3 NHÚNG TỪ (WORD EMBEDDING) 15 1.4 TÍNH HIỆU QUẢ 16 1.5 LẬP LUẬN VỚI VÉC-TƠ TỪ 16 1.6 NGỮ CẢNH 21 1.6.1 Ngữ cảnh từ 21 1.6.2 Ngữ cảnh cụm từ 26 1.7 SOFTMAX PHÂN CẤP (HIERARCHICAL SOFTMAX) 27 1.7.1 Lấy Mẫu phủ định (Negative Sampling) 28 1.7.2 Lựa chọn mẫu phụ từ thường gặp (Subsampling of Frequent Words) 29 CHƯƠNG MỘT SỐ MƠ HÌNH HỌC SÂU 31 2.1 HỌC SÂU - DEEP LEARNING 31 2.2 MẠNG NƠ-RON HỒI QUY RNN (RECURRENT NEURAL NETWORK) 32 2.2.1 Giới thiệu mạng nơ-ron hồi quy (RNN) 32 2.2.2 Cấu trúc RNN 33 2.2.3 Các dạng RNN 34 2.2.4 Ví dụ ứng dụng 35 2.2.5 Một số ứng dụng RNN 37 ĐỒ ÁN TỐT NGHIỆP Trường Đại học Quản lí Cơng nghệ Hải Phịng 2.2.6 Nhận xét 37 2.2.7 Q trình xử lý thơng tin mạng RNN 37 2.3 MẠNG BỘ NHỚ DÀI NGẮN (LONG-SHORT TERM MEMORY-LSTM) 40 2.3.1 Giới thiệu 40 2.3.2 Phân tích mơ hình LSTM 42 2.3.3 Một số biến thể LSTM 45 2.3.4 Kết luận 46 CHƯƠNG ỨNG DỤNG WORD2VEC CHO XỬ LÝ CHO DỮ LIỆU TIẾNG VIỆT 47 3.1 BÀI TOÁN PHÂN LOẠI QUAN ĐIỂM BÌNH LUẬN 47 3.2 ỨNG DỤNG THỰC NGHIỆM 49 3.2.1 Thư viện sử dụng 49 3.2.2 Python 50 3.2.3 TensorFlow 50 3 CÁC BƯỚC THỰC HIỆN 51 3.3.1 Import thư viện cần thiết 51 3.3.2 Lọc cột cần thiết cách sử dụng DataFrame pandas 52 3.3.3 Thiết lập tập liệu cho việc huấn luyện thử nghiệm 54 3.3.4 Huấn luyện mơ hình 54 3.3.5 Đánh giá độ xác mơ hình: 55 3.3.6 Kết đánh giá liệu test: 55 Kết thực 56 KẾT LUẬN 57 TÀI LIỆU THAM KHẢO 58 ĐỒ ÁN TỐT NGHIỆP Trường Đại học Quản lí Cơng nghệ Hải Phịng DANH MỤC CÁC HÌNH VẼ VÀ CÁC BẢNG Hình 1.1 Mơ hình Word2véc-tơ Hình 1.1.1 Mã hóa 1-of-N Hình 1.1.2 Giả thuyết biểu diễn véc-tơ có gán nhãn kích thước Hình 1.1.3 Phân bố quan hệ từ word2vec Hình 1.1.4 Mơ hình Skip-Gram Word2vec Hình 1.2.1 Mơ hình CBOW SKIP-GRAM Hình 1.2.2 Mơ hình mạng neural lớp ẩn Word2vec Hình 1.2.3 Ma trận trọng số lớp ẩn mơ hình word2vec Hình 1.2.3.1 Lớp ẩn mơ hình hoạt động bảng tra cứu Hình 1.2.4 Mối tương quan từ “ants” từ “car” Hình 1.5.1 Giá trị bù véc-tơ cho cặp từ mơ mối quan hệ giới Hình 1.5.2 Mối quan hệ số nhiều số Hình 1.5.3 Véc-tơ từ cho Vua, Đàn ơng, Hồng hậu Phụ nữ Hình 1.5.4 Kết cấu thành Véc-tơ Vua – Đàn ông + Phụ nữ =? Bảng 1.5.5 Ví dụ mối quan hệ giữ cặp từ Hình 1.5.6 Mối quan hệ thủ - quốc gia Bảng 1.5.7 Ví dụ dạng câu hỏi “a dành cho b c dành cho?” Bảng 1.5.8 Trả lời cho câu hỏi dạng “a dành cho b c dành cho?” Hình 1.6.1 Mơ hình túi từ liên tục (CBOW) Bảng 1.7.2 Độ xác nhiều mơ hình Skip-Gram 300-chiều Hình 2.1 Mơ hình Deep Learning Hình 2.2.1 Mơ hình Neural Network Hình 2.2.2 Các dạng RNN Hình 2.2.3 RNN dạng One to One Hình 2.2.3.1 RNN dạng One to Many Hình 2.2.3.2 RNN dạng Many to One Hình 2.2.3.3 RNN dạng Many to Many ĐỒ ÁN TỐT NGHIỆP Trường Đại học Quản lí Cơng nghệ Hải Phịng Hình 2.2.4 Các chữ mã hóa dạng one hot véc-tơ Hình 2.2.4.1 Sử dụng hàm tank để kết hợp tính tốn đầu Hình 2.2.4.2 sử dụng hàm SoftMax để tổng hợp kết đầu Hình 2.2.4.3 Kết Hình 2.2.7 Q trình xử lý thơng tin mạng RNN Hình 2.2.7.1 RNN phụ thuộc short-term Hình 2.2.7.2 RNN phụ thuộc long-term Hình 2.2.7.3 Bidirectional RNN Hình 2.2.7.4 Deep (Bidirectional) RNN Hình 2.3.1 Các mơ-đun lặp mạng RNN chứa layer Hình 2.3.1.1 Các mơ-đun lặp mạng LSTM chứa bốn layer Hình 2.3.1.2 Các kí hiệu sử dụng mạng LSTM Hình 2.3.2.1 Tế bào trạng thái LSTM giống băng truyền Hình 2.3.2.2 Cổng trạng thái LSTM Hình 2.3.2.3 LSTM focus f Hình 2.3.2.4 LSTM focus i Hình 2.3.2.5 LSTM focus c Hình 2.3.3 Biến thể nối cổng loại trừ đầu vào với Hình 2.3.3.1 Biến thể Gated Recurrent Unit Bảng 3.2.2 Các thư viện sử dụng ĐỒ ÁN TỐT NGHIỆP Trường Đại học Quản lí Cơng nghệ Hải Phịng BẢNG CÁC TỪ VIẾT TẮT Viết tắt Đầy đủ Ý nghĩa RNN Recurrent Neural Network Mạng neural hồi quy ANN Artificial Neural Network Mạng neural nhân tạo NLP Natural Language Processing Xử lý ngôn ngữ tự nhiên LSTM Long short-term memory Mạng neural cải tiến giải vấn đề phụ thuộc từ dài CNN Convolutional Neural network Mạng neural tích chập SVM Support Véc-tơ Machine Máy véc-tơ hỗ trợ NCE Noise Contrastive Estimation Ước lượng tương phản nhiễu ĐỒ ÁN TỐT NGHIỆP Trường Đại học Quản lí Cơng nghệ Hải Phịng MỞ ĐẦU Từ xa xưa, người ta sử dụng ngơn ngữ hình thức giao tiếp sống ngày Ngôn ngữ người hệ thống xây dựng cách đặc trưng để chuyển tải ý nghĩa, không tạo loại biểu hình thể Để thể nội dung muốn đề cập đến, sử dụng từ ngữ dấu hiệu để diễn tả, điều thể qua lời nói, chữ viết hình ảnh Với phát minh máy tính để trợ giúp người nhiều hoạt động đời sống, kinh tế, trị, xã hội, v.v người mong muốn cách dạy cho máy tính hiểu thứ ngơn ngữ để toán để thực hiệu nhiệm vụ liên quan đến ngôn ngữ như: tương tác người máy, cải thiện hiệu giao tiếp người với người, đơn giản nâng cao hiệu xử lý văn lời nói Với yêu cầu đó, Xử lý ngôn ngữ Tự nhiên đời tập trung vào nghiên cứu ngơn ngữ người Đã có nhiều toán nghiên cứu lĩnh vực xử lý ngơn ngữ tự nhiên như: kiểm tra lỗi tả, tìm kiếm từ khóa, tìm từ đồng nghĩa, phân tích thơng tin từ trang web, tài liệu, phân tích ngữ nghĩa, khuyến nghị, hệ thống hỏi đáp, phân tích quan điểm người dùng, v.v Thách thức lớn Xử lý ngơn ngữ tự nhiên là làm máy tính hiểu ý nghĩa từ Không giống người, máy tính đọc mã hóa liệu dạng dãy bit Vì người ta tìm cách ánh xạ từ dãy từ thành dãy số mà máy tính “hiểu” đươc Do việc nghiên cứu mã hóa từ thành véc-tơ cần thiết Một phương pháp đưa từ vào khơng gian người ta thường gọi nhúng từ (embedding) Các mã hóa đơn giản one-hot [1] tức tạo từ vựng (Vocabulary) cho liệu mã hóa từ tài liệu (document) thành véc-tơ, từ có văn mã hóa cịn khơng có Kết tạo ma trận thưa (sparse matrix), tức ma trận mà hầu hết Mã hóa có nhiều nhược điểm thứ số chiều lớn (NxM, N số tài liệu cịn M số từ vựng, thứ hai từ khơng có quan hệ với Điều dẫn đến người ta tạo mơ hình có tên nhúng từ (embedding), từ có quan hệ với ngữ nghĩa tức ví dụ Paris-Tokyo, nam-nữ, trai – gái, v.v cặp từ có khoảng cách gần khơng gian nhúng từ [2][3] Nhiều mơ hình nhúng từ phát triển, bật Phân tích ngữ nghĩa ẩn (Latent Semantic Analysis -LSA) [4] Phân bố Dirichlet ẩn (Latent Dirichlet Allocation-LDA) [5] Về bản, mơ hình sử dụng từ từ điển đầu vào biến chúng thành véc-tơ không gian với chiều thấp hơn, sau thay đổi trọng số, tham số thơng qua học lan truyền ngược (back-propagation) để tạo thành lớp nhúng ĐỒ ÁN TỐT NGHIỆP Trường Đại học Quản lí Cơng nghệ Hải Phịng Hình 2.3.2.4 LSTM focus i Tiếp theo tầng tạo véc-tơ cho giá trị nhằm thêm vào cho trạng thái Sau kết hợp giá trị lại để tạo cập nhập cho trạng thái Cập nhập trạng thái tế bào cũ Ct-1 thành trạng thái Ct Thực nhân trạng thái cũ với ft để bỏ thông tin ta định quên lúc trước Sau cộng thêm it Ct Trạng thái thu phụ thuộc vào việc ta định cập nhập giá trị trạng thái Hình 2.3.2.5 LSTM focus c Cuối cùng, ta cần định xem đầu Giá trị đầu dựa vào trạng thái tế bào, tiếp tục sàng lọc Đầu tiên, ta chạy tầng sigmoid để định phần trạng thái tế bào muốn xuất Sau đó, ta đưa trạng thái tế bảo qua hàm tank để có giá trị khoảng [-1, 1], nhân với đầu cổng sigmoid để giá trị đầu ta mong muốn 44 ĐỒ ÁN TỐT NGHIỆP Trường Đại học Quản lí Cơng nghệ Hải Phịng 2.3.3 Một số biến thể LSTM Một dạng LTSM phổ biến giới thiệu Gers & Schmidhuber (2000) thêm đường kết nối “peephole connections”, làm cho tầng cổng nhận giá trị đầu vào trạng thái tế bào Một biến thể khác nối cổng loại trừ đầu vào với Thay phân tách định thông tin loại trừ thông tin thêm vào, ta định chúng với Bỏ thông tin mà ta thay thơng tin đưa vào Đưa thông tin vào ta bỏ thông tin cũ Hình 2.3.3 Biến thể nối cổng loại trừ đầu vào với Một biến thể khác LSTM Gated Recurrent Unit, hay GRU giới thiệu Cho, et al (2014) 45 ĐỒ ÁN TỐT NGHIỆP Trường Đại học Quản lí Cơng nghệ Hải Phịng Nó kết hợp cổng loại trừ đầu vào thành cổng “cổng cập nhập” (update gate) Nó hợp trạng thái tế bào trạng thái ẩn với tạo thay đổi khác Kết mơ hình ta đơn giản mơ hình LSTM chuẩn ngày trở nên phổ biến Hình 2.3.3.1 Biến thể Gated Recurrent Unit 2.3.4 Kết luận LSTM cải tiền cho RNN với mục đích giúp cho tất bước RNN truy vấn thơng tin từ tập thơng tin lớn Ví dụ, bạn sử dụng RNN để tạo mơ tả cho ảnh, lấy phần ảnh để dự đốn mơ tả từ tất từ đầu vào LSTM hoạt động thực tốt nhiều so với RNN cho nhiều toán 46 ĐỒ ÁN TỐT NGHIỆP Trường Đại học Quản lí Cơng nghệ Hải Phịng CHƯƠNG ỨNG DỤNG WORD2VEC CHO XỬ LÝ CHO DỮ LIỆU TIẾNG VIỆT 3.1 Bài tốn phân loại quan điểm bình luận Phân tích tình cảm (Sentiment Analysis) hay khai phá quan điểm (Opinion Mining) người dùng lĩnh vực thu hút quan tâm cộng đồng nhà nghiên cứu nhà phát triển ứng dụng Cùng với phát triển mạng máy tính tồn cầu thiết bị di động, người dùng tạo lượng liệu đánh giá khổng lồ trình họ tương tác trang mạng xã hội, trang diễn đàn, trang đánh giá sản phẩm, v.v Người dùng hay nhà sản xuất thường muốn biết sản phẩm hay dịch vụ mà họ quan tâm đánh giá tích cực hay tiêu cự để định lựa chọn hay sản xuất Do đó, việc khai thác thơng tin hữu ích từ liệu bình luận mạng giúp họ nắm xu đánh giá, bình luận hay thể tình cảm sản phẩm, dịch vụ, kiện, v.v khen hay chê thể Một toán nghiên cứu triển khai cho ứng dụng thực tế toán phân loại quan điểm người dùng (sentiment classification) tích cực hay tiêu cực phát biểu sau: Input: Cho tài liệu csv mang liệu gồm cột, chứa điểm đánh giá (rate), chứa bình luận mang quan điểm (review), gán nhãn quan điểm cho bình luận ‘-1’ ‘-1’ (label) Output: Kết hiển thị sau chạy chương trình gồm điểm đánh giá độ xác bình luận sau xử lí, phân loại xem quan điểm bình luận tích cực hay tiêu cực Cấu trúc file CSV bao gồm: cột Cột 1(Rate) chứa điểm đánh giá quan điểm bình luận Cột (Review) chứa bình luận mang quan điểm Cột (Label) chứa nhãn -1 gán tương ứng với bình luận Ví dụ 3.1 bình luận chứa thơng tin chủ quan: “Ngồi việc rom cho em ra, ko có để chê bai em A650 vào thời điểm nhìn vào giá hàng xách 47 ĐỒ ÁN TỐT NGHIỆP Trường Đại học Quản lí Cơng nghệ Hải Phịng tay Hàn Quốc em cấu hình cao mà giá lại tốt, ngược lại máy lại có ổn định cao.” Ví dụ 3.2 Về bình luận chứa thơng tin khách quan: “Chào bác Em dùng bé treo 650, sang thức đậy tự nhiên em liệt lúc phím backspace, space phím đen đen nằm chữ A Thế ko nhắn tin Mấy bro cho em biết bị ko ạ? sài gịn nên mang em đến đâu để sửa?” Thực phân loại tình cảm cho bình luận chứa quan điểm ví dụ 3.1: “Ngồi việc rom cho em ra, ko có để chê bai em A650 vào thời điểm nhìn vào giá hàng xách tay Hàn Quốc em cấu hình cao mà giá lại tốt, ngược lại máy lại có ổn định cao” Kết phân loại phân cực cho tài liệu là: “tích cực” Trong ứng dụng phân loại bình luận tiếng Việt Đồ án sử dụng tập liệu bình luận dịch vụ ăn uống gán nhãn Thơng tin bình luận gồm: Rate: điểm đánh giá tính chủ quan bình luận, Review: Nội dung bình luận, Label: nhận hai giá trị: 1: đánh giá tích cực, -1: đánh giá tiêu cực Tập liệu gồm có 4086 bình luận lưu trữ tệp CSV gồm: 1765 bình luận tiêu cực gán nhãn quan điểm = ‘-1’ 48 ĐỒ ÁN TỐT NGHIỆP Trường Đại học Quản lí Cơng nghệ Hải Phịng 2321 bình luận tích cực gán nhãn quan điểm = ‘1’ Đồ án sử dụng mơ hình LSTM thư viện Keras Python để phân loại bình luận tích cực hay tiêu cực, nhúng véc-tơ từ công cụ Embedding Keras 3.2 Ứng dụng thực nghiệm 3.2.1 Thư viện sử dụng Sklearn Scikit-learn thư viện máy học phần mềm miễn phí cho ngơn ngữ lập trình Python Numpy Numpy thư viện lõi phục vụ cho khoa học máy tính Python, hỗ trợ cho việc tính tốn mảng nhiều chiều, có kích thước lớn với hàm tối ưu áp dụng lên mảng nhiều chiều Pandas Pandas thư viện mã nguồn mở, hỗ trợ đắc lực thao tác liệu Đây công cụ phân tích xử lý liệu mạnh mẽ ngơn ngữ lập trình python Thư viện sử dụng rộng rãi nghiên cứu lẫn phát triển ứng dụng khoa học liệu Keras Keras thư viện phần mềm mã nguồn mở cung cấp giao diện Python cho mạng nơ-ron nhân tạo Keras hoạt động giao diện cho thư viện TensorFlow Tokenizer Tokenizer thuật tốn có nhiệm vụ tách từ, cụm từ văn LSTM mạng thần kinh hồi quy nhân tạo sử dụng lĩnh vực học sâu Không giống mạng thần kinh truyền thẳng tiêu chuẩn, LSTM có chứa kết nối phản hồi Mạng không xử lý điểm liệu đơn 49 ĐỒ ÁN TỐT NGHIỆP Trường Đại học Quản lí Cơng nghệ Hải Phịng lẻ, mà cịn xử lý tồn chuỗi liệu Bảng 3.2.1 Các thư viện sử dụng 3.2.2 Python Python Guido van Rossum phát triển vào cuối năm tám mươi đầu năm chín mươi Viện nghiên cứu quốc gia tốn học khoa học máy tính Hà Lan Python ngơn ngữ lập trình hướng đối tượng, cấp cao, mạnh mẽ, tạo Guido van Rossum Nó dễ dàng để tìm hiểu lên ngôn ngữ lập trình nhập mơn tốt cho người lần đầu tiếp xúc với ngơn ngữ lập trình Python hồn tồn tạo kiểu động sử dụng chế cấp phát nhớ tự động Python có cấu trúc liệu cấp cao mạnh mẽ cách tiếp cận đơn giản hiệu lập trình hướng đối tượng Cú pháp lệnh Python điểm cộng vô lớn rõ ràng, dễ hiểu cách gõ linh động làm cho nhanh chóng trở thành ngơn ngữ lý tưởng để viết script phát triển ứng dụng nhiều lĩnh vực, hầu hết tảng 3.2.3 TensorFlow Tensorflow thư viện mã nguồn mở cung cấp khả xử lí tính tốn số học dựa biểu đồ mô tả thay đổi liệu, node phép tính tốn học cịn cạnh biểu thị luồng liệu Trong tesorflow có vài khái niệm sau Tensor cấu trúc liệu tensorflow đại diện cho tất loại liệu Nói cách khác, tất kiểu liệu đưa vào tensorflow gọi Tensor Vậy nên hiểu Tensorflow thư viện mơ tả, điều chỉnh dịng chảy Tensor Tensor có thuộc tính rank, shape type: Rank số bậc tensor Ví dụ Tensor = [1] có rank = 1, Tensor = [[3,4],[5,6]] có rank = Việc phân rank quan trọng đồng thời giúp phân loại liệu Tensor Khi rank đặc biệt cụ thể, Tensor có tên gọi riêng sau: Scalar: Khi Tensor có rank Vector: Vector Tensor rank 50 ĐỒ ÁN TỐT NGHIỆP Trường Đại học Quản lí Cơng nghệ Hải Phịng Matrix: Đây Tensor rank hay mảng hai chiều theo khái niệm Python N-Tensor: Khi rank Tensor tăng lên lớn 2, chúng gọi chung N-Tensor Shape chiều tensor Vi dụ Tensor = [[[1,1,1], [178,62,74]]] có Shape = (1,2,3), Tensor = [[1,1,1], [178,62,74]] có Shape = (2,3) Type kiểu liệu elements Tensor Vì Tensor có thuộc tính Type nên từ suy có kiểu Type cho tồn elements có Tensor 3.2.3.1 Cách cài đặt TensoFlow Yêu cầu hệ thống Tensorflow hỗ trợ Python 2.7 Python 3.3+, dùng Ubuntu lên Python cài đặt sẵn Bản Tensorflow GPU cần cài đặt Cuda Toolkit 7.0 cuDNN v2 Cài pip: # Ubuntu/Linux 64-bit $ sudo apt-get install python-pip python-dev # Mac OS X $ sudo easy_install pip Sau cài Tensorflow: # Ubuntu/Linux 64-bit, CPU only: $ sudo pip install upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow0.6.0-cp27-none-linux_x86_64.whl Cài có hỗ trợ GPU: # Ubuntu/Linux 64-bit, GPU enabled: $ sudo pip install upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow0.6.0-cp27-none-linux_x86_64.whl 3 Các bước thực 3.3.1 Import thư viện cần thiết import keras.models import numpy as np # linear algebra import pandas as pd # data processing, CSV file I/O (e.g pd.read_csv) from keras_preprocessing.text import Tokenizer 51 ĐỒ ÁN TỐT NGHIỆP Trường Đại học Quản lí Cơng nghệ Hải Phịng from sklearn.feature_extraction.text import CountVectorizer from keras.preprocessing.text import Tokenizer from keras.preprocessing.sequence import pad_sequences from keras.models import Sequential from keras.layers import Dense, Embedding, LSTM from sklearn.model_selection import train_test_split from keras.utils.np_utils import to_categorical import re 3.3.2 Lọc cột cần thiết cách sử dụng DataFrame pandas path = './data/SentNew.csv' data = pd.read_csv(path) data = data[['Review','Label']] print(data[['Review','Label']]) Trong tập liệu bình luận cho tốn chứa bình luận gán nhãn tích cực tương ứng với nhãn = ‘1’ tiêu cưc tương ứng với nhãn = ‘-1’ Xác định số đặc trưng tối đa 2000, sử dụng Tokenizer để véc-tơ hóa chuyển đổi văn thành chuỗi Từ xử lý liệu đầu vào cho mạng data['Review'] = data['Review'].apply(lambda x: x.lower()) data['Review'] = data['Review'].apply((lambda x: re.sub('[^a-zA-z0-9\s]','',x))) print(data[ data['Label'] == '1'].size) print(data[ data['Label'] == '-1'].size) for idx,row in data.iterrows(): row[0] = row[0].replace('rt',' ') max_fatures =2000 X = data['Review'].values //posts tokenizer: Tokenizer = Tokenizer(num_words=max_fatures, split=' ') tokenizer.fit_on_texts(data['Review'].values) X = tokenizer.texts_to_sequences(data['Review'].values) X = pad_sequences(X) 52 ĐỒ ÁN TỐT NGHIỆP Trường Đại học Quản lí Cơng nghệ Hải Phòng Thiết lập mạng LSTM Các biến embed_dim, lstm_out, batch_size, droupout_x giá trị siêu tham số, giá trị phải trực quan hóa để chương trình chạy có kết xử lý tốt Thực nhúng từ, công cụ Keras embed_dim = 128 lstm_out = 196 model = Sequential() model.add(Embedding(max_fatures, embed_dim,input_length = X.shape[1])) #model.add(SpatialDropout1D(0.4)) model.add(LSTM(lstm_out, dropout=0.2, recurrent_dropout=0.2)) model.add(Dense(2,activation='softmax')) model.compile(loss = 'categorical_crossentropy', optimizer='adam',metrics = ['accuracy']) print(model.summary()) 53 ĐỒ ÁN TỐT NGHIỆP Trường Đại học Quản lí Cơng nghệ Hải Phịng 3.3.3 Thiết lập tập liệu cho việc huấn luyện thử nghiệm Y = pd.get_dummies(data['Label']).values X_train, X_test, Y_train, Y_test = train_test_split(X,Y, test_size = 0.33, random_state = 42) print(X_train.shape,Y_train.shape) print(X_test.shape,Y_test.shape) Kết quả: 3.3.4 Huấn luyện mơ hình batch_size = 32 model.fit(X_train,Y_train,batch_size=batch_size,epochs=7,verbose =1 ) 54 ĐỒ ÁN TỐT NGHIỆP Trường Đại học Quản lí Cơng nghệ Hải Phịng 3.3.5 Đánh giá độ xác mơ hình: validation_size = 880 X_validate = X_test[-validation_size:] Y_validate = Y_test[-validation_size:] X_test = X_test[:-validation_size] Y_test = Y_test[:-validation_size] score,acc = model.evaluate(X_test, Y_test, verbose =1 , batch_size = batch_size) print(“Điểm đánh giá: %.2f” % (score)) print(“Độ xác: %.2f” % (acc)) Đánh giá tập liệu test: Trong liệu bình luận tích cực nhiều bình luận tiêu cực Do việc đánh giá bình luận tích cực tốt so với bình luận tiêu cực Phần lớn mơ hình học sâu cho kết tốt có tập liệu lớn pos_cnt, neg_cnt, pos_correct, neg_correct = 0, 0, 0, for x in range(len(X_validate)): result = model.predict(X_validate[x].reshape(1,X_test.shape[1]),batch_size=1,verbose = 2)[0] if np.argmax(result) == np.argmax(Y_validate[x]): if np.argmax(Y_validate[x]) == 0: neg_correct += else: pos_correct += if np.argmax(Y_validate[x]) == 0: neg_cnt += else: pos_cnt += print(“Độ xác với bình luận tích cực”, pos_correct/pos_cnt*100, “%”) print(“Độ xác với bình luận tíêu cực”, neg_correct/neg_cnt*100, “%”) 3.3.6 Kết đánh giá liệu test: Sử dụng mơ hình để phân loại bình luận tích cực hay tiêu cực: #Test bình luận positive twt = ['Lần vào bị nghiện trà đào lan trứng muối ngày phải thôi'] 55 ĐỒ ÁN TỐT NGHIỆP Trường Đại học Quản lí Cơng nghệ Hải Phịng twt = tokenizer.texts_to_sequences(twt) twt = pad_sequences(twt, maxlen=28, dtype='int32', value=0) print(twt) sentiment = model.predict(twt,batch_size=1,verbose = 2)[0] if(np.argmax(sentiment) == 0): print(“Tiêu cực”) elif (np.argmax(sentiment) == 1): print(“Tích cực”) Kết thực Đồ án xây dựng chương trình thực nghiệm để phân loại liệu bình luận tiếng Việt tích cực hay tiêu cực Chương trình mang tính thử nghiệm phương pháp kết thực nghiệm cho toán chưa cao với độ xác mơ hình 0.83% liệu huấn luyện nhỏ chưa thực tối ưu tham số Trong thời gian tiếp theo, em tiếp tục nghiên cứu thử nghiệm với liệu lớn thực bước tiền xử lý liệu nhằm nâng cao hiệu mơ hình 56 ĐỒ ÁN TỐT NGHIỆP Trường Đại học Quản lí Cơng nghệ Hải Phịng KẾT LUẬN Trong đồ án em tìm hiểu số phương pháp biểu diễn từ véc-tơ, số phương pháp học sâu sử dụng đặc trưng véc-tơ từ làm đầu vào xử lý úng dụng phương pháp LSTM sử dụng véc-tơ từ đặc trưng cho tốn phân loại quan điểm bình luận tiếng Việt Đồ án sử dụng tập liệu bình luận quan điểm người dùng dịch vụ ăn uống gán nhãn quan điểm lưu trữ tệp liệu gồm 4086 bình luận 1765 bình luận tiêu cực 2321 bình luận tích cực Các bình luận tích cực gán nhãn giá trị ‘1’ bình luận tiêu cực ‘-1’ Đồ án thực cài đặt TensorFlow, chương trình thực nghiệm viết ngôn ngữ Python Sử dụng phương pháp nhúng từ phân loại LSTM thư viện Keras để phân loại quan điểm với độ xác mơ hình đạt 83% Độ xác mơ hình chưa thật cao liệu cịn số hạn chế chưa tiền xử lý văn lỗi viết tắt bình luận liệu huấn luyện nhỏ Trong thời gian tới em tiếp tục nghiên cứu để cải thiện hạn chế nhằm nâng cao độ xác cho tốn 57 ĐỒ ÁN TỐT NGHIỆP Trường Đại học Quản lí Cơng nghệ Hải Phịng TÀI LIỆU THAM KHẢO [1] Python Machine Learning By Example by Yuxi Liu, 2017 [2] Neural Network Embeddings Explained by Will Koehrsen, 2018 [3] Using latent semantic analysis to improve access to textual information, ST Dumais-GW Furnas-TK Landauer-S Deerwester-R Harshman, Released 1922 [4] Mikolov, Kai Chen, Greg Corrado, and Jeffrey Dean Efficient estimation of word representations in vector space ICLR Workshop, 2013 [5] A Beginner’s Guide to Latent Dirichlet Allocation(LDA) [6] XinRong, Word2vec Parameter Learning Explained, 2014 [7] Chris McCormick - Word2Vec Tutorial - The Skip-Gram Model, 2016 [8] Word2Vec Tutorial: The Continuous Bag-of-Words Model bt Alex Minnaar, 2015 [9] Introduction to N-grams by Tobias Sterbak, 2019 [10] Introduction to word embeddings and its applications, 2020 [11] Deep Learning: Recurrent Neural Networks in Python: LSTM, GRU, and more RNN machine learning architectures in Python and Theano , 2016 [12] Andrew Ng, Machine Learning course ,2020 [13] Christopher Olah (2015), Understanding LSTM networks in Colah’s blog [14] Improved Semantic Representations FromTree-Structured Long Short-Term Memory Networks ,2015 58 ... v.v.sử dụng đầu vào véc-tơ từ chứng minh cho kết tốt nhiều toán xử lý ngơn ngữ tự nhiên Do đó, em chọn đề tài “Mơ hình Word2Vec ứng dụng xử lý cho liệu tiếng Việt? ?? làm đồ án tốt nghiệp em tìm hiểu. ..BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC QUẢN LÝ VÀ CƠNG NGHỆ HẢI PHỊNG - TÌM HIỂU VỀ MƠ HÌNH WORD2VEC VÀ ỨNG DỤNG XỬ LÝ CHO DỮ LIỆU TIẾNG VIỆT ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC... SV: 1712111002 Tên đề tài: Tìm hiểu mơ hình Word2Vec ứng dụng xử lý cho liệu tiếng Việt ĐỒ ÁN TỐT NGHIỆP Trường Đại học Quản lí Cơng nghệ Hải Phịng LỜI CẢM ƠN Lời cho em gửi lời cảm ơn sâu sắc

Ngày đăng: 06/12/2021, 10:31

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Python Machine Learning By Example by Yuxi Liu, 2017 Khác
[2] Neural Network Embeddings Explained by Will Koehrsen, 2018 Khác
[3] Using latent semantic analysis to improve access to textual information, ST Dumais-GW Furnas-TK Landauer-S. Deerwester-R. Harshman, Released 1922 Khác
[4] Mikolov, Kai Chen, Greg Corrado, and Jeffrey Dean. Efficient estimation of word representations in vector space. ICLR Workshop, 2013 Khác
[5] A Beginner’s Guide to Latent Dirichlet Allocation(LDA) [6] XinRong, Word2vec Parameter Learning Explained, 2014 Khác
[7] Chris McCormick - Word2Vec Tutorial - The Skip-Gram Model, 2016 Khác
[8] Word2Vec Tutorial: The Continuous Bag-of-Words Model bt Alex Minnaar, 2015 Khác
[9] Introduction to N-grams by Tobias Sterbak, 2019 Khác
[10] Introduction to word embeddings and its applications, 2020 Khác
[11] Deep Learning: Recurrent Neural Networks in Python: LSTM, GRU, and more RNN machine learning architectures in Python and Theano , 2016 Khác
[12] Andrew Ng, Machine Learning course ,2020 Khác
[13] Christopher Olah (2015), Understanding LSTM networks in Colah’s blog [14] Improved Semantic Representations FromTree-Structured Long Short-Term Memory Networks ,2015 Khác

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w