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

Connected

연습 문제

문서 그룹을 위한 트리맵

실제 분석에서는 저자, 제품, 회사 등의 기준으로 문서를 그룹화해서 다루는 경우가 많습니다. 이 연습 문제에서는 그룹 구조를 유지하면서 텍스트의 특성을 간결한 시각화로 탐색하는 방법을 배웁니다. 예를 들어, 고객 리뷰를 제품별로 그룹화했을 때 여러 차원을 동시에 살펴볼 수 있습니다. 먼저 리뷰의 polarity()를 계산할 수 있습니다. 또 다른 차원은 길이입니다. 문서 길이는 감정의 강도를 나타낼 수 있습니다. 예를 들어 고객이 "정말 좋은 신발!"처럼 짧은 리뷰를 남겼다면, 긴 긍정 리뷰에 비해 실제 열정은 덜한 것으로 추론할 수 있습니다. 또한 여성용, 남성용, 아동용 신발처럼 제품 유형별로 리뷰를 그룹화할 수도 있습니다. 트리맵을 사용하면 이러한 모든 차원을 한눈에 살펴볼 수 있습니다.

텍스트 분석에서 트리맵의 각 상자는 트윗과 같은 개별 문서를 나타냅니다. 문서는 저자 등의 기준으로 그룹화되며, 각 상자의 크기는 단어 수나 글자 수 같은 수치로 결정됩니다. 개별 색상은 감정 점수에 따라 결정됩니다.

티블(tibble)을 정리한 후에는 treemap() 함수가 포함된 treemap 라이브러리를 사용해 시각화를 만듭니다. 아래 코드 예시는 데이터, 그룹화 변수, 크기, 색상 및 기타 시각적 요소를 지정하는 방법을 보여줍니다.

treemap(
  data_frame,
  index = c("group", "individual_document"),
  vSize = "doc_length",
  vColor = "avg_score",
  type = "value",
  title = "Sentiment Scores by Doc",
  palette = c("red", "white", "green")
)

미리 로드된 all_books 객체에는 셰익스피어 4권, 멜빌 3권, 트웨인 4권이 통합된 tidy 형식의 코퍼스가 들어 있습니다. 트리맵을 통해 누가 더 긴 책을 썼는지, 그리고 저자 전체 및 개별 도서의 극성(polarity)이 어떠한지 파악할 수 있어야 합니다.

지침 1/3

undefined XP
    1
    2
    3

count()와 book 열을 사용하여 각 도서의 길이를 계산하고, 결과를 book_length라는 새 객체에 저장하세요.