감성 분석 개선

R로 시작하는 텍스트 분석

Maham Faisal Khan

Senior Data Science Content Developer

평점별 감성 개수 세기

tidy_review %>% 
  inner_join(get_sentiments("bing")) %>% 
  count(stars, sentiment)
# A tibble: 10 x 3
   stars sentiment     n
   <dbl> <chr>     <int>
 1     1 negative    381
 2     1 positive    241
 3     2 negative    384
# … with 7 more rows
R로 시작하는 텍스트 분석

pivot_wider() 사용

tidy_review %>% 
  inner_join(get_sentiments("bing")) %>% 
  count(stars, sentiment) %>% 
  pivot_wider(names_from = sentiment, values_from = n)
# A tibble: 5 x 3
  stars negative positive
  <dbl>    <int>    <int>
1     1      381      241
2     2      384      247
# … with 3 more rows
R로 시작하는 텍스트 분석

전체 감성 계산

tidy_review %>% 
  inner_join(get_sentiments("bing")) %>% 
  count(stars, sentiment) %>% 
  pivot_wider(names_from = sentiment, values_from = n)     %>% 
  mutate(overall_sentiment = positive - negative)
# A tibble: 5 x 4
  stars negative positive overall_sentiment
  <dbl>    <int>    <int>             <int>
1     1      381      241              -140 ...
5     5     3705     5083              1378
R로 시작하는 텍스트 분석

평점별 감성 시각화

sentiment_stars <- tidy_review %>% 
  inner_join(get_sentiments("bing")) %>% 
  count(stars, sentiment) %>% 
  pivot_wider(names_from = sentiment, values_from = n)     %>% 
  mutate(
    overall_sentiment = positive - negative,
    stars = fct_reorder(stars, overall_sentiment)
  )
R로 시작하는 텍스트 분석

평점별 감성 시각화

ggplot(
  sentiment_stars, 
  aes(x = stars, y = overall_sentiment, fill = as.factor(stars))
) +
  geom_col(show.legend = FALSE) +
  coord_flip() +
  labs(
    title = "Overall Sentiment by Stars",
    subtitle = "Reviews for Robotic Vacuums",
    x = "Stars",
    y = "Overall Sentiment"
  )
R로 시작하는 텍스트 분석

R로 시작하는 텍스트 분석

연습해 봅시다!

R로 시작하는 텍스트 분석

Preparing Video For Download...