1. Trang chủ
  2. » Công Nghệ Thông Tin

Ứng Dụng Deep Learning Cho Phân Tích Cảm Xúc (Sentiment Analysis) Với Dữ Liệu Twitter (LV thạc sĩ)

60 1,1K 6

Đ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 60
Dung lượng 2,96 MB

Nội dung

Ứng Dụng Deep Learning Cho Phân Tích Cảm Xúc (Sentiment Analysis) Với Dữ Liệu Twitter (LV thạc sĩ)Ứng Dụng Deep Learning Cho Phân Tích Cảm Xúc (Sentiment Analysis) Với Dữ Liệu Twitter (LV thạc sĩ)Ứng Dụng Deep Learning Cho Phân Tích Cảm Xúc (Sentiment Analysis) Với Dữ Liệu Twitter (LV thạc sĩ)Ứng Dụng Deep Learning Cho Phân Tích Cảm Xúc (Sentiment Analysis) Với Dữ Liệu Twitter (LV thạc sĩ)Ứng Dụng Deep Learning Cho Phân Tích Cảm Xúc (Sentiment Analysis) Với Dữ Liệu Twitter (LV thạc sĩ)Ứng Dụng Deep Learning Cho Phân Tích Cảm Xúc (Sentiment Analysis) Với Dữ Liệu Twitter (LV thạc sĩ)Ứng Dụng Deep Learning Cho Phân Tích Cảm Xúc (Sentiment Analysis) Với Dữ Liệu Twitter (LV thạc sĩ)Ứng Dụng Deep Learning Cho Phân Tích Cảm Xúc (Sentiment Analysis) Với Dữ Liệu Twitter (LV thạc sĩ)Ứng Dụng Deep Learning Cho Phân Tích Cảm Xúc (Sentiment Analysis) Với Dữ Liệu Twitter (LV thạc sĩ)Ứng Dụng Deep Learning Cho Phân Tích Cảm Xúc (Sentiment Analysis) Với Dữ Liệu Twitter (LV thạc sĩ)Ứng Dụng Deep Learning Cho Phân Tích Cảm Xúc (Sentiment Analysis) Với Dữ Liệu Twitter (LV thạc sĩ)Ứng Dụng Deep Learning Cho Phân Tích Cảm Xúc (Sentiment Analysis) Với Dữ Liệu Twitter (LV thạc sĩ)Ứng Dụng Deep Learning Cho Phân Tích Cảm Xúc (Sentiment Analysis) Với Dữ Liệu Twitter (LV thạc sĩ)

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG - NGUYỄN THÁI ÂN ỨNG DỤNG DEEP LEARNING CHO PHÂN TÍCH CẢM XÚC (SENTIMENT ANALYSIS) VỚI DỮ LIỆU TWITTER LUẬN VĂN THẠC SĨ KỸ THUẬT (Theo định hướng ứng dụng) TP HỒ CHÍ MINH – 2017 HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THÔNG - NGUYỄN THÁI ÂN ỨNG DỤNG DEEP LEARNING CHO PHÂN TÍCH CẢM XÚC (SENTIMENT ANALYSIS) VỚI DỮ LIỆU TWITTER CHUYÊN NGÀNH : HỆ THỐNG THÔNG TIN MÃ SỐ : 60.48.01.04 LUẬN VĂN THẠC SĨ KỸ THUẬT (Theo định hướng ứng dụng) NGƯỜI HƯỚNG DẪN KHOA HỌC TS BÙI XUÂN LỘC TP HỒ CHÍ MINH – 2017 i LỜI CAM ĐOAN Tơi xin cam đoan cơng trình nghiên cứu riêng hướng dẫn Tiến sĩ Bùi Xuân Lộc Các kết đạt luận văn sản phẩm riêng cá nhân, không chép người khác Nội dung luận văn có tham khảo sử dụng số thông tin, tài liệu từ nguồn sách, tạp chí liệt kê danh mục tài liệu tham khảo Tp Hồ Chí Minh, ngày 31 tháng năm 2017 Học viên thực luận văn Nguyễn Thái Ân ii LỜI CẢM ƠN Tôi xin gửi lời cảm ơn chân thành đến Thầy TS Bùi Xuân Lộc, người tận tình hướng dẫn, hỗ trợ giúp đỡ nhiều nghiên cứu luận văn Thầy đưa định hướng, nhận xét góp ý quý giá để luận văn hồn thành tốt Kính gửi lời cảm ơn đến quý Thầy, Cô giảng viên tận tình giảng dạy truyền đạt kiến thức chun mơn cần thiết q trình tơi học tập Học viện Cơng nghệ Bưu Viễn thơng Cơ sở Thành phố Hồ Chí Minh Xin gửi lời cảm ơn sâu sắc đến Ban giám đốc Học viện Bưu Viễn thơng, Cán Phòng Đào Tạo & KHCN trường nhiệt tình giúp đỡ tạo điều kiện thuận lợi để tơi có mơi trường học tập tốt hồn tất khóa học Xin gửi lời biết ơn vơ hạn đến gia đình không ngừng quan tâm, động viên, ủng hộ mặt tinh thần lẫn vật chất suốt thời gian tham gia khóa học thực luận văn Cảm ơn anh chị lớp Cao học Hệ Thống Thơng Tin khóa 2015 - 2017 giúp đỡ đồng hành năm tháng học tập nhà trường Tp Hồ Chí Minh, ngày 31 tháng năm 2017 Học viên thực luận văn Nguyễn Thái Ân iii MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN ii DANH MỤC CÁC THUẬT NGỮ VÀ CHỮ VIẾT TẮT iv DANH MỤC CÁC BẢNG v DANH MỤC CÁC HÌNH VẼ VÀ ĐỒ THỊ vi MỞ ĐẦU Chương - TỔNG QUAN KHAI PHÁ DỮ LIỆU 1.1 Nhu cầu khai phá liệu 1.1.1 Định nghĩa 1.1.2 Quá trình khai phá tri thức từ liệu .4 1.2 Mục tiêu khai phá liệu 1.3 Xử lý ngôn ngữ tự nhiên 1.3.1 Định nghĩa 1.3.2 Các toán ứng dụng 1.4 Phân tích cảm xúc Chương - ỨNG DỤNG DEEP LEARNING CHO PHÂN TÍCH CẢM XÚC VỚI DỮ LIỆU TWITTER 2.1 Tổng quan Deep Learning 2.1.1 Deep Learning 2.1.2 Mạng neural nhân tạo .8 2.2 Các mạng neural xử lý ngôn ngữ tự nhiên 10 2.2.1 Convolutional Neural Networks (CNNs) .10 2.2.2 Recurrent Neural Networks (RNNs) 15 2.2.3 Long short-term memory (LSTM) 16 2.2.4 Kiến trúc mạng Neural xem xét nghiên cứu 21 Chương - THỰC NGHIỆM MƠ HÌNH 26 3.1 Môi trường thực nghiệm 26 3.1.1 Ngơn ngữ lập trình python .26 3.1.2 Giới thiệu thư viện TensorFlow .27 3.2 Thông tin liệu 29 3.3 Mô tả phương pháp thực nghiệm 30 3.4 Kết chạy thực nghiệm 46 3.5 Nhận xét đánh giá 47 KẾT LUẬN VÀ KIẾN NGHỊ 49 DANH MỤC TÀI LIỆU THAM KHẢO 51 iv DANH MỤC CÁC THUẬT NGỮ VÀ CHỮ VIẾT TẮT Viết tắt Tiếng Anh Tiếng Việt Sentiment Analysis Phân tích cảm xúc Social Network Mạng xã hội Social media phenomena Cộng đồng mạng Fanpage Trang thông tin mạng xã hội Twitter Mạng xã hội Twitter Fackbook Mạng xã hội Facebook Tweet Tin nhắn mạng xã hội Twitter Data Mining Khai phá liệu Neural Mạng nơron Tensorflow Là thư viện mở google để kiến trúc model cho deep learning Tensor Là đối tượng hình học sử dụng Tensorflow Deep neural network Mạng nơron sâu Deep Learning Là phương pháp học sâu AI Filter Bộ lọc Convolutional Tích chập (Xoắn) AI Word embedding Từ nhúng (chuyển từ thành vector số) NN Neural Network Mạng nơron nhân tạo NLP Natural language processing Xử lý ngôn ngữ tự nhiên CNN Convolutional Neural Network Mạng nơron tích chập RNN Recurrent Neural Network Mạng nơron tái phát GRU Gated Recurrent Unit Là chế gating mạng neural tái phát LSTM Long short-term memory Là chế mạng nơron tái phát v DANH MỤC CÁC BẢNG Bảng 3.1: Mô tả rank tensor [10] 28 Bảng 3.2: Mô tả cú pháp shape tensor [10] 28 Bảng 3.3: Mô tả kiểu liệu tensorflow [10] 28 Bảng 3.4: Mô tả liệu thực nghiệm 29 Bảng 3.5: Mô tả phân loại nhãn cho tập liệu thực nghiệm 30 Bảng 3.6: Kết độ xác với giải thuật mạng neural 46 vi DANH MỤC CÁC HÌNH VẼ VÀ ĐỒ THỊ Hình 1.1: Minh hoạ khai thác liệu Hình 1.2: Quy trình khai phá tri thức Hình 1.3: Phân tích cảm xúc từ văn Hình 2.1: Mơ hình cấu tạo neural Hình 2.2: Minh hoạ ma trận tích chập 11 Hình 2.3: Mơ hình mạng neural CNN 12 Hình 2.4: Minh hoạ mạng neural CNN cho xữ lý ngôn ngữ tự nhiên 13 Hình 2.5: Minh hoạ ma trận max-pooling CNN 14 Hình 2.6: Mơ hình mạng neural RNN 15 Hình 2.7: RNN short term depdencies [8] 16 Hình 2.8: RNN long term dependencies [8] 16 Hình 2.9: LSTM C Line [8] 17 Hình 2.10: LSTM gate [8] 18 Hình 2.11: LSTM focus f [8] 18 Hình 2.12: LSTM focus i [8] 19 Hình 2.13: LSTM focus C [8] 19 Hình 2.14: LSTM focus o [8] 20 Hình 2.15: LSTM GRU [8] 20 Hình 2.16: Kiến trúc mạng Neural [1] 21 Hình 2.17: Kiến trúc mạng Neural [2] 22 Hình 3.1: Bảng xếp hạng ngơn ngữ lập trình năm 2016 27 Hình 3.2: Mơ hình Tensorflow hiển thị TensorBoard [10] 29 Hình 3.3: Mơ hình mạng CNN nghiên cứu 35 Hình 3.4: Mơ hình conv-maxpool mạng CNN 36 Hình 3.5: Mơ hình mạng RNN nghiên cứu 38 Hình 3.6: Mơ hình cell GRU mạng RNN 39 Hình 3.7: Mơ hình mạng CNN kết hợp RNN (xử lý song song) 42 Hình 3.8: Mơ hình mạng CNN kết hợp với RNN (xử lý tuần tự) 45 vii Hình 3.9: Biểu đồ độ xác tập huấn luyện mơ hình mạng 46 Hình 3.10: Biểu đồ độ xác tập kiểm thử mơ hình mạng 47 Hình 3.11: Biểu đồ thời gian huấn luyện thực nghiệm cho mơ hình 47 MỞ ĐẦU Trong năm gần với phát triển mạnh mẽ công nghệ đặt biệt mạng xã hội, cung cấp cho người dùng việc trao đổi chia sẻ thơng tin với mà giúp quảng bá sản phẩm hay kiện công ty, tổ chức đến với người Bằng cách chia sẻ thông tin bình luận, mạng xã hội dần trở thành nơi để người trao đổi thông tin lớn (Một người chia sẻ bình luận, nội dung hiển thị cho tấc bạn bè tài khoản mạng xã hội) Vì thông tin truyền đạt mạng xã hội khơng có giới hạn Do mà cơng ty tập đồn nắm bắt lợi ích mạnh mẽ sử dụng mạng xã hội làm công cụ dùng để giới thiệu sản phẩm, kiện, quan trọng ghi nhận bình luận, đánh giá chia sẻ khách hàng Lượng thông tin tăng nhanh người dùng quan tâm chia sẻ, hình thành nên lượng liệu khổng lồ Công ty khó phân tích liệu dựa cách thơng thường đọc dòng bình luận Chính mà trang mạng xã hội cung cấp cho khách hàng doanh nghiệp họ công cụ phân tích cảm xúc cho liệu bình luận Từ giúp cho doanh nghiệp đánh giá mức độ quan tâm người dùng đến sản phẩm, kiện, sách mà họ chia sẻ mạng xã hội Hiện có nhiều mạng xã hội Twitter, Facebook, …Giúp cho người dung chia sẻ thông tin nhiều Vì mà nhà phát triển tích hợp biểu tượng cảm xúc vào chia sẻ, bình luận, điển Facebook Twitter mạng xã hội trực tuyến dịch vụ tiểu blog cho phép người dùng gửi đọc tin nhắn văn lên đến 140 kí tự, gọi “tweet”, người bày tỏ cảm xúc cho tin nhắn cách like nhắn tin lại “retweet” Được thành lập vào tháng năm 2006 Jack Dorsey mắt vào tháng năm, Twitter nhanh chóng trở nên phổ biến tồn giới, với ước tính đến tháng năm 2016, Twitter có 700 triệu người dùng, có 302 37 A neural network mixed (CNN, RNN) for text classification Uses an embedding layer, followed by a convolutional, max-pooling and softmax layer Uses an embedding layer, GRUCell and output states of RNN """ def init (self, sequence_length, num_classes, vocab_size, embedding_size, hidden_unit, l2_reg_lambda=0.0): # Placeholders for input, output and dropout self.input_x = tf.placeholder(tf.int32, [None, sequence_length], name="input_x") self.input_y = tf.placeholder(tf.float32, [None, num_classes], name="input_y") self.dropout_keep_prob = tf.placeholder(tf.float32, name="dropout_keep_prob") self.batch_size = tf.placeholder(tf.int32, name='batch_size') self.pad = tf.placeholder(tf.float32, [None, 1, embedding_size, 1], name='pad') self.real_len = tf.placeholder(tf.int32, [None], name='real_len') # Keeping track of l2 regularization loss (optional) l2_loss = tf.constant(0.0) # Embedding layer with tf.device('/cpu:0'), tf.name_scope("embedding"): self.W = tf.Variable( tf.random_uniform([vocab_size, embedding_size], -1.0, 1.0), name="W") self.embedded_chars = tf.nn.embedding_lookup(self.W, self.input_x) self.embedded_chars_pad = tf.expand_dims(self.embedded_chars, -1) # Recurrent neural network (Gated Recurrent Unit Cell- GRNN) gru_cell = tf.contrib.rnn.GRUCell(num_units=hidden_unit) gru_cell = tf.contrib.rnn.DropoutWrapper(gru_cell, output_keep_prob=self.dropout_keep_prob) embedded = tf.reshape(self.embedded_chars_pad, [-1, self.embedded_chars_pad.get_shape()[1].value, embedding_size]) inputs = [tf.squeeze(input_, [1]) for input_ in tf.split(embedded, embedded.get_shape()[1].value, 1)] outputs, state = tf.contrib.rnn.static_rnn(gru_cell, inputs, dtype=tf.float32) # Final (unnormalized) scores and predictions (CNN + GRNN) output = outputs[0] with tf.variable_scope('Output'): tf.get_variable_scope().reuse_variables() one = tf.ones([1, hidden_unit], tf.float32) for i in range(1, len(outputs)): ind = self.real_len < (i + 1) ind = tf.to_float(ind) ind = tf.expand_dims(ind, -1) mat = tf.matmul(ind, one) output = tf.add(tf.multiply(output, mat), tf.multiply(outputs[i], 1.0 - mat)) with tf.name_scope('output'): W = tf.Variable(tf.truncated_normal([hidden_unit, num_classes], stddev=0.1), name='W') b = tf.Variable(tf.constant(0.1, shape=[num_classes]), name='b') l2_loss += tf.nn.l2_loss(W) l2_loss += tf.nn.l2_loss(b) 38 self.scores = tf.nn.xw_plus_b(output, W, b, name='scores') self.predictions = tf.argmax(self.scores, 1, name='predictions') # CalculateMean cross-entropy loss with tf.name_scope("loss"): losses = tf.nn.softmax_cross_entropy_with_logits(logits=self.scores, labels=self.input_y) self.loss = tf.reduce_mean(losses) + l2_reg_lambda * l2_loss # Accuracy with tf.name_scope("accuracy"): correct_predictions = tf.equal(self.predictions, tf.argmax(self.input_y, 1)) self.accuracy = tf.reduce_mean(tf.cast(correct_predictions, "float"), name="accuracy") Mơ hình mạng TensorBoard: Hình 3.5: Mơ hình mạng RNN nghiên cứu 39 Hình 3.6: Mơ hình cell GRU mạng RNN 3.3.1.2.3 Mơ hình mạng neural kết hợp CNN RNN (xử lý song song) Bởi output hai mạng CNN RNN hai dạng vector khác Hai giá trị num_filters hidden_unit với giá trị 128 CNN cho kết max-pooling với vector chiều dạng [None, 1, 1, num_filters] RNN cho kết output với dãy vector chiều dạng [None, hidden_unit] Giải pháp áp dụng biến đổi vector kết chiều với nhau, từ cộng hai vector kết lại import tensorflow as tf class Text_NN(object): """ A neural network mixed (CNN, RNN) for text classification Uses an embedding layer, followed by a convolutional, max-pooling and softmax layer Uses an embedding layer, GRUCell and output states of RNN """ def init (self, sequence_length, num_classes, vocab_size, embedding_size, filter_sizes, num_filters, hidden_unit, l2_reg_lambda=0.0): # Placeholders for input, output and dropout self.input_x = tf.placeholder(tf.int32, [None, sequence_length], name="input_x") self.input_y = tf.placeholder(tf.float32, [None, num_classes], name="input_y") self.dropout_keep_prob_cnn = tf.placeholder(tf.float32, name="dropout_keep_prob_cnn") self.dropout_keep_prob_rnn = tf.placeholder(tf.float32, name="dropout_keep_prob_rnn") ... toán ứng dụng 1.4 Phân tích cảm xúc Chương - ỨNG DỤNG DEEP LEARNING CHO PHÂN TÍCH CẢM XÚC VỚI DỮ LIỆU TWITTER 2.1 Tổng quan Deep Learning 2.1.1 Deep Learning. .. ÂN ỨNG DỤNG DEEP LEARNING CHO PHÂN TÍCH CẢM XÚC (SENTIMENT ANALYSIS) VỚI DỮ LIỆU TWITTER CHUYÊN NGÀNH : HỆ THỐNG THÔNG TIN MÃ SỐ : 60.48.01.04 LUẬN VĂN THẠC SĨ KỸ THUẬT (Theo định hướng ứng dụng) ... người máy tính giao tiếp với 8 Chương - ỨNG DỤNG DEEP LEARNING CHO PHÂN TÍCH CẢM XÚC VỚI DỮ LIỆU TWITTER 2.1 Tổng quan Deep Learning 2.1.1 Deep Learning Trí thơng minh nhân tạo (AI) trí thơng

Ngày đăng: 07/11/2017, 13:32

TỪ KHÓA LIÊN QUAN

w