SenticNet情感词典介绍[通俗易懂]

2022-09-23 11:16:26 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

在进行情感分析时,一个好的情感词典能够让我们的工作事半功倍,较为出名的情感词典有SentiWordNet,General Inquirer等,这篇博客将介绍另外一个出色情感词典,SenticNet。

简介

当谈论SenticNet时,我们正在谈论概念层面的情感分析,即通过语义和语言学来完成极性探测、情感识别等任务,而不是单纯的依靠词共现频率。SenticNet可以看作是以下其中一种: 1)一个概念层次的知识库 2)一个多学科的框架 3)一家私人公司 作为一个知识库,SenticNet提供了一组语义、情感、极性关联的100,000个自然语言概念。特别地,语义指与输入概念在语义上最相关的概念(比如,与输入概念共享最多语义特征的五个概念),情感指四个情感维度(Pleasantness, Attention, Sensitivity, and Aptitude)的情感值和-1到 1之间的情感极性值(其中,-1表示极度负向, 1表示极度正向)。该知识库可作为独立的XML文件免费下载,其最新版本(SenticNet5)也可作为API访问。 作为一个框架,SenticNet包含了一系列将常识推理、心理学、语言学和机器学习相结合的情感分析工具和技术。在这种情况下,SenticNet通常指senti computing,一种多学科范式,它超越了单纯的统计情感分析方法,通过关注自然语言概念的语义表示(semantic-preserving representation)和句子结构。 作为一家公司,SenticNet覆盖了概念层次情感分析的最新发现,以此为大型社交数据分析提供易用的、最先进的工具,从而在不同的领域,语言和形式下实现自动化任务,比如产品定位、趋势发现和社交媒体营销。

下载使用

SenticNet提供了各种类型、任务、语言的词典,都可以从该页面下载。 最新的SenticNet5包含100,000个自然语言概念,可以通过以下三种途径获取。

下载RDF/XML格式或者txt格式到本地

下载的senticnet-5.0包含以下三个重要文件: senticnet5.py。文件形式如下:

首先定义了一个senticnet字典,关键字key是概念,值value是一个列表,元素依次是四个情感维度值、两个情绪标签、极性标签和极性值以及最相似的五个概念。 senticnet5.rdf.xml。以rdf的格式组织每一个概念,形式如下:

senticnet5.txt。仅仅展示了每个概念的极性和极性强度值,形式如下:

通过API访问

通过API获取指定概念的基本方法是:http://sentic.net/api/LANGUAGE/concept/CONCEPT_NAME,其中LANGUAGE指俩字母格式的目标语言,CONCEPT_NAME可以是单独的单词也可以是通过下划线连接的多个单词。更细粒度的方法可以分别获取语义、情感 、情绪标签和极性:

  • http://sentic.net/api/LANGUAGE/concept/CONCEPT_NAME/semantics
  • http://sentic.net/api/LANGUAGE/concept/CONCEPT_NAME/sentics
  • http://sentic.net/api/LANGUAGE/concept/CONCEPT_NAME/moodtags
  • http://sentic.net/api/LANGUAGE/concept/CONCEPT_NAME/polarity

其中polarity由value(正或负)和强度(-1到1之间的浮点数)组成,分别查询如下:

  • http://sentic.net/api/LANGUAGE/concept/CONCEPT_NAME/polarity/value
  • http://sentic.net/api/LANGUAGE/concept/CONCEPT_NAME/polarity/intensity

作为Python第三方类库调用

可以直接使用pip安装

代码语言:javascript复制
pip install senticnet

也可以通过源码安装,在github或者Pypi上下载源码,然后采用如下命令安装。

代码语言:javascript复制
python setup.py install

在windows上安装可能出现LINCENSE文件解码错误,这个时候用一个空的LINCENSE文件替换原文件即可。安装好后使用方法如下:

代码语言:javascript复制
from senticnet.senticnet import SenticNet

sn = SenticNet()   # 可以指定语言参数,不写默认英语
concept_info = sn.concept('love')
polarity_value = sn.polarity_value('love')
polarity_intense = sn.polarity_intense('love')
moodtags = sn.moodtags('love')
semantics = sn.semantics('love')
sentics = sn.sentics('love')

参考文献

SenticNet主页

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/172436.html原文链接:https://javaforall.cn

0 人点赞