文本情感分析
来源:互联网 发布:java为什么垃圾 编辑:程序博客网 时间:2024/04/27 00:56
给出一系列文本,判定它们的情感倾向性(positive or negative)。
一般都会采用机器学习的算法,要求有训练数据和测试数据。处理训练数据得到一个model,使用它来处理测试数据,得出每个测试样例的结果。这里有几个细节需要注意:测试数据和训练数据尽量要是同一个主题,不要相差太远,不然会降低训练处的model的适用效果;训练数据中正例和负例的比例要尽可能平衡。
主要的处理过程为:文本预处理,文本分词和提取特征,训练model,应用至测试数据并调整参数以提高效果,效果评测。
首先说一下编码问题。中文采用utf-8或Unicode编码都是OK的,在进行处理时,需要将文本数据的TXT文本编码格式和编程代码的编码格式调整统一,或者采用utf-8或者采用Unicode编码。这两种编码是有所差异的,并不等同。编程语言推荐使用Python 3.x 或者 Java,二者对中文编码的支持比较好。
文本预处理包括文本采集,标注情感倾向性,划分训练数据和测试数据,删除不规范和错误语句。
文本分词和特征提取。我在这里先进行了中文分词,分词工具有很多,推荐 jieba 分词工具,支持多种编程语言,支持自定义词典,还有汉语言处理包HanLP也很强大,不过仅限于Java的接口。显然,决定文本的情感倾向性的词语并非语句中的所有词,只是一些情感类词汇,包括一些情感类形容词语,带有感情色彩的名词,程度和否定副词。在这里对训练数据进行处理,最终将文本情感倾向性反映到词语上。。。对文本分词之后,统计词语出现的词频,统计信息如下表。
(注:N=A+B+C+D)
然后就是关于词语和倾向性之间关系的表示,常用的方法有很多,比如卡方统计量,TF-IDF方法等,这里说互信息MI,以下是计算公式,
MI(t,c) =log_10〖(p(t,c))/p(t)p(c)〗=log_10〖AN/(A+B)(A+C)〗
由于是平衡的训练数据,所以可以转化为:
对每一个词语都可以计算其互信息值,用于对测试集的分类。
对测试数据的处理。对测试文本进行分词处理,提取情感类词汇,将得到一系列情感词汇,每个都有自己的MI值,以一定的权重进行求和,就得到了该文本的情感倾向性。
最后设置一个合适的阈值,进行分类,并不断调整阈值,得到最佳效果。
- 文本分析--情感分析
- 文本情感分析
- 文本情感分析
- 互联网文本情感分析
- 【nlp】文本情感分析
- snownlp文本情感分析使用
- 文本情感分析(一)
- TensorFlow RNN 文本情感分析
- Python 文本挖掘:使用情感词典进行情感分析
- 基于情感字典的文本情感极性分析
- 干货:完全基于情感词典的文本情感分析
- 微博文本情感分析-开篇
- R文本情感分析(3)
- 【R语言】文本挖掘-情感分析
- R文本挖掘之五情感分析
- CNN情感分析(文本分类)
- lstm 做 文本的情感分析
- 神经网络之文本情感分析(一)
- 【小松教你手游开发】【unity实用技能】控制renderQueue解决NGUI与Unity3D物体渲染顺序问题
- Mac下配置Android NDK
- java for循环的几种写法
- asp.net mvc 批量保存 服务端获取客户端传进的数组参数的处理方法
- 某医药公司北亚数据恢复报告书
- 文本情感分析
- 基与基础08:用函数玩玩指针
- 百度地图API缩放级别和比例尺记录
- wamp和Eclipse搭建PHP环境
- iOS个人整理11-UIControl与子类:UIScrollView滚动视图
- Xcode7常见编译错误以及解决方法汇总(持续补充)
- LightOJ 1012 (简单dfs)
- Pop到之前的任意界面
- postgres学习笔记