R语言批量文本处理并生成词云聚信立

观点 | 2017-12-29 09:47:43
时间:2017-12-29 09:47:43   /   来源: 大河网      /   点击数:()
    针对某一个事件或者人物或者实体,会有很多相关文本对其描述,他们可能来自不同的媒介,例如:关于金融的报道会有很多不同媒体写了不同的文章,当我们分析这些数据的时候,它们经常是多个文件。如下图1所示一个文本文件对应一篇报道文章。

图1 每个文本代表一篇针对金融的报道文章

本文使用R语言批量处理这样的文本数据,对他们进行分词及词频统计,最后我们根据聚信立logo生成了词云聚信立,这种方式在ppt演讲、会场布置及公司宣传等场景下有很好的应用性。

下面我们先上效果图,再贴上R语言的相关程序代码。图2 是聚信立的文字logo,图3相关报道的词云聚信立logo。

图3 由词云生成的聚信立logo(应用在ppt报告、公司宣传、会场布置等很多场景)

最后是R源代码:

library(rJava)

library(Rwordseg)

library(RColorBrewer)

library(wordcloud)

library(wordcloud2)

#路径

dir <- "D:/C000007"

#路径下文件名

names <- list.files(dir)

dirname <- paste(dir,names,sep="/")

#文件数量

n <- length(dirname)

#finaldata = read.csv(file = dirname[1],stringsAsFactors=F,header=F,encoding = 'UTF-8')

finaldata = read.csv(file = dirname[1],stringsAsFactors=F,header=F)

finaldata

#循环组装到一个data.frame中

for (i in 2:n)

{

#new.data = read.csv(file = dirname[i],stringsAsFactors=F,header=F,encoding = 'UTF-8')

new.data = read.csv(file = dirname[i],stringsAsFactors=F,header=F)

flen=length(new.data)

if(flen==1) finaldata = rbind(finaldata,new.data)

if(flen>1)

{

newstr=''

for(j in 1:flen)

{

newstr=paste(newstr,new.data[,j])

}

newdataframe=data.frame(V1=newstr)

finaldata = rbind(finaldata,newdataframe)

}

}

#可使用write.table 将finaldata写出

#分词并统计词频

words=unlist(lapply(X=finaldata$V1, FUN=segmentCN))

word=lapply(X=words, FUN=strsplit, " ")

v=table(unlist(word))

#降序排列

v=rev(sort(v))

#组装成词云数据框

d=data.frame(v,row.names = names(v))

#绘制词云

mydata=d

wordcloud2(mydata,size = 1.2,figPath='D:/juxinli.jpg') 作者:叶鹏

标签: 文本 语言 云聚信

最近更新