R 텍스트마이닝
창세기 단어구름(wordcloud) 만들기 (3) 단어구름 만들기
지난 코드에 이어서 설명하겠습니다.
library(stringr)
library(dplyr)
#텍스트 불러오기
gen=readLines("E:/ONE_DRIVE/OneDrive/21.textmining/bible_example/genesis.txt",encoding="EUC-KR")
#단어 단위로 쪼개기
gen_word = strsplit(gen ,split=" ") %>% unlist()
#불필요한 단어 찾아 위치 저장하기
rm_obj=which(str_detect(gen_word,":")|str_detect(gen_word,"<")|str_detect(gen_word,">"))
#불필요한 단어 제거하기
gen_word_r1=gen_word[-rm_obj]
원본에서 불필요한 단어를 제거했고, 아래와 같이 단어 단위로 벡터에 저장된 상태입니다.
> gen_word_r1[1:10]
[1] "태초에" "하나님이" "천지를" "창조하시니라" "땅이" "혼돈하고" "공허하며"
[8] "흑암이" "깊음" "위에"
이제 단어 별 등장 빈도를 구합시다. table 함수를 이용합니다. sort 함수를 이용하여 내림차순 정렬합니다.
gen_word_r2=table(gen_word_r1) %>% sort(decreasing=TRUE)
> gen_word_r2[1:5]
gen_word_r1
그 이르되 내가 그의 내
525 359 318 299 285
이제 단어구름을 만들어봅시다. wordcloud 함수를 이용합니다. 먼저 wordcloud 패키지를 설치해야합니다.
> install.packages("wordcloud")
설치한 패키지를 불러옵시다.
library(wordcloud)
wordcloud함수는 아래와 같이 사용합니다. 각각 옵션에 대한 설명은 주석으로 대신합니다.
wordcloud(words=names(gen.word.r2), #단어
freq=gen.word.r2, #빈도
min.freq=5, #등장 단어 최소빈도
max.words=200, #최대 등장 단어 수
random.order=FALSE, #순서 임의화 여부
rot.per=0.1, #90도 회전한 단어 비율
scale=c(8,0.5), #최대, 최소 단어 스케일
colors=brewer.pal(8,"Dark2")) #색 설정
<코드 모아보기>
library(stringr)
library(dplyr)
library(wordcloud)
#텍스트 불러오기
gen=readLines("E:/ONE_DRIVE/OneDrive/21.textmining/bible_example/genesis.txt",encoding="EUC-KR")
#단어 단위로 쪼개기
gen_word = strsplit(gen ,split=" ") %>% unlist()
#불필요한 단어 찾아 위치 저장하기
rm_obj=which(str_detect(gen_word,":")|str_detect(gen_word,"<")|str_detect(gen_word,">"))
#불필요한 단어 제거하기
gen_word_r1=gen_word[-rm_obj]
#빈도 계산하기
gen_word_r2=table(gen_word_r1) %>% sort(decreasing=TRUE)
#단어구름 그리기
wordcloud(words=names(gen.word.r2), #단어
freq=gen.word.r2, #빈도
min.freq=5, #등장 단어 최소빈도
max.words=200, #최대 등장 단어 수
random.order=FALSE, #순서 임의화 여부
rot.per=0.1, #90도 회전한 단어 비율
scale=c(8,0.5), #최대, 최소 단어 스케일
colors=brewer.pal(8,"Dark2")) #색 설정
'R 주제 > 텍스트마이닝' 카테고리의 다른 글
[R 텍스트마이닝] 영화 어바웃타임 대본 단어 빈도분석 ③ 빈 문자열 제거 (0) | 2020.12.07 |
---|---|
[R 텍스트마이닝] 영화 어바웃타임 대본 단어 빈도분석 ② 불필요한 기호 제거 (0) | 2020.12.04 |
[R 텍스트마이닝] 영화 어바웃타임 대본 단어 빈도분석 ① 빈도분석 일단 해보기 (0) | 2020.12.04 |
[R 텍스트마이닝] 창세기 단어구름(wordcloud) 만들기 (2) 전처리 (0) | 2020.10.06 |
[R 텍스트마이닝] 창세기 단어구름(wordcloud) 만들기 (1) 개역개정 텍스트 불러오기 (0) | 2020.10.06 |
댓글