본문 바로가기
PROGRAMMING/R

[R] Text Mining과 WordCloud 실습

by 안녕나는현서 2021. 7. 19.
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

댓글