Phân tích cảm xúc trên Twitter

Phân tích dữ liệu mạng xã hội bằng R

Vivek Vijayaraghavan

Data Science Coach

Tổng quan bài học

  • Phân tích cảm xúc là gì?
  • Thực hiện phân tích cảm xúc trên tweet
  • Diễn giải để hiểu cảm xúc và ý kiến của mọi người
Phân tích dữ liệu mạng xã hội bằng R

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

  • Thu thập thông tin về nhận thức của người dùng với sản phẩm hoặc thương hiệu
  • Trích xuất và định lượng ý kiến tích cực, tiêu cực, trung lập
  • Cảm xúc như tin cậy, vui mừng, tức giận từ văn bản

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

Phân tích dữ liệu mạng xã hội bằng R

Tầm quan trọng của phân tích cảm xúc

  • Nhận thức của khách hàng ảnh hưởng quyết định mua
  • Giúp nắm bắt cảm nhận của khách hàng
  • Lắng nghe chủ động và tương tác trực tiếp với khách hàng
Phân tích dữ liệu mạng xã hội bằng R

Cách hoạt động của phân tích cảm xúc

  • Thư viện cảm xúc định nghĩa sẵn để tính điểm
  • Huấn luyện và chấm điểm dựa trên nghĩa hoặc ý định của từ
  • Mỗi từ được chấm theo mức độ gần với từ tích cực/tiêu cực
  • Mở rộng cho các từ biểu thị cảm xúc cụ thể
Phân tích dữ liệu mạng xã hội bằng R

Các bước phân tích cảm xúc

Bước 1 trong phân tích cảm xúc

Phân tích dữ liệu mạng xã hội bằng R

Các bước phân tích cảm xúc

Bước 2 trong phân tích cảm xúc

Phân tích dữ liệu mạng xã hội bằng R

Các bước phân tích cảm xúc

Bước 3 trong phân tích cảm xúc

Phân tích dữ liệu mạng xã hội bằng R

Các bước phân tích cảm xúc

Bước 4 trong phân tích cảm xúc

Phân tích dữ liệu mạng xã hội bằng R

Trích xuất tweet để phân tích cảm xúc

# Extract tweets on galaxy fold
twts_galxy  <-  search_tweets("galaxy fold", n = 5000, 
                                lang = "en", include_rts = FALSE)
Phân tích dữ liệu mạng xã hội bằng R

Thực hiện phân tích cảm xúc

# Perform sentiment analysis for tweets on galaxy fold
library(syuzhet)
sa.value <- get_nrc_sentiment(twts_galxy$text)
Phân tích dữ liệu mạng xã hội bằng R

Xem điểm cảm xúc

# Xem điểm cảm xúc
sa.value[1:5,1:7]
anger    anticipation    disgust    fear    joy    sadness    surprise
<dbl>       <dbl>         <dbl>     <dbl>  <dbl>    <dbl>       <dbl> 
0             0             0         0      0        0           0
1             0             0         0      0        0           0
1             1             0         2      1        1           1
0             0             0         1      0        0           0
0             0             0         0      0        0           0
Phân tích dữ liệu mạng xã hội bằng R

Tổng điểm cảm xúc

# Calculate sum of sentiment scores
score <- colSums(sa.value[,])
Phân tích dữ liệu mạng xã hội bằng R

Data frame điểm cảm xúc

# Convert to data frame
score_df <- data.frame(score)
# Xem data frame
score_df
               score
               <dbl>
anger           211            
anticipation    825            
disgust         214            
fear            253            
joy             412            
sadness         197            
surprise        315            
trust           641            
negative        487            
positive       1351
Phân tích dữ liệu mạng xã hội bằng R

Data frame điểm cảm xúc

# Convert row names into 'sentiment' column
# Combine with sentiment scores
sa.score <- cbind(sentiment = row.names(score_df), 
                  score_df, row.names=NULL)
Phân tích dữ liệu mạng xã hội bằng R

Data frame điểm cảm xúc

# View data frame with sentiment scores
print(sa.score)
sentiment      score
<fct>         <dbl>
anger           211            
anticipation    825            
disgust         214            
fear            253            
joy             412            
sadness         197            
surprise        315            
trust           641            
negative        487            
positive        1351    
Phân tích dữ liệu mạng xã hội bằng R

Vẽ và trực quan hóa cảm xúc

  • Vẽ và trực quan hóa cảm xúc với ggplot()
# Plot the sentiment scores
ggplot(data = sa.score2, aes(x = sentiment, y = score, 
       fill = sentiment)) +
       geom_bar(stat = "identity") +
       theme(axis.text.x = element_text(angle = 45, hjust = 1))
Phân tích dữ liệu mạng xã hội bằng R

Trực quan hóa cảm xúc

Trực quan hóa cảm xúc

Phân tích dữ liệu mạng xã hội bằng R

Ayo berlatih!

Phân tích dữ liệu mạng xã hội bằng R

Preparing Video For Download...