워드클라우드(wordcloud) 만들기

워드클라우드(wordcloud) 만들기

반드시 UTF-8 로 저장된 txt만 가능하다.

1. R소스
     library(wordcloud)
     library(KoNLP)
     library(RColorBrewer)
     f<-file(‘c:/image/word.txt’,encoding=’UTF-8′)
     textLines<-readLines(f)
     nouns<-sapply(textLines,extractNoun,USE.NAMES=F)
     close(f)
     png(‘c:/image/plz.png’)
     wordcloud<-table(unlist(nouns))
     wordcloud(names(wordcloud),freq=wordcloud,scale=c(8,0,5),max.words=150,per=.1,min.freq=2,random.order=F)
     dev.off()
     System.out.println(“COMPLETE”)

2. 자바소스

 public static void imgSave() throws Exception
 {  
     RConnection rc=new RConnection();//Rserver Connection
     rc.voidEval(“Sys.setenv=(JAVA_HOME=\”c:/Program Files/Java/jre7\”)”);
     rc.voidEval(“library(wordcloud)”);
     rc.voidEval(“library(KoNLP)”);
     rc.voidEval(“library(RColorBrewer)”);
     rc.voidEval(“f<-file(\”c:/image/word.txt\”,encoding=\”UTF-8\”)”);
     rc.voidEval(“textLines<-readLines(f)”);
     rc.voidEval(“nouns<-sapply(textLines,extractNoun,USE.NAMES=F)”);
     rc.voidEval(“close(f)”);
     rc.voidEval(“png(\”c:/image/plz.png\”)”);
     rc.voidEval(“wordcloud<-table(unlist(nouns))”);
     rc.voidEval(“wordcloud(names(wordcloud),freq=wordcloud,scale=c(8,0,5),max.words=150,per=.1,min.freq=2,random.order=F)”);
     rc.voidEval(“dev.off()”);
     System.out.println(“COMPLETE”);
     rc.close();
 }

3. 임시 저장(즉각 출력)을 위한 자바소스

2번 소스와 txt 및 png 파일 위치만 다르다. 아래와 같이 메타데이터 안의 경로를 찾아넣어주면 jsp에서 <img src=”word.png”> 로만 불러들일 수 있다.

 public static void imgSave() throws Exception
 {
  RConnection rc=new RConnection();
  rc.voidEval(“Sys.setenv(JAVA_HOME=\”c:/Program Files/Java/jre7\”)”);
  rc.voidEval(“library(KoNLP)”);
  rc.voidEval(“library(RColorBrewer)”);
  rc.voidEval(“library(wordcloud)”);
  rc.voidEval(“f<-file(\”C:/springDev/springStudy/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/SpringWebProject7/word/word.txt\”,encoding=\”utf-8\”)”);
  rc.voidEval(“textLines<-readLines(f)”);
  rc.voidEval(“nouns<-sapply(textLines,extractNoun,USE.NAMES=F)”);
  rc.voidEval(“close(f)”);
  //참고: c:/springDev2/springStudy/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/DiningCodeProject/dlist_detail/image/cloudimg/word.jpg
  rc.voidEval(“png(\”C:/springDev/springStudy/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/SpringWebProject7/word/word.png\”)”);
  rc.voidEval(“wordcloud<-table(unlist(nouns))”);
  rc.voidEval(“pal<-brewer.pal(17,\”Set3\”)”);
  rc.voidEval(“pal<-pal[-(1)]”);
  rc.voidEval(“windowsFonts(malgun=windowsFont(\”Malgun Gothic\”))”);
  rc.voidEval(“wordcloud(names(wordcloud),freq=wordcloud,scale=c(8,0.5),max.words=150,rot.per=.1,min.freq=2,random.order=F, colors=pal, family=\”malgun\”)”);
  rc.voidEval(“dev.off()”);
  System.out.println(“COMPLETE”);
  rc.close();
 }