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

Connected

연습 문제

나누어 살펴보기: 극성을 활용한 비교 워드 클라우드

극성을 활용해 코퍼스를 나누는 방법을 살펴봤으니, 이제 직접 실습해 봅시다! 이 코드는 감정 점수를 기준으로 코퍼스를 분할하여, 전체를 한꺼번에 보는 대신 각 하위 집합의 정보를 자세히 살펴볼 수 있도록 도와줍니다.

R 세션에는 "오즈의 마법사"에 polarity()를 적용해 생성된 oz_pol이 준비되어 있습니다.

편의를 위해, 극성 점수를 기준으로 코퍼스를 분할하는 간단한 커스텀 함수 pol_subsections()를 미리 만들어 두었습니다. 이 함수는 각 행이 코퍼스의 문장 또는 문서인 데이터 프레임을 입력으로 받습니다. 그런 다음 극성 값이 0보다 크거나 작은 행만 추출합니다. 마지막으로 긍정 및 부정 문장(0이 아닌 극성)을 collapse 매개변수로 합쳐 단일 코퍼스로 만들고, 두 문서를 하나의 벡터로 연결합니다.

pol_subsections <- function(df) {
  x.pos <- subset(df$text, df$polarity > 0)
  x.neg <- subset(df$text, df$polarity < 0)
  x.pos <- paste(x.pos, collapse = " ")
  x.neg <- paste(x.neg, collapse = " ")
  all.terms <- c(x.pos, x.neg)
  return(all.terms)
}

이제 중립 문장은 제외하고, 남은 텍스트를 정리하는 데 집중합니다. 이 연습 문제에서는 %>% 연산자를 사용해 객체를 함수로 전달합니다. 간단한 전처리 후 comparison.cloud()를 사용해 시각화를 만들어 보세요.

지침 1/3

undefined XP
    1
    2
    3
  • oz_pol에서 필요한 데이터를 추출하세요.
    • select()를 호출하여 첫 번째 열 text를 원시 텍스트인 text.var로, 두 번째 열 polarity를 극성 점수인 polarity로 선언하세요.
  • 이제 oz_df에 pol_subsections()를 적용하세요. 새 객체의 이름은 all_terms로 지정합니다.
  • all_corpus를 만들려면 all_terms에 VectorSource()를 적용한 뒤 %>%로 VCorpus()에 전달하세요.