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

中文情感词典的构建与使用_文本情感识别首先,国外英文的情感分析已经取得了很好的效果,得益于英文单词自身分析的便捷性与英文大量的数据集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实现互信息和左右熵的新词发现

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 数据库中间件简介_数据库中间件还用吗

    数据库中间件简介_数据库中间件还用吗数据库中间件可以简化对读写分离以及分库分表的操作,并隐藏底层实现细节,可以像操作单库单表那样操作多库多表,主流的设计方案主要有两种:1、服务端代理:需要独立部署一个代理服务,该代理服务后面管理多个数据库实例,在应用中通过一个数据源与该代理服务器建立连接,由该代理去操作底层数据库,并返回相应结果。优点是支持多语言,对业务透明,缺点是实现复杂,实现难度大,同时代理需要确保自身高可用2、客户端代理:在连接池或数据库驱动上进行一层封装,内部与不同的数据库建立连接,并对SQL…

    2025年8月5日
    6
  • php sigpipe,Python的SIGPIPE信号「建议收藏」

    php sigpipe,Python的SIGPIPE信号「建议收藏」Haveyoueverseenasocket.error:[Errno32]BrokenpipemessagewhenrunningaPythonWebserverandwonderedwhatthatmeans?Theruleisthatwhenaprocesstriestowritetoasocketthathasalre…

    2022年5月30日
    30
  • java与python-如何对比Python和Java,只需三分钟告诉你!

    java与python-如何对比Python和Java,只需三分钟告诉你!原标题:如何对比Python和Java,只需三分钟告诉你!Java和Python两门语言都是目前非常热门的语言,可谓北乔峰南慕容,二者不分上下,棋逢对手。但是对于初学者来说,非常困惑,因为时间和精力有限,上手必须要先学一门,到底选那个好呢,今天3分钟带你透彻了解。1.运行速度java是静态语言静态编译的,速度上要比Python快的很多,而Python动态类型语言,一边执行一边编译,速度要上慢一些…

    2022年7月7日
    29
  • esxi安装ghost win7_【教程】硬盘下Ghost 系统安装教程

    esxi安装ghost win7_【教程】硬盘下Ghost 系统安装教程使用本方法可在没有光驱、光盘、启动U盘等任何系统安装设备的情况下安装Ghost版XP、Win7、Win8/8.1、Win1032位或64位系统!(原版系统不适用)操作步骤:注意:本安装方法适用于你的电脑能正常启动至桌面,或能启动系统的安全模式,也就是说不管原电脑的系统有任何问题,只要能进桌面,就能重装系统!(EFI+GPT除外)(1)请提前下载GHOST备份还原工具(下称硬盘安装器)与系统GHO…

    2022年6月25日
    157
  • Java 动静分离_如何做前后端动静分离

    Java 动静分离_如何做前后端动静分离我们的ERP系统就是前后端完全分离,毫无关联。后端用的是改造的Laravel框架,将业务拆分、路由拆分,来分离后端复杂的权限验证,同时对外依旧是简单明确的RESTfulAPI。前端采用Vue.js+Bootstrap构建。补充说明题主在问这个问题之前,有必要对HTTP协议有一定的了解,这样你就不会在一些细枝末节无限纠结。因为本质上前后端的区别就在于一个是请求方、一个是响应…

    2022年6月1日
    35
  • 如何用决策树模型做数据分析报告_决策树实例

    如何用决策树模型做数据分析报告_决策树实例什么是决策树?决策树模型本质是一颗由多个判断节点组成的树。在树的每个节点做参数判断,进而在树的最末枝(叶结点)能够对所关心变量的取值作出最佳判断。通常,一棵决策树包含一个根结点,若干内…

    2022年8月30日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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