python英文文本情感分析_sentimentpy模块进行中文文本情感分类

2023-10-26

sentimentpy是我根据R语言的一个文本情感分析包sentiment进行开发的, 开发的初衷有:

R的sentiment已经被弃坑, 没人维护

Python比R更擅长文本处理

sentiment包不支持中文

而sentimentpy包有如下特点:

使用朴素贝叶斯分类算法

利用了情感词典

支持中英文

支持情绪分类(喜怒哀乐恶惊)

支持极性分类(positive/negtive/both)

正在开发的功能:

利用语料库训练神经网络进行分类

用到的词库

具体来说, 中英文的分类类别是不同的, 这受限于中英文使用了不同的情感词库, 英文的情感词库来自于R的sentiment库, 而中文的情感词库是大连理工大学信息检索研究室在林鸿飞教授标注的一个中文情感词库, 在这里有介绍: 传送门

中文情感类别(英文的参考R sentiment库)

具体参考下表, 我们把句子分类下面6个情感大类。

编号 情感大类 情感类 例词

1 乐 快乐(PA) 喜悦、欢喜、笑眯眯、欢天喜地

2 安心(PE) 踏实、宽心、定心丸、问心无愧

3 好 尊敬(PD) 恭敬、敬爱、毕恭毕敬、肃然起敬

4 赞扬(PH) 英俊、优秀、通情达理、实事求是

5 相信(PG) 信任、信赖、可靠、毋庸置疑

6 喜爱(PB) 倾慕、宝贝、一见钟情、爱不释手

7 祝愿(PK) 渴望、保佑、福寿绵长、万寿无疆

8 怒 愤怒(NA) 气愤、恼火、大发雷霆、七窍生烟

9 哀 悲伤(NB) 忧伤、悲苦、心如刀割、悲痛欲绝

10 失望(NJ) 憾事、绝望、灰心丧气、心灰意冷

11 疚(NH) 内疚、忏悔、过意不去、问心有愧

12 思(PF) 思念、相思、牵肠挂肚、朝思暮想

13 惧 慌(NI) 慌张、心慌、不知所措、手忙脚乱

14 恐惧(NC) 胆怯、害怕、担惊受怕、胆颤心惊

15 羞(NG) 害羞、害臊、面红耳赤、无地自容

16 恶 烦闷(NE) 憋闷、烦躁、心烦意乱、自寻烦恼

17 憎恶(ND) 反感、可耻、恨之入骨、深恶痛绝

18 贬责(NN) 呆板、虚荣、杂乱无章、心狠手辣

19 妒忌(NK) 眼红、吃醋、醋坛子、嫉贤妒能

20 怀疑(NL) 多心、生疑、将信将疑、疑神疑鬼

21 惊 惊奇(PC) 奇怪、奇迹、大吃一惊、瞠目结舌

中文极性

sentimentpy可以将句子分为四种极性: positive/negtive/neutral/both

英文可以分为三种极性: positive/negtive/neutral

中文分词

建议使用jieba2, 并加载情感词库以后进行分词, 这样可以尽量把句子按照词库中已有的词进行分词。

sentimentpy这个库已经包含了分词的功能。

下面是我的测试:1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41import unittest

from sentiment import sentiment

class Test(unittest.TestCase):

def test_chinese(self):

classifier = sentiment.Classifier('zh')

# 必须用空格分词

rtn = classifier.polarity('我 喜欢 这个 手机')

self.assertEqual(rtn['best_fit_cat'], 'positive')

rtn = classifier.polarity('我 今天 很 难过')

self.assertEqual(rtn['best_fit_cat'], 'neutral')

rtn = classifier.polarity('我 讨厌 你 你 滚开')

self.assertEqual(rtn['best_fit_cat'], 'negative')

rtn = classifier.emotion('我 喜欢 这个 手机')

self.assertEqual(rtn['best_fit_cat'], '好')

rtn = classifier.emotion('我 今天 很 难过')

self.assertEqual(rtn['best_fit_cat'], '哀')

rtn = classifier.emotion('我 讨厌 你 你 滚开')

self.assertEqual(rtn['best_fit_cat'], '恶')

def test_english(self):

classifier = sentiment.Classifier('en')

rtn = classifier.polarity('i love this cellphone')

self.assertEqual(rtn['best_fit_cat'], 'positive')

rtn = classifier.polarity('i am so sad today')

self.assertEqual(rtn['best_fit_cat'], 'negative')

rtn = classifier.polarity('i hate you fuck away')

self.assertEqual(rtn['best_fit_cat'], 'negative')

rtn = classifier.emotion('i love this cellphone')

self.assertEqual(rtn['best_fit_cat'], 'joy')

rtn = classifier.emotion('i am so sad today')

self.assertEqual(rtn['best_fit_cat'], 'sadness')

rtn = classifier.emotion('i hate you fuck away')

self.assertEqual(rtn['best_fit_cat'], 'anger')

if __name__ == '__main__':

unittest.main()

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python英文文本情感分析_sentimentpy模块进行中文文本情感分类 的相关文章

  • OLED透明屏技术:引领品牌营销的视觉革命

    在当今竞争激烈的市场中 品牌营销的成功与否关系到企业的生存和发展 而随着科技的不断进步 新的广告展示技术不断涌现 其中OLED透明屏技术以其独特的视觉效果和创新性的应用在品牌营销领域引起了广泛关注 那么 尼伽将详细介绍OLED透明屏技术以及
  • ROS学习第三天 ROS的通讯机制

    感谢3 1 常用API Autolabor ROS机器人入门课程 ROS理论与实践 零基础教程 第三节 ROS的通讯机制 这一节主要讲的是通讯机制 就像前面说的那样 ROS通过节点发布信息 节点订阅信息实现通讯 基本的通讯机制主要有三种 话
  • vue-router中的#

    vue工程搭建完成后 我们运行在浏览器中打开 会发现url中多了一个 符号 有 是使用URL hash模式的缘故 代表网页中的一个位置 右边的字符就是该位置的标识符 从 开始的部分就是URL的锚部分 vue router默认的是hash模式
  • 具备“记忆”功能的VBA目录选择器

    大家使用任意一款浏览器 例如 Chrome Edge 下载文件时 如果 另存为 对话框选择C Download 那么下次再次使用 另存为 功能 对话框默认显示C Download 而不是根目录 在VBA开发中调用目录选择器并不复杂 但是这个
  • JDBCUtils工具类及其使用

    JDBCUtils工具类及其使用 1 作用 用于连接数据库 关闭资源 减少每次的关闭连接 避免代码冗余 2 JDBCUtils的创建 定义相关属性 4个 因为只需要一份所以用static关键字 定义相关属性 4个 因为只需要一份所以用sta
  • useMemo模拟useCallback

    useMemo缓存结果 useCallback缓存函数 1 看一下useMemo和useCallback底层源码的区别 useMemo 源码实现 组件首次渲染时 useMemo 的源码实现 React 版本 16 13 1 react re
  • spring cloud使用JpaRepository,dao层无法注入容器,调试报空指针的解决思路

    公司岗位调整 我从一个安卓开发转后台开发 以前在其他公司也接触过后台 那时公司用的是ssm框架 不过安卓还是 主业务 后台业务也只是略而兼之 并未深研 想着公司这次给机会做后台 本着技多不压身 就欣然接受 此时已经2019年了 微服务方兴未
  • 算法笔记之GD,BGD,SGD

    在讨论GBDT前 先来看看什么是GD BGD和SGD GD Gradient Descent 梯度下降 求损失函数最小值 梯度下降 求损失函数最大值 梯度上升 假设线性模型 其中 是参数 损失函数为 那么每次GD的更新算法为 BGD Bat
  • UE4如何动态修改材质(材质参数集)

    UE4如何动态修改材质 材质参数集 UE4如何动态修改材质 一 Material Parameter collection是什么 二 使用步骤 1 创建材质参数集 2 创建参数 3 添加到材质 4 动态修改材质参数集 UE4如何动态修改材质
  • linux系统编程

    fcntl 改变文件属性 include
  • Rust 交叉编译:在Windows 10 64位系统编译 32位的Rust 库

    1 添加 x86编译链接器 rustup target add i686 pc windows msvc 如果没有相应的 x86 编译环境 执行x86的编译命令 会有截图找不到crate的错误 2 编译x86版本库 继续沿用 C 调用 Ru
  • 千锋老师回忆起Hadoop大数据时代

    在大数据领域 Hadoop是一个具有重要意义的技术框架 它为处理大规模数据集提供了可靠且高效的解决方案 本文将回顾千锋老师对于Hadoop大数据时代的追忆 并通过相关的源代码展示其强大的功能 Hadoop最著名的组件之一是Hadoop分布式
  • 五年的努力!年薪达40W,Java程序员奋斗史

    金九银十 面试季刚开始不久 前几天跟朋友在一起聚会的时候提了一个问题 说Java程序员年薪如何达到40W 技术水平需要达到什么程度 有人回答说这只能是大企业或者互联网企业工程师才能拿到 也许是的 小公司或者非互联网企业拿到40W的不太可能是
  • QT 串口的监控

    QSocketNotifier 用来监听系统文件操作 将操作转换为Qt事件进入系统的消息循环队列 并调用预先设置的事件接受函数 处理事件 一共存在3类事件 read write exception QSocketNotifier Read
  • Kafka日志清除

    25条消息 Kafka日志清除策略 鸭梨山大哎的博客 CSDN博客 kafka 日志删除策略 修改server properties The minimum age of a log file to be eligible for dele
  • Faceswap安装及使用(附图文介绍,简单易上手)

    Faceswap是github上面的一个项目 可以用于实现换脸 本章分为两节 分别介绍了faceswap具体的安装步骤以及使用方法 操作简单易上手 阅读完本文觉得有用的记得点个赞奥 谢谢大家 一 faceswap安装 1 打开faceswa
  • docker “no space left on device” 解决方案

    问题原因 出现此问题一般是 docker 根目录空间不足导致 解决方案 修改 Docker Root Dir 的值 指向一个更大空间的目录 1 查看docker磁盘使用情况 docker system df 2 查看docker挂载目录 d
  • 在ubantu下安装sublime

    1添加Sublime text 3软件包的软件源sudo add apt repository ppa webupd8team sublime text 32使用以下命令更新系统软件源sudo apt get update3使用以下命令安装
  • 五、Jvm调优

    Jvm调优调什么 这个疑问必须要有 当对一个技术或者系统调优的时候 我们一定要知道去调什么 这样有一个出发点 有一个目标 不能胡乱的调对吧 那么Jvm调优 主要调以下 1 减少Full GC 2 解决OOM 3 总的来说就是 使用较小的内存

随机推荐

  • 【JAVA与C#比较】语言选择

    JAVA与C 是当下使用率很高的高级语言中 最为相近的两门语言 在语言特性上非常相似 其差别比起其它流行的高级编程语言 例如c object c swift 也是最小的 在版本演进中 也存在相互借签 取长补短 java 语言是1996 年发
  • MyBatisPlus 分页查询

    首先要定义一个配置类 MybatisConfig 放在 config 类下 他的生效是通过拦截生效的 所以是要写拦截器的 这段拦截器的配置是固定的 CV 也可以 Configuration public class MybatisConfi
  • 卷积神经网络CNN原理——结合实例matlab实现

    程序及数据下载链接 https download csdn net download u010540396 10839936 程序及数据下载链接 https download csdn net download u010540396 108
  • INVALID_USER_SCODE问题的解决办法

    在用高德地图API的时候 还会遇见一个为题 就是总是提示 INVALID USER SCODE 当遇见这个问题的时候 一般的问题都是 注册key之后没有十分钟就开始使用这个key值了 另外一种情况就是注册的key值有问题 应该重新注册一个k
  • 使用STM32让示波器显示图片及播放动画思路的经验分享

    到手了一块某夕夕上一百三入手的STM32F407VE的开发板 一个字 香 把玩时发现了DAC这个看起来就很有意思的功能 软件输出了正弦波三角波之后突然想起了示波器的XY模式 刚好这个芯片有一个DAC两路通道 于是便折腾了一下用XY模式显示图
  • pgbackrest 简要使用说明

    测试环境 CentOS Linux release 7 4 1708 Core X64 PostgreSQL 10 1 Source pgbackrest pgbackrest release 1 27 tar gz 1 Test Simp
  • 5.1 activiti执行监听器ExecutionListener

    1 执行监听器的使用场景 1 1 人员动态分配 节点审批人员需要在流程运行过程中动态分配 当前任务节点完成的时候 指定需要指定下一个节点的处理人 比如 一个请假流程 a员工请假 需要指定下一步需要处理请假流程的领导 1 2 任务节点调取业务
  • MongoDB文档数据库

    一 引言 MongoDB 是一个开源的文档数据库 并是领先的NoSQL数据库 MongoDB 是由C 语言编写 通过本系列教程的讲解 使得学习者可以了解并掌握创建和部署高度可扩展和高性能的面向对象数据库MongoDB概念和理解 该系列教程是
  • 使用MATLAB做传热学分析及后处理——CFDTool 官方例程

    目录 前言 1 环境配置 2 问题背景 3 传热学例程 heat transfer3 最后 中国加油 武汉加油 前言 cfdtool 官网 https www cfdtool com 是一个MATLAB的扩展工具箱 既然看到这个CFD问题了
  • 消消乐游戏算法实现(三消乐)

    先上前端效果图 3消乐地图初始化的时候不允许有下面两种情况的发生 就是不允许3个 3个以上已经包含3个 所以只要判断3个就可以了 相同颜色的格子连在一起 下图是两种情况 细分分为6种情况 就是初始点为3个格子中的一个为一种情况 所以细分2
  • 多线程(五)线程的不安全原因及解决方案

    目录 一 什么是线程安全 二 线程不安全的原因 1 修改共享数据 2 原子性 3 内存可见性 4 指令重排序 三 解决线程安全方案 volatile 解决内存可见性和指令重排序 通过synchronized锁实现原子性操作 一 什么是线程安
  • SyntaxError: can‘t delete function call

    复习之前的python课件 抄代码的时候发现了一个问题 然后上网查 发现跟自己的情况好像不太符合 然后又看了一眼老师的课件 发现原来是自己无用了小括号的原因 因为那个counts是字典 它提取元素用的是方括号 不是小括号 改了之后就可以运行
  • 指针和数组笔试题解析【上篇】

    文章目录 1 前言 2 整型数组与指针 3 字符数组与指针 3 1 代码段 1 3 2 代码段 2 4 字符指针变量与数组 5 二维数组与指针 1 前言 数组 能够存放一组相同类型的元素 数组的大小取决于数组的元素个数和元素类型 指针 地址
  • linux安装enca

    简介 enca是Linux下的文件编码转换工具 1 查看是否安装enca 在命令行输入如下命令 若显示enca安装版本则表示已安装 enca version 2 安装enca 1 1 安装方式二 sudo命令安装 sudo apt get
  • Git极简入门

    Git极简入门 1 本地仓库 1 1工作流程 git本地操作的三个区域 Git Repository Git仓库 最终确定的文件保存到仓库 成为一个新的版本 并且对他人可见 暂存区 暂存已经修改的文件最后统一提交到git仓库中 工作区 Wo
  • Linux安装配置NFS服务器

    目录 NFS简介 安装NFS服务 网络环境配置 开发板挂载NFS 常见问题 NFS简介 NFS network file system 即网络文件系统 能使使用者访问网络上别处的文件就像在使用自己的计算机一样 我们可以在 Ubuntu 上制
  • 微信小程序报错“getLocation:fail the api need to be declared in the requiredPrivateInfos field in app.js...“

    解决微信小程序获取定位报错 上个礼拜在调试一个微信小程序的时候 在手机允许小程序获取定位 定位授权成功的情况下 发现安卓手机能获取定位 但是苹果手机获取不到定位 我就开始查阅资料 一 报错信息 报错信息是errMsg getLocation
  • 在外包做了3年测试,离职后却成功入职字节跳动.....

    最近换了份工作 当时和群里的朋友也聊过换工作的话题 他们都觉得这是一次非常冒险的行为 说我这是一次豪赌 成了会有更好的职业发展 没成可能就会出现两三年的发展断层 甚至影响职业生涯路径 一步错 步步错 我当时也仔细的考虑过了 的确有很大的风险
  • JAVA基础知识之文件读取详细解读

    欢迎访问个人博客 德鲁大叔撸代码 我们要把一个文件从外部读入程序中 大致的步骤如下 第一步 获取需要被读取的文件 第二步 构造一个字节输入流 用来读取文件 第三步 为了提高读写速度 需要把字节流转换成一个字符输入流 第四步 写文件 所以我们
  • python英文文本情感分析_sentimentpy模块进行中文文本情感分类

    sentimentpy是我根据R语言的一个文本情感分析包sentiment进行开发的 开发的初衷有 R的sentiment已经被弃坑 没人维护 Python比R更擅长文本处理 sentiment包不支持中文 而sentimentpy包有如下