1. 학습
  2. /
  3. 강의
  4. /
  5. R을 활용한 감성 분석

Connected

연습 문제

스케일링된 비교 워드 클라우드

임대 리뷰의 극성 점수에서 발생하는 "점수 인플레이션" 현상을 기억하시나요? 때로는 점수를 0으로 스케일링한 뒤 코퍼스를 분리하는 방법이 새로운 인사이트를 발견하는 데 도움이 됩니다. 평균이 0으로 조정되므로, 이전에 긍정으로 분류되었던 댓글 일부가 부정 섹션으로 이동하거나 그 반대가 될 수 있습니다. 이 연습 문제에서는 점수를 스케일링한 뒤 comparison.cloud()를 다시 시각화해 봅니다. "점수 인플레이션"을 제거하면 추가적인 인사이트를 얻는 데 도움이 됩니다.

이전에는 bos_reviews$comments에 polarity()를 적용하여 comparison.cloud()를 생성했습니다. 이번 연습 문제에서는 comparison.cloud()를 만들기 전에 scale()을 적용해 결과를 스케일링합니다. 시각화 결과가 어떻게 달라지는지 확인해 보세요!

이 연습 문제는 복습 위주로 구성되어 있어 코드 대부분이 이미 작성되어 있습니다. 올바른 객체와 매개변수만 채워 넣으면 됩니다!

지침

100 XP
  • 미리 불러온 bos_pol$all에서 [1:6,1:3]으로 인덱싱하여 일부 데이터를 확인합니다.
  • bos_pol$all$polarity 열에 scale()을 적용한 결과를 scaled_polarity라는 새 열로 추가합니다.
  • 긍정 댓글은 새 열 bos_reviews$scaled_polarity가 0보다 큰 (>) 경우를 subset()으로 추출합니다.
  • 부정 댓글은 새 열 bos_reviews$scaled_polarity가 0보다 작은 (<) 경우를 subset()으로 추출합니다.
  • pos_comments에 paste()를 적용하여 pos_terms를 생성합니다.
  • neg_comments에 paste()를 적용하여 neg_terms를 생성합니다.
  • 축소된 문서인 pos_terms와 neg_terms를 all_terms라는 단일 코퍼스로 정리합니다.
  • tm 워크플로우에 따라 all_terms에 VectorSource()를 적용한 뒤, 이를 VCorpus() 안에 중첩시킵니다.
  • all_corpus 객체를 사용하여 TermDocumentMatrix()를 생성합니다. 이 TDM은 TfIdf 가중치와 기본 정제 함수가 적용되어 있습니다.
  • as.matrix()를 사용하여 all_tdm을 all_tdm_m으로 변환합니다. 그런 다음 기존 코드에서 열 이름을 "positive"와 "negative"로 변경합니다.
  • 드디어! 행렬 객체 all_tdm_m에 comparison.cloud()를 적용합니다. 새롭게 등장한 가장 빈번한 부정 단어들을 살펴보세요. 예상치 못한 인사이트를 발견할 수도 있습니다!