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

báo cáo project 3 phân tích cảm xúc sentiment analysis

25 0 0
Tài liệu đã được kiểm tra trùng lặp

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

Nội dung

Điều này hỗ trợ trong việc nghiên cứu thị trường và phát triển sản phẩm. Quản Lý Thương Hiệu và Danh Tiếng: Công ty có thể sử dụng phân tích cảm xúc để theo dõi và quản lý danh tiếng th

Trang 1

ĐẠI HỌC BÁCH KHOA HÀ NỘITRƯỜNG CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG

- - 

BÁO CÁO PROJECT 3

Đề tài: Phân tích cảm xúc (Sentiment analysis)

Trang 2

Chương 1: Giới thiệu về bài toán phân tích cảm xúc (Sentiment Analysis) 3

I Định nghĩa 3

II Tầm quan trọng của phân tích cảm xúc trong thực tế 3

III Lịch sử phát triển của phân tích cảm xúc 4

IV Cơ sở lí thuyết 5

Chương 2: Phương pháp và kỹ thuật sử dụng trong phân tích cảm xúc 8

I Phương pháp dựa trên quy tắc và từ điển (Rule-based sentiment analysis) 8

II Phương pháp dựa trên học máy 14

Chương 3: Ứng dụng và thách thức 22

I Ứng dụng thực tế 22

II Các thách thức 22

Chương 4: Các công cụ và tài nguyên 23

1 Các thư viện phổ biến 23

2.Bộ dữ liệu 23

Chương 5: Kết luận và hướng phát triển 25

Trang 3

Chương 1: Giới thiệu về bài toán phân tích

cảm xúc (Sentiment Analysis)

I Định nghĩa

Phân tích cảm xúc (Sentiment Analysis) là một lớp bài toán trong xử lí ngôn ngữ tự nhiên (Natural language processing – NLP) nhằm mục đích nhận ra cảm xúc hoặc quan điểm trong đoạn văn bản Mục đích chính của phân tích cảm xúc là phát hiện và phân loại ý kiến của người viết hoặc nói về chủ đề cụ thể (thường đánh giá là tích cực (positive), tiêu cực(negative) hoặc trung lập (neural) Nó thường được sử dụng trong các đoạn văn bản như đánh giá sản phẩm, bình luận trên mạng xã hội, phản hồi khách hàng và các thông tin khác Phân tích cảm xúc được áp dụng khi số lượng văn bản cần đánh giá

là quá nhiều, cần tự động hóa quá trình phân tích

II Tầm quan trọng của phân tích cảm xúc trong thực tế

Hiện nay, phân tích cảm xúc có nhiều ứng dụng trong các lĩnh vưc khác nhau trong đời sống:

Marketing và Phân Tích Thị Trường: Phân tích cảm xúc giúp doanh nghiệp hiểu rõ hơn về thái

độ và ý kiến của khách hàng đối với sản phẩm hoặc dịch vụ của họ Điều này hỗ trợ trong việc nghiên cứu thị trường và phát triển sản phẩm

Quản Lý Thương Hiệu và Danh Tiếng: Công ty có thể sử dụng phân tích cảm xúc để theo dõi và

quản lý danh tiếng thương hiệu của mình trên các phương tiện truyền thông xã hội và trực tuyến

Phản Hồi Khách Hàng: Phân tích cảm xúc giúp tổ chức xác định và phân tích phản hồi từ khách

hàng, từ đó giúp cải thiện chất lượng dịch vụ và trải nghiệm khách hàng

Phân Tích Tình Hình Chính Trị và Xã Hội: Trong lĩnh vực chính trị, phân tích cảm xúc được sử

dụng để đánh giá quan điểm và phản ứng của công chúng đối với các sự kiện chính trị hoặc xã hội

Dịch Vụ Khách Hàng và Hỗ Trợ: Tự động hóa quá trình phân loại và ưu tiên các yêu cầu hỗ trợ

dựa trên cảm xúc của khách hàng, giúp cải thiện hiệu quả của dịch vụ khách hàng

Trang 4

lớn, giúp các tổ chức và cá nhân hiểu rõ hơn về cảm xúc và quan điểm của người dùng hoặc khách hàng,

từ đó hỗ trợ trong việc ra quyết định và chiến lược

III Lịch sử phát triển của phân tích cảm xúc

Lịch sử và sự phát triển của phân tích cảm xúc (Sentiment Analysis) có thể được tóm tắt qua các giai đoạn chính sau:

Giai đoạn đầu (trước năm 2000): Trước thế kỷ 21, nghiên cứu về phân tích cảm xúc chủ yếu tập trung

vào việc giải thích ngữ nghĩa và phân tích các từ ngữ mang tính cảm xúc Những công trình sớm trong lĩnh vực này bao gồm việc diễn giải phép ẩn dụ, rút trích tính từ mang cảm xúc, tính toán cảm xúc và phân tích chủ quan

Đầu thế kỷ 21: Khái niệm "phân tích cảm xúc" và "khai thác ý kiến" bắt đầu được sử dụng rộng rãi vào

đầu những năm 2000, với những nghiên cứu tiên phong của Nasukawa và Yi (2003), và Dave et al (2003) Các nghiên cứu trong giai đoạn này đã mở rộng phạm vi của phân tích cảm xúc để bao gồm việc phân tích ý kiến, thái độ và cảm xúc của con người đối với các thực thể như sản phẩm, dịch vụ, tổ chức,

cá nhân, sự kiện, vấn đề, hoặc chủ đề

Hiện nay: Với sự phát triển của công nghệ xử lý ngôn ngữ tự nhiên và học máy, phân tích cảm xúc đã trở

nên phức tạp và tinh vi hơn Các phương pháp phân tích bao gồm việc sử dụng các từ điển cảm xúc, phân tích dựa trên ngữ pháp, và học sâu Điều này cho phép phân tích cảm xúc không chỉ đơn giản là xácđịnh tính cực của văn bản (tích cực, tiêu cực, trung lập) mà còn phát hiện ra cảm xúc và ý kiến cụ thể Các nghiên cứu hiện đại đang tập trung vào việc giải quyết các thách thức như biểu hiện ngôn ngữ phức tạp, đa ngôn ngữ, và vấn đề chủ quan trong cảm xúc Nghiên cứu cũng hướng tới việc cải thiện độ chính xác và hiệu quả của các mô hình phân tích cảm xúc, đặc biệt là trong việc xử lý dữ liệu lớn và đa dạng

Trang 5

IV Cơ sở lí thuyết

Cấp độ chuỗi (Document-level): Phân tích cảm xúc ở cấp độ này đánh giá cảm xúc chung

của toàn bộ văn bản Điều này thường được áp dụng cho các bài báo, bài đánh giá sản phẩm hoặc bất kỳ văn bản dài nào mà bạn muốn xác định cảm xúc tổng thể

Ví dụ: Xem xét một bài đánh giá sản phẩm: "Tôi yêu thích chiếc điện thoại này Nó có tất cả các tính năng tôi cần và thậm chí còn hơn thế nữa Pin cũng rất bền." Cảm xúc tổng thể ở đây là tích cực

Cấp độ câu (Sentence-level): Phân tích cảm xúc ở cấp độ câu xác định cảm xúc của từng

câu riêng lẻ trong một đoạn văn Điều này hữu ích khi văn bản chứa nhiều ý kiến hoặc cảm xúc khác nhau

Ví dụ: Trong một bài đánh giá: "Máy ảnh này chụp ảnh rất sắc nét Tuy nhiên, giao diện người dùng không thân thiện lắm." Câu đầu tiên có cảm xúc tích cực, trong khi câu thứ hai có cảm xúc tiêu cực

Cấp độ từ (Word-level): Cấp độ này phân tích cảm xúc dựa trên từng từ hoặc cụm từ

riêng lẻ Điều này giúp xác định các từ hoặc cụm từ chứa cảm xúc mạnh mẽ hoặc quan trọng

Ví dụ: Trong câu "Tôi ghét thời tiết hôm nay, nhưng tôi yêu món ăn ở đây", từ "ghét" biểu thị cảm xúc tiêu cực, trong khi "yêu" biểu thị cảm xúc tích cực

Cấp độ khía cạnh (Aspect-level): Một khía cạnh là một phần, đặc điểm, hoặc thuộc tính

cụ thể của một đối tượng Trong phân tích cảm xúc, khía cạnh thường liên quan đến các yếu tố cụ thể của một sản phẩm hay dịch vụ, như "pin" của một điện thoại thông minh hoặc "không gian" của một nhà hàng

Ví dụ:

Xét một bài đánh giá về nhà hàng: "Thức ăn ở đây thật tuyệt vời, nhưng dịch vụ thì chậm trễ Không gian thoải mái và yên tĩnh."

Trang 6

+) Khía cạnh "Không gian": Cảm xúc về không gian là tích cực ("thoải mái và yên tĩnh").

Nếu dựa trên phương pháp, phân tích cảm xúc được chia thành: phân tích dựa trên quy tắc, phân tích dựa trên học máy, phân tích dựa trên học sâu, phân tích dựa trên mô hình hỗn hợp:

Phân tích dựa trên quy tắc (Rule-based approaches): Các quy tắc được xác định dựa

trên từ vựng và ngữ pháp Ví dụ: xuất hiện từ “love” thì câu văn mang tính tích cực

Ưu điểm của phương pháp là dễ implement, không cần dữ liệu huấn luyện Nhưng phương pháp lại kém linh hoạt, phụ thuộc vào ngôn ngữ, và có thể không hiệu quả với ngữ cảnh phức tạp

Phân tích dựa trên máy học (Machine Learning Approaches): Sử dụng các thuật toán

học máy như Naive Bayes, Support Vector Machine (SVM), hoặc Random Forest

Ưu điểm phương pháp là linh hoạt, có thể thích nghi với các ngữ cảnh và ngôn ngữ khác nhau Tuy vậy, phương pháp lại yêu cầu một lượng lớn dữ liệu để máy có thể học được

Phân tích dựa trên học sâu (Deep Learning Approaches): Là một nhánh của học máy

Học sâu sử dụng nhưng mô hình phức tạp hơn để máy học như mạng nơ-ron tích chập (CNN), mạng nơ-ron hồi quy (RNN), LSTM (Long Short-Term Memory), hoặc BERT (Bidirectional Encoder Representations from Transformers)

Cũng giống như học máy, học sâu yêu cầu một lượng lớn dữ liệu đã dán nhãn để máy có thể học được Tuy vậy, độ chính xác và linh hoạt của phương pháp lại rất cao

Phân tích dựa trên mô hình hỗn hợp (Hybrid Approaches): Là phương pháp kết hợp các

phương pháp trên Phương pháp này cố gắng kế thừa những ưu điểm các phương pháp đồng thời khắc phục những điểm yếu của chúng Tuy vậy, phương pháp có thể phức tạp trong thiết kế và triển khai

2 Các thuật ngữ thường dùng trong phân tích cảm xúc

Sentiment (Cảm Xúc): Đây là khái niệm cơ bản trong phân tích cảm xúc, đề cập đến cảm

xúc hoặc thái độ của một người đối với một đối tượng cụ thể, chẳng hạn như một sản phẩm, dịch vụ, sự kiện, vấn đề, hay thậm chí là một ý kiến Sentiment có thể được phân loại thành tích cực, tiêu cực, hoặc trung lập.

Opinion (Ý Kiến): Opinion liên quan đến quan điểm hoặc nhận xét cá nhân của một

người Trong phân tích cảm xúc, việc xác định ý kiến giúp xác định cảm xúc hoặc thái độ liên quan Ý kiến có thể được biểu đạt qua lời nói, văn bản, hoặc hành vi

Subjectivity (Chủ Quan): Subjectivity chỉ đến mức độ mà thông tin hay ý kiến chứa đựng

quan điểm cá nhân, cảm xúc hoặc định kiến, thay vì dựa trên sự thật khách quan Trong phân tích cảm xúc, việc phân biệt giữa thông tin chủ quan và khách quan là quan trọng

Trang 7

hiện được cảm xúc bài viết nên loại bỏ ý kiến khách quan có thể giúp ích cho việc xác định cảm xúc của văn bản.

Polarity (Phân Cực): Polarity đề cập đến việc xác định hướng tích cực hay tiêu cực của

cảm xúc hoặc ý kiến Đây là một phần quan trọng của phân tích cảm xúc, giúp xác định liệu một ý kiến hay phản hồi có hướng tích cực, tiêu cực, hay trung lập.

Trang 8

Chương 2: Phương pháp và kỹ thuật sử dụng

trong phân tích cảm xúc

Trong chương trước, chung ta đã tìm hiểu qua về các phương pháp sử dụng trong phân tích cảm xúc nhưdựa trên quy tắc, học máy, học sâu hay hỗn hợp Trong chương này, chúng ta sẽ tìm hiểu sâu về từng phương pháp và triển khai một số bài toán đơn giản sử dụng các phương pháp này

I Phương pháp dựa trên quy tắc và từ điển (Rule-based

sentiment analysis)

1 Giới thiệu

Phương pháp đánh giá cảm xúc của văn bản dựa trên các từ trong văn bản và các luật kèm theo Cụ thể, phương pháp sẽ bao gồm những điểm chính yếu sau:

Sentiment Lexicon: Đây là cốt lõi của toàn bộ phương pháp Sentiment Lexicon là tập hợp các từ

và trọng số của chúng dựa theo mức độ cảm xúc chúng đem lại VD: những từ như “happy”,

“excellent”, “amazing” là những từ mang tính tích cực, nên được đánh trọng số dương; còn những từ như “sad”, “terrible” là những từ tiêu cực, sẽ được đánh trọng số âm Sentiment Lexicon có sẵn trong các thư viện như NLTK, TextBlob, Stanford CoreNLP, …

Rule: bao gồm những quy tắc để đánh giá cảm xúc của toàn văn bản dựa trên các từ của nó

Những quy tắc thể chỉ đơn giản như tổng các trọng số của các từ trong văn bản

Text Processing: đây là một quá trình thường được thực hiện trước khi áp dụng rule Quá trình

này làm sạch dữ liệu đầu vào, bao gồm tokenization (tách đoạn văn thành các từ nhỏ), loại bỏ các stopword (các từ không có ích trong việc đánh giá cảm xúc văn bản), stemming (quá trình thugọn từ) hoặc lemmatization (chuẩn hóa từ), …

2 Demo:

2.1 Tập dữ liệu:

Tập dữ liệu được lấy tại đây: Sentiment Analysis Dataset (kaggle.com)

Đây là tập chứa dữ liệu về 16000 tweet Tập dữ liệu sẽ bao gồm các thông tin sau:

 Polarity: Cảm xúc của đoạn tweet (bao gồm 0: negative, 2: neural, 4:positive)

 Id: Id của tweet

 Date: Thời gian viết tweet

 Query: (Không rõ)

 User: Tên tài khoải viết tweet

 Text: Đoạn text của tweet

Trang 9

2.2 Sentiment Lexicon

Lấy cảm xúc của từng từ trong văn bản sử dụng thư viện nltk:

Kết quả cho 1 từ: bao gồm mức độ tích cực (pos_score), mức độ tiêu cực (neg_score) và mức

độ trung tính (obj_score)

2.3 Text Processing

Text Processing bao gồm nhiều công đoạn, tùy thuộc vào dữ liệu Đối với tập dữ liệu hiện tại,

em chia thành các bước nhỏ như sau:

Loại bỏ URLs, Hashtags và Styles: Các đoạn tweet có thể bao gồm các hyper links, các

hashtags (#) hoặc các style Những điều trên không giúp ích gì cho việc phân tích cảm xúc của văn bản (Đối với các hashtags thì chỉ loại bỏ dấu “#”)

Trang 10

Thay thế các từ viết tắt: Trong tiếng Anh, có nhiều từ viết tắt phổ biến như: is -> ‘s, are

-> ‘re, do not -> don’t,… Điều này làm cho số lượng từ ngữ nhiều lên, gây khó khăn cho việc phân tích Em sẽ thay các cụm từ viết tắt này thành dạng đầy đủ của nó, cụ thể như sau:

Trang 11

tách chúng ra thành dạng chuẩn “For The Win”

Kết quả:

Chuyển toàn bộ thành chữ thường:

Trang 12

Loại bỏ các kí tự đặc biệt và số:

Tokenize và loại bỏ stopword: Tokenize là quá trình tách văn bản thành các

từ Stopword là các từ không có nhiều ý nghĩa trong việc đánh giá cảm xúc trong văn bản

Trang 13

Rule: Cách đơn giản nhất để đánh giá cảm xúc của văn bản sau khi đã xử lí sẽ là tính

tổng số positive_score, negative_score và neural_score của từng token, sau đó giá trị lớn nhất trong 3 điểm trên sẽ đại diện cho cảm xúc của văn bản Neural_score cũng sẽ được điều chỉnh theo tỉ lệ (Vì trong văn bản thường có nhiều từ neural hơn so với các

từ positive và negative)

Kết quả:

Trang 14

II Phương pháp dựa trên học máy

1 Giới thiệu

1.1 Học không giám sát

Các phương pháp học không giám sát được sử dụng cho dữ liệu chưa có nhãn, thường dùng

để tìm ra các chủ đề nổi bật trong văn bản Ví dụ: Một công ty phân phối nhiều sản phẩm bao gồm: sách, phim, âm nhạc, ….; công ty muốn phân loại các comment của người dùng thành cáccomment theo sách, them phim, theo âm nhạc có thể sử dụng học không giám sát để phân cụm các comment

Các phương pháp học không giám sát thường sử dụng như:

 Clustering: Phân loại dữ liệu thành các nhóm dựa trên đặc điểm tương đồng, như means, DBSCAN Trong phân tích cảm xúc, điều này có thể giúp phân loại ý kiến thành các nhóm tích cực, tiêu cực, và trung lập

K- TF-IDF: Một phương pháp giúp phát hiện ra chủ đề chính trong một lượng lớn văn bản

 NMF (Non-negative matrix factorization): NMF được sử dụng để tách một ma trận dữ liệu không âm thành hai ma trận thưa (sparse) cơ bản không

âm, giúp khám phá cấu trúc ẩn bên trong dữ liệu

Các phương pháp học không giám thường thiếu độ chính xác, tuy vậy lại tốn kém ít chi phí hơn (do không yêu cầu nhãn)

1.2 Học có giám sát

Học có giám sát là phương pháp phổ biến nhất được sử dụng trong phân tích cảm xúc hiện nay Học có giám sát yêu cầu dữ liệu được dán nhãn (thường là positive, negative và neural) và đồng thời cũng yêu cầu lượng tính toán lớn

Các phương pháp học có giám sát phổ biến sử dụng:

 Mạng neuron nhân tạo (ANNS)

 Mạng neuron hổi quy (RNNS)

 Mạng tích chập (CNNS)

 Mô hình Transformer và BERT

 Random forest, SVM, …

Trang 15

gồm cả chi phí dán nhãn và chi phi train mô hình)

1.3 Hybrid

Là phương pháp kết hợp cả 2 phương pháp trên

2 Demo

2.1 Tập dữ liệu

Tập dữ liệu sử dụng: Amazon Reviews Full Dataset

Tập dữ liệu bao gồm: Rating (có giá trị từ 1-5, càng thấp càng tiêu cực), Title (một bản tóm tắt của đánh giá), Review (đánh giá của người dùng)

Tập dữ liệu bao gồm 3000000 đánh giá, trong đó gồm 600000 đánh giá với mỗi rating

2.2 Text processing

Bao gồm:

 Loại bỏ HTML tag

 Loại bỏ các dấu câu

 Loại bỏ các dấu cách thừa

Trang 16

 Giảm lượng dữ liệu: (Vì máy em không train được hết)

Trang 17

2.3 Học không giám sát

TF-IDF (Term Frequency-Inverse Document Frequency) là một thuật toán quan trọng trong xử

lý ngôn ngữ tự nhiên (NLP) và tìm kiếm thông tin Nó được sử dụng để xác định tầm quan trọng của một từ trong một tài liệu dựa trên sự xuất hiện của từ đó trong tài liệu và trong toàn

bộ tập dữ liệu Dưới đây là cách thuật toán TF-IDF hoạt động:

Term Frequency (TF - Tần số từ): Đo lường tần số xuất hiện của một từ cụ thể trong một tài

liệu TF được tính bằng cách đếm số lần từ xuất hiện trong tài liệu và chia cho tổng số từ trong tài liệu Công thức TF cho từ t trong tài liệu d như sau:

Inverse Document Frequency (IDF - Tần số Nghịch Đảo Tài Liệu): Đo lường tầm quan trọng của

một từ trong toàn bộ tập dữ liệu IDF tính toán bằng cách lấy tổng số tài liệu trong tập dữ liệu

và chia cho số tài liệu có chứa từ t, sau đó lấy logarithm tự nhiên của kết quả Công thức IDF cho từ t trong tập dữ liệu D như sau:

Ngày đăng: 25/05/2024, 22:07

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

TÀI LIỆU LIÊN QUAN

w