中文文本数据的情绪计算

昨天 如何对微博推文进行情绪分析(细粒度情感分析) 介绍了英文的NRC情绪词典。虽然支持中文,但由于制作问题,导致并不完全适应中文场景。今天介绍**大连理工大学中文情感词汇本体库 ** 依旧使用微博数据

我们使用中文的情绪词典重复昨天的分析,看看效果。首先我们了解一下大工的这个词库

中文情感词汇本体库介绍

中文情感词汇本体库是大连理工大学信息检索研究室在林鸿飞教授的指导下经过全体 教研室成员的努力整理和标注的一个中文本体资源。该资源从不同角度描述一个中文词汇或 者短语,包括词语词性种类、情感类别、情感强度及极性等信息。

中文情感词汇本体的情感分类体系是在国外比较有影响的 Ekman 的 6 大类情感分类体 系的基础上构建的。在 Ekman 的基础上,词汇本体加入情感类别“好”对褒义情感进行了 更细致的划分。最终词汇本体中的情感共分为 7 大类 21 小类。

构造该资源的宗旨是在情感计算领域,为中文文本情感分析和倾向性分析提供一个便捷 可靠的辅助手段。中文情感词汇本体可以用于解决多类别情感分类的问题,同时也可以用于 解决一般的倾向性分析的问题。

本体格式

情感分类按照论文《情感词汇本体的构造》所述,情感分为 7 大类 21 小类。情感强度分为 1,3,5,7,9 五档,9 表示强度最大,1 为强度最小。

情感分类及情感强度

词性种类

情感词汇本体中的词性种类一共分为 7 类,分别是

  • 名词(noun)

  • 动词(verb)

  • 形容词 (adj)

  • 副词(adv)

  • 网络词语(nw)

  • 成语(idiom)

  • 介词短语(prep)

词性标注

每个词在每一类情感下都对应了一个极性。其中,0 代表中性,1 代表褒义,2 代表贬 义,3 代表兼有褒贬两性。

注:褒贬标注时,通过词本身和情感共同确定,所以有些情感在一些词中可能极性 1, 而其他的词中有可能极性为 0。

存储格式及规模

中文情感本体以 excel 的格式进行存储,共含有情感词共计 27466 个,文件大小为 1.22M。

本体库词典使用

读取

我们暂时只使用 ['词语','词性种类','词义数','词义序号','情感分类','强度','极性']

情绪词语列表整理完成 按照七大情绪划分

计情绪计算函数 这里只是朴素的使用情绪词计数统计文本的情绪值

并行加速计算过程 在本文中的情绪计算特别耗时间,测试数据相比昨天少了一大半,使用df.apply依旧很慢,没办法这里需要使用pandarallel并行加速库。多核处理速度快

series数据变为dataframe,详情可了解下apply http://dwz.date/dzB

输出分析结果 将原始数据与分析结果合并, 输出到新的csv中。

检查 我们查看一下随机抽查一下,看看

  • 最fear

  • 最positive

  • 最negative 的分别是什么内容

最fear

最正面 Run

分析结束

Tips:

以上的案例只是简单的使用了大连理工大学中文情感词汇本体库, 用最朴素的统计情绪词的个数作为情绪值的度量方法。

其实中文情感词汇本体库每个词语还有权重极性,上面的方法有些粗糙。

各位如果要使用,需要多学习pandas的知识点,自己diy适用于自己场景的情绪计算函数