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ĩ)

Trang 1

-

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

Trang 2

-

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

Trang 3

LỜI CAM ĐOAN

Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi dưới sự hướng dẫn của Tiến sĩ Bùi Xuân Lộc Các kết quả đạt được trong luận văn là sản phẩm của riêng cá nhân, không sao chép của người khác Nội dung của luận văn có tham khảo

và sử dụng một số thông tin, tài liệu từ các nguồn sách, tạp chí được liệt kê trong danh mục các tài liệu tham khảo

Tp Hồ Chí Minh, ngày 31 tháng 5 năm 2017

Học viên thực hiện luận văn

Nguyễn Thái Ân

Trang 4

LỜI CẢM ƠN

Tôi xin gửi lời cảm ơn chân thành nhất đến Thầy TS Bùi Xuân Lộc, người

đã tận tình hướng dẫn, hỗ trợ và giúp đỡ tôi rất nhiều trong nghiên cứu luận văn Thầy đã đưa ra những định hướng, nhận xét và góp ý quý giá để luận văn này được hoàn thành tốt nhấ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 và truyền đạt những kiến thức chuyên môn cần thiết trong quá trình tôi được học tập tại Học viện Công nghệ Bưu chính Viễn thông Cơ sở tại 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 chính Viễn thông, Cán bộ Phòng Đào Tạo & KHCN của trường đã nhiệt tình giúp đỡ và tạo điều kiện thuận lợi để tôi có được môi trường học tập tốt và hoà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ộ về mặt tinh thần lẫn vật chất trong suốt thời gian tôi tham gia khóa học và thực hiện luận văn này

Cảm ơn các anh chị lớp Cao học Hệ Thống Thông Tin khóa 2015 - 2017 đã giúp đỡ và đồng hành cùng tôi trong những năm tháng học tập tại nhà trường

Tp Hồ Chí Minh, ngày 31 tháng 5 năm 2017

Học viên thực hiện luận văn

Nguyễn Thái Ân

Trang 5

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 1

Chương 1 - TỔNG QUAN KHAI PHÁ DỮ LIỆU 3

1.1 Nhu cầu về khai phá dữ liệu 3

1.1.1 Định nghĩa 3

1.1.2 Quá trình khai phá tri thức từ dữ liệu 4

1.2 Mục tiêu của khai phá dữ liệu 4

1.3 Xử lý ngôn ngữ tự nhiên 5

1.3.1 Định nghĩa 5

1.3.2 Các bài toán và ứng dụng 6

1.4 Phân tích cảm xúc 7

Chương 2 - ỨNG DỤNG DEEP LEARNING CHO PHÂN TÍCH CẢM XÚC VỚI DỮ LIỆU TWITTER 8

2.1 Tổng quan về Deep Learning 8

2.1.1 Deep Learning là gì 8

2.1.2 Mạng neural nhân tạo 8

2.2 Các mạng neural trong 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 được xem xét nghiên cứu 21

Chương 3 - 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 về thư viện TensorFlow 27

3.2 Thông tin về các bộ dữ liệu 29

3.3 Mô tả phương pháp thực nghiệm 30

3.4 Kết quả chạy thực nghiệm 46

3.5 Nhận xét và đánh giá 47

KẾT LUẬN VÀ KIẾN NGHỊ 49

DANH MỤC TÀI LIỆU THAM KHẢO 51

Trang 6

DANH MỤC CÁC THUẬT NGỮ VÀ CHỮ VIẾT TẮT

Tensorflow Là 1 thư viện mở của google để kiến trúc một model cho deep learning

Trang 7

DANH MỤC CÁC BẢNG

Bảng 3.1: Mô tả rank của tensor [10] 28

Bảng 3.2: Mô tả cú pháp shape của tensor [10] 28

Bảng 3.3: Mô tả kiểu dữ liệu trong tensorflow [10] 28

Bảng 3.4: Mô tả dữ liệu thực nghiệm 29

Bảng 3.5: Mô tả phân loại nhãn cho các tập dữ liệu thực nghiệm 30

Bảng 3.6: Kết quả độ chính xác với các giải thuật mạng neural 46

Trang 8

DANH MỤC CÁC HÌNH VẼ VÀ ĐỒ THỊ

Hình 1.1: Minh hoạ khai thác dữ liệu 3

Hình 1.2: Quy trình khai phá tri thức 4

Hình 1.3: Phân tích cảm xúc từ văn bản 7

Hình 2.1: Mô hình cấu tạo một neural 9

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 trong 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 các ngôn ngữ lập trình năm 2016 27

Hình 3.2: Mô hình Tensorflow được hiển thị trên TensorBoard [10] 29

Hình 3.3: Mô hình mạng CNN trong nghiên cứu 35

Hình 3.4: Mô hình conv-maxpool trong 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 các cell GRU trong 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

Trang 9

Hình 3.9: Biểu đồ độ chính xác của các tập huấn luyện trên các mô hình mạng 46

Hình 3.10: Biểu đồ độ chính xác của các tập kiểm thử trên các mô hình mạng 47

Hình 3.11: Biểu đồ thời gian huấn luyện thực nghiệm cho các mô hình 47

Trang 10

MỞ ĐẦU

Trong những năm gần đây với sự phát triển mạnh mẽ của công nghệ và đặt biệt hơn là các mạng xã hội, không những cung cấp cho người dùng việc trao đổi và chia sẻ các thông tin với nhau mà còn giúp quảng bá sản phẩm hay các sự kiện của công ty, tổ chức đến với mọi người

Bằng cách chia sẻ các thông tin và bình luận, mạng xã hội đã dần trở thành nơi để mọi người trao đổi thông tin lớn nhất hiện nay (Một người chia sẻ hoặc bình luận, nội dung này sẽ được hiển thị cho tấc cả các bạn bè trong tài khoản mạng xã hội) Vì vậy thông tin khi được truyền đạt trên mạng xã hội là không có giới hạn

Do đó mà các công ty và tập đoàn hiện nay đã nắm bắt được lợi ích mạnh mẽ này

và sử dụng mạng xã hội làm công cụ dùng để giới thiệu các sản phẩm, sự kiện, và quan trọng hơn là ghi nhận các bình luận, đánh giá và chia sẻ của khách hàng Lượng thông tin này sẽ tăng rất nhanh khi người dùng quan tâm và chia sẻ, và hình thành nên một lượng dữ liệu khổng lồ Công ty khó có thể phân tích các dữ liệu này dựa trên cách thông thường là đọc từng dòng bình luận Chính vì vậy mà các trang mạng xã hội cung cấp cho các khách hàng doanh nghiệp của họ công cụ phân tích cảm xúc cho các dữ liệu bình luận này Từ đó giúp cho doanh nghiệp có thể đánh giá được các mức độ quan tâm của người dùng đến sản phẩm, sự kiện, hoặc là các chính sách mà họ chia sẻ trên mạng xã hội

Hiện nay có khá nhiều các mạng xã hội như Twitter, Facebook, …Giúp cho người dung chia sẻ thông tin rất nhiều Vì thế mà các nhà phát triển đã tích hợp các biểu tượng cảm xúc vào trong các chia sẻ, bình luận, điển hình như Facebook Twitter là một mạng xã hội trực tuyến và dịch vụ tiểu blog cho phép người dùng gửi

và đọc các tin nhắn văn bản lên đến 140 kí tự, được gọi là “tweet”, và mọi người có thể bày tỏ cảm xúc cho các tin nhắn này bằng cách like hoặc nhắn tin lại “retweet” Được thành lập vào tháng 3 năm 2006 bởi Jack Dorsey và ra mắt vào tháng 7 cùng năm, Twitter nhanh chóng trở nên phổ biến trên toàn thế giới, với ước tính đến tháng 5 năm 2016, Twitter đã có hơn 700 triệu người dùng, trong đó có hơn 302

Trang 11

triệu người hoạt động thường xuyên, xử lí hơn 1,6 tỉ yêu cầu tìm kiếm mỗi ngày Từ khi ra mắt, Twitter đã trở thành một trong 10 website có lượng truy cập nhiều nhất trên Internet và được mô tả như là “tin nhắn (SMS) của Internet” Vấn đề đặt ra ở đây là làm thế nào để phân tích cảm xúc cho một lượng lớn thông tin, và cách áp dụng máy móc vào việc phân tích và tự cho ra kết quả phân tích

Vì lý do đó, luận văn này trình bày các giải thuật dựa trên lý thuyết máy học

và mạng neural để đưa ra các mô hình nhằm phân tích cảm xúc cho các dữ liệu tin nhắn Mục tiêu nghiên cứu luận văn sẽ đi sâu tìm cấu trúc của mạng neural trong việc xử lý, phân tích biểu cảm của các chia sẻ trên mạng Twitter, đồng thời dựa vào phân tích để phân loại các chia thành các loại (N - negative – tệ, Neu – neutral – bình thường, P – positive – tốt) Nhằm cho ra kết quả đánh giá có độ chính xác gần bằng với kết quả ban đầu đã được đánh giá bởi con người Với lượng lượng dữ liệu lớn như hiện nay rất khó để con người có thể đánh giá hết được, nên mục tiêu của nghiên cứu là xây dựng mô hình và giải thuật cho hệ thống có thể tự động phân tích

và đánh giá cảm xúc trong các tin nhắn với độ chính xác gần bằng với con người thực hiện Phạm vi nghiên cứu tập trung vào xây dựng các mô hình mạng neural trên Tensorflow và Python nhằm hiện thực hoá mô hình được nghiên cứu Từ đó đánh giá độ chính xác của từng mô hình mạng neural được nghiên cứu dựa trên các

dữ liệu thử nghiệm

Nội dung bài nghiên cứu bao gồm 3 chương Chương 1 giới thiệu tổng quan

về khai phá dữ liệu, xử lý ngôn ngữ tự nhiên, các phương pháp trong xữ lý ngôn

ngữ tự nhiên và khái niệm phân tích cảm xúc Chương 2 giới thiệu ứng dụng Deep

Learning vào phân tích cảm xúc với dữ liệu twitter, bao gồm tổng quan và các thuật toán trong Deep Learning Khái quát về mạng neural trong xử lý ngôn ngữ tự nhiên Các kiến trúc mạng Neural được xem xét trong nghiên cứu CNN, RNN, mô hình kết hợp giữa CNN và RNN (xử lý song song và xử lý tuần tự) Chương 3 thực nghiệm và đánh giá các kiến trúc mạng được nghiên cứu Bao gồm mô tả về dữ liệu

và giải thuật được nghiên cứu Cách thực nghiệm cho các mô hình Sau đó đánh giá

độ chính xác của các giải thuật

Trang 12

Chương 1 - TỔNG QUAN KHAI PHÁ DỮ LIỆU

1.1 Nhu cầu về khai phá dữ liệu

1.1.1 Định nghĩa

Sự phát triển nhanh chóng của các các công nghệ trong thời đại hiện nay đã và đang tạo ra nguồn dữ liệu khổng lồ, ẩn chứa bên trong là vô số dữ liệu có ích cho cuộc sống (sức khoẻ, môi trường, tình hình kinh tế, …) Và cùng với khoa học ngày càng phát triển đã cho ra đời ngành Khoa học dữ liệu và trong đó Khai thác dữ liệu

là lĩnh vực phát triển nhanh chóng nhất Khai thác dữ liệu là quá trình tìm kiếm các mẫu từ tập dữ liệu lớn và phân tích dữ liệu từ những quan điểm khác nhau Nó cho phép người dùng trong doanh nghiệp phân tích dữ liệu từ nhiều góc độ khác nhau

và tóm tắt các nhận xét trên mạng xã hội

Khái niệm về khai phá dữ liệu hay khám phá tri thức (Knowledge Discovery)

có rất nhiều cách diễn đạt khác nhau nhưng về bản chất đó là quá trình tự động trích xuất thông tin có giá trị (Thông tin dự đoán - Predictive Information) ẩn chứa trong khối lượng dữ liệu khổng lồ trong thực tế

Một cách nhìn đơn giản về Khai thác dữ liệu:

Hình 1.1: Minh hoạ khai thác dữ liệu

(Nguồn: https://www.linkedin.com/)

• Chuẩn bị dữ liệu để cho máy tính “học” (Data)

• Xây dựng mô hình thông qua dữ liệu đầu vào (Algorithm)

• Đánh giá mô hình vừa mới xây dựng (Model)

Data mining nhấn mạnh 2 khía cạnh chính đó là khả năng trích xuất thông tin

có ích tự động (Automated) và thông tin mang tính dự đoán (Predictive)

Trang 13

1.1.2 Quá trình khai phá tri thức từ dữ liệu

Hình 1.2: Quy trình khai phá tri thức

(Nguồn: https://www.slideshare.net/BasitRafiq/)

Quy trình là chuỗi lặp lại các thao tác:

• Làm sạch dữ liệu (Data cleaning): Loại bỏ nhiễu và những giá trị không

nhất quá

• Tích hợp dữ liệu (Data intergation): Dữ liệu của nhiều nguồn có thể tổ hợp

lại

• Lựa chọn dữ liệu (Data selection): Những dữ liệu phù hợp với phân tích

được trích rút từ nguồn dữ liệu ban đầu

• Chuyển đổi dữ liệu (Data transformation): Dữ liệu được chuyển đổi hay

được hợp nhất về dạng thích hợp cho việc khai phá

• Khai phá dữ liệu (Data mining): Là tiến trình chính, trong đó các phương

pháp tính toán được áp dụng nhằm trích ra các mẫu dữ liệu

• Đánh giá mẫu (Pattem evyalution): Dựa trên các phương pháp đo nhằm

xác định độ chuẩn xác và lợi ích từ các mẫu biểu diễn tri thức

• Biễu diễn tri thức (Knowledge presentation): Sử dụng kỹ thuật biểu diễn

và hiển thị tri thức được tổng hợp cho người dùng

1.2 Mục tiêu của khai phá dữ liệu

Có thể phân thành 2 loại chính đó là Dự đoán (Predictive) và Mô tả (Descriptive)

• Predictive:

Trang 14

o Classification - phân lớp

o Regression - hồi quy

• Descriptive:

o Clustering - phân cụm

o Association Rule Discovery - phát hiện luật kết hợp

Một số thuật toán phổ biến được dùng trong khai phá dữ liệu

• Descision tree: Cây quyết định (Classification Task)

• Nearest Neighbor: Láng giềng gần nhất (Classification Task)

• Neural Network: Mạng Neural (Classification and Clustering Task)

• Rule Induction: Luật quy nạp (Classification Task)

• K-Means: Thuật toán K-Means (Clustering Task)

1.3 Xử lý ngôn ngữ tự nhiên

1.3.1 Định nghĩa

Xử lý ngôn ngữ tự nhiên (Natural Language Processing - NLP) là một nhánh của trí tuệ nhân tạo tập trung vào các ứng dụng trên ngôn ngữ của con người Trong trí tuệ nhân tạo thì việc xử lý ngôn ngữ tự nhiên là một trong những phần khó nhất

vì nó liên quan đến việc phải hiểu ý nghĩa ngôn ngữ (công cụ hoàn hảo nhất của tư duy và giao tiếp)

• Phân tích hình thái - Trong bước này từng từ sẽ được phân tích và các ký tự không phải chữ (như các dấu câu) sẽ được tách ra khỏi các từ

• Phân tích cú pháp - Dãy các từ sẽ được biến đổi thành các cấu trúc thể hiện

sự liên kết giữa các từ này Sẽ có những dãy từ bị loại do vi phạm các luật văn phạm

• Phân tích ngữ nghĩa - Thêm ngữ nghĩa vào các cấu trúc được tạo ra bởi bộ phân tích cú pháp

• Tích hợp văn bản - Ngữ nghĩa của một câu riêng biệt có thể phụ thuộc vào những câu đứng trước, đồng thời nó cũng có thể ảnh hưởng đến các câu phía sau

• Phân tích thực nghĩa - Cấu trúc thể hiện điều được phát ngôn sẽ được thông dịch lại để xác định nó thật sự có nghĩa là gì

Trang 15

Tuy nhiên, ranh giới giữa 5 bước xử lý này cũng rất mong manh Chúng có thể được tiến hành từng bước một, hoặc tiến hành cùng lúc - tùy thuộc vào giải thuật và ngữ cảnh cụ thể

1.3.2 Các bài toán và ứng dụng

• Nhận dạng chữ viết: Với chương trình nhận dạng chữ viết in có thể chuyển hàng ngàn đầu sách trong 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 con ngườ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ện tử)

• 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ạn thay 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ới robot 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

• Dịch tự động (machine translate): Như tên gọi đây là chương trình dịch tự động từ ngôn ngữ này sang ngôn ngữ khác Một phần mềm điển hình là Google Translate có thể dịch giữa các ngôn ngữ khác nhau

• Tìm kiếm thông tin (information retrieval): Đặt câu hỏi và chương trình tự tìm ra nội dung phù hợp nhất

• Tóm tắt văn bản: Từ một văn bản dài tóm tắt thành một văn bản ngắn hơn theo mong muốn nhưng vẫn chứa những nội dung thiết yếu nhất

• Khai phá dữ liệu và phát hiện tri thức: Từ rất nhiều tài liệu khác nhau phát hiện ra tri thức mới

• Phân tích cảm xúc trong ngôn ngữ: Đây là khái niệm mới trong xử lý ngôn ngữ, bằng việc kết hợp giữa nhận dạng ngôn ngữ với phân tích cảm xúc, biểu cảm Mục tiêu là máy tính nhận dạng đánh giá các mức độ tâm lý của con người trong ngôn ngữ

Trang 16

1.4 Phân tích cảm xúc

Phân tích cảm xúc là một lĩnh vực mới trong xử lý ngôn ngữ tự nhiên, sử dụng các kỹ thuật NLP để rút trích thông tin cảm xúc của con người từ một câu nói hay một văn bản, từ đó giúp đánh giá cảm xúc của con người là tích cực hay tiêu cực Dựa vào mạng xã hội, sử dụng các kỹ thuật trong NLP có thể rút trích thông tin và

từ đó thống kê các mức độ quan tâm của người dùng đối với các sự kiện và thông tin được chia sẻ, giúp việc tổng hợp đánh giá của người sử dụng cho các công ty và

tổ chức được tốt hơn

Hình 1.3: Phân tích cảm xúc từ văn bản

(Nguồn: http://aylien.com/)

Các vấn đề cần quan tâm ở đây là:

• Làm thế nào mà máy có thể hiểu đó là ý kiến chủ quan hay thiên về cảm xúc bản thân

• Làm thế nào để máy phân rõ hai cực tích cực (positive) và tiêu cực (negative)

• Làm thế nào để máy có thể giải quyết các cảm xúc chủ quan

• Làm thế nào để máy tính điểm cho một quan điểm, ý kiến

• Làm thế nào để máy biết được cường độ của cảm xúc

• Làm thế nào để biết sự khác nhau giữa fact (sự thật) và opinion (ý kiến viết ra), nhiều khi bề ngoài gồm những cụm từ khen nhưng thật sự lại đang xỏ xiên, … Chúng ta có thể theo dõi các sản phẩm, thương hiệu hay cả con người xem cách mà mọi người đang có cái nhìn tích cực hay tiêu cực trên web Vì vậy mà gần đây các nhà khoa học đã sử dụng các mô hình trong Deep Learning cho quá trình tự học và phân tích cảm xúc trong ngôn ngữ, nhằm tiến gần hơn đến việc con người và máy tính giao tiếp với nhau

Trang 17

Chương 2 - Ứ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 về Deep Learning

2.1.1 Deep Learning là gì

Trí thông minh nhân tạo (AI) là trí thông minh được biểu diễn trên máy móc hoặc phần mềm Đây là một lĩnh vực học thuật nghiên cứu mục đích của việc tạo ra trí thông minh như con ngườitrên các thiết bị máy móc Với sự phát triển nhanh chóng của công nghệ, AI ngày càng được nhiều người chú ý tới Những năm gần đây, đã có một sự hồi sinh trong lĩnh vực trí tuệ nhân tạo Nó lan rộng ra ngoài thế giới học thuật với sự tham gia của các “công ty” như Google, Microsoft và Facebook, họ đã tự thành lập những nhóm nghiên cứu và những ứng dụng về trí tuệ nhân tạo Nhưng ngoài những hiện tượng đó, sự hồi sinh này đã được hỗ trợ một phần không nhỏ bởi một xu hướng mới trong AI, cụ thể là trong khoa học máy móc, được gọi là “Deep Learning”, đó là về việc tiếp thu nhiều tầng biểu đạt, cả cụ thể lẫn trừu tượng, qua đó làm rõ nghĩa của các loại dữ liệu ví dụ như hình ảnh, âm thanh và văn bản

Deep Learning là một kỹ thuật máy học (Machine Learning) mạnh mẽ đang được nhiều người trong ngành biết đến và nghiên cứu Với khả năng biểu diễn thông tin (represent problem/feature engineering) và học (learning) Bên cạnh các lĩnh vực đã gặt hái được nhiều thành công như xử lý ảnh số và video số, hay xử lý tiếng nói, và được áp dụng vào trong xử lý ngôn ngữ tự nhiên

2.1.2 Mạng neural nhân tạo

Mạng neural nhân tạo (hay còn gọi là mạng thần kinh nhân tạo) Artificial Neural Network (ANN) là một hệ thống các chương trình và cấu trúc dữ liệu mô phỏng cách xử lý thông tin của mạng neural sinh học Nó được tạo nên từ một số lượng lớn các phần tử neural kết nối với nhau thông qua các liên kết (trọng số liên kết) làm việc như một thể thống nhất để giải quyết một vấn đề cụ thể nào đó Một mạng neural nhân tạo được cấu hình cho một ứng dụng cụ thể (nhận dạng mẫu, phân loại dữ liệu, ) thông qua một quá trình học từ tập các mẫu huấn luyện Về bản chất học chính là quá trình hiệu chỉnh trọng số liên kết giữa các neural

Trang 18

Cấu tạo neural nhân tạo:

Hình 2.1: Mô hình cấu tạo một neural

(Nguồn: https://www.slideshare.net/)

Các thành phần cơ bản của một neural nhân tạo bao gồm:

• Tập các đầu vào: Là các tín hiệu vào (input signals) của neural, các tín hiệu này thường được đưa vào dưới dạng một vector N chiều

• Tập các liên kết: Mỗi liên kết được thể hiện bởi một trọng số liên kết (Synaptic weight) Trọng số liên kết giữa tín hiệu vào thứ j với neural k thường được kí hiệu là wkj Thông thường, các trọng số này được khởi tạo một cách ngẫu nhiên ở thời điểm khởi tạo mạng và được cập nhật liên tục trong quá trình học mạng

• Bộ tổng (Summing function): Thường dùng để tính tổng của tích các đầu vào với trọng số liên kết của nó

• Ngưỡng (còn gọi là một độ lệch - bias): Ngưỡng này thường được đưa vào như một thành phần của hàm kích hoạt

• Hàm kích hoạt (Activation function): Hàm này được dùng để giới hạn phạm vi đầu ra của mỗi neural Nó nhận đầu vào là kết quả của hàm tổng và ngưỡng

• Đầu ra: Là tín hiệu đầu ra của một neural, với mỗi neural sẽ có tối đa là một đầu ra

Xét về mặt toán học, cấu trúc của một neural k, được mô tả bằng cặp biểu thức sau:

Trang 19

𝑢" = 𝑤"%𝑥%

'

%()

𝑦" = (𝑢" − 𝑏")

(2.1) Công thức hàm tổng và tính tín hiệu đầu ra của một neural

Trong đó: x1, x2, , xp: là các tín hiệu vào; (wk1, wk2, , wkp) là các trọng số liên kết của neural thứ k; uk là hàm tổng; bk là một ngưỡng; f là hàm kích hoạt và yk

là tín hiệu đầu ra của neural

Như vậy neural nhân tạo nhận các tín hiệu đầu vào, xử lý (nhân các tín hiệu này với trọng số liên kết, tính tổng các tích thu được rồi gửi kết quả tới hàm kích hoạt), và cho một tín hiệu đầu ra (là kết quả của hàm kích hoạt)

2.2 Các mạng neural trong xử lý ngôn ngữ tự nhiên

2.2.1 Convolutional Neural Networks (CNNs)

2.2.1.1 Định nghĩa

Những năm gần đây, chúng ta đã chứng kiến được nhiều thành tựu vượt bậc trong ngành Thị giác máy tính (Computer Vision) Các 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

Convolutional Neural Network (Mạng neural tích chập) là một trong những

mô hình Deep Learning tiên tiế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 Thường được sử dụng trong tín hiệu

số (Signal Processing), phân lớp ảnh (Image Classification)

Trang 20

Sliding window còn có tên gọi là kernel, filter hay feature detector Ở đây, ta dùng một ma trận filter 3×3 nhân từng thành phần tương ứng (element-wise) với ma trận ảnh bên trái Gía trị đầu ra do tích của các thành phần này cộng lại Kết quả của tích chập là một ma trận sinh ra từ việc trượt ma trận filter và thực hiện tích chập cùng lúc lên toàn bộ ma trận ảnh bên trái

2.2.1.3 Mô hình mạng neural tích chập (CNNs)

Bây giờ, chúng ta đã biết thế nào là convolution Vậy CNNs là gì? CNNs chỉ đơn giản gồm một vài layer của convolution kết hợp với các hàm kích hoạt phi tuyến (nonlinear activation function) như ReLU hay tanh để tạo ra thông tin trừu tượng hơn (abstract/higher-level) cho các layer tiếp theo

Trong mô hình Feedforward Neural Network (mạng neural truyền thẳng), các layer kết nối trực tiếp với nhau thông qua một trọng số w (weighted vector) Các layer này còn được gọi là có kết nối đầy đủ (fully connected layer) hay affine layer Trong mô hình CNNs thì ngược lại Các layer liên kết được với nhau thông qua cơ chế convolution Layer tiếp theo là kết quả convolution từ layer trước đó, nhờ vậy

mà ta có được các kết nối cục bộ Nghĩa là mỗi neural ở layer tiếp theo sinh ra từ filter áp đặt lên một vùng ảnh cục bộ của neural layer trước đó Mỗi layer nhờ vậy được áp đặt các filter khác nhau, thông thường có vài trăm đến vài nghìn filter như vậy Một số layer khác như pooling/subsampling layer dùng để chắt lọc lại các

Trang 21

thông tin hữu ích hơn (loại bỏ các thông tin nhiễu) Tuy nhiên, ta sẽ không đi sâu vào khái niệm của các layer này Trong suốt quá trình huấn luyện, CNNs sẽ tự động học được các thông số cho các filter Ví dụ trong tác vụ phân lớp ảnh, CNNs sẽ cố

gắng tìm ra thông số tối ưu cho các filter tương ứng theo thứ tự raw pixel > edges > shapes > facial > high-level features Layer cuối cùng được dùng để phân lớp ảnh

Hình 2.3: Mô hình mạng neural CNN

(Nguồn: http://cs231n.github.io/convolutional-networks/)

CNNs có tính bất biến và tính kết hợp cục bộ (Location Invariance and Compositionality) Với cùng một đối tượng, nếu đối tượng này được chiếu theo các gốc độ khác nhau (translation, rotation, scaling) thì độ chính xác của thuật toán sẽ bị ảnh hưởng đáng kể Pooling layer sẽ cho bạn tính bất biến đối với phép dịch chuyển (translation), phép quay (rotation) và phép co giãn (scaling)

2.2.1.4 Mô hình mạng neural tích chập cho xữ lý ngôn ngữ tự nhiên

Thay vì sử dụng các pixel như trong xử lý ảnh, trong xử lý ngôn ngữ tự nhiên (NLP), ta biến đổi các câu hay văn bản thành một ma trận đầu vào Mỗi dòng của

ma trận tương ứng với một token (một từ trong câu, nhưng cũng có thể là một ký tự – character) Nghĩa là, mỗi dòng là một vector đại diện cho một từ Thông thường, những vector này là word embedding (word2vec hay GloVe), nhưng chúng cũng có thể là one-hot vector (một cách đánh chỉ số sự xuất hiện của từ này trong dữ liệu từ điển – vocabulary) Giả sử ta có một câu gồm 10 từ được biểu diễn thành word embedding vector gồm 100 chiều, ta sẽ có đầu vào là một ma trận 10×100, tương ứng trong xử lý ảnh, ta có một bức ảnh 10×100 pixel

Trang 22

Hình 2.4: Minh hoạ mạng neural CNN cho xữ lý ngôn ngữ tự nhiên

(Nguồn: Zhang, Y., & Wallace, B (2015) A Sensitivity Analysis of (and Practitioners’

Guide to) Convolutional Neural Networks for Sentence Classification.)

Duyệt qua từng từ một Nghĩa là, ta sẽ duyệt qua từng dòng của ma trận đầu vào Khi đó, chiều rộng của filter sẽ bằng với chiều rộng của ma trận đầu vào (trong

ví dụ trên, chiều rộng bằng 10) Chiều cao (region size) của filter có thể tùy ý thay đổi sao cho phù hợp, thường là từ 2 đến 5 từ (như 2 đến 5-grams trong n-grams) Quan sát hình 2.4, ta có đầu vào là một câu gồm 7 từ (kể cả ký tự!) “I like this movie very much!” Các từ này được chuyển đổi thành word embedding có số chiều

d = 5 Khi đó, ta có một ma trận đầu vào là 7×5 Ở layer tiếp theo, ta sử dụng các filter với region size khác nhau gồm 2, 3, và 4 Gấp đôi số lượng từng dạng filter này lên, ta có tổng cộng 6 filter Tiếp đến, ta thực hiện nhân tích chập tương ứng với từng filter và cho qua activate function (softmax hay tanh) để thu được các vector đầu ra Sau đó, ta sẽ cho các vector này đi qua filter max-pooling (average-pooling

Trang 23

hay các phép toán tương tự khác), mục đích chính là để chuẩn hóa đầu ra các vector sao cho chúng có số chiều là như nhau Ở layer cuối cùng, tùy theo bài toán của chúng ta là Phan loại văn bản (Text Classification), Phân tích cảm xúc (Sentiment Analysis), phát hiện spam (Spam Detection), Phân loại đề tài (Topic Categorization) mà ta sẽ giới hạn số chiều của vector phân lớp này thành 2 hay nhiều chiều tương ứng

Hình 2.5: Minh hoạ ma trận max-pooling trong CNN

(Nguồn: http://cs231n.github.io/convolutional-networks/#pool)

CNNs phù hợp với các tác vụ phân lớp như Phân tích cảm xúc (Sentiment Analysis), Phát hiện spam (Spam Detection) hay Phân loại chủ đề (Topic Categorization) Các phép toán convolution và max-pooling làm thất thoát thông tin

về thứ tự cục bộ giữa các từ (local order of words) Do đó, các tác vụ liên quan đến gán nhãn cho chuỗi (sequence tagging) như POS Tagging, Entity Extraction sẽ không phù hợp khi sử dụng kiến trúc của CNNs

Một ưu điểm lớn của CNNs là tốc độ tính toán Đối với các phép toán convolution, ta hoàn toàn có thể triển khai trên các phần cứng có tốc độ tính toán cao như GPUs (card đồ họa máy tính) Khi so sánh với mô hình truyền thống như n-grams, CNNs biểu diễn thông tin hiệu quả hơn Cho tập dữ liệu từ điển, ở cấp độ 3-grams, ta đã tốn rất nhiều chi phí để tính toán Thay vì xây dựng một hệ thống 5-grams lớn như vậy, CNNs sẽ xây dựng các convolution filter (lọc tích chập) có khả năng biểu diễn trừu tượng cho toàn bộ n-grams này Nói cách khác, các filter này có khả năng nắm bắt thông tin tương tự như n-grams nhưng lại có cách biểu diễn tinh gọn hơn

Trang 24

2.2.2 Recurrent Neural Networks (RNNs)

Recurrent Neural Networks (hay còn gọi là mạng neural tái phát) là một trong những mô hình Deep Learning được đánh giá có nhiều ưu điểm trong các tác vụ xử

lý ngôn ngữ tự nhiên và các ứng dụng nhận diện giọng nói, các chuỗi thông tin đóng vai trò rất quan trọng Ví dụ, một từ xuất hiện trong câu sẽ phụ thuộc vào từ trước đó Kiến trúc recurrent neural network giải quyết vấn đề này được minh họa:

Hình 2.6: Mô hình mạng neural RNN

(Nguồn: http://www.wildml.com/)

Recurrent có nghĩa là thực hiện lặp lại cùng một tác vụ cho mỗi thành phần trong chuỗi Trong đó, kết quả đầu ra tại thời điểm hiện tại phụ thuộc vào kết quả tính toán của các thành phần ở những thời điểm trước đó Nói cách khác, RNNs là một mô hình có trí nhớ (memory), có khả năng nhớ được thông tin đã tính toán trước đó Không như các mô hình Neural Network truyền thống đó là thông tin đầu vào (input) hoàn toàn độc lập với thông tin đầu ra (output) Về lý thuyết, RNNs có thể nhớ được thông tin của chuỗi có chiều dài bất kì, nhưng trong thực tế mô hình này chỉ nhớ được thông tin ở vài bước trước đó

Quan sát sơ đồ biểu diễn RNNs, ta thấy rằng mô hình này có khả năng biểu diễn mối quan hệ phụ thuộc giữa các thành phần trong chuỗi Ví dụ, nếu chuỗi của chúng ta là một câu có 5 từ thì Neural Network này sẽ unfold (dàn ra) thành Neural Network có 5 layer, mỗi layer tương ứng với mỗi từ Dưới đây là ý nghĩa các kí hiệu toán học

x t là input tại thời điểm thứ t Ví dụ, x 1 là one-hot vector của từ thứ hai trong câu (vị trí các từ được đánh số từ 0)

Trang 25

s t là hidden state (memory) tại thời điểm thứ t s t được tính dựa trên các hidden state trước đó kết hợp với input của thời điểm hiện tại 𝑠0 = 𝑈23 +

𝑊6378 Hàm ƒ là hàm nonlinearity (tanh hay ReLU) 𝑠9: là hidden state được khởi tạo là một vector không

o t là output tại thời điểm thứ t o t là một vector chứa xác suất của toàn bộ các

từ trong từ điển 𝑜0 = 𝑠𝑜𝑓𝑡𝑚𝑎𝑥 𝑉63

Không như Neural Network truyền thống, tại mỗi layer phải sử dụng một

parameter khác RNNs chỉ sử dụng một bộ parameters (U, V, W) cho toàn bộ các

bước

2.2.3 Long short-term memory (LSTM)

2.2.3.1 Vấn đề phụ thuộc quá dài (Long-Term Dependencies)

Một trong những ý tưởng ban đầu của RNN là kết nối những thông tin trước

đó nhằm hỗ trợ cho các xử lý hiện tại Nhưng đôi khi, ta chỉ cần dựa vào một số thông tin gần nhất để thực hiện tác vụ hiện tại Ví dụ, trong language modeling, bạn

cố gắng dự đoán từ tiếp theo dựa vào các từ trước đó Nếu chúng ta dự đoán từ cuối cùng trong câu “đám mây bay trên bầu trời”, thì chúng ta không cần truy tìm quá nhiều từ trước đó, ta có thể đoán ngay từ tiếp theo sẽ là “bầu trời” Trong trường hợp này, khoảng cách tới thông tin liên quan được rút ngắn lại

Hình 2.7: RNN short term depdencies [8]

Hình 2.8: RNN long term dependencies [8]

Trang 26

Về lý thuyết, RNN hoàn toàn có khả năng xử lý “long-term dependencies”, nghĩa là thông tin hiện tại có được là nhờ vào chuỗi thông tin trước đó Thật không may, trong thực tế, RNN dường như không có khả năng này Vấn đề này đã được Hochreiter (1991) [German] and Bengio, et al (1994) đưa ra như một thách thức cho mô hình RNN Trong những năm 1990, RNN phải đối diện với hai thách thức lớn đó là Vanishing và Exploding Gradients ảnh hưởng lớn đến hiệu suất của mô hình Vấn đề này phát sinh trong quá trình huấn luyện

LSTM (Long Short Memory Memory) lần đầu tiên được đề xuất vào năm

1997 bởi Sepp Hochreiter và Jöhrgen Schmidhuber có khả năng học long dependencies, và là một trong những mô hình được sử dụng rộng rãi nhất trong Học tập sâu sắc cho NLP ngày hôm nay

term-2.2.3.2 Ý tưởng của LSTMs

Mấu chốt của LSTM là cell state (tế bào trạng thái), đường kẻ ngang chạy dọc

ở trên top diagram Cell state giống như băng chuyền Nó chạy xuyên thẳng toàn bộ mắc xích, chỉ một vài tương tác nhỏ tuyến tính (minor linear interaction) được thực hiện Điều này giúp cho thông tin ít bị thay đổi xuyên suốt quá trình lan truyền

Hình 2.9: LSTM C Line [8]

LSTM có khả năng thêm hoặc bớt thông tin vào cell state, được quy định một cách cẩn thận bởi các cấu trúc gọi là gate (cổng) Các gate này là tuỳ chọn để định nghĩa thông tin đi qua Chúng được tạo bởi lớp mạng thần kinh sigmoid và một nhân các thao tác pointwise

Trang 27

Hình 2.10: LSTM gate [8]

Sigmoid layer outputs có giá trị từ 0 – 1, mô tả độ lớn thông tin được phép truyền qua tại mỗi component Nếu ta thu được zero điều này có nghĩa là “không cho bất kỳ cái gì đi qua”, ngược lại nếu thu được giá trị là một thì có nghĩa là “cho phép mọi thứ đi qua” Một LSTM có ba gate như vậy để bảo vệ và điều khiển cell state

2.2.3.3 Phân tích mô hình LSTM

Bước đầu tiên của mô hình LSTM là quyết định xem thông tin nào chúng ta cần loại bỏ khỏi cell state Tiến trình này được thực hiện thông qua một sigmoid

layer gọi là “forget gate layer” (cánh gate quên lãng) Đầu vào là h t-1 và x t, đầu ra là

một giá trị nằm trong khoảng [0, 1] cho cell state C t+1 1 tương đương với “giữ lại thông tin”, 0 tương đương với “loại bỏ thông tin”

Hình 2.11: LSTM focus f [8]

𝑓0= 𝜎 𝑊C ℎ09:, 𝑥0 + 𝑏C(2.2) Công thức lọc thông tin cho 1 cell state trong CNN

Bước tiếp theo, ta cần quyết định thông tin nào cần được lưu lại tại cell state

Ta có hai phần Một, single sigmoid layer được gọi là “input gate layer” quyết định

các giá trị chúng ta sẽ cập nhật Tiếp theo, một tanh layer tạo ra một vector ứng viên

mới 𝐶0 được thêm vào trong cell state

(2.2)

Trang 28

Hình 2.12: LSTM focus i [8]

𝑖0= 𝜎 𝑊) ℎ09:, 𝑥0 + 𝑏)

𝐶0= 𝑡𝑎𝑛ℎ 𝑊J ℎ09:, 𝑥0 + 𝑏J(2.3) Công thức tính giá trị lưu tại 1 cell state

Ở bước tiếp theo, ta sẽ kết hợp hai thành phần này lại để cập nhật vào cell

state Lúc cập nhật vào cell state cũ, C t-1 , vào cell state mới C t Ta sẽ đưa state cũ

hàm f t , để quên đi những gì trước đó Sau đó, ta sẽ thêm (i t *C t) Đây là giá trị ứng viên mới, co giãn (scale) số lượng giá trị mà ta muốn cập nhật cho mỗi state

Hình 2.13: LSTM focus C [8]

𝐶0 = 𝑓0∗ 𝐶09:+ 𝑖0∗ 𝐶0

(2.4) Công thức tính giá trị cập nhật vào cell state C t

Cuối cùng, ta cần quyết định xem thông tin đầu ra là gì Dữ liệu đầu ra này cần dựa trên cell state của chúng ta, nhưng sẽ được lọc bớt thông tin Đầu tiên, ta sẽ áp dụng single sigmoid layer để quyết định xem phần nào của cell state chúng ta dự

định sẽ output Sau đó, ta sẽ đẩy cell state qua tanh (đẩy giá trị vào khoảng -1 và 1)

và nhân với một output sigmoid gate, để giữ lại những phần ta muốn output ra ngoài

(2.3)

(2.4)

Trang 29

Hình 2.14: LSTM focus o [8]

𝑜0 = 𝜎 𝑊L ℎ09:, 𝑥0 + 𝑏L

ℎ0 = 𝑜0∗ tanh 𝐶0

(2.5) Công thức tính giá trị đầu ra từ cell state C t

2.2.3.4 Gated Recurrent Unit – GRU

Một biến thể ấn tượng hơn là Gated Recurrent Unit (GRU) được giới thiệu bởi Cho, et al (2014) Mô hình này kết hợp forget và input gates thành một single

“update gate” Nó đồng thời kết hợp cell state và hidden state, và tạo ra một vài thay đổi khác Kết quả ta thu được mô hình đơn giản hơn mô hình LSTM truyền thống,

mô hình này đang ngày càng phát triển và được sử dụng rộng rãi

Trang 30

2.2.4 Kiến trúc mạng Neural được xem xét nghiên cứu

Các mô hình được xem xét trong nghiên cứu để phân tích cảm xúc trong luận văn, gồm có hai mạng lưới neural Đầu tiên là một convolutional neural network với một filter duy nhất có kích thước filter là 3 Phần thứ hai của kiến trúc là một recurrent neural network Sử dụng thư viện Tensorflow xây dựng mô hình mạng neural cho Deep Learning

Mô hình mạng được trình bày trong hình 2.16 bao gồm việc thiết kế hai mạng neural được chạy song song với nhau, và cuối cùng kết quả của hai mạng được gộp lại với nhau để cho ra 1 softmax, là tập dùng cho việc dự đoán các kết quả tiếp theo

Hình 2.16: Kiến trúc mạng Neural [1]

Và ở hình 2.17, mô hình này được từ ý tưởng liên kết (combine) hai mô hình mạng CNN và RNN Thông qua việc đưa kết quả max-pooling của mạng CNN thành input cho mạng RNN, và output sẽ chuyển thành softmax để dự đoán cho các

dữ liệu kiểm thử Như vậy thì kết quả của CNN sẽ được chuyển tiếp cho RNN xử

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

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. Dario Stojanovski, Gjorgji Strezoski, Gjorgji Madjarov, Ivica Dimitrovski (2016), “Finki at SemEval-2016 Task 4: Deep Learning Architecture for Twitter Sentiment Analysis”, ACL Home Association for Computational Linguistics, 2016 Sách, tạp chí
Tiêu đề: Finki at SemEval-2016 Task 4: Deep Learning Architecture for Twitter Sentiment Analysis”, "ACL Home Association for Computational Linguistics
Tác giả: Dario Stojanovski, Gjorgji Strezoski, Gjorgji Madjarov, Ivica Dimitrovski
Năm: 2016
[2]. Jeff Donahue, Lisa Anne Hendricks, Marcus Rohrbach, Subhashini Venugopalan, Sergio Guadarrama, Kate Saenko, Trevor Darrell (2016),“Long-term Recurrent Convolutional Networks for Visual Recognition and Description”, Cornell University Library, 2016 Sách, tạp chí
Tiêu đề: Long-term Recurrent Convolutional Networks for Visual Recognition and Description”, "Cornell University Library
Tác giả: Jeff Donahue, Lisa Anne Hendricks, Marcus Rohrbach, Subhashini Venugopalan, Sergio Guadarrama, Kate Saenko, Trevor Darrell
Năm: 2016
[3]. Ian Goodfellow and Yoshua Bengio and Aaron Courville (2016), Deep Learning, An MIT Press book, pp. 331-345, 378-394, 408-413, 2016 Sách, tạp chí
Tiêu đề: Deep Learning
Tác giả: Ian Goodfellow and Yoshua Bengio and Aaron Courville
Năm: 2016
[4]. Preslav Nakov, Alan Ritter, Sara Rosenthal, Fabrizio Sebastiani, Veselin Stoyanov (2016), “SemEval-2016 Task 4: Sentiment Analysis in Twitter”, ACL Home Association for Computational Linguistic, 2016 Sách, tạp chí
Tiêu đề: SemEval-2016 Task 4: Sentiment Analysis in Twitter”, "ACL Home Association for Computational Linguistic
Tác giả: Preslav Nakov, Alan Ritter, Sara Rosenthal, Fabrizio Sebastiani, Veselin Stoyanov
Năm: 2016
[5]. Phong Le, Willem Zuidema (2015), “Compositional distributional semantics with long short-term memory”, Cornell University Library, 2015 Sách, tạp chí
Tiêu đề: Compositional distributional semantics with long short-term memory”, "Cornell University Library
Tác giả: Phong Le, Willem Zuidema
Năm: 2015
[6]. Aurélien Géron (2017), “Hands-On Machine Learning with Scikit-Learn and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems”, O'Reilly Media, Incorporated, 2017 Sách, tạp chí
Tiêu đề: Hands-On Machine Learning with Scikit-Learn and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems
Tác giả: Aurélien Géron
Năm: 2017
[7]. Ian H. Witten, Eibe Frank (2005), “Data mining: practical machine learning tools and techniques”, Second Edition, Elsevier Inc, 2005 Sách, tạp chí
Tiêu đề: Data mining: practical machine learning tools and techniques
Tác giả: Ian H. Witten, Eibe Frank
Năm: 2005
[8]. Christopher Olah, (2015, August), Understanding LSTM Networks, http://colah.github.io/posts/2015-08-Understanding-LSTMs/, truy cập 10/05/2017 Link
[9]. Google Brain, (2015, November), Tensorflow for neural network, https://www.tensorflow.org/versions/master/api_guides/python/nn, truy cập 15/05/2017 Link
[10]. Denny Britz, (2015, December), Implementing a cnn for text classification in tensorflow, http://www.wildml.com/2015/12/implementing-a-cnn-for-text-classification-in-tensorflow/, truy cập 10/04/2017 Link

TỪ KHÓA LIÊN QUAN

w