Rhadoop
RHADOOP - WORD COUNT & WORD CLOUD -1 (17/11/09 Lecture Note)
딥스탯
2017. 11. 28. 23:14
파일 및 참고자료 : http://stat.knu.ac.kr/
http://stat.knu.ac.kr/pg/bbs/board.php?bo_table=ja02&part=1
Text mining on Rhadoop
“R2_1.R”
text<- "텍스트마이닝은 자연어 (Natural Language)로 구성된 비정형데이터 (unstructured data)에서 패턴 또는 관계를 추출하여 의미있는 정보를 찾아내는 기법으로, 컴퓨터가 사람들이 말하는 언어를 이해할 수 있는 자연어 처리 (Natural Language Processing)에 기반으로 둔 기술이다. 트위터, 페이스북과 같은 소셜 미디어에서 생산되는 데이터는 비정형데이터이기 때문에 텍스트마이닝을 이용하여 분석할 수 있다.
텍스트마이닝은 말 그대로 텍스트 형태의 비정형데이터에 마이닝 기법을 적용한 것이다. 즉, 텍스트에 나타나는 단어를 분해, 정제하고, 특정 단어의 출현빈도 등을 파악하여 단어들 간의 관계를 조사하는 기법이다.
데이터마이닝 (data mining)은 대규모 DB에 저장된 정형화된 데이터로부터 정보를 찾아내는 기법이라면 텍스트마이닝은 비정형화된 텍스트 문서에서 정보를 찾아내는 기법이라 할 수 있다.
그림 2.1은 데이터마이닝 과 텍스트마이닝의 관계를 나타내는 그림이다."
#system("sudo apt-get install libcurl4-gnutls-dev")
#install.packages("KoNLP")
#install.packages("wordcloud")
library(KoNLP)
## Checking user defined dictionary!
library(wordcloud)
## Loading required package: RColorBrewer
useSejongDic()
## Backup was just finished!
## 370957 words dictionary was built.
nouns <- extractNoun(text) #명사만 추출
nouns <- nouns[nchar(nouns)>=2] #명사 중에서 2개 글자이상만 검색
nouns <- gsub("텍스트마이닝.*","텍스트마이닝", nouns)
nouns <- gsub("데이터마이닝.*","데이터마이닝", nouns)
wordFreq <-table(nouns) #빈도 계산
wordFreq
## nouns
## 2.1 DB Language Natural Processing
## 1 1 2 2 1
## data mining unstructured 관계 구성
## 2 1 1 3 1
## 그림 기반 기법 기술 단어
## 2 1 5 1 3
## 대규모 데이터 데이터마이닝 때문 마이닝
## 1 5 2 1 1
## 문서 미디어 분석 비정형 빈도
## 1 1 1 4 1
## 사람 생산 소셜 언어 의미
## 1 1 1 1 1
## 이용 이해 자연어 저장 적용
## 1 1 2 1 1
## 정보 정제 정형화 조사 처리
## 3 1 1 1 1
## 추출 출현 컴퓨터 텍스트 텍스트마이닝
## 1 1 1 3 5
## 트위터 특정 파악 패턴 페이스
## 1 1 1 1 1
## 형태
## 1
pal <- brewer.pal(6, "Dark2")
set.seed(1000)
wordcloud(words=names(wordFreq), freq=wordFreq, colors=pal, min.freq=1,
random.order=F, family="malgun")
“R2_1.R” ver.hadoop
library(KoNLP)
library(wordcloud)
library(rhdfs)
## Loading required package: rJava
##
## HADOOP_CMD=/home/stat/hadoop/hadoop-2.7.4/bin/hadoop
##
## Be sure to run hdfs.init()
hdfs.init()
library(rmr2)
## Warning: S3 methods 'gorder.default', 'gorder.factor', 'gorder.data.frame',
## 'gorder.matrix', 'gorder.raw' were declared in NAMESPACE but not found
## Please review your hadoop settings. See help(hadoop.settings)
IDEA
병렬처리를 위해서 줄별로 나눈 후 각 줄별로 따로 처리한다.
cat(text)
## 텍스트마이닝은 자연어 (Natural Language)로 구성된 비정형데이터 (unstructured data)에서 패턴 또는 관계를 추출하여 의미있는 정보를 찾아내는 기법으로, 컴퓨터가 사람들이 말하는 언어를 이해할 수 있는 자연어 처리 (Natural Language Processing)에 기반으로 둔 기술이다. 트위터, 페이스북과 같은 소셜 미디어에서 생산되는 데이터는 비정형데이터이기 때문에 텍스트마이닝을 이용하여 분석할 수 있다.
##
## 텍스트마이닝은 말 그대로 텍스트 형태의 비정형데이터에 마이닝 기법을 적용한 것이다. 즉, 텍스트에 나타나는 단어를 분해, 정제하고, 특정 단어의 출현빈도 등을 파악하여 단어들 간의 관계를 조사하는 기법이다.
##
## 데이터마이닝 (data mining)은 대규모 DB에 저장된 정형화된 데이터로부터 정보를 찾아내는 기법이라면 텍스트마이닝은 비정형화된 텍스트 문서에서 정보를 찾아내는 기법이라 할 수 있다.
## 그림 2.1은 데이터마이닝 과 텍스트마이닝의 관계를 나타내는 그림이다.
unlist(strsplit(text,"\n"))
## [1] "텍스트마이닝은 자연어 (Natural Language)로 구성된 비정형데이터 (unstructured data)에서 패턴 또는 관계를 추출하여 의미있는 정보를 찾아내는 기법으로, 컴퓨터가 사람들이 말하는 언어를 이해할 수 있는 자연어 처리 (Natural Language Processing)에 기반으로 둔 기술이다. 트위터, 페이스북과 같은 소셜 미디어에서 생산되는 데이터는 비정형데이터이기 때문에 텍스트마이닝을 이용하여 분석할 수 있다."
## [2] ""
## [3] " 텍스트마이닝은 말 그대로 텍스트 형태의 비정형데이터에 마이닝 기법을 적용한 것이다. 즉, 텍스트에 나타나는 단어를 분해, 정제하고, 특정 단어의 출현빈도 등을 파악하여 단어들 간의 관계를 조사하는 기법이다. "
## [4] ""
## [5] "데이터마이닝 (data mining)은 대규모 DB에 저장된 정형화된 데이터로부터 정보를 찾아내는 기법이라면 텍스트마이닝은 비정형화된 텍스트 문서에서 정보를 찾아내는 기법이라 할 수 있다."
## [6] " 그림 2.1은 데이터마이닝 과 텍스트마이닝의 관계를 나타내는 그림이다."
1. 명사 추출
MAPPER 1.1
mapper_1.1 <- function(k,v){
temp_text <- unlist(strsplit(v,"\n"))
return(keyval(seq_along(temp_text),temp_text))
}
REDUCER 1.1
reducer_1.1 <- function(k,v){
nouns <- extractNoun(v)
return(keyval(k,list(nouns)))
}
MAPREDUCE 1.1
hadoop_text <- to.dfs(text)
mr_1.1 <- mapreduce(hadoop_text,
map = mapper_1.1,
reduce = reducer_1.1)
result_mr_1.1 <- from.dfs(mr_1.1)
result_mr_1.1
## $key
## [1] 1 2 3 4 5 6
##
## $val
## $val[[1]]
## [1] "텍스트마이닝은" "자연어" "Natural" "Language"
## [5] "구성" "비정형" "데이터" "unstructured"
## [9] "data" "패턴" "관계" "추출"
## [13] "의미" "정보" "기법" "컴퓨터"
## [17] "사람" "말" "언어" "이해"
## [21] "수" "자연어" "처리" "Natural"
## [25] "Language" "Processing" "기반" "기술"
## [29] "트위터" "페이스" "북" "소셜"
## [33] "미디어" "생산" "데이터" "비정형"
## [37] "데이터" "때문" "텍스트마이닝을" "이용"
## [41] "분석" "수"
##
## $val[[2]]
## [1] ""
##
## $val[[3]]
## [1] "텍스트마이닝은" "말" "텍스트" "형태"
## [5] "비정형" "데이터" "마이닝" "기법"
## [9] "적용" "한" "것" "즉"
## [13] "텍스트" "단어" "정제" "특정"
## [17] "단어" "출현" "빈도" "등"
## [21] "파악" "단어" "들" "간"
## [25] "관계" "조사" "기법"
##
## $val[[4]]
## [1] ""
##
## $val[[5]]
## [1] "데이터마이닝" "data" "mining" "대규모"
## [5] "DB" "저장" "정형화" "데이터"
## [9] "정보" "기법" "텍스트마이닝은" "비정형"
## [13] "화" "텍스트" "문서" "정보"
## [17] "기법" "수"
##
## $val[[6]]
## [1] "그림" "2.1" "데이터마이닝" "과"
## [5] "텍스트마이닝" "관계" "그림"
MAPPER 1.2
mapper_1.2 <- function(k,v){
keyval(1,v)
}
REDUCER 1.2
reducer_1.2 <- function(k,v){
keyval(k,unlist(v))
}
MAPREDUCE 1.2
mr_1.2 <- mapreduce(mr_1.1,
map = mapper_1.2,
reduce = reducer_1.2)
result_mr_1.2 <- from.dfs(mr_1.2)
result_mr_1.2
## $key
## [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [36] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [71] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
##
## $val
## [1] "텍스트마이닝은" "자연어" "Natural" "Language"
## [5] "구성" "비정형" "데이터" "unstructured"
## [9] "data" "패턴" "관계" "추출"
## [13] "의미" "정보" "기법" "컴퓨터"
## [17] "사람" "말" "언어" "이해"
## [21] "수" "자연어" "처리" "Natural"
## [25] "Language" "Processing" "기반" "기술"
## [29] "트위터" "페이스" "북" "소셜"
## [33] "미디어" "생산" "데이터" "비정형"
## [37] "데이터" "때문" "텍스트마이닝을" "이용"
## [41] "분석" "수" "" "텍스트마이닝은"
## [45] "말" "텍스트" "형태" "비정형"
## [49] "데이터" "마이닝" "기법" "적용"
## [53] "한" "것" "즉" "텍스트"
## [57] "단어" "정제" "특정" "단어"
## [61] "출현" "빈도" "등" "파악"
## [65] "단어" "들" "간" "관계"
## [69] "조사" "기법" "" "데이터마이닝"
## [73] "data" "mining" "대규모" "DB"
## [77] "저장" "정형화" "데이터" "정보"
## [81] "기법" "텍스트마이닝은" "비정형" "화"
## [85] "텍스트" "문서" "정보" "기법"
## [89] "수" "그림" "2.1" "데이터마이닝"
## [93] "과" "텍스트마이닝" "관계" "그림"
2. 2글자 이상인 명사만 추출
MAPPER 2.1
MAPPER 1.1 과 동일
REDUCER 2.1
reducer_2.1 <- function(k,v){
nouns <- extractNoun(v)
nouns <- nouns[nchar(nouns)>=2]
return(keyval(k,list(nouns)))
}
MAPPER 2.2
MAPPER 1.2 와 동일
REDUCER 2.2
REDUCER 1.2 와 동일
MAPREDUCE 2
mr_2 <- mapreduce(
input = mapreduce(hadoop_text,
map = mapper_1.1,
reduce = reducer_2.1),
map = mapper_1.2,
reduce = reducer_1.2
)
result_mr_2 <- from.dfs(mr_2)
result_mr_2
## $key
## [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [36] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [71] 1 1 1 1 1 1 1 1 1 1
##
## $val
## [1] "텍스트마이닝은" "자연어" "Natural" "Language"
## [5] "구성" "비정형" "데이터" "unstructured"
## [9] "data" "패턴" "관계" "추출"
## [13] "의미" "정보" "기법" "컴퓨터"
## [17] "사람" "언어" "이해" "자연어"
## [21] "처리" "Natural" "Language" "Processing"
## [25] "기반" "기술" "트위터" "페이스"
## [29] "소셜" "미디어" "생산" "데이터"
## [33] "비정형" "데이터" "때문" "텍스트마이닝을"
## [37] "이용" "분석" "텍스트마이닝은" "텍스트"
## [41] "형태" "비정형" "데이터" "마이닝"
## [45] "기법" "적용" "텍스트" "단어"
## [49] "정제" "특정" "단어" "출현"
## [53] "빈도" "파악" "단어" "관계"
## [57] "조사" "기법" "데이터마이닝" "data"
## [61] "mining" "대규모" "DB" "저장"
## [65] "정형화" "데이터" "정보" "기법"
## [69] "텍스트마이닝은" "비정형" "텍스트" "문서"
## [73] "정보" "기법" "그림" "2.1"
## [77] "데이터마이닝" "텍스트마이닝" "관계" "그림"
3. “텍스트마이닝”, “데이터마이닝” 처리
REDUCER 3.1
reducer_3.1 <- function(k,v){
nouns <- extractNoun(v)
nouns <- nouns[nchar(nouns)>=2]
nouns <- gsub("텍스트마이닝.*","텍스트마이닝", nouns)
nouns <- gsub("데이터마이닝.*","데이터마이닝", nouns)
return(keyval(k,list(nouns)))
}
나머지는 동일 (MAPPER 3.1, MAPPER 3.2, REDUCER 3.3)
MAPREDUCE 3
mr_3 <- mapreduce(
input = mapreduce(hadoop_text,
map = mapper_1.1,
reduce = reducer_3.1),
map = mapper_1.2,
reduce = reducer_1.2
)
result_mr_3 <- from.dfs(mr_3)
result_mr_3
## $key
## [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [36] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [71] 1 1 1 1 1 1 1 1 1 1
##
## $val
## [1] "텍스트마이닝" "자연어" "Natural" "Language"
## [5] "구성" "비정형" "데이터" "unstructured"
## [9] "data" "패턴" "관계" "추출"
## [13] "의미" "정보" "기법" "컴퓨터"
## [17] "사람" "언어" "이해" "자연어"
## [21] "처리" "Natural" "Language" "Processing"
## [25] "기반" "기술" "트위터" "페이스"
## [29] "소셜" "미디어" "생산" "데이터"
## [33] "비정형" "데이터" "때문" "텍스트마이닝"
## [37] "이용" "분석" "텍스트마이닝" "텍스트"
## [41] "형태" "비정형" "데이터" "마이닝"
## [45] "기법" "적용" "텍스트" "단어"
## [49] "정제" "특정" "단어" "출현"
## [53] "빈도" "파악" "단어" "관계"
## [57] "조사" "기법" "데이터마이닝" "data"
## [61] "mining" "대규모" "DB" "저장"
## [65] "정형화" "데이터" "정보" "기법"
## [69] "텍스트마이닝" "비정형" "텍스트" "문서"
## [73] "정보" "기법" "그림" "2.1"
## [77] "데이터마이닝" "텍스트마이닝" "관계" "그림"
4. 빈도계산
MAPPER 4 , REDUCER 4
mapper_4 <- function(k,v){
keyval(v,k)
}
reducer_4 <- function(k,v){
keyval(k,sum(v))
}
MAPREDUCE 4
mr_4 <- mapreduce(mr_3,
map = mapper_4,
reduce = reducer_4)
result_mr_4 <- from.dfs(mr_4)
result_mr_4
## $key
## [1] "DB" "2.1" "data" "mining"
## [5] "관계" "구성" "그림" "기반"
## [9] "기법" "기술" "단어" "때문"
## [13] "문서" "분석" "빈도" "사람"
## [17] "생산" "소셜" "언어" "의미"
## [21] "이용" "이해" "저장" "적용"
## [25] "정보" "정제" "조사" "처리"
## [29] "추출" "출현" "특정" "파악"
## [33] "패턴" "형태" "Natural" "Language"
## [37] "대규모" "데이터" "마이닝" "미디어"
## [41] "비정형" "자연어" "정형화" "컴퓨터"
## [45] "텍스트" "트위터" "페이스" "Processing"
## [49] "unstructured" "데이터마이닝" "텍스트마이닝"
##
## $val
## [1] 1 1 2 1 3 1 2 1 5 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 1 1 1 1 1 1 1 1 2
## [36] 2 1 5 1 1 4 2 1 1 3 1 1 1 1 2 5
wordFreq_hadoop <- as.data.frame(result_mr_4)
wordFreq_hadoop
key <fctr> | val <dbl> | |||
---|---|---|---|---|
DB | 1 | |||
2.1 | 1 | |||
data | 2 | |||
mining | 1 | |||
관계 | 3 | |||
구성 | 1 | |||
그림 | 2 | |||
기반 | 1 | |||
기법 | 5 | |||
기술 | 1 |
5. WORDCLOUD
pal <- brewer.pal(6, "Dark2")
set.seed(1000)
wordcloud(words=wordFreq_hadoop$key, freq=wordFreq_hadoop$val, colors=pal, min.freq=1,
random.order=F, family="malgun")
“R2_2.R”
library(KoNLP)
library(wordcloud)
ahn = readLines(file("/home/stat/다운로드/ahn.txt",encoding="CP949")) #한줄 한줄 읽고 각 줄이 벡터에서 하나의 원소가 된다.
useSejongDic()
## Backup was just finished!
## 370957 words dictionary was built.
mergeUserDic(data.frame(c('안철수', '춘천', '박근혜','문재인'), "ncn"))
## Warning: 'mergeUserDic' is deprecated.
## Use 'buidDictionary()' instead.
## See help("Deprecated")
## 4 words were added to dic_user.txt.
mergeUserDic(data.frame('대한민국', "ncn"))
## Warning: 'mergeUserDic' is deprecated.
## Use 'buidDictionary()' instead.
## See help("Deprecated")
## 1 words were added to dic_user.txt.
nouns <- sapply(ahn, extractNoun, USE.NAMES=F) #nouns :리스트
nouns <- unlist(nouns)
nouns <- nouns[nchar(nouns)>=2]
nouns <- gsub("하게","", nouns) #"하게" 제거
wordFreq <- table(nouns)
wordFreq
## nouns
## 18 30 가계부채 가능 가능성 가치 각자
## 3 1 1 1 2 1 1 1
## 감당 강력 개인 걱정 것들로는 결과 결심 결점
## 1 1 1 1 1 3 1 1
## 결합 경륜 경쟁 경제 경제모델 경청 경험 계속
## 1 1 1 5 1 2 1 1
## 계층 고단 고민 고통 공격 공정 공직 과보호
## 1 1 2 1 1 1 1 1
## 과정 교수 구상 구조 구체 국가 국가경영 국내
## 3 1 1 2 1 1 1 1
## 국민 균형 그동안 그분들께 그분들은 극복 기득권 기업인
## 22 1 2 1 1 1 1 1
## 기회 깁슨 깨끗 나라 내용 노력 논의 누구
## 1 1 1 1 1 3 1 3
## 다음 당당 당선 대결 대통령 대한민국 대화 덧셈
## 1 1 3 1 5 3 1 1
## 동안 들려주 들이 때문 마음 마지막으 막중 만신창이
## 1 1 1 1 2 1 1 1
## 말씀 명예퇴직 모으 무시 문재인 문제 물줄기 미래
## 2 1 1 1 1 6 2 9
## 민생 민의 민주화 박근혜 반영 방식 배분 변화
## 1 1 1 1 1 1 1 3
## 별명 복지 부당 부동산 부족 분야 분열 비난
## 1 1 1 1 1 1 5 1
## 비전 빈부격차 사람 사실 사회 산업 상황 생각
## 1 1 6 1 2 1 3 11
## 서로 선거 선거과정 선거후 선의 선택 설명 성장동력
## 1 5 5 1 2 1 1 1
## 세계 세력 세상 소개 소재 소중 쇄신 숙제
## 1 2 2 1 1 1 1 1
## 스스로 스승 승리 승복 시간 시대 시스템 시작
## 2 1 1 1 1 3 4 4
## 실망 실수 실천 실현 심각 쌍둥이 아이들 안녕
## 1 1 1 1 1 1 1 1
## 안보 안철수 애정 약속 어떨까요 어려움 어르신 엄마
## 1 1 1 3 1 2 1 1
## 에너지 여러분 여부 역량 역할 역행 열망 열쇠
## 1 3 1 1 1 1 2 1
## 영광 옛날 외면 요소 요원 용기 우리 위기
## 1 1 1 2 1 1 6 1
## 위선 위해 윌리엄 유머 유행 유혹 의견 의사결정
## 1 1 1 1 1 1 1 1
## 이것 이르기까 이번 이상 이야기 이웃 이전투구 일자리
## 1 1 3 1 4 1 1 1
## 있느냐가 자리 자신 작가 장기불황 저급 저소득층 전개
## 1 3 2 1 1 1 1 1
## 전리품 전문 전문가 절망 절반 정정 정책 정치
## 1 1 2 1 1 1 4 12
## 정치가 정치개혁 정치경험 정치쇄신 제안 조용 조직 조직도
## 6 1 2 1 1 1 1 1
## 준비 중년 중산층 중심 중요 증명 증오 증인
## 1 1 1 1 1 1 3 1
## 지식 지지 지지자 지혜 진심 질문 차단 창출
## 1 2 1 1 2 2 1 1
## 책임 첫걸음 체제 최근 최소한 축하 춘천 출마
## 1 1 1 1 1 1 1 1
## 출발 충돌 통합 패배 평화체제 표현 필요 하나
## 1 1 4 1 1 1 1 3
## 하에서 한걸음 한꺼번 한자리 해결 헌신 혁신 현명
## 1 1 1 1 3 1 1 2
## 협력 혼자 후보 흑색선전 희망 희생
## 1 1 4 2 2 1
pal <- brewer.pal(6, "Dark2")
set.seed(1000)
wordcloud(words=names(wordFreq), freq=wordFreq, scale=c(10, 0.5), colors=pal, min.freq=2, random.order=F, family="malgun")
## Warning in wordcloud(words = names(wordFreq), freq = wordFreq, scale =
## c(10, : 정치경험 could not be fit on page. It will not be plotted.
“R2_2.R” ver.hadoop
library(KoNLP)
library(wordcloud)
ahn = readLines(file("/home/stat/다운로드/ahn.txt",encoding="CP949")) #한줄 한줄 읽고 각 줄이 벡터에서 하나의 원소가 된다.
useSejongDic()
## Backup was just finished!
## 370957 words dictionary was built.
mergeUserDic(data.frame(c('안철수', '춘천', '박근혜','문재인'), "ncn"))
## Warning: 'mergeUserDic' is deprecated.
## Use 'buidDictionary()' instead.
## See help("Deprecated")
## 4 words were added to dic_user.txt.
mergeUserDic(data.frame('대한민국', "ncn"))
## Warning: 'mergeUserDic' is deprecated.
## Use 'buidDictionary()' instead.
## See help("Deprecated")
## 1 words were added to dic_user.txt.
library(rhdfs)
hdfs.init()
library(rmr2)
IDEA
이전과 동일하게 각 라인별로 따로 계산해서 마지막에 합친다.
MAPPER 1
mapper_1 <- function(k,v){
return(keyval(seq_along(v),v))
}
REDUCER 1
reducer_1 <- function(k,v){
nouns <- extractNoun(v)
nouns <- nouns[nchar(nouns)>=2]
nouns <- gsub("하게","", nouns)
return(keyval(k,list(nouns)))
}
MAPPER 2
mapper_2 <- function(k,v){
nouns <- unlist(v)
return(keyval(nouns,1))
}
REDUCER 2
reducer_2 <- function(k,v){
return(keyval(k,sum(v)))
}
MAPREDUCE
hadoop_ahn <- to.dfs(ahn)
mr_ahn <- mapreduce(
input = mapreduce(hadoop_ahn,
map = mapper_1,
reduce = reducer_1),
map = mapper_2,
reduce = reducer_2
)
result_mr_ahn <- from.dfs(mr_ahn)
pal <- brewer.pal(6, "Dark2")
set.seed(1000)
wordcloud(words=result_mr_ahn$key, freq=result_mr_ahn$val, scale=c(10, 0.5), colors=pal, min.freq=2, random.order=F, family="malgun")
## Warning in wordcloud(words = result_mr_ahn$key, freq = result_mr_ahn$val, :
## 정치경험 could not be fit on page. It will not be plotted.
## Warning in wordcloud(words = result_mr_ahn$key, freq = result_mr_ahn$val, :
## 흑색선전 could not be fit on page. It will not be plotted.