文本挖掘之中文情感分析

文本挖掘之中文情感分析,第1张

情感分析(Sentiment analysis,SA),又称倾向性分析、意见抽取(Opinion extraction)、意见挖掘(Opinion mining)、情感挖掘(Sentiment mining)、主观分析(Subjectivity analysis)

情感分析是对带有情感色彩的主观性文本进行分析、处理、归纳和推理的过程

情感分析的目的是为了找出说话者/作者在某些话题上或者针对一个文本两极观点的态度。这个态度或许是他或她的个人判断或是评估,也许是他当时的情感状态(就是说,作者在做出这个言论时的情绪状态),或是作者有意向的情感交流(就是作者想要读者所体验的情绪)

文本情感分析的应用非常广泛,如网络舆情风险分析,信息预测等。如通过Twitter用户情感预测股票走势,**票房、选举结果等,均是将公众情绪与社会事件对比,发现一致性,并用于预测

首先安装SnowNLP中文情感分析库:

SnowNLP(Simplified Chinese Text Processing),是一个python语言编写的类库,可以方便的处理中文文本内容,其开发受到了TextBlob的启发

In [1]:

数据载入

In [2]:

Out[2]:

数据预处理

In [3]:

In [4]:

Out[4]:

In [7]:

Out[7]:

将所有数据打分

In [9]:

Out[9]:

将分数合并会原表格

In [11]:

Out[11]:

计算指标

In [12]:

Out[12]:

In [13]:

Out[13]:

In [14]:

Out[14]:

基础结论:中位数比平均值高很多,说明有少量异常低的评分拉低了均值

In [16]:

Out[16]:

看分数分布情况,直方图最合适

In [17]:

Out[17]:

少量数据,柱状图也可以

In [18]:

Out[18]:

In [19]:

Out[19]:

In [20]:

以分数排序,查看打分准确率

In [22]:

Out[22]:

好评

In [23]:

Out[23]:

In [24]:

Out[24]:

差评

In [25]:

Out[25]:

In [26]:

Out[26]:

In [27]:

Out[27]:

In [28]:

Out[28]:

In [29]:

Out[29]:

In [30]:

Out[30]:

结论

准确率比瞎猜高,但达不到人工打分准确率

SnowNLP库的训练基准数据是基于电商销售产品训练的,对饭店留言数据的打分准确率一般

做情感分析最好用户自行实现(网站增加打分功能,用户自行打分)

《京剧趣谈》中文眼是“嗟来之食,系留余地”的“留”字。它主要是表达了京剧表演艺术中的一种精妙技巧和思想感情,即通过表情和眼神来表现人物内心的世界,一方面传达人物所想所感,另一方面引导观众去领会和理解角色的思维和情感。特别是在表达愤怒、悲痛、失落等强烈情感时,京剧表演者往往会借助“留”字作为切入点,通过咬牙切齿、抽噎哽咽等表演技巧,传递内涵丰富、气势磅礴的感情,真正实现了“一日磨一剑,百日磨一眼”的艺术深度。

情感分析(Sentiment Analysis)

第一步,就是确定一个词是积极还是消极,是主观还是客观。这一步主要依靠词典。

英文已经有伟大词典资源:SentiWordNet 无论积极消极、主观客观,还有词语的情感强度值都一并拿下。

但在中文领域,判断积极和消极已经有不少词典资源,如Hownet,NTUSD但用过这些词典就知道,效果实在是不咋滴(最近还发现了大连理工发布的情感词汇本体库,不过没用过,不好评价)。中文这方面的开源真心不够英文的做得细致有效。而中文识别主客观,那真的是不能直视。

中文领域难度在于:词典资源质量不高,不细致。另外缺乏主客观词典。

第二步,就是识别一个句子是积极还是消极,是主观还是客观。

有词典的时候,好办。直接去匹配看一个句子有什么词典里面的词,然后加总就可以计算出句子的情感分值。

但由于不同领域有不同的情感词,比如看上面的例子,“蓝屏”这个词一般不会出现在情感词典之中,但这个词明显表达了不满的情绪。因此需要另外根据具体领域构建针对性的情感词典。

如果不那么麻烦,就可以用有监督的机器学习方法。把一堆评论扔到一个算法里面训练,训练得到分类器之后就可以把评论分成积极消极、主观客观了。

分成积极和消极也好办,还是上面那个例子。5颗星的评论一般来说是积极的,1到2颗星的评论一般是消极的,这样就可以不用人工标注,直接进行训练。但主客观就不行了,一般主客观还是需要人来判断。加上中文主客观词典不给力,这就让机器学习判断主客观更为困难。

中文领域的难度:还是词典太差。还有就是用机器学习方法判断主客观非常麻烦,一般需要人工标注。

另外中文也有找到过资源,比如这个用Python编写的类库:SnowNLP 就可以计算一句话的积极和消极情感值。但我没用过,具体效果不清楚。

到了第三步,情感挖掘就升级到意见挖掘(Opinion Mining)了。

这一步需要从评论中找出产品的属性。拿手机来说,屏幕、电池、售后等都是它的属性。到这一步就要看评论是如何评价这些属性的。比如说“屏幕不错”,这就是积极的。“电池一天都不够就用完了,坑爹啊”,这就是消极的,而且强度很大。

这就需要在情感分析的基础上,先挖掘出产品的属性,再分析对应属性的情感。

分析完每一条评论的所有属性的情感后,就可以汇总起来,形成消费者对一款产品各个部分的评价。

接下来还可以对比不同产品的评价,并且可视化出来。如图。

这一步的主要在于准确挖掘产品属性(一般用关联规则),并准确分析对应的情感倾向和情感强度。因此这需要情感分析作为基础。首先要找到评论里面的主观句子,再找主观句子里的产品属性,再计算属性对应的情感分。所以前面基础不牢固,后面要准确分析就有难度。

中文这个领域的研究其实很完善了,技术也很成熟。但需要完善前期情感分析的准确度。

总的来说,就是中文词典资源不好,工作做得不是很细很准。前期的一些基础不牢固,后面要得到准确的分析效果就不容易了。

是爱、成为爱等。

love中文解释为爱情,喜爱,热爱 近义词like,但本词并不局限于男女之间的或同性之间的爱,也包括亲情友情等。中文解释为爱情,喜爱。爱是一种发乎人内心的情感,在中文里有着很多解释,由某种事物给予人少许满足(如我爱进食这些食物)至为了爱某些东西而死(如爱国心、对偶结合)。爱也常常被认为是喜欢的最高境界或表达。比like一词的程度要更加深刻。

相关信息:

爱是与生俱来的,所以可以认为是人性的特质,换言之,爱是作为人必须具备的本质之一。虽然世界各民族间的文化差异使得一个普世的爱的定义难以道明,但并非不可能成立。

爱可以包括灵魂或心灵上的爱、对法律与组织的爱、对自己的爱、对食物的爱、对金钱的爱、对学习的爱、对权力的爱、对名誉的爱、对别人的爱,数之不尽。不同人对其所接受的爱有着不同的重视程度。爱本质上为抽象慨念,可以体验但难以言语。

意大利语我爱你的意思,完整的应该是Io ti amo,翻译成中文就是“我爱你”的意思。在意大利tiamo的意思是我爱你,在法语中却是爱过你。

并非我们猜测的英语或者拼音缩写,一般情况下其中文翻译为“提莫”,常用于一人对暗恋对象或者爱慕者的情感表达,也可以在亲人朋友之间使用,此外“TiAmo”这词还可以表达对宠物、物品等寄托了浓重的情感。

注意

“tiamo”也可以代指网络歌手韩义的英文别名,以及泰国**《yes or no》的两位主演名字Tina和Aom的简称,其中Tina的中文名为李缇娜,她于1991年2月12日出生。

是泰国著名的女演员、歌手,而李海娜是Aom的中文名字,其于1988年出生,在2009年因出演《爱在拜城》而正式出道。

欢迎分享,转载请注明来源:浪漫分享网

原文地址:https://hunlipic.com/qinggan/3945293.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-19
下一篇2023-08-19

发表评论

登录后才能评论

评论列表(0条)

    保存