R语言 数据挖掘-文本分析(1)
2017-06-23 本文已影响155人
语落心生
刚接触R语言一周,和matab不同R作用于数据挖掘的库很多,详解见 R语言数据挖掘包
,下面简介文本分析经常使用到的三个包
tm 为文本挖掘提供综合性处理 Rwordmsg 进行中文分词 wordcloud 统计词云
以第三届泰迪杯A题提供的数据集国美-Sheet1进行文本分析 : 第三届泰迪杯
转化为txt的数据集如下图所示:
filepath = "D:/Rstudio/test.txt";
#设置导入文件路径
text = readLines(filePath);
txt = text[text!=""];#判断文本不为空
txt = tolower(txt);#统一大小写
txtList = lapply(txt, strsplit," ");#对每一个字符串加上""
txtChar = unlist(txtList);#/统一数据格式为数字向量
txtChar = gsub("\\.|,|\\!|:|;|\\?","",txtChar) #clean symbol(.,!:;?);#这里解释一下,当我们从.xls .xlsx转为.csv .txt格式时,会将每行之间的字段值用逗号隔开,此时我们根据不同情况替换逗号 例如
#“张三”,"李四",
#"13","34",
#行间用两个//隔开,列间用一个/隔开
#gsub的作用就是作为正则表达式统计匹配这几类替换情况的出现次数,以此达到统计词频的效果
#txtChar = txtChar[txtChar!=""];//检查字符串是否全部成功匹配
#到此为止,清洗完成
data = as.data.frame(table(txtChar));#数据集可以看成多个向量组成的向量组,对于向量组而言,数据框中的向量必须有相同的长度.data.frame可以补全空缺的值
colnames(data) = c("Word","freq");#拟定行名和列名,初始化数据集引用
ordFreq = data[order(data$freq,decreasing=T),]#根据官方的说明,应该是构建分词模板
View(ordFreq);#显示词频表
wordlist.png
library(wordcloud);#引入词云包
#命令行输入
>wordcloud(words=ordFreq$word,freq=ordFreq$freq,scale=c(3,5),col=rainbow(length(ordFreq$freq)))
生成词云:
cloud.png