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

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

相关推荐

  • idea2021.11.3永久激活【2021免费激活】

    (idea2021.11.3永久激活)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html…

  • java多线程(二):synchronize和锁「建议收藏」

    java多线程(二):synchronize和锁「建议收藏」一、多线程情况下的线程安全问题先理解一个概念:线程安全:多个线程访问同一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他操作,调用这个

  • 7k7k_leetcode 第一题

    7k7k_leetcode 第一题有 n 根长度互不相同的木棍,长度为从 1 到 n 的整数。请你将这些木棍排成一排,并满足从左侧 可以看到 恰好 k 根木棍。从左侧 可以看到 木棍的前提是这个木棍的 左侧 不存在比它 更长的 木棍。例如,如果木棍排列为 [1,3,2,5,4] ,那么从左侧可以看到的就是长度分别为 1、3 、5 的木棍。给你 n 和 k ,返回符合题目要求的排列 数目 。由于答案可能很大,请返回对 109 + 7 取余 的结果。示例 1:输入:n = 3, k = 2输出:3解释:[1,3,2], [2,3,

  • PHP实现打印出库单,有没有实现过?

    PHP实现打印出库单,有没有实现过?

    2021年10月28日
  • Spring Boot Vue全栈开发实战_java web前端

    Spring Boot Vue全栈开发实战_java web前端构建SpringBoot项目并通过登录DEMO打通前后端的联系,为下一步开发打下基础。

    2022年10月12日
  • Android开发入门案例「建议收藏」

    Android开发入门案例「建议收藏」初次接触安卓,做出来一个还能看的案例,类似小说阅读的APP,将源码记录一下一、案例效果1.登录界面2.注册界面3.用户信息显示界面4.小说阅读界面二、安卓代码1.AndroidManifest.xml<?xmlversion=”1.0″encoding=”utf-8″?><manifestxmlns:android=”http://schemas….

发表回复

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

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