교육감 선거공약 텍스트마이닝


# 패키지 불러오기
library(devtools)
library(KoSpacing)
## loaded KoSpacing model!
library(KoNLP)
## Checking user defined dictionary!
library(rJava)
library(tm)
## Loading required package: NLP
library(stringr)
library(wordcloud2)
library(igraph)
## 
## Attaching package: 'igraph'
## The following objects are masked from 'package:stats':
## 
##     decompose, spectrum
## The following object is masked from 'package:base':
## 
##     union
library(ggraph)
## Loading required package: ggplot2
## 
## Attaching package: 'ggplot2'
## The following object is masked from 'package:NLP':
## 
##     annotate
library(visNetwork)

#Java 설정
Sys.setenv(JAVA_HOME="C://Program Files//Java//jre-9") 

# 파일 불러오기
txt <- file("q13.txt", encoding = "UTF-8")     #애초 파일은 ANSI 형태
text <- readLines(txt)
close(txt)
text
##  [1] "<U+FEFF>강원"                                                           
##  [2] "기초학력부터 미래학력까지 책임지는 교실 혁신"                           
##  [3] "유치원부터 고등학교까지 돈 안 드는 교육 완성"                           
##  [4] "더 따뜻해지는 사람중심 행복교육"                                        
##  [5] "집처럼 편안하고 안전한 학교"                                            
##  [6] "마을과 학교가 만나 민주시민 키우는 강원교육"                            
##  [7] ""                                                                       
##  [8] "경기"                                                                   
##  [9] "경기혁신교육3 0 실현"                                                   
## [10] "4 16교육체제 공정한 교육  공평한 학교 "                                 
## [11] "학교자치  학교민주주의 실현"                                            
## [12] "미래시대 진로·진학교육 강화"                                           
## [13] "평화통일교육 강화"                                                      
## [14] ""                                                                       
## [15] "경남"                                                                   
## [16] "미래사회를 대비한 미래교육체제를 구축하겠습니다 "                       
## [17] "따뜻한 돌봄  정의로운 교육을 실현하겠습니다 "                           
## [18] "조용한 교실혁명  배움이 있는 학교를 만들겠습니다 "                      
## [19] "더 안전하고 더 안심한 학교를 조성하겠습니다  "                          
## [20] "삶을 가꾸는 인성교육  평화로운 학교를 만들겠습니다 "                    
## [21] ""                                                                       
## [22] "경북"                                                                   
## [23] "학교 내 미세먼지  유해물질 제로화 추진"                                 
## [24] "유치원부터 고등학교까지 무상급식 확대"                                  
## [25] "학생인권 및 교권보호를 위한 행복교육거점지원센터 구축"                  
## [26] "미래사회 대비 수학문화관 및 메이커센터 설립"                            
## [27] "진로진학상담센터 구축"                                                  
## [28] ""                                                                       
## [29] "광주"                                                                   
## [30] "고교 무상교육 시행"                                                     
## [31] "4차산업혁명 진로체험센터 건립"                                          
## [32] "광주학생문화예술체험센터 건립"                                          
## [33] "통일시대에 대비한 평화통일교육 시행"                                    
## [34] "대학입시제도 전면 개편"                                                 
## [35] ""                                                                       
## [36] "대구"                                                                   
## [37] "미래사회 창의 융합 인재를 양성하겠습니다"                               
## [38] "지역별 교육격차를 해소하겠습니다 "                                      
## [39] "믿고 맡기는 안심학교를 만들겠습니다 "                                   
## [40] "건강하고 행복한 학교를 만들겠습니다 "                                   
## [41] "교실 중심 학교자율책임경영를 보장하겠습니다 "                           
## [42] ""                                                                       
## [43] "대전"                                                                   
## [44] "미래를 선도하는 교육혁신"                                               
## [45] "창의·융합형 미래 인재 양성"                                            
## [46] "안전하고 건강한 학교"                                                   
## [47] "공정하고 효율적인 교육경영"                                             
## [48] "교육기회 균등 교육복지"                                                 
## [49] ""                                                                       
## [50] "부산"                                                                   
## [51] "미래를 준비하는 부산 "                                                  
## [52] "아이 키우기 좋은 부산 "                                                 
## [53] "교육격차 없는 부산 "                                                    
## [54] "공부도 잘하는 부산"                                                     
## [55] "평화롭고 안전한 부산 "                                                  
## [56] ""                                                                       
## [57] "서울"                                                                   
## [58] "4차 산업혁명시대를 살아갈 힘  학교에서 키우겠습니다 "                   
## [59] "따뜻하고 정의로운 서울교육을 만들겠습니다 "                             
## [60] "안전하고 쾌적한 학교  더불어 살아가는 평화로운 세계시민을 만들겠습니다 "
## [61] " 다시 새롭게 더 새롭게  혁신교육을 발전시키겠습니다 "                   
## [62] "시민과 함께  교육도시 서울 을 만들어가겠습니다 "                        
## [63] ""                                                                       
## [64] "세종"                                                                   
## [65] "캠퍼스형 공동교육과정 확대와 캠퍼스형 고등학교 설립"                    
## [66] "유아교육의 혁신"                                                        
## [67] "미래 인재 육성"                                                         
## [68] "교육복지 최고 세종 실현"                                                
## [69] "교원이 교육에 전념할 수 있도록 지원"                                    
## [70] ""                                                                       
## [71] "울산"                                                                   
## [72] "성역없는 부패비리 원스트라이크 아웃"                                    
## [73] "유치원에서 고등학교까지 친환경 무상급식"                                
## [74] "무상교복 무상교과서 수학여행비 지원"                                    
## [75] "학교 교육과정 외 강제학습 폐지"                                         
## [76] "학교통학로 전수조사 및 통학안전용품 지급"                               
## [77] ""                                                                       
## [78] "인천"                                                                   
## [79] "기회는 균등하고 결과는 정의로운  평등교육 을 실현하겠습니다 "           
## [80] "우리 아이들의 꿈을 위해  혁신미래교육의 문을 활짝 열겠습니다"           
## [81] "믿고 맡길 수 있는  안심교육  꼭  만들겠습니다"                          
## [82] "학교  마을과 협력하는  소통교육의 시대를 열겠습니다"                    
## [83] "부정부패  성폭력 없는  청정교육   반드시 지키겠습니다"                  
## [84] ""                                                                       
## [85] "전남"                                                                   
## [86] "교육비부터 진로  진학까지 이젠 걱정 끝"                                 
## [87] "소통과 협력이 교육을 바꿉니다"                                          
## [88] "시설부터 환경 급식까지 이젠 안심입니다"                                 
## [89] "미래교육 1번가는 전남입니다 "                                           
## [90] "교육공동체의 새로운 변화를 만들어 갑니다 "                              
## [91] ""                                                                       
## [92] ""                                                                       
## [93] "전북"                                                                   
## [94] "공교육 혁신으로 4차 산업혁명 시대를 대비하겠습니다  "                   
## [95] "교육예산 확대로 학부모 교육비 부담 계속 줄이겠습니다  "                 
## [96] "학교안전 민주교육행정으로 교육자치 실현하겠습니다 "                     
## [97] "교육에 집중합시다  선생님을 응원합니다 "                                
## [98] "전북도민과 함께 전북교육자치 꽃 피우겠습니다  "

# 불용어 처리 및 띄워 쓰기 교정
text <- gsub("\\[(.*?)\\]", "",text)          #대괄호안의 내용 삭제(대괄로도 포함)
text <- gsub("현재", "",text)                 #해당글자 제거
text <- gsub("[^가-힣]", "",text)             #한글외 모든 문자 제거
text <- spacing(text )                         #띄워쓰기 교정
text <- str_trim(text)                        # 문자 앞 뒤 빈공간 없애기

# 사전 추가
useSejongDic()
## Backup was just finished!
## 370957 words dictionary was built.
word <- data.frame(c("업드레곤", "혁신"))      # 단어 추가
buildDictionary(ext_dic = c("sejong", "woorimalsam"), user_dic=word, replace_usr_dic = T)
## 716905 words dictionary was built.

# 명사추출 및 단어설정
nouns <- sapply(text,extractNoun,  USE.NAMES = F)    # KoNLP 명사추출
unlist_nouns <- unlist(nouns)                       # unlist
unlist_nouns_n <- Filter(function(x){nchar(x)>=2 & nchar(x)<=5}, unlist_nouns)
wordcount <- table(unlist_nouns_n)
wordcount <- sort(wordcount, decreasing = T)
wordcount
## unlist_nouns_n
##       교육       학교       미래 만들겠습니       안전       로운 
##         31         16          9          7          6          5 
##       센터   고등학교       무상       시대       안심       진로 
##          5          4          4          4          4          4 
##       혁신       교실       대비   미래사회   산업혁명     유치원 
##          4          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          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          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          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        # size = font size   플로팅 결과 보고 사이즈 조절 필요
wordcloud2(data = wordcount, size = 1.5, 
           fontFamily = 'Segoe UI', fontWeight = 'bold', shape = 'pentagon')

***

# 워드클라우드 2   - 일정 빈도 이상 단어만 추출
wordcount_1 <- data.frame(wordcount) 
summary(wordcount_1)
##     unlist_nouns_n      Freq       
##  교육      :  1    Min.   : 1.000  
##  학교      :  1    1st Qu.: 1.000  
##  미래      :  1    Median : 1.000  
##  만들겠습니:  1    Mean   : 1.896  
##  안전      :  1    3rd Qu.: 2.000  
##  로운      :  1    Max.   :31.000  
##  (Other)   :138
wordcount_2 <- subset(wordcount_1, Freq>=2)   #00회 이상 빈도

wordcloud2(data = wordcount_2, size = 1.5, 
           fontFamily = 'Segoe UI', fontWeight = 'bold', shape = 'pentagon')

텍스트마이닝 결과 SNA 그리기


# 변환
aa <- VectorSource(nouns)
aa
## $encoding
## [1] ""
## 
## $length
## [1] 98
## 
## $position
## [1] 0
## 
## $reader
## function (elem, language, id) 
## {
##     if (!is.null(elem$uri)) 
##         id <- basename(elem$uri)
##     PlainTextDocument(elem$content, id = id, language = language)
## }
## <bytecode: 0x000000014092e960>
## <environment: namespace:tm>
## 
## $content
## $content[[1]]
## [1] "강"
## 
## $content[[2]]
## [1] "기초학력" "미래"     "학력"     "교실"     "혁"       "신"      
## 
## $content[[3]]
## [1] "유치원"   "고등학교" "돈"       "교육"     "완"       "성"      
## 
## $content[[4]]
## [1] "사람" "중심" "행복" "교"   "육"  
## 
## $content[[5]]
## [1] "집"   "편안" "안전" "한"   "학"   "교"  
## 
## $content[[6]]
## [1] "마을"           "학교"           "민주시민키우는" "원교"          
## [5] "육"            
## 
## $content[[7]]
## [1] ""
## 
## $content[[8]]
## [1] "경" "기"
## 
## $content[[9]]
## [1] "경기" "혁신" "교육" "실"  
## 
## $content[[10]]
## [1] "교육체제" "공정"     "한"       "교육"     "공평"     "한학"    
## [7] "교"      
## 
## $content[[11]]
## [1] "학교"     "자치"     "학교"     "민주주의" "실"      
## 
## $content[[12]]
## [1] "미래" "시대" "진로" "진학" "교육" "강"   "화"  
## 
## $content[[13]]
## [1] "평화통일" "교육"     "강"       "화"      
## 
## $content[[14]]
## [1] ""
## 
## $content[[15]]
## [1] "경" "남"
## 
## $content[[16]]
## [1] "미래사회"     "대비"         "한"           "미래"        
## [5] "교육체제"     "구축하겠습니"
## 
## $content[[17]]
## [1] "따뜻"         "한"           "정의"         "로운"        
## [5] "교육"         "실현하겠습니"
## 
## $content[[18]]
## [1] "조용"       "한"         "교실"       "혁명"       "학교"      
## [6] "만들겠습니"
## 
## $content[[19]]
## [1] "안전"         "안심"         "한"           "학교"        
## [5] "조성하겠습니"
## 
## $content[[20]]
## [1] "삶"         "인성교육"   "평화"       "로운"       "학교"      
## [6] "만들겠습니"
## 
## $content[[21]]
## [1] ""
## 
## $content[[22]]
## [1] "경"
## 
## $content[[23]]
## [1] "학교"     "내"       "미세"     "먼지"     "유해물질" "제로화"  
## [7] "추"       "진"      
## 
## $content[[24]]
## [1] "유치원"   "고등학교" "무상"     "급식"    
## 
## $content[[25]]
##  [1] "학생" "인권" "교권" "보호" "행복" "교육" "거점" "지원" "센터" "구"  
## 
## $content[[26]]
## [1] "미래사회" "대비"     "수학"     "문화관"   "메이커"   "센터"    
## [7] "립"      
## 
## $content[[27]]
## [1] "진로"     "진학상담" "센터"     "구"      
## 
## $content[[28]]
## [1] ""
## 
## $content[[29]]
## [1] "광" "주"
## 
## $content[[30]]
## [1] "고교"     "무상교육" "시"       "행"      
## 
## $content[[31]]
## [1] "차"       "산업혁명" "진로"     "체험"     "센터"     "거"      
## [7] "립"      
## 
## $content[[32]]
## [1] "광주학생" "문화예술" "체험"     "센터"     "거"       "립"      
## 
## $content[[33]]
## [1] "통일시대" "대비"     "한"       "평화통일" "교육"     "시"      
## [7] "행"      
## 
## $content[[34]]
## [1] "대학입시제도" "전면"         "개"           "편"          
## 
## $content[[35]]
## [1] ""
## 
## $content[[36]]
## [1] "대" "구"
## 
## $content[[37]]
## [1] "미래사회"     "창의"         "융합"         "인재"        
## [5] "양성하겠습니"
## 
## $content[[38]]
## [1] "지역별"       "교육"         "격차"         "해소하겠습니"
## 
## $content[[39]]
## [1] "안심"       "학교"       "만들겠습니"
## 
## $content[[40]]
## [1] "건강"       "행복"       "한"         "학교"       "만들겠습니"
## 
## $content[[41]]
## [1] "교실"         "중심"         "학교"         "자율"        
## [5] "책임"         "경영"         "보장하겠습니"
## 
## $content[[42]]
## [1] ""
## 
## $content[[43]]
## [1] "대"
## 
## $content[[44]]
## [1] "미래" "선도" "하"   "교육" "혁"   "신"  
## 
## $content[[45]]
## [1] "창의"   "융합형" "미래"   "인재"   "양"     "성"    
## 
## $content[[46]]
## [1] "안전" "건강" "한"   "학"   "교"  
## 
## $content[[47]]
## [1] "공정"   "효율적" "교육"   "경"    
## 
## $content[[48]]
## [1] "교육"     "기회균등" "교육"     "복"       "지"      
## 
## $content[[49]]
## [1] ""
## 
## $content[[50]]
## [1] "부" "산"
## 
## $content[[51]]
## [1] "미래" "준비" "하"   "부"   "산"  
## 
## $content[[52]]
## [1] "부" "산"
## 
## $content[[53]]
## [1] "교육" "격차" "부"   "산"  
## 
## $content[[54]]
## [1] "공부" "부"   "산"  
## 
## $content[[55]]
## [1] "평화" "안전" "한"   "부"   "산"  
## 
## $content[[56]]
## [1] ""
## 
## $content[[57]]
## [1] "울"
## 
## $content[[58]]
## [1] "차"         "산업혁명"   "시대"       "힘"         "학교"      
## [6] "키우겠습니"
## 
## $content[[59]]
## [1] "따뜻"       "정의"       "로운"       "서울"       "교육"      
## [6] "만들겠습니"
## 
## $content[[60]]
## [1] "안전"       "쾌적"       "한"         "학교"       "평화"      
## [6] "로운"       "세계"       "시민"       "만들겠습니"
## 
## $content[[61]]
## [1] "혁신"           "교육"           "발전시키겠습니"
## 
## $content[[62]]
## [1] "시민"     "교육"     "도시"     "서울"     "가겠습니"
## 
## $content[[63]]
## [1] ""
## 
## $content[[64]]
## [1] "세" "종"
## 
## $content[[65]]
## [1] "캠퍼스"   "형"       "공동"     "교육"     "확대"     "캠퍼스"  
## [7] "형"       "고등학교" "립"      
## 
## $content[[66]]
## [1] "유아교육" "혁"       "신"      
## 
## $content[[67]]
## [1] "미래" "인재" "육"   "성"  
## 
## $content[[68]]
## [1] "교육" "복지" "최고" "세종" "실"  
## 
## $content[[69]]
## [1] "교원" "교육" "전념" "할"   "수"   "지"  
## 
## $content[[70]]
## [1] ""
## 
## $content[[71]]
## [1] "산"
## 
## $content[[72]]
## [1] "성역"       "부패"       "비"         "스트라이크" "웃"        
## 
## $content[[73]]
## [1] "유치원"   "고등학교" "친환경"   "무상"     "급"      
## 
## $content[[74]]
## [1] "무상"       "교복"       "무상"       "교과서"     "수학여행비"
## [6] "지"        
## 
## $content[[75]]
## [1] "학교" "교육" "과정" "외"   "강제" "학습" "폐"   "지"  
## 
## $content[[76]]
## [1] "학교"     "통학로"   "전수"     "조사"     "통학"     "안전용품"
## [7] "지"       "급"      
## 
## $content[[77]]
## [1] ""
## 
## $content[[78]]
## [1] "천"
## 
## $content[[79]]
## [1] "기회"         "균등"         "결과"         "정의"        
## [5] "로운"         "평등"         "교육"         "실현하겠습니"
## 
## $content[[80]]
## [1] "우리"     "아이들"   "꿈"       "혁신"     "미래"     "교육"    
## [7] "문"       "열겠습니"
## 
## $content[[81]]
## [1] "수"         "안심"       "교육"       "만들겠습니"
## 
## $content[[82]]
## [1] "학교"     "마을"     "협력"     "하"       "소통"     "교육"    
## [7] "시대"     "열겠습니"
## 
## $content[[83]]
## [1] "부정부패"   "성폭력"     "청정"       "교육"       "지키겠습니"
## 
## $content[[84]]
## [1] ""
## 
## $content[[85]]
## [1] "전" "남"
## 
## $content[[86]]
## [1] "교육" "비"   "진로" "진학" "이젠" "걱정" "끝"  
## 
## $content[[87]]
## [1] "소통" "협력" "교육"
## 
## $content[[88]]
## [1] "시설" "환경" "급식" "이젠" "안심"
## 
## $content[[89]]
## [1] "미래" "교육" "번가" "남"  
## 
## $content[[90]]
## [1] "교육공동체" "변화"       "갑"        
## 
## $content[[91]]
## [1] ""
## 
## $content[[92]]
## [1] ""
## 
## $content[[93]]
## [1] "전"
## 
## $content[[94]]
## [1] "공교육"       "혁신"         "차"           "산업혁명"    
## [5] "시대"         "대비하겠습니"
## 
## $content[[95]]
## [1] "교육예산"   "확대"       "학부모"     "교육"       "비"        
## [6] "부담"       "줄이겠습니"
## 
## $content[[96]]
## [1] "학교"         "안전"         "민주교육"     "행정"        
## [5] "교육자"       "치"           "실현하겠습니"
## 
## $content[[97]]
## [1] "교육"   "집중"   "선생님" "응원"   "합"    
## 
## $content[[98]]
## [1] "전북"       "도민"       "전북"       "교육자치"   "꽃"        
## [6] "피우겠습니"
## 
## 
## attr(,"class")
## [1] "VectorSource" "SimpleSource" "Source"
aa_corpus <- Corpus(aa)
inspect(aa_corpus)
## <<SimpleCorpus>>
## Metadata:  corpus specific: 1, document level (indexed): 0
## Content:  documents: 98
## 
##  [1] 강                                                                             
##  [2] c("기초학력", "미래", "학력", "교실", "혁", "신")                              
##  [3] c("유치원", "고등학교", "돈", "교육", "완", "성")                              
##  [4] c("사람", "중심", "행복", "교", "육")                                          
##  [5] c("집", "편안", "안전", "한", "학", "교")                                      
##  [6] c("마을", "학교", "민주시민키우는", "원교", "육")                              
##  [7]                                                                                
##  [8] c("경", "기")                                                                  
##  [9] c("경기", "혁신", "교육", "실")                                                
## [10] c("교육체제", "공정", "한", "교육", "공평", "한학", "교")                      
## [11] c("학교", "자치", "학교", "민주주의", "실")                                    
## [12] c("미래", "시대", "진로", "진학", "교육", "강", "화")                          
## [13] c("평화통일", "교육", "강", "화")                                              
## [14]                                                                                
## [15] c("경", "남")                                                                  
## [16] c("미래사회", "대비", "한", "미래", "교육체제", "구축하겠습니")                
## [17] c("따뜻", "한", "정의", "로운", "교육", "실현하겠습니")                        
## [18] c("조용", "한", "교실", "혁명", "학교", "만들겠습니")                          
## [19] c("안전", "안심", "한", "학교", "조성하겠습니")                                
## [20] c("삶", "인성교육", "평화", "로운", "학교", "만들겠습니")                      
## [21]                                                                                
## [22] 경                                                                             
## [23] c("학교", "내", "미세", "먼지", "유해물질", "제로화", "추", "진")              
## [24] c("유치원", "고등학교", "무상", "급식")                                        
## [25] c("학생", "인권", "교권", "보호", "행복", "교육", "거점", "지원", "센터", "구")
## [26] c("미래사회", "대비", "수학", "문화관", "메이커", "센터", "립")                
## [27] c("진로", "진학상담", "센터", "구")                                            
## [28]                                                                                
## [29] c("광", "주")                                                                  
## [30] c("고교", "무상교육", "시", "행")                                              
## [31] c("차", "산업혁명", "진로", "체험", "센터", "거", "립")                        
## [32] c("광주학생", "문화예술", "체험", "센터", "거", "립")                          
## [33] c("통일시대", "대비", "한", "평화통일", "교육", "시", "행")                    
## [34] c("대학입시제도", "전면", "개", "편")                                          
## [35]                                                                                
## [36] c("대", "구")                                                                  
## [37] c("미래사회", "창의", "융합", "인재", "양성하겠습니")                          
## [38] c("지역별", "교육", "격차", "해소하겠습니")                                    
## [39] c("안심", "학교", "만들겠습니")                                                
## [40] c("건강", "행복", "한", "학교", "만들겠습니")                                  
## [41] c("교실", "중심", "학교", "자율", "책임", "경영", "보장하겠습니")              
## [42]                                                                                
## [43] 대                                                                             
## [44] c("미래", "선도", "하", "교육", "혁", "신")                                    
## [45] c("창의", "융합형", "미래", "인재", "양", "성")                                
## [46] c("안전", "건강", "한", "학", "교")                                            
## [47] c("공정", "효율적", "교육", "경")                                              
## [48] c("교육", "기회균등", "교육", "복", "지")                                      
## [49]                                                                                
## [50] c("부", "산")                                                                  
## [51] c("미래", "준비", "하", "부", "산")                                            
## [52] c("부", "산")                                                                  
## [53] c("교육", "격차", "부", "산")                                                  
## [54] c("공부", "부", "산")                                                          
## [55] c("평화", "안전", "한", "부", "산")                                            
## [56]                                                                                
## [57] 울                                                                             
## [58] c("차", "산업혁명", "시대", "힘", "학교", "키우겠습니")                        
## [59] c("따뜻", "정의", "로운", "서울", "교육", "만들겠습니")                        
## [60] c("안전", "쾌적", "한", "학교", "평화", "로운", "세계", "시민", "만들겠습니")  
## [61] c("혁신", "교육", "발전시키겠습니")                                            
## [62] c("시민", "교육", "도시", "서울", "가겠습니")                                  
## [63]                                                                                
## [64] c("세", "종")                                                                  
## [65] c("캠퍼스", "형", "공동", "교육", "확대", "캠퍼스", "형", "고등학교", "립")    
## [66] c("유아교육", "혁", "신")                                                      
## [67] c("미래", "인재", "육", "성")                                                  
## [68] c("교육", "복지", "최고", "세종", "실")                                        
## [69] c("교원", "교육", "전념", "할", "수", "지")                                    
## [70]                                                                                
## [71] 산                                                                             
## [72] c("성역", "부패", "비", "스트라이크", "웃")                                    
## [73] c("유치원", "고등학교", "친환경", "무상", "급")                                
## [74] c("무상", "교복", "무상", "교과서", "수학여행비", "지")                        
## [75] c("학교", "교육", "과정", "외", "강제", "학습", "폐", "지")                    
## [76] c("학교", "통학로", "전수", "조사", "통학", "안전용품", "지", "급")            
## [77]                                                                                
## [78] 천                                                                             
## [79] c("기회", "균등", "결과", "정의", "로운", "평등", "교육", "실현하겠습니")      
## [80] c("우리", "아이들", "꿈", "혁신", "미래", "교육", "문", "열겠습니")            
## [81] c("수", "안심", "교육", "만들겠습니")                                          
## [82] c("학교", "마을", "협력", "하", "소통", "교육", "시대", "열겠습니")            
## [83] c("부정부패", "성폭력", "청정", "교육", "지키겠습니")                          
## [84]                                                                                
## [85] c("전", "남")                                                                  
## [86] c("교육", "비", "진로", "진학", "이젠", "걱정", "끝")                          
## [87] c("소통", "협력", "교육")                                                      
## [88] c("시설", "환경", "급식", "이젠", "안심")                                      
## [89] c("미래", "교육", "번가", "남")                                                
## [90] c("교육공동체", "변화", "갑")                                                  
## [91]                                                                                
## [92]                                                                                
## [93] 전                                                                             
## [94] c("공교육", "혁신", "차", "산업혁명", "시대", "대비하겠습니")                  
## [95] c("교육예산", "확대", "학부모", "교육", "비", "부담", "줄이겠습니")            
## [96] c("학교", "안전", "민주교육", "행정", "교육자", "치", "실현하겠습니")          
## [97] c("교육", "집중", "선생님", "응원", "합")                                      
## [98] c("전북", "도민", "전북", "교육자치", "꽃", "피우겠습니")
#aa_corpus <- tm_map(aa_corpus, tolower)
#aa_corpus <- tm_map(aa_corpus, removePunction)
#aa_corpus <- tm_map(aa_corpus, removeNumbers)

aa_corpus_mat <- TermDocumentMatrix(aa_corpus)    
inspect(aa_corpus_mat)
## <<TermDocumentMatrix (terms: 161, documents: 98)>>
## Non-/sparse entries: 287/15491
## Sparsity           : 98%
## Maximal term length: 9
## Weighting          : term frequency (tf)
## Sample             :
##             Docs
## Terms        25 26 41 59 60 65 76 79 80 82
##   고등학교    0  0  0  0  0  1  0  0  0  0
##   교육        1  0  0  1  0  1  0  1  1  1
##   로운        0  0  0  1  1  0  0  1  0  0
##   만들겠습니  0  0  0  1  1  0  0  0  0  0
##   미래        0  0  0  0  0  0  0  0  1  0
##   센터        1  1  0  0  0  0  0  0  0  0
##   시대        0  0  0  0  0  0  0  0  0  1
##   안전        0  0  0  0  1  0  0  0  0  0
##   학교        0  0  1  0  1  0  1  0  0  1
##   혁신        0  0  0  0  0  0  0  0  1  0
inspect(aa_corpus_mat[1:20,])
## <<TermDocumentMatrix (terms: 20, documents: 98)>>
## Non-/sparse entries: 91/1869
## Sparsity           : 95%
## Maximal term length: 7
## Weighting          : term frequency (tf)
## Sample             :
##           Docs
## Terms      10 2 3 4 41 5 6 80 82 9
##   고등학교  0 0 1 0  0 0 0  0  0 0
##   교실      0 1 0 0  1 0 0  0  0 0
##   교육      1 0 1 0  0 0 0  1  1 1
##   미래      0 1 0 0  0 0 0  1  0 0
##   안전      0 0 0 0  0 1 0  0  0 0
##   유치원    0 0 1 0  0 0 0  0  0 0
##   중심      0 0 0 1  1 0 0  0  0 0
##   학교      0 0 0 0  1 0 1  0  1 0
##   행복      0 0 0 1  0 0 0  0  0 0
##   혁신      0 0 0 0  0 0 0  1  0 1

# 단어 빈도 확인
findFreqTerms(aa_corpus_mat, lowfreq=3, highfreq=1000)  # 단어 빈도 확인
##  [1] "교실"         "미래"         "고등학교"     "교육"        
##  [5] "유치원"       "행복"         "안전"         "학교"        
##  [9] "혁신"         "시대"         "진로"         "대비"        
## [13] "미래사회"     "로운"         "실현하겠습니" "정의"        
## [17] "만들겠습니"   "안심"         "평화"         "무상"        
## [21] "센터"         "산업혁명"     "인재"
# 단어빈도를 일정 이상만 추출은 어떻게 ????
# aa_corpus_mat <- TermDocumentMatrix(aa_corpus)

bb <- as.matrix(aa_corpus_mat)
bb <- as.matrix(aa_corpus_mat, 60)
#bb <- bb[1:100,1:100]   # 메트릭스 행렬 범위 사이즈 선택 
bb[bb>=1] <- 1
bb_mat <- bb %*% t(bb)

#연결망 그리기
g <- graph.adjacency(bb_mat, weighted = T, mode = "undirected")
g <- simplify(g)
g;V(g);E(g)
## IGRAPH c6f28f1 UNW- 161 462 -- 
## + attr: name (v/c), weight (e/n)
## + edges from c6f28f1 (vertex names):
##  [1] 교실    --기초학력     교실    --미래         교실    --학력        
##  [4] 교실    --중심         교실    --학교         교실    --만들겠습니  
##  [7] 교실    --조용         교실    --혁명         교실    --경영        
## [10] 교실    --보장하겠습니 교실    --자율         교실    --책임        
## [13] 기초학력--미래         기초학력--학력         미래    --학력        
## [16] 미래    --교육         미래    --혁신         미래    --교육체제    
## [19] 미래    --시대         미래    --진로         미래    --진학        
## [22] 미래    --구축하겠습니 미래    --대비         미래    --미래사회    
## + ... omitted several edges
## + 161/161 vertices, named, from c6f28f1:
##   [1] 媛<95>         교실           기초학력       미래          
##   [5] 학력           고등학교       교육           유치원        
##   [9] 사람           중심           행복           안전          
##  [13] 편안           마을           민주시민키우는 원교          
##  [17] 학교           경기           혁신           공정          
##  [21] 공평           교육체제       한학           민주주의      
##  [25] 자치           시대           진로           진학          
##  [29] 평화통일       구축하겠습니   대비           미래사회      
##  [33] 따뜻           로운           실현하겠습니   정의          
##  [37] 만들겠습니     조용           혁명           안심          
## + ... omitted several vertices
## + 462/462 edges from c6f28f1 (vertex names):
##  [1] 교실    --기초학력     교실    --미래         교실    --학력        
##  [4] 교실    --중심         교실    --학교         교실    --만들겠습니  
##  [7] 교실    --조용         교실    --혁명         교실    --경영        
## [10] 교실    --보장하겠습니 교실    --자율         교실    --책임        
## [13] 기초학력--미래         기초학력--학력         미래    --학력        
## [16] 미래    --교육         미래    --혁신         미래    --교육체제    
## [19] 미래    --시대         미래    --진로         미래    --진학        
## [22] 미래    --구축하겠습니 미래    --대비         미래    --미래사회    
## [25] 미래    --인재         미래    --창의         미래    --선도        
## [28] 미래    --융합형       미래    --준비         미래    --아이들      
## + ... omitted several edges
V(g)$label <- V(g)$name           # 네임을 노드 라벨로 사용
V(g)$degree <- degree(g)          # 단어 빈도를 노드(버티스) 빈도로 저장 
sort(degree(g), decreasing=T)     # 중심성(이웃 노드 수)이 높은(많은) 순으로 정렬
##           교육           학교           미래           센터     만들겠습니 
##             76             48             21             19             18 
##           로운           안전           시대           행복   실현하겠습니 
##             17             15             14             13             13 
##           교실       미래사회           혁신           대비           시민 
##             12             12             11             11             11 
##           진로           정의       열겠습니           안심       산업혁명 
##             10             10             10              9              9 
##       고등학교           중심           마을       교육체제           평화 
##              8              8              8              8              8 
##           거점           교권           보호           인권           지원 
##              8              8              8              8              8 
##           학생           서울           확대           이젠           급식 
##              8              8              8              8              7 
##           무상           세계           쾌적           결과           균등 
##              7              7              7              7              7 
##           기회           평등           진학           따뜻           인재 
##              7              7              6              6              6 
##           창의           경영   보장하겠습니           자율           책임 
##              6              6              6              6              6 
##           소통           협력         유치원           공정         메이커 
##              6              6              5              5              5 
##         문화관           수학           체험       안전용품           전수 
##              5              5              5              5              5 
##           조사           통학         통학로         아이들           우리 
##              5              5              5              5              5 
##       교육예산           부담     줄이겠습니         학부모         교육자 
##              5              5              5              5              5 
##       민주교육           행정           공평           한학   구축하겠습니 
##              5              5              4              4              4 
##           조용           혁명       인성교육           먼지           미세 
##              4              4              4              4              4 
##       유해물질         제로화   양성하겠습니           융합           건강 
##              4              4              4              4              4 
##       가겠습니           도시           공동         캠퍼스           강제 
##              4              4              4              4              4 
##           과정           학습       부정부패         성폭력     지키겠습니 
##              4              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              3              3              3              3 
##       교육자치           도민           전북     피우겠습니           사람 
##              3              3              3              3              2 
##           경기       민주주의           자치       진학상담           선도 
##              2              2              2              2              2 
##         효율적 발전시키겠습니           교원           전념           부패 
##              2              2              2              2              2 
##           성역     스트라이크           번가           편안           고교 
##              2              2              2              1              1 
##       무상교육   대학입시제도           전면       기회균등           준비 
##              1              1              1              1              1 
##     교육공동체           변화         媛<95>         寃<bd> <eb><8c>\u0080 
##              1              1              0              0              0 
##           공부         <ec>슱       유아교육         <ec>궛         泥<9c> 
##              0              0              0              0              0 
##         <ec>쟾 
##              0
w1 <- V(g)$degree                  # 노드 빈도, 추후 weight 로 사용
m1 <- layout_nicely(g)            # 시각화 유형을 최적화
w1
##   [1]  0 12  3 21  3  8 76  5  2  8 13 15  1  8  3  3 48  2 11  5  4  8  4
##  [24]  2  2 14 10  6  3  4 11 12  6 17 13 10 18  4  4  9  3  4  8  0  4  4
##  [47]  4  4  7  7  8  8  8 19  8  8  8  5  5  5  2  1  1  9  5  3  3  3  1
##  [70]  1  4  4  6  6  3  3  3  4  6  6  6  6  0  2  3  2  1  1  0  0  3  8
##  [93]  7 11  7  2  4  4  4  4  8  0  3  3  3  2  2  0  2  2  2  3  3  3  3
## [116]  4  4  4  5  5  5  5  5  0  7  7  7  7  5 10  5  6  6  4  4  4  4  4
## [139]  8  4  4  2  1  1  0  4  4  5  5  5  5  5  5  5  3  3  3  3  3  3  3

# 플로팅 1
plot(g, vertex.label.color="black", edge.color="black",  #gray88
     edge.width=w1, layout=m1)

***

# 플로팅 2
g.ec <- eigen_centrality(g)

plot(g, vertex.label.color="black",  vertex.label.cex=0.6,
     vertex.size=10*(g.ec$vector), edge.color="gray60", edges.width=w1*10, 
     layout=m1, main="교육감 선거 공약 키워드 네트워크")

***

# 플로팅 3     -일정 빈도이하 제거 플로팅
           # delete_edges()       edge값 얼마이하 삭제     

g2 <- delete_vertices(g, V(g)[degree<=4]) 
                # 각 노드의 이웃 수 혹은, 연결선의 수 4이하 삭제,  노드 수 변화
g2              # 먼저 degree 값을 검토하고 범위 설정할 것
## IGRAPH c7a8b82 UNW- 72 277 -- 
## + attr: name (v/c), label (v/c), degree (v/n), weight (e/n)
## + edges from c7a8b82 (vertex names):
##  [1] 교실    --미래         교실    --중심         교실    --학교        
##  [4] 교실    --만들겠습니   교실    --경영         교실    --보장하겠습니
##  [7] 교실    --자율         교실    --책임         미래    --교육        
## [10] 미래    --혁신         미래    --교육체제     미래    --시대        
## [13] 미래    --진로         미래    --진학         미래    --대비        
## [16] 미래    --미래사회     미래    --인재         미래    --창의        
## [19] 미래    --아이들       미래    --열겠습니     미래    --우리        
## [22] 고등학교--교육         고등학교--유치원       고등학교--급식        
## + ... omitted several edges
V(g2)$label <- V(g2)$name           # 네임을 노드 라벨로 사용
V(g2)$degree <- degree(g2)         # 단어 빈도를 노드(버티스) 빈도로 저장 
V(g2)$degree
##  [1]  8 14  5 43  4  7 11 12  6 31  7  2  5 11  8  5  8  9  6 16 13 10 14
## [24]  6  7  5  3  8  8  8 16  8  8  8  5  5  5  6  3  3  3  6  6  6  6  6
## [47]  7  9  7  6  5  5  5  5  5  7  7  7  7  5 10  5  6  6  5  5  5  5  5
## [70]  5  5  5
sort(V(g2)$degree, decreasing=T)
##  [1] 43 31 16 16 14 14 13 12 11 11 10 10  9  9  8  8  8  8  8  8  8  8  8
## [24]  7  7  7  7  7  7  7  7  7  6  6  6  6  6  6  6  6  6  6  6  6  5  5
## [47]  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  4  3  3
## [70]  3  3  2
w2 <- V(g2)$degree                  # 추후 weight 로 사용(??)                                   # 101개
m2 <- layout_nicely(g2)            # 시각화 유형을 최적화

g.ec.2 <- eigen_centrality(g2)

plot(g2, vertex.label.color="black",  vertex.label.cex=0.55,
     vertex.size=15*(g.ec.2$vector), edge.color="gray60", edges.width=w2*10,
     layout=m2,
     main="교육감 선거 공약 키워드 네트워크")  # gray60 숫자는 밝기

***

# 플로팅 4  -클러스터
kc <- fastgreedy.community(g2)
sizes(kc)
## Community sizes
##  1  2  3  4  5  6  7 
## 17 20  6  5  5 15  4
plot(kc,g2, vertex.label.color="black",  vertex.label.cex=0.6, 
     vertex.size=10*(g.ec.2$vector), edge.color="gray60", layout=m2)

***

# 플로팅 5 -ggraph 패키지
E(g2)$weight
##   [1] 1 1 2 1 1 1 1 1 4 1 1 1 1 1 1 1 2 1 1 1 1 2 3 1 2 1 1 1 1 2 3 2 1 2 2
##  [36] 2 1 2 3 2 3 2 1 1 1 1 1 1 1 1 2 1 2 1 1 1 1 1 2 1 2 2 1 1 1 1 1 1 2 1
##  [71] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 1 1 1 2 1 1 1 1 1 1 2 1 1 1 1 2 2 1 5
## [106] 2 2 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 2 1 1 1
## [141] 2 2 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 2 1 2 1 1 2 3 3 2 1 1 1 1 1 1 1 1 2
## [176] 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [211] 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1
## [246] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1
dgr <- degree(g2)

ggraph(g2, layout="with_kk") + geom_edge_link(aes(alpha=weight*50), color="gray60") +
  geom_node_point(aes(size=dgr*20), color="red") +
  geom_node_text(aes(label=name), repel=TRUE)    # in_circle, grid
## Warning: Ignoring unknown parameters: edge_color

***

# 플로팅 6 -ggraph 패키지        
# E(g2)$weight==1 인 경우와 아닌 경우 확인
weakness <- E(g2)$weight==1      
weakness; sum(weakness)
##   [1]  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE
##  [12]  TRUE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE FALSE
##  [23] FALSE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE  TRUE
##  [34] FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE
##  [45]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE FALSE  TRUE  TRUE
##  [56]  TRUE  TRUE  TRUE FALSE  TRUE FALSE FALSE  TRUE  TRUE  TRUE  TRUE
##  [67]  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
##  [78]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE
##  [89]  TRUE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE
## [100]  TRUE  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE  TRUE  TRUE
## [111]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [122]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [133]  TRUE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE FALSE FALSE  TRUE
## [144]  TRUE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [155]  TRUE  TRUE  TRUE FALSE  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE
## [166] FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE
## [177]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [188]  TRUE FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [199]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [210]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [221]  TRUE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [232] FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [243]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [254]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [265]  TRUE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [276]  TRUE  TRUE
## [1] 230
ggraph(g2, layout="with_kk") + 
  geom_edge_link(aes(color=weakness)) +
  geom_node_point(aes(size=dgr*20), color="green") +
  geom_node_text(aes(label=name), repel=TRUE)

***

# 플로팅 7 -ggraph 패키지           
# E(g2)$weight==1 인 경우만 필터링하여 그리기
# 반대는 filter=!weakness
ggraph(g2, layout="with_kk") + 
  geom_edge_link(aes(filter=weakness), alpha=.5) +
  geom_node_point(aes(size=dgr*20), color="red") +
  geom_node_text(aes(label=name), repel=TRUE) 

***

# 플로팅 8   - visNetwork 패키지
data<- toVisNetworkData(g2)
head(data$nodes)
##                id    label degree
## 교실         교실     교실      8
## 미래         미래     미래     14
## 고등학교 고등학교 고등학교      5
## 교육         교육     교육     43
## 유치원     유치원   유치원      4
## 중심         중심     중심      7
head(data$edges)
##   from           to weight
## 1 교실         미래      1
## 2 교실         중심      1
## 3 교실         학교      2
## 4 교실   만들겠습니      1
## 5 교실         경영      1
## 6 교실 보장하겠습니      1
visNetwork(nodes=data$nodes, edges=data$edges) %>% 
  visIgraphLayout(layout="layout_with_kk") %>%
  visOptions(nodesIdSelection = TRUE)

***

연결 패턴 분석

tie <- as_data_frame(g, what="edges")   # from  to weight 로 변환
head(tie)
##   from         to weight
## 1 교실   기초학력      1
## 2 교실       미래      1
## 3 교실       학력      1
## 4 교실       중심      1
## 5 교실       학교      2
## 6 교실 만들겠습니      1
tie_1 <- subset(tie, weight>=2)        #  weight 2 이상만 추출
head(tie_1)
##        from     to weight
## 5      교실   학교      2
## 16     미래   교육      4
## 25     미래   인재      2
## 34 고등학교   교육      2
## 35 고등학교 유치원      3
## 37 고등학교   무상      2
ggplot(tie_1,aes(x=from, y=to, color=factor(weight))) +
  geom_point(cex=8) + labs(color="weight")

***