1. 단어 빈도 분석
명사를 담아둔 noun 객체를 활용해서 분석을 이어가 보겠습니다.
특정 단어가 자주 등장한다면, 일단 그 단어에 주목해볼 필요가 있겠죠.
마치 양적 연구에서 기술통계를 통해 변수의 평균과 표준편차 등을 살펴보듯이
어떤 단어가 자주 등장하는지 살펴보려 합니다.
빈도 계산을 위해 dplyr 패키지 불러와주시고,
count와 filter, str_count 함수를 사용하려 합니다.
noun_frequency <- noun %>%
count(word, sort = T) %>%
filter(str_count(word)>1)
count: 전체 단어의 개수를 세어줍니다.
filter: 특정 조건에 따른 값만 보여줍니다.
str_count: word에서 1글자 초과하는(2글자 이상) 것만 나오도록 설정해줍니다.
1글자 단어는 그게 어떤 의미인지 보통 알기 어려우니 제외해줍니다.
결과를 살펴보니,
정체불명의 단어가 달려있네요..
삭제가 필요하겠습니다
**불용어 처리
저런 것처럼 의미를 알 수 없는 단어들이 종종 포함되는데,
저런 것들 싹 지워줘야.. 데이터가 잘 추출되겠죠
또 연구자 판단에 의미를 알 수 없는 단어라 하면 과감히 지워주세요
이런 쓸데없는 단어를 불용어(stopword)라 하는데,
이를 따로 저장해줍니다.
제가 대충 써놨던 불용어를 쓰면,
stopword <- c("들이","하게","하다","하면","해서","이번","하네","해요",
"이것","니들","하기","하지","한거","해주","그것","어디",
"여기","까지","이거","하신","만큼","진짜","아무것","^ㅋ",
"누구","해라","니들","하려","^ㅋ^ㅋ^ㅋ","하라","그때",
"하지마","때문","어디","이젠","한게","하니","^ㅎ","가서",
"한지","해놨어","거기","라가","할꺼면서","무조껀","암것",
"하는거","하거","누가","할라하지","정도","군지","로하","가야겠네",
"^ㅋ^ㅋ^ㅋ^ㅋ^ㅋ","하나")
이거를 사용해서 지워보겠습니다.
noun_frequency1 <- noun_frequency %>%
filter(!word %in% stopword)
filter(!word %in% stopword) : stopword에 존재하는 단어들을 word에서 지워줍니다.
결과를 살펴보면,
아까 그 놈들이 안 보이네요 ㅋㅎㅋㅋ
상위 30개 단어만 보겠습니다.
top30 <- noun_frequency1 %>%
head(30)
head(30): 상위 30개 단어만 보이게 설정
단어 30개만 모아놓은 것을 사용해서, 단어 빈도 그래프와 워드 클라우드를 그려볼까요
2. 빈도 그래프, 워드 클라우드
먼저 그래프부터 그려보면,
ggplot을 사용해서 그려보겠습니다.
library(scales)
library(ggplot2)
이 두 가지 패키지 불러놓은 다음에,
ggplot(top30, aes(x = reorder(word, n), y=n)) +
geom_col()+
coord_flip()+
geom_text(aes(label = comma(n, accuracy = 1)), hjust = -0.3) +
scale_y_continuous(limits = c(0,200)) +
labs(x = NULL, y= NULL) +
theme_minimal()
ggoplt 함수에서 scale_y_continuous(limits = c(0,200))
이 조건만 주의하면 됩니다,
아까 구한 단어 빈도에서 최댓값 보다 작거나, 너무 크지 않게 설정을 해주셔야 그래프가
이쁘게 나올 듯싶어요 ㅎㅋㅋ
암튼 실행하면,
이런 식으로 나오게 됩니다.
ggplot을 제가 잘 못써서.. 색깔 넣는 것은 솔직히 잘 모르겠습니다 ㅎㅋㅋㅋ
이어서 워드 클라우드를 보면,
library(wordcloud2) 를 사용하면 간단하고 예쁜 워드 클라우드가 나옵니다.
wordcloud2(top30, size = 1)
이렇게 보면, 수능 관련 기사에 사람들이 댓글을 통해
여전히 코로나 이슈가 해결되지 않았다는 것을 볼 수가 있네요.
백신, 확진자, 접종 등의 단어가 눈에 띄네요 ㅠ
'교육통계 > 텍스트마이닝' 카테고리의 다른 글
텍스트마이닝-웹크롤링(2) (0) | 2022.11.03 |
---|---|
텍스트마이닝-웹크롤링(1) (0) | 2022.11.03 |
텍스트마이닝-토픽모델링 (0) | 2022.11.03 |
텍스트마이닝-연관어분석 (2) | 2022.11.03 |
텍스트마이닝-형태소분석 (0) | 2022.11.03 |