您的位置:首页 >聚焦 >

每日热文:Asent库 | 英文文本数据情感分析

2022-07-13 08:34:09    来源:程序员客栈

Asent 是一个新的Python情感分析库, 依据情感词典,按照一定的规则,可用于评判词语、句子、文档的情感信息(正、负)。

目前情感计算规则有


(资料图片)

否定(即“不高兴”)加强词(“非常高兴”)对比共轭(即“但是”)其他强调标记,如感叹号、大小写和问号。

Asent目前仅支持英语、丹麦、挪威、瑞典4种语言。

参考往期文章建议收藏 | nltk和spacy配置方法,需要先下载并配置spacy模型。以下将带您逐步了解情绪是如何计算的。

!pip3installspacy==3.2.0!pip3installasent==0.4.2

首先,我们需要一个 spaCy 管道,并且我们需要向其中添加 asent 管道。

importasentimportspacy#en_core_web_lg是spacy模型,需要单独下载&配置,本文代码才可使用nlp=spacy.load("en_core_web_lg")#addtherule-basedsentimentmodelnlp.add_pipe("asent_en_v1")

效价和极性

如下所示, token的效价信息来自于人工标注的词典。例如I am not very happy中词语happy的人类情感评分是2.7。

token_polarity.png)

首先我们查看每个词语对应的效价。

doc=nlp("Iamnotveryhappy.")fortokenindoc:print(token,"\t",token._.valence)

I  0.0am  0.0not  0.0very  0.0happy  2.7.  0.0

在该语境中, happy前面有否定词not修饰,所以情感极性方面应该被看做消极的。一般否定词和副词可以将形容词的情感进行反转和放大(缩小)。

fortokenindoc:print(token._.polarity)

polarity=0.0 token=I span=Ipolarity=0.0 token=am span=ampolarity=0.0 token=not span=notpolarity=0.0 token=very span=verypolarity=-2.215 token=happy span=not very happypolarity=0.0 token=. span=.

注意到, 词语在happy拥有-2.215的极性分,该分是由not very happy确定的。

可视化

asent拥有多种情感极性可视化的方法

asent.visualize(doc,style="prediction")

asent.visualize(doc,style="analysis")

forsentenceindoc.sents:print(sentence._.polarity)

neg=0.391 neu=0.609 pos=0.0 compound=-0.4964 span=I am not very happy.

doc._.polarity

DocPolarityOutput(neg=0.391, neu=0.609, pos=0.0, compound=-0.4964)

doc2=nlp("Iamnotveryhappy.Iamveryveryhappy.Itisawesome!!")print("doc2情感极性信息:",doc2._.polarity)print()print("doc2情感得分:",doc2._.polarity.compound)

doc2情感极性信息:  neg=0.13 neu=0.536 pos=0.333 compound=0.2794doc2情感得分: 0.279353567721562

#每个句子的情感极性信息forsentenceindoc2.sents:print(sentence._.polarity)

neg=0.391 neu=0.609 pos=0.0 compound=-0.4964 span=I am not very happy.neg=0.0 neu=0.539 pos=0.461 compound=0.6453 span=I am very very happy.neg=0.0 neu=0.461 pos=0.539 compound=0.6892 span=It is awesome!!

#每个句子的情感得分forsentenceindoc2.sents:print(sentence._.polarity.compound)

-0.49642389816171780.64527646594021580.689208135386188

精选文章

长期招募小伙伴

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

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

使用cntext训练Glove词嵌入模型

认知的测量 | 向量距离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代码

关键词: 文本分析 我们需要 上市公司

相关阅读