728x90
- 사용할 패키지 불러오기
library(KoNLP)
library(wordcloud)
library(RColorBrewer)
- 팔레트, 사전 설정하고 text파일 가져오기
# 팔레트 설정
pal <- brewer.pal(8, 'Dark2')
# 사전 설정
useNIADic()
# text 파일 가져오기
txt <- readLines("new_deal.txt", encoding='UTF-8')
txt
- 명사 추출하기
txt_noun = extractNoun(txt) # extractNoun은 결과를 리스트로 반환
txt_vec = unlist(txt_noun) # unlist()를 통해 벡터로 변환
- 사전에 단어 추가 및 불필요한 단어 제거
# 글자 수가 1이면 무의미할 확률이 높으므로 2개 이상만 추출
txt_vec <- txt_vec[nchar(txt_vec)>1]
# 사전에 단어 추가하기
# mergeUserDic(data.frame(c('추가하고', '싶은', '단어', '목록'),c('ncn')))
# ncn : 명사로 등재
# 불필요한 문자 삭제 : gsub('바꾸기 전', '바꾼 후', '대상')
txt_after <- gsub('\\W', '', txt_vec) # 특수 기호 없애기
txt_after <- gsub('하기', '', txt_after)
txt_after <- gsub('들이', '', txt_after)
txt_after <- gsub('160', '', txt_after)
txt_after <- gsub('20은', '', txt_after)
txt_after <- gsub('가를', '', txt_after)
txt_after <- gsub('에', '', txt_after)
txt_after <- gsub('20', '', txt_after)
txt_after <- gsub('을', '', txt_after)
txt_after <- gsub(' ', '', txt_after)
- 빈도수 추출하기
# 빈도수 추출
txt_count <- table(txt_after)
txt_count <- sort(txt_count, decreasing = T)
txt_count
> txt_count
txt_after
뉴딜 한국판 국민 안전망 전환 디지털 지원 경제
38 28 18 16 12 12 11 11 8
고용 변화 전략 투자 성과 우리 진화 확대 교육
8 8 8 8 7 7 7 7 6
대응 사회 적극 구축 대한민국 미래 세계 일상 저탄소
6 6 6 5 5 5 5 5 5
지역 참여 추진 격차 계획 국가발전 기반 선도국 속도
5 5 5 4 4 4 4 4 4
여러분 인공지능 탄소 확충 강화 관심 그린 기업 녹색
4 4 4 4 3 3 3 3 3
데이터 마련 민간 발전 보급 사람 사업 산업 수소
3 3 3 3 3 3 3 3 3
시작 일자리 해소 혁신 확산 휴먼 가로 개발 공간
3 3 3 3 3 3 2 2 2
교통 구석 국제 규모 균형 극복 기회 기후 단계
2 2 2 2 2 2 2 2 2
단지 대규모 도입 동력 발표 소프트웨어 시대 안정 양질
2 2 2 2 2 2 2 2 2
...
- 워드 클라우드 만들기
wordcloud(words = txt_vec, #단어
freq = txt_count, #빈도
min.freq = 2, # 최소 단어 빈도
max.words = 100, # 표현 단어 수
random.order = F, # 고빈도 단어 중앙위치
rot.per = .1, # 회전 비율
scale = c(4, 0.3), # 최대 폰트 크기, 최소 폰트 크기
colors = pal # 색상
)
728x90
'PROGRAMMING > R' 카테고리의 다른 글
[R] 데이터 전처리 실습 (0) | 2021.07.19 |
---|---|
[R] 데이터 전처리 (0) | 2021.07.19 |
[R] Text Mining과 WordCloud (0) | 2021.07.17 |
[R] csv파일 불러오고 살펴보기 (0) | 2021.07.17 |
[R] 데이터 프레임 (Data Frame) (0) | 2021.07.17 |
댓글