二、情感分析
对于某个商品的评价,虽然词频统计可以直观的反映出用户评论中用户对商品的意见,但仅仅只限于模糊查询,也就是只能看到用户评价的比例分布
随着电商平台对品牌评论的重视,用户的评论也至关重要,我们可以查询相关的情感字典,达到探索销售热点和行业的流行趋势,为市场研究的内容做出贡献的目的
我们引用第一章的国美电器数据进行说明
挖掘目标:对用户评论中的分词建立情感语科库,然后对关键词分词,生成人工标注的标签向量
1,清洗数据和分词,主要的R包有stringr包,Rwordseg包
2,简单情感分析和结论,主要的R包有plyr
注:情感词典引用自:http://www.keenage.com/html/c_index.html
一级清洗
这一步骤主要去除一些标点符号,比如逗号,句号,波浪线等。这里使用gsub()函数,其中涉及的正则表达式请自行查阅资料。
df=guomei
#一级清洗
df=gsub("\\s+","",df$Comment)#去空格
df=gsub("~|'","",df)#去波浪线和单引号
df=gsub(",",",",df)#转换英文逗号为中文逗号
df=gsub("\\^+","",df)#去^
df=gsub("_+","",df)#去_
df.=gsub("\\.+","",df)#去.
df=gsub("\\?[\\?]+","",df)#去表情
df=gsub("“|”","",df)#去双引号
df=gsub("。{2,}","。",df)#多个句号变一个
df=gsub("…+",",",df)#…变逗号
2.二级清洗
二级清洗主要去除无用内容,比如字母,数字等
df=gsub("\\d+","",df)#去数字
df=gsub("[a-zA-Z]","",df)#去字母
3.情感分词处理
在我们不确定评论中用户信息的情感导向时,可以使用分词表对应情感字典.情感字典分为政府标签,从知网上获取的情感字典如下图
dirt=chinesedataset$df #建立情感语科库
insertWords(dirt,save = T)#插入情感分词
head(chinesedataset)#显示数据集
setseg=segmentCN(df) #分词
segseg[[1]]#显示分词
生成文档-词组矩阵。先用lapply()函数算出每条评论分词的个数,然后生成每个词对应的ID。
#每条评论分词的个数
temp=unlist(lapply(setseg,length))
#生成单词-文档-情感标签数据框
id=rep(1:length(df),temp)
seg_word_list=unlist(setseg)
df.emotion=data.frame(
Id=id,
评论=seg_word_list,
stringsAsFactors = F
)
head(df.emotion)
在命令行输入如下:
>seg_word_list=unlist(setseg)
>df.emotion=data.frame(
+Id=id,
+评论=seg_word_list,
+stringsAsFactors = F,
+)
>head(ef.emotion)
从分词结果来看,出现了大量的关于海尔电热水器的评论,显考虑商品的性价比时,
用户在海尔电热水器的比较较多,属于负向情感评价,所以我们抽取负向评价的情感词典对源数据集进行分词