一个简单的情感识别系统的实现

情感识别,主要就是正和负的识别,偶尔也有中性。类别比较少,所以相对于广义的文本分类来说,看起来要简单很多,特别是很多词汇都有很强的倾向性。当然这是针对某一特定的领域。一般的话,情感识别主要用于商品评论,因为不同的商品会有不同的术语之类的专门的某一词汇,所以如果将某一领域的数据集上学到的模型应用在另一个领域的话,可能效果会不很理想。

Stephan Raaijmakers等的这篇文章[1]提出的是一种基于阀值投票的方法,即使用独立的分类器去分各个类别的数据,最后使用新领域的数据对分类结果进行投票校验。这个方法只要使用新数据的一小部分有标即可。大概是下面这张图所描述的意思。虽然这张图是下面的paper里面的。

Shoushan Liand Chengqing Zong的这篇文章[2]同样是对多领域数据的分类研究,他们提出的方法是把特征层面和分类器层面进行融合。此文首先是批判了上图所描述的独立分类的不足,然后提出了自己的新的方法,即在分类的同时进行分类器间的融合,具体步骤如下图:

按照我的理解,相当于在初次分类结束后,进行交叉验证。

John Blitzer等人的这篇文章[3]使用的是一种叫做结构一致学习 (SCL) 算法。他们不仅用频率,也用互信息来选取关键特征,然后对目标领域,计算与源领域之间的距离,用距离的大小来分辨目标域属于哪一个领域,最后再进行分类。

Chenghua Lin等的这篇文章[4]对三种与贝叶斯关系紧密的模型在无监督的情感识别方面进行了研究。这三个模型分别是latent sentiment model隐藏情感模型 (LSM), the joint sentiment topic 连接情感话题模型(JST) model, and the Reverse-JST model逆JST模型。

在看到以上paper的之前,本人还确实不知道情感倾向识别会有这么多的人在用不同的模型进行研究,也说明这个领域有难度。

下面我的实现就没有那么高端洋气了,我使用的是一种叫做感知机(Perceptron)的方法,也叫做单层神经网络。感知机使用特征向量来表示网络,特征向量即可看成是矩阵,通过把输入的矩阵映射到一个特殊的目标函数上,通过判断目标函数的输出值来确定类别。函数表示如下:

具体的实现是:将输入的语料转换成向量,使用上面的公式进行计算,即算是学习到了一个模型,多次迭代之后,用测试数据对这些学习到的模型进行分类测试,选择正确率最高的最为以后分类的标准模型。

具体的实现代码可看:https://github.com/laozhaokun/sentimentclassify

这里是利用学习到的模型实现的在线分类的源码:https://github.com/laozhaokun/sentimentclass

具体效果可看:http://sentimentclass.sinaapp.com/

Reference

[1] Stephan Raaijmakersand Wessel Kraaij , TNO ICT, Delft, The Netherlands , Classifier Calibration for Multi-Domain Sentiment Classification

[2] Shoushan Liand Chengqing Zong, National Laboratory of Pattern Recognition Institute of Automation, Chinese Academy of Sciences, Beijing 100190, China

[3] John Blitzer Mark Dredze Fernando Pereira , Biographies,Bollywood, Boom-boxes and Blenders: Domain Adaptation for SentimentClassification

[4] Chenghua Lin,Yulan He,Richard Everson, A Comparative Study of Bayesian Models for Unsupervised Sentiment

Detection

一个简单的情感识别系统的实现

时间: 2024-10-02 01:42:51

一个简单的情感识别系统的实现的相关文章

php使用face++实现一个简单的人脸识别系统

流程 流程可以分为两部分,一部分是训练,一部分是测试. 关于如何使用face++提供的API可以看http://blog.csdn.net/jianjian1992/article/details/46640483 代码可在http://download.csdn.net/detail/jianjian1992/8866839免费下载. 起始界面 界面 如下所示,将使用说明进行了介绍,因为是初次使用,很多不太会,所以界面弄得比较简单,以能使用为第一目标. 实现细节 index.html是欢迎界面

TCP学习之建立一个简单的客户/服务器系统--回射系统

TCP学习之建立一个简单的客户/服务器系统--回射系统 相关的资料可以参考Unix网络编程,这个只是修改版,不需要依赖任何文件,可以独立编译通过,而且是在两台不同的主机上进行的. fggets和fputs这两个函数来自标准I/O函数库,writen和readline见my_unp.h头文件 //my_unp.h #include<stdarg.h> #include<syslog.h> #include<stdio.h> #include<netinet/in.h

【Unity Shaders】Reflecting Your World —— 在Unity3D中创建一个简单的动态Cubemap系统

本系列主要参考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同时会加上一点个人理解或拓展. 这里是本书所有的插图.这里是本书所需的代码和资源(当然你也可以从官网下载). ========================================== 分割线 ========================================== 写在前面 我们已经学了很多关于反射的内容,但是我们现在的反射并不能实时反射,即当反射物体移动时它们不

【sehll学习】linux运维一个简单shell脚本监控系统内存

学习shell脚本入门后,慢慢要尝试编写一些脚本练练手,在这先简单的学习写个系统内存的监控. 1.首先先要确定一下截取一下需要关注的内存使用值,可使用free 命令来操作 free -m 显示 一般在监控内存是我们都是截取 第三行(-/+ buffers/cache)的值.确定后可以使用管道线和grep命令来获取这个的值. free -m | grep - | awk  '{print $4}' 获取到他的值为  858 当中 grep -  就是匹配一下要选取的内容,不太熟悉的可以学习一下gr

一个简单的多用户交互系统的实现

需求如下:创建管理员.教师.学员这三个视图,实现一个简单的课程操作交互 具体实现如下: Homework:│ ├─bin│──────start.py #程序的入口│├─conf│──────config.py #程序用到的文件的路径以及其他关系映射信息│├─core #│──────logger.py#记录日志的逻辑│──────main.py#实现三类用户的登陆逻辑,并利用反射调用不同类的具体方法│──────manager.py#实现了管理员类的各个功能│──────my_pickle.p

使用TensorFlow 来实现一个简单的验证码识别过程

本文我们来用 TensorFlow 来实现一个深度学习模型,用来实现验证码识别的过程,这里识别的验证码是图形验证码,首先我们会用标注好的数据来训练一个模型,然后再用模型来实现这个验证码的识别. 1.验证码准备 这里我们使用 python 的 captcha 库来生成即可,这个库默认是没有安装的,所以这里我们需要先安装这个库,另外我们还需要安装 pillow 库 安装好之后,我们就可以用如下代码来生成一个简单的图形验证码 可以看到图中的文字正是我们所定义的内容,这样我们就可以得到一张图片和其对应的

vue_cli下开发一个简单的模块权限系统之建立登录页面并且实现在浏览器输入地址出现内容

新建一个Login.vue(登录页面,先把Hello.vue的内容复制过来即可) 然后我们打开router下面的index.js,第一个箭头:(引入vue路由)第二个箭头(引入我们新建的Login.vue页面)第三个箭头(我们要使用这个路由)第四个箭头(配置路由,path表示在浏览器中输入的路由名称) 然后我们在浏览器中输入这个login页面的地址,就会出来内容了,这样一个简单的页面就建成了 因为我们要使用semantic-ui,所以我们安装一下semantic-ui,进入到命令行界面输入npm

用数据库做一个简单的实验室安排系统

要求如下: 为<算法与数据结构设计>课程开发实验室安排系统.该课程开课时间为2周,在两周内需要上6次课,每次连续4个学时. 每天上午下午可各安排一次课,周末不安排上课.该系统包含两个程序:管理员程序和教师申请程序: 在教师申请界面中: 教师录入所授课班级ID.班级人数.不希望的时间安排(例如不安排周一上午和周四下午):信息提交后将被存储到后台数据库中. 在管理员界面中: 管理员录入现有的实验室信息,包括实验室地址.实验室所能容纳学生数量.管理员可以选择"课表生成",实验室安

【人工智能】用Python实现一个简单的人脸识别,原来我和这个明星如此相似

近几年来,兴起了一股人工智能热潮,让人们见到了AI的能力和强大,比如图像识别,语音识别,机器翻译,无人驾驶等等.总体来说,AI的门槛还是比较高,不仅要学会使用框架实现,更重要的是,需要有一定的数学基础,如线性代数,矩阵,微积分等. 幸庆的是,国内外许多大神都已经给我们造好"轮子",我们可以直接来使用某些模型.今天就和大家交流下如何实现一个简易版的人脸对比,非常有趣!我们都知道Python容易学,但是就是不知道如何去学,去×××资料,机器学习,人工智能,深度学习,都在这学习,小编推荐一个