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)

相关推荐

  • 小年习俗,什么是小年,小年是怎么来的

    技术小年习俗,什么是小年,小年是怎么来的“小年”是我国汉族传统节日,在中国的春节习俗中,扮演了非常重要的角色小年习俗。这一天,通常会通过进行一些沿袭了两千年的习俗,来宣告整个春节庆祝活动的开始。小年是春节的前奏曲,热闹仅

    生活 2021年10月29日
  • 根号下的数的取值范围,根号里面的数的取值范围

    技术根号下的数的取值范围,根号里面的数的取值范围根号下的数可以等于零根号下的数的取值范围。
    通常说的根号都是只二次根号,即√,它表示对根号下的数开平方。根号下的数叫做“被开方数”。所以根号下的数需要满足的条件:是某个数的

    生活 2021年10月28日
  • Oracle的PGA与数据库连接建立的过程是什么

    技术Oracle的PGA与数据库连接建立的过程是什么本篇内容介绍了“Oracle的PGA与数据库连接建立的过程是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这

    攻略 2021年11月4日
  • 【学习笔记】P7912 [CSP-J 2021] 小熊的果篮

    技术【学习笔记】P7912 [CSP-J 2021] 小熊的果篮 【学习笔记】P7912 [CSP-J 2021] 小熊的果篮 - 题解题目传送门
    正解
    思路
    开两个链表,维护单个水果和每个块的最左端,

    礼包 2021年11月7日
  • 微信能传多大的视频,微信朋友圈能发多大的视频

    技术微信能传多大的视频,微信朋友圈能发多大的视频在iOS系统下能发400KB以内视频微信能传多大的视频,Android系统能发200到300KB之间的视频。 1.使用微信,网络不稳定,流量也受限时不太适合用户发布或者查

    生活 2021年10月20日
  • 怎么解决MySQL中ERROR 1044 (42000)报错问题

    技术怎么解决MySQL中ERROR 1044 (42000)报错问题这篇文章主要讲解了“怎么解决MySQL中ERROR 1044 (42000)报错问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路

    攻略 2021年11月18日