文本可视化(Text Visualization)
词云(Word Cloud)
本例中Five.txt是一个包含对CASIO某一手表的所有五星好评,分别用到了tm
,wordcloud
,RColorBrewer
建立词云
data<-read.table("Five.txt",header=F, sep='\n') #读取文档
library(tm)
library(wordcloud)
library(RColorBrewer)
data$doc_id=1:nrow(data)
colnames(data)[1]<-"text"
#把data中的每一行当成单独的文档
mycorpus <- Corpus(DataframeSource(data)) #生成语料库(Corpus,词汇数据的集合)
mycorpus <- tm_map(mycorpus, removePunctuation)
mycorpus <- tm_map(mycorpus, function(x) removeWords(x, stopwords("english")))
tdm <- TermDocumentMatrix(mycorpus) #生成Term-document矩阵
m <- as.matrix(tdm)
#归并所有行
v <- sort(rowSums(m),decreasing=TRUE) #求得各词的频数
d <- data.frame(word = names(v),freq=v)
pal <- brewer.pal(6,"Dark2")
pal <- pal[-(1:2)] #生成调色板(palette)
wordcloud(d$word,d$freq,
scale=c(6,.3), #词大小范围
min.freq=4, #最小频率
max.words=100, #最多词数
random.order=F, rot.per=.15, colors=pal, vfont=c("sans serif","plain"))
短语网(Phrase Nets)
短语网是通过连接词找到其他高频词,例如英文中的am,is, are, was, were,a,the,of 等等。借助一个java小程序 phrase-nets (如果外网上不了,就在这里下载),下图是Five.txt以 am,is,are,was,were 为连接词的短语网(前20高频词)
词汇树(Word Tree)
最后一个是词汇树,借助网站,来绘制Five.txt的词汇树。直接将文档中的内容复制到下图的输入框中,点击生成
其他
总之,不管是WordCloud,PhraseNets,还是WordTree中出现的词仅表示该词为文中的高频词,具体意义还需要使用者自己推测与分析。