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

Connected

연습 문제

NRC의 놀라운 세계

마지막으로, 여러 감정 상태에 따라 단어에 레이블을 지정하는 NRC 어휘 사전을 다뤄볼 차례입니다. Plutchik의 감정의 바퀴를 기억하시나요? NRC 어휘 사전은 Plutchik의 8가지 감정과 긍정/부정을 기준으로 단어에 태그를 붙입니다.

이번 연습 문제에서는 벡터를 다른 벡터와 대조하는 새로운 연산자 %in%가 등장합니다. 아래 코드에서 %in%는 FALSE, FALSE, TRUE를 반환합니다. some_vec의 1과 2는 some_other_vector에 없지만, 3은 있으므로 TRUE가 반환되기 때문입니다. %in%는 일치하는 항목을 찾을 때 유용합니다.

some_vec <- c(1, 2, 3)
some_other_vector <- c(3, "a", "b")
some_vec %in% some_other_vector

또 다른 새로운 연산자는 !입니다. 논리 조건에서 !를 추가하면 결과가 반전됩니다. 위 예시에서 FALSE, FALSE, TRUE는 TRUE, TRUE, FALSE로 바뀝니다. %in%와 함께 사용하면 일치하는 항목을 제거할 때 효과적입니다.

!some_vec %in% some_other_vector

오즈의 마법사의 tidy 형식 버전인 oz와 컬럼명이 변경된 "NRC" 어휘 사전이 담긴 nrc를 미리 준비해 두었습니다.

지침 1/2

undefined XP
    1
    2
  • oz를 nrc 어휘 사전과 내부 조인(inner join)하세요.
    • inner_join()을 호출하여 티블(tibble)을 조인하세요.
    • 텍스트의 term 컬럼과 어휘 사전의 word 컬럼을 기준으로 by를 지정하여 조인하세요.
  • Plutchik의 감정만 남기고, 어휘 사전의 긍정 또는 부정 단어는 제거하세요.
    • filter()를 사용하여 sentiment가 "positive" 또는 "negative"가 아닌 행만 유지하세요.
  • 감정별로 그룹화하세요.
    • group_by()를 호출하고, sentiment를 따옴표 없이 전달하세요.
  • 각 감정의 총 빈도를 구하세요.
    • summarize()를 호출하고, total_count를 count의 sum()으로 설정하세요.
    • 결과를 oz_plutchik에 할당하세요.