快捷导航

集搜客分词软件情感分析算法升级通知

2022-5-13 16:08| 发布者: Fuller| 查看: 1227| 评论: 2

摘要: 用户添加自定义情感词的时候,可以加单字的情感词、程度词、否定词,因为单字匹配到的概率大大提高,往往会与多字的词发生重叠识别,老版本会分析出很不准确的结果。新版本对这种情况也做了改进。 ... ... ...

升级时间:2022年5月13日

重大提示:此前在集搜客官网和其他媒体上发布的关于情感分析的算法都将作废,今后的软件版本都将采用本文介绍的算法。


1. 情感分析算法升级的原因

用户反馈老版本的情感分析不准确,主要出现在这些情形:

1. 出现否定词的时候,情感倾向反转不对

2. 出现程度词的时候,情感打分不合适。

3. 情感词有重叠的时候

这次升级以后,用户添加自定义情感词的时候,可以加单字的情感词、程度词、否定词,因为单字匹配到的概率大大提高,往往会与多字的词发生重叠识别,老版本会分析出很不准确的结果。新版本对这种情况也做了改进。

2. 新旧版本没有变化的方面

情感分析的时候,会把一条正文切分成句子,先给每条句子打分,然后所有句子的结果加在一起就是一条正文的打分。根据下列标点符号切句子:

1. 中文句号和英文点号

2. 半角或全角问号

3. 半角或全角感叹号

4. 半角或全角分号

5. 竖线符号

6. tab制表符

如果用户导入的内容存于excel中,那么excel的一个单元格的内容称为一条正文;如果用户导入的内容存于txt或者word中,通常一个文档整体作为一条正文,但是,有可能会根据换行符等符号进行拆分,所以,如果要完全可控,应该使用excel格式。

情感分析结束以后,能导出两个结果文件,一个是句子情感分析结果,一个是正文情感分析结果。

3. 新旧版本变化部分

3.1 关于程度词和否定词的匹配

旧版情感分析时,如果匹配到程度词,那么对整个句子的情感得分进行倍乘,如果匹配到否定词,就对整个句子的情感倾向进行反转。这个简单算法会造成分析结果不准确。新版进行了彻底的升级。

首先,程度词和否定词只做局部的情感倾向和打分调整。

  1. 最常见的是否定词和程度词在左边,情感词在右边,所以这种情况优先匹配
  2. 如果第一种情况没有发现,就找情感词在左边的情况
  3. 如果两种情况都没有发现,就放弃这个程度词和否定词

例如,下图这个句子:

首先提示一下,缺省的情感词典中没有单字否定词,要得到上图的结果,需要用户加入否定词“不”。

可以看到,识别出两个“不”字,都在情感词右边,符合第二种情况,那么,与“友好”这个词比较更近的“不”字用于否定“友好”,造成极性反转。而更远的那个“不”并没有相邻的可进行反转的情感词,就被放弃了。总体识别为负面。

另外也应该意识到,本算法基于情感词匹配,而不是基于语义分析,针对上述例句做的分析,结果看起来是对了,实际上跟真正的语义有偏离。

3.2 怎样设置权值

无论是情感词,还是程度词,还是否定词,都需要设置权值。

情感词的权值好理解

  1. 都是整数,正的表示正面,负的表示负面。
  2. 正面词的权值的范围:0
  3. 负面词的权值的范围:-10 <= N < 0,不同大小代表了负面倾向的程度

本质上说,否定词和程度词虽然名字不一样,实际上归为同一类。

  1. 否定词:权值应该是负数,推荐取-1,但是,没有做限制,还可以取-2到-10,如果不是-1,那么,除了反转情感倾向,程度还翻倍,跟负的程度词的效果一样了。如果权值为正,其作用就跟正的程度词一样了。
  2. 程度词:权值通常是正数,表示对情感词的程度进行翻倍。如果是负数,其作用就跟否定词一样了,除了翻倍,情感倾向还反转了。所以取值范围可以是:-10 <=N<0和0

4. 情感分析得分的计算公式

从上面文字可以看出,新版本的情感分析得分不再能用单个公式进行计算,而是需要一个算法,有以下步骤:

  1. 从一个句子中识别出来的情感词、否定词、程度词按照出现的顺序排序,形成一个词序列
  2. 从词序列的最右边一个词开始,循环执行第三步
  3. 如果是否定词(或程度词),先找左边相邻的情感词,没找到的话就找右边相邻的情感词。如果找到了情感词,就将这个情感词的权值乘以否定词(或程度词)的权值,得到情感词的新权值
  4. 循环完成后,将情感词的权值相加,就是句子的情感得分。

一句话概括新算法特点:很显然,老算法的否定词和程度词是对整个句子进行情感反转或加倍,而新算法的否定词和程度词只给相邻情感词反转或加倍。

5. 总结

了解了情感分析算法以后,可以有针对性地添加自己的情感词典,可以达到微调打分的目的。

3

鲜花

握手

雷人

路过

鸡蛋

刚表态过的朋友 (3 人)

发表评论

最新评论

评论 Fuller 2022-5-22 23:42
王拉拉: 想问一下可以直接根据匹配出来的正面词汇数量和负面词汇数量计算语调吗?(看到论文中都是根据这样计算的)
导出分析结果,就会看到已经把句子和正文的总调性都已经计算出来了
评论 王拉拉 2022-5-22 23:17
想问一下可以直接根据匹配出来的正面词汇数量和负面词汇数量计算语调吗?(看到论文中都是根据这样计算的)

查看全部评论(2)

GMT+8, 2022-7-5 08:27