누적 막대 차트 비교 및 대조
텍스트를 분석하는 또 다른 방법은 문서에서 긍정적인 단어와 부정적인 단어가 각각 얼마나 사용되었는지 파악하는 것입니다. 예를 들어, 식당 리뷰에 "음식은 맛있었다"와 같은 긍정적인 내용이 있더라도, "식당이 지저분하고, 직원이 불친절하며, 주차가 불편했다"는 내용이 이어질 수 있습니다. 이런 경우, 문서에서 긍정적인 표현과 부정적인 표현이 각각 얼마나 큰 비중을 차지하는지 이해하는 것이 중요합니다. 이 예시에서는 긍정 비율보다 부정 비율이 더 높게 나타납니다.
이를 계산하는 한 가지 방법은 count()를 사용해 긍정 단어와 부정 단어의 수를 세고, 식별된 주관성 단어의 총 수로 나누는 것입니다. 위의 식당 리뷰 예시에서 "맛있었다"는 긍정 단어 1개, "지저분하고", "불친절하며", "불편했다"는 부정 단어 3개에 해당합니다. 주관성 단어가 총 4개이므로, 간단한 계산을 통해 긍정 25%, 부정 75%라는 결과를 얻을 수 있습니다.
먼저 Agamemnon, Oz, Huck Finn, Moby Dick 4권의 책이 포함된 통합 tidy 데이터 프레임에 inner_join()을 수행해 보세요. 이전 연습 문제와 마찬가지로 filter()와 grepl()을 사용합니다.
count()를 수행하려면 책과 감정(sentiment)을 기준으로 데이터를 그룹화해야 합니다. 예를 들어, Agamemnon의 긍정 단어는 다른 책의 단어와 섞이지 않도록 별도로 그룹화한 후 집계해야 합니다. 다행히 count()에 여러 변수를 직접 전달할 수 있습니다.
이 연습은 강의의 일부입니다
R을 활용한 감성 분석
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Review tail of all_books
tail(all_books)
# Count by book & sentiment
books_sent_count <- all_books %>%
# Inner join to nrc lexicon
___(___, by = c("term" = "word")) %>%
# Keep only positive or negative
___(__("___", sentiment)) %>%
# Count by book and by sentiment
___(___, ___)
# Review entire object
books_sent_count