中文情感词典的构建与使用_文本情感识别

中文情感词典的构建与使用_文本情感识别首先,国外英文的情感分析已经取得了很好的效果,得益于英文单词自身分析的便捷性与英文大量的数据集WordNet。但由于中文的多变性,语义的多重性与数据集的缺乏,使得国内的情感分析暂落后于国外。本文将记录博主在项目中构建情感词典的经验,欢迎大家指正。我们首先将情感词典分为通用情感词典与专用情感词典。1.通用情感词典的构建通用情感词典的构建主要是通过将目前开源的情感词典整合起来,筛去重复和无…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

首先,国外英文的情感分析已经取得了很好的效果,得益于英文单词自身分析的便捷性与英文大量的数据集 WordNet。但由于中文的多变性,语义的多重性与数据集的缺乏,使得国内的情感分析暂落后于国外。本文将记录博主在项目中构建情感词典的经验,欢迎大家指正。
我们首先将情感词典分为通用情感词典与专用情感词典。

1.通用情感词典的构建

通用情感词典的构建主要是通过将目前开源的情感词典整合起来,筛去重复和无用的单词。
目前网上开源的情感词典包含有:知网(HowNet)情感词典、台湾大学(NTSUSD)简体中文情感极性词典、大连理工大学情感词汇本体。
前两个都可以在网上找到,第三个需要到其学校官网申请,说明完用途即可获得。

2.通用情感词典的扩展

上述情感词典年代都已经比较久远,所以我们可以采取一定方法对其扩展。这里我们采用的方法是将词典的同义词添加到词典里。
我们通过使用哈工大整理的同义词词林来获取词典的同义词,需要一提的是第一版的同义词林年代较为久远,现在也有哈工大整理的同义词林扩展版。
使用的链接在这里:哈工大同义词林扩展版
使用代码编写时也可以利用Python的Synonyms库来获取同义词。
其已经开源,链接为:synonyms
如:

import synonyms
print("人脸: %s" % (synonyms.nearby("人脸")))
print("识别: %s" % (synonyms.nearby("识别")))

3.领域情感词典的构建

构建特定领域的情感词典需要利用PMI互信息计算与左右熵来发现所需要的新词。具体方法我们可以添加情感种子词,来计算分好词的语料中各个词语与情感种子词的互信息度与左右熵,再将互信息度与左右熵结合起来,选择出与情感词关联度最高的TopN个词语,将其添加到对应的情感词典。
这里可以参考链接link

互信息度计算

互信息度计算

  • p(x,y)为两个词一起出现的概率
  • p(x)为词x出现的概率
  • p(y)为词y出现的概率

具体例子:4G, 上网卡,4G上网卡;如果4G的词频是2,上网卡的词频是10,4G上网卡的词频是1,那么记单单词的总数有N个,双单词的总数有M个,则有下面的公式
具体例子

左右熵

我们这里使用左右熵来衡量主要是想表示预选词的自由程度(4G上网卡为一个预选词),左右熵越大,表示这个词的左边右边的词换的越多,那么它就很有可能是一个单独的词。
我们这里的左右熵定义为(以左熵为例):
左熵
这里我们还是举一个具体的例子来理解它
假设4G上网卡左右有这么几种搭配
[买4G上网卡, 有4G上网卡,有4G上网卡, 丢4G上网卡]
那么4G上网卡的左熵为
例子
这里A = [买, 有, 丢]

后面就是具体的实现了,这里的难点就在如何获得这些概率值,就博主看到的用法有:利用搜索引擎获取词汇共现率即p(x,y)、利用语料库获取各个词出现概率

最后我们只需要将这三步获得的情感词典进行整合就可以了

大家也可以去我的个人博客讨论联系,欢迎大家指正。
JMX的个人博客 www.jmxgodlz.xyz
参考文献:
python3实现互信息和左右熵的新词发现

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/172429.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • kettle基础教程-kettle9教程「建议收藏」

    kettle基础教程-kettle9教程「建议收藏」一.安装部署1.JDK1.8安装及环境变量的配置https://blog.csdn.net/weixin_39549656/article/details/795406442.kettle9安装与启动kettle下载目录:https://sourceforge.net/projects/pentaho/files/kettle9.2下载地址:https://sourceforge.net/projects/pentaho/files/Pentaho-9.2/client-tool

  • HTML登录界面的实现详解

    HTML登录界面的实现详解前言序锦前阵子参加学校的暑期实习,我作为项目负责人,除了进行统筹规划,整体运营以及进度安排等工作外呢,我还负责了前端模块,参与并编写了前端页面,在之前学过前端的基础上,本次参与前端的编写就比较容易了,我和另外一个伙伴我们选择了套用模板,在模板的基础上修改成我们想要的样子,这一点很重要,在这样一个很短的时间内,进行前端的编写,我们最好的选择就是进行模板的修改,但对于初学者来说,就算是…

  • SecureCRT背景配色

    SecureCRT背景配色SecureCRT背景配色

  • jquery.lazyload.js实现图片懒载入[通俗易懂]

    jquery.lazyload.js实现图片懒载入

  • Xml加载出错

    Xml加载出错在加载xml文件的时候xmlDoc.LoadXML()可能会出现这样的错误XmlException: Text node cannot appear in this state.Line1,position1. Mono.Xml2.XmlTextReader.ReadText(BooleannotWhitespace) Mono.Xml2.XmlTextReader.ReadConte…

  • 3.7v锂电池升压电路_电池升压

    3.7v锂电池升压电路_电池升压FS2114的PCB布局设计建议-基础篇开关电源的一个常见问题是“不稳定”的开关波形。有时,波形抖动很明显,可以听到从磁性元件发出噪声。如果问题与印刷电路板(PCB)布局有关,则很难确定原因。EMC也是很注重(PCB)布局,这就是为什么在开关电源设计的早期正确布局PCB至关重要的原因。其重要性不可夸大。原理图走线主要器件放置并联一个旁路电容0.1uFLX节点FB反馈电阻R1,R2COUT电容容易影响输出的布线功率组件的推荐焊盘图案GND功率地的PCB布线电感器选择概述FS2

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号