R语言做文本挖掘 Part5情感分析

技术R语言做文本挖掘 Part5情感分析 R语言做文本挖掘 Part5情感分析Part5情感分析
【发现有人转载,决定把格式什么重新整理一遍,有时间做个进阶版文本挖掘,恩!原文地址:CSDN-R语言做文

用于文本挖掘的r语言第5部分情感分析

第五部分情感分析

【发现有人转载,决定重新整理格式和什么,有时间就做一个高级版的文本挖掘,嗯!原文地址:CSDN-R语言用于文本挖掘第5部分情感分析]

这是本系列的最后一篇文章。事实上,这里的文本挖掘的每一部分都值得深入研究和仔细研究。我还在初级研究阶段,用R里现成的算法来满足自己的需求。当然,我也参考了很多网友的智慧结晶,所以我也想总结一下我的收获,分享给大家。希望在看大家和我一样分享的时候能得到自己的启发。

我在网上翻了一些关于中文文本情感分析的文章,然后思考了自己的情感分析方法。我觉得我的想法真的很简单,很粗鲁,很直接。这是一篇介绍中文文本情感分析趋势的论文。3358wenku.baidu.com/linkurl=tvf 5 LNG 6 esnungubvm 14 z 24m 0 f 4 lty d 483 GW _ henp 2 ryel 6 xzanslz 8 oczclwklqd 0 pdbhvucv4-0 lotdg p3hl-kqettwj 3l 91 hfta 3。目前做情绪分析的方法主要有三种。第一种是扩展现有的电子词典或词知识库,生成情感倾向词典;第二,无监督机器学习的方法。基于人工标注语料库的第三种学习方法。

以上三种方法不详细说明。他们都有一个共同的特点,需要一个情感倾向的语料库。我在R中的实现方案和第一种方法差不多,整理一个褒义词词库和一个贬义词词库(在万能的互联网上自己整理一点就可以了)。把课文分成词,中间提取情感词。对于每个文本,情感倾向得分的初始值为1,与褒贬词、褒贬词-1、贬损词-1的词汇进行匹配,计算出每个文本的最终情感倾向得分。正值是正面评价,负值是负面评价。该方法基本可以实现情绪倾向的判断,但可以改进。如前参考文献所述,情感强度也可以根据词的词性强度来评价,而不仅仅是1和-1;还要考虑到有些词在不同的语境下可能会有不同的情感倾向,比如文中提到的“骄傲”,我认为可能需要对有这样特殊情况的词进行梳理;也有消极和积极的情况,比如“不喜欢是不可能的!”按照我的评分标准,它的结果是负面评价;问“哪里便宜?”评估结果为正。我把“便宜”这个词放在了褒义词的下面。其实仔细想想,如果说“便宜又实惠”绝对是恭维,如果说“便宜又不好”,那也是恭维,这是错的,还是第二个问题,不同语境下的情感倾向会有所不同。

R中的实施流程:

1.数据输入处理

数据仍是某品牌官微。从其微博、情感褒义词库、贬义词库取1376条评论,数据读入r .下载地址附词库:http://www.datatang.com/data/44317/,可能不全,需要自己充实。在看服装相关的文字时,发现里面没有包含“掉色”、“开线”、“苗条”、“胖”等词,需要自己添加。

hlzj.comment-ReadLines(' hlzj _ comment test . txt ')

负-readline(' d : \ \ R \ \ RWorkspace \ \ hlzjWorkfiles \ \ negative . txt ')

正读线(' d : \ \ R \ \ RWorkspace \ \ hlzjWorkfiles \ \ positive . txt ')

长度(hlzj.comment)

[1] 1376

长度(负)

[1] 4477

长度(正)

[1] 5588

2.将评论分成单词并排列。

这个过程类似于第二部分提到的分词。然后我自己编写了一个方法getEmotionalType(),将分割结果与否定表和肯定表进行比较,计算得分。

comment temp-gsub('[0-90123456789 ~]','',hlzj.comment)

评论-细分市场

评论[1:2]

[[1]]

[1]“恭喜”“大家”“我没找到”

[[2]]

[1]“不”“私信”“给”“我”“边肖”“给”“我”“给”“泄露”

情绪等级-获取情绪类型(评论,正面,负面)

[1] 0.073

[1] 0.145

[1] 0.218

[1] 0.291

[1] 0.363

[1] 0.436

[1] 0.509

[1] 0.581

[1] 0.654

[1] 0.727

[1] 0.799

[1] 0.872

[1] 0.945

情感银行[1:10]

[1] 1 0 2 1 1 2

3 1 0 0
commentEmotionalRank -list(rank=EmotionRank,comment=hlzj.comment)
commentEmotionalRank -as.data.frame(commentEmotionalRank)
fix(commentEmotionalRank)
getEmotionalType - function(x,pwords,nwords){
emotionType -numeric(0)
xLen -length(x)
emotionType[1:xLen]- 0
index - 1
while(index =xLen){
yLen -length(x[[index]])
index2 - 1
while(index2= yLen){
if(length(pwords[pwords==x[[index]][index2]]) = 1){
emotionType[index] - emotionType[index] + 1
}else if(length(nwords[nwords==x[[index]][index2]]) = 1){
emotionType[index] - emotionType[index] - 1
}
index2- index2 + 1
}
#获取进度
if(index%%100==0){
print(round(index/xLen,3))
}
index -index +1
}
emotionType
}
查看到结果如下,第一个图里看着还挺正常的,第二个图好像是hlzj赞助的RM里出现了衣服被撕坏的时候的评论。没有黑他们家的意思,只是想找个例子来说明下差评的效果,好像不是很理想。那些反问的话无法识别判断,还有一些比较口语化的“醉了”,“太次”这样的词没有放到情感词库里,对这些评论的情感倾向识别效果不是很好。

像前面说的,方法有待改进,我的方法只是一个最基础的情感分析的实现方式,有任何问题欢迎指正。

转载请注明来源,谢谢!
————————————————
版权声明:本文为CSDN博主「EchoCaiCai」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/cl1143015961/article/details/44460873

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/151775.html

(0)

相关推荐

  • web前端怎么更好的展示后端返回的十万条数据

    技术web前端怎么更好的展示后端返回的十万条数据本篇内容主要讲解“web前端怎么更好的展示后端返回的十万条数据”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“web前端怎么更好

    攻略 2021年11月25日
  • 如何修改VB.NET支付宝接口

    技术如何修改VB.NET支付宝接口小编给大家分享一下如何修改VB.NET支付宝接口,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!曾经为没有VB

    攻略 2021年11月19日
  • oneyear,oneyearago是什么意思

    技术oneyear,oneyearago是什么意思oneyearago 的中文意思是“一年前,”但三个单词不能一起连写,正确的写法应该是oneyear: one year ago. 这句短语可用在句首或句尾,在时间上通常

    生活 2021年10月21日
  • 怎样用Java final 关键字

    技术怎样用Java final 关键字怎样用Java final 关键字,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。下面好好地讲一讲 final 关键字,

    攻略 2021年12月2日
  • 一千瓦时等于多少焦耳,瓦和焦耳是什么换算关系

    技术一千瓦时等于多少焦耳,瓦和焦耳是什么换算关系1W=1J/s 1瓦=1焦耳/秒 我再补充一下:这里面,瓦是功率单位,既然是“功率”,有一个“率”字,就可以知道,是单位时间上的意义了一千瓦时等于多少焦耳。比如,速率:m

    生活 2021年10月24日
  • vue中的生命周期和钩子函数是什么

    技术vue中的生命周期和钩子函数是什么这篇文章主要讲解了“vue中的生命周期和钩子函数是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue中的生命周期和钩子函数是什

    攻略 2021年12月4日