[R] 빈도수 분석, 워드클라우드, LDA 분석 코드
과제에 쓴 코드 일부분
LDA 과정/한계
1. 스탠포드 분석 프로그램 쓰려했는데 돌리는데 넘 오래 걸림
2. NetMiner 4는 무료 시험버전이라 노드 수가 제한되서 못 씀
3. 어느 개발자가 만드신 TomotoGui_0.1 역시 시간이 부족해 완성하지 못함
결국은 이것저것 시도 하다 시간상 R로 해결
아래 코드는 기본적 분석을 목적으로 함
setwd("c:/Rtest")
install.packages("KoNLP")
install.packages("wordcloud")
install.packages("RColorBrewer")
library(KoNLP)
library(wordcloud)
library(RColorBrewer)
useSejongDic()
data1 <- readLines("파일명.txt", encoding="UTF-8")
head(data1)
data2 <- sapply(data1, extractNoun,USE.NAMES=F)
data2
data3 <- unlist(data2)
head(data3)
data3 <- gsub("\\d+","",data3)
data3 <- gsub("-","",data3)
data3 <- gsub("_","",data3)
data3 <- gsub(" ","",data3)
data3 <- Filter(function(x){nchar(x)>1}, data3)
head(data3)
write(unlist(data3),"파일명2.txt")
data4 <- read.table("파일명2.txt")
head(data4)
word <- table(data4)
head(sort(word,decreasing=T),20)
data3 <- gsub("xx","",data3)
data3 <- gsub("zz","",data3)
write(unlist(data3),"파일명3.txt")
data4 <- read.table("파일명3.txt")
head(data4)
word <- table(data4)
head(sort(word,decreasing=T),20)
library(RColorBrewer)
palete <- brewer.pal(9,"Set1")
X11()
wordcloud(
names(word),
freq=word,
scale=c(5, 1),
rot.per=0.5,
min.freq=47,
random.order=F,
random.color=T,
colors=palete
)
install.packages("lda")
library(lda)
corpusLDA <- lexicalize(data3 )
require(lda)
ldaModel=lda.collapsed.gibbs.sampler(corpusLDA$documents,K=10,vocab=corpusLDA$vocab,burnin=9999,num.iterations=1000,alpha=1,eta=0.1)
top.words <- top.topic.words(ldaModel$topics, 15, by.score=TRUE)
print(top.words)
write.csv(top.words,file="LDA.csv")
----------------------------------------------
#visualization test (생략)
No comments