加入收藏 | 设为首页 | 会员中心 | 我要投稿 武汉站长网 (https://www.027zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

文本挖掘:情感分析详细步骤(基础+源码)

发布时间:2021-02-18 13:36:39 所属栏目:大数据 来源:网络整理
导读:副标题#e# 词典型情感分析大致有以下几个步骤: 训练数据集、neg/pos情感词典、分词+数据清洗清洗(一、二、三级清洗步骤)、计算情感得分、模型评价 (1)在分析过程中,难免会产生很多中间变量,它们会占用大量内存。书中提到通常会将所有的临时中间变量



2、计算情感得分

关联了情感权重,那么每个文档的得分自然而然可以求得,以weight为例,进行分组汇总即可,用aggregate函数。


  1. #2、计算情感指数??

  2. dictresult?<-?aggregate(weight?~?id,?data?=?testterm,?sum)??

  3. dictlabel?<-?rep(-1,?length(dictresult[,?1]))??

  4. dictlabel[dictresult$weight?>?0]?<-?1??????????#很有技巧地把情感词语正负赋值到情感得分表中??

  5. dictresult?<-?as.data.frame(cbind(dictresult,?dictlabel),?stringsAsFactors?=?F)??


文本挖掘:情感分析详细步骤(基础+源码)

图3

得到了如图3中weight的数列,为了与原来的文本分类进行比较,需要简单知道每个文本的情感偏向,得分>0则偏向为1,得分<0,偏向为-1,这时候引入了一个辅助列,dictlabel来进行这样的操作。
dictlabel[dictresult$weight > 0] <- 1是辅助列运算的精华语句。


3、模型评价

  1. ###模型评价??

  2. temp?<-?unique(testterm[,?c("id",?"label")])??

  3. dictresult?<-?join(dictresult,?temp)??

  4. evalue?<-?table(dictresult$dictlabel,?dictresult$label)??


最后可以和原先的分类进行混淆矩阵评价。从结果查看,并不是很精确。
从执行的过程中我们也发现,很多不具有情感色彩的词被定义为了情感词,例如的、了、还、在、我、都、把、上等字词,这些字词都是高频字词,而我们的计算方法按照出现频次重复计算,所以导致上面的结果偏差很大。
暂时的改进办法:修改优化词典,去除这类词汇,或者更改为去重计算,即一条评论中某词无论出现多少次都只计算一次权重。

via:http://blog.csdn.net/sinat--26917383/article/details/51313336

(编辑:武汉站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读