查看原文
其他

EmoBank | 中文维度情感词典

大邓 大邓和他的Python
2024-09-09

引言

『中文情绪银行』 (Chinese EmoBank)是由人工标注产生的 中文维度情感词典  ,含效价valence和唤醒度arousal两个维度。

  • 效价valence,可测量出文本中的积极/消极情感程度。
  • 唤醒度arousal,可测量文本中平静/兴奋状态的程度。

该词典包括

  • CVAW(Chinese valence-arousal words), 5512词
  • CVAP(Chinese valence-arousal phrases), 含2998词组
  • 语料CVAS(Chinese valence-arousal sentences) 含2582个单句
  • 语料CVAT(Chinese valence-arousal texts)  2969个句子

需要注意该词典是繁体中文词典,经过繁体转简体,已将CVAW嵌入到最新的cntext包。

pip3 install --upgrade cntext 

CVAW(Chinese valence-arousal words)

WordValence_MeanArousal_MeanValence_SDArousal_SD
乏味3.43.00.8001.414
放鬆6.22.00.7480.894
勝利7.87.20.7481.166
痛苦2.46.80.4900.748

CVAP(Chinese valence-arousal phrases )

Modifier TypePhraseValence_MeanArousal_MeanValence_SDArousal_SD
deg十分有趣8.2227.0630.5330.390
mod應該開心5.9865.3500.2420.456
neg不喜歡3.0335.7880.4810.605
neg_deg沒有太難過4.4784.6750.4130.538

CVAS(Chinese valence-arousal sentences)

TextValence_MeanArousal_MeanValence_SDArousal_SD
這是我觀賞過的最令人驚歎的演出。7.0007.7500.0000.433
簡直是人生惡夢的開端。2.6006.7500.4900.829
從小我經常覺得現實很無聊。3.6674.3330.4710.471
過去他們很輕鬆地賺錢。5.6674.0001.2470.816

CVAT(Chinese valence-arousal texts)

TextValence_MeanArousal_MeanValence_SDArousal_SDCategory
很多車主抱怨新車怠速抖動嚴重----冷車時更嚴重。3.2505.6671.0901.054Car
房間裏黴味,煙味撲鼻,沒有窗戶通風,骯髒的地毯上的斑斑點點的污蹟,令人觸目驚心。1.8896.8750.7370.927Hotel
CPU顯卡也完全夠用,接口也非常齊全,總體來說很滿意!7.1435.0000.3500.816Laptop
飛安帶來更多保障,也提供旅客更安心的服務品質。7.0004.2220.5351.133News

文献

如果用到Chinese EmoBank词典,请注明出处。

Lung-Hao Lee, Jian-Hong Li and Liang-Chih Yu, "Chinese EmoBank: Building Valence-Arousal Resources for Dimensional Sentiment Analysis," ACM Trans. Asian and Low-Resource Language Information Processing, vol. 21, no. 4, article 65, 2022.

Liang-Chih Yu, Lung-Hao Lee, Shuai Hao, Jin Wang, Yunchao He, Jun Hu, K. Robert Lai, and Xuejie Zhang. 2016. "Building Chinese affective resources in valence-arousal dimensions. In Proceedings of NAACL/HLT-16, pages 540-545.


代码

import cntext as ct

ct.load_pkl_dict('ChineseEmoBank.pkl')

Run

{'Referer-1''Lee, Lung-Hao, Jian-Hong Li, and Liang-Chih Yu. "Chinese EmoBank: Building Valence-Arousal Resources for Dimensional Sentiment Analysis." Transactions on Asian and Low-Resource Language Information Processing 21, no. 4 (2022): 1-18.',
 
 'Referer-2''Liang-Chih Yu, Lung-Hao Lee, Shuai Hao, Jin Wang, Yunchao He, Jun Hu, K. Robert Lai, and Xuejie Zhang. 2016. "Building Chinese affective resources in valence-arousal dimensions. In Proceedings of NAACL/HLT-16, pages 540-545.',
 
 'Desc''Chinese Sentiment Dictionary, includes 「valence」「arousal」. In cntext, we only take single word into account, ignore phrase.',
 
 'ChineseEmoBank':       word  valence  arousal
 0     不可思议      5.4      7.2
 1       不平      3.6      5.8
 2       不甘      3.2      6.4
 3       不安      3.8      5.4
 4       不利      3.6      5.6
 ...    ...      ...      ...
 5505    黏闷      2.8      5.6
 5506    黏腻      2.7      5.8
 5507    艳丽      5.8      4.5
 5508    苗条      6.7      3.8
 5509    修长      7.0      4.5

ChineseEmoBank的CVAW词典(Chinese valence-arousal words)原有 5512词,经过繁体转简体处理,得到5510个词。

diction_df = ct.load_pkl_dict('ChineseEmoBank.pkl')['ChineseEmoBank']
diction_df

Run


测量一段文本的valence和arousal,

text = '很多车主抱怨新车怠速抖动严重---冷车时更严重。'

help(ct.sentiment_by_weight)

Run

Help on function sentiment_by_weight in module cntext.stats:

sentiment_by_weight(text, diction, params, lang='english')
    calculate the occurrences of each sentiment category words in text;
    the complex influence of intensity adverbs and negative words on emotion is not considered.
    :param text:  text sring
    :param diction:  sentiment dictionary dataframe with weight.;
    :param params:  set sentiment category weight, such as params=['valence''arousal']
    :param lang: "chinese" or "english"; default lang="english"
    
    :return:

计算文本text中chinese_emobank词两维度的汇总得分,得到valence、arousal、word_num

text = '很多车主抱怨新车怠速抖动严重---冷车时更严重。'

ct.sentiment_by_weight(text = text, 
                       diction = diction_df,
                       params = ['valence''arousal'],
                       lang = 'chinese')

Run

{'valence': 14.8, 
'arousal': 24.8, 
'word_num': 13}
  • valence是句子中各个chinese_emobank词valence得分的加总。
  • arousal是句子中各个chinese_emobank词arousal得分的加总。
  • word_num是句子中的词语数(含标点符号),短文本的情况下,word_num会不太准确,长文本情况下无限接近真实词语数。

需要注意,文本越长,valence和arousal指标应该会越大。使用这两个指标时,需要结合word_num进行均值处理,即

Valence = valence/word_num

Arousal = arousal/word_num

这里未做均值处理,尽量保留文本的原始信息。



精选文章

长期招募小伙伴

从符号到嵌入:计算社会科学的两种文本表示

推荐 | 社科(经管)文本分析快速指南

使用cntext训练Glove词嵌入模型

cntext库 | 关于DUTIR被污染解决办法

sklearnex库 | 两行代码百倍加速你的机器学习代码

认知的测量 | 向量距离vs语义投影

Wordify | 发现和区分消费者词汇的工具

karateclub库 | 计算社交网络中节点的向量

视频专栏课 | Python网络爬虫与文本分析

扩增内置pkl | 欢迎各位向cntext库分享情感词典

文本分析 | 中国企业高管团队创新注意力(含代码)

LIWC vs Python | 文本分析之词典统计法略讲(含代码)

PNAS | 文本网络分析&文化桥梁Python代码实现

Wordify | 发现和区分消费者词汇的工具

BERTopic库 | 使用预训练模型做话题建模

tomotopy | 速度最快的LDA主题模型

文本分析方法在《管理世界》(2021.5)中的应用

Wow~70G上市公司定期报告数据集

doccano|为机器学习建模做数据标注

使用WeasyPrint自动生成pdf报告文件

100min视频 | Python文本分析与会计

在jupyter内运行R代码

继续滑动看下一个
大邓和他的Python
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存