python 多分类情感词典_情感分类(sentiment classification)推荐使用什么算法和软件包?…

情感分类是对带有感情色彩的主观性文本进行分析推理的过程,在这个过程中我们需要分析出说话人的态度和观点,即他的态度是正面还是反面。情感分类按照其分析的粒度可以分为篇章级,句子级和短语级。篇章级情感分类是指对篇章级别的句子进行情感分类,分类过程中可能需要涉及到句子之间的起承转合,句子级的情感分类是是对句子进行情感分类,短语级的情感分类是指对短语进行情感分类,例如“相机的画质还不错但是电池的续航能力比较差”中,用户对于画质的评价就比较偏正向,对电池的评价就比较偏负向。

情感分析的一般方法也主要分为三种,一种是基于规则的情感分类,这种分类方法主要是依靠情感词典来对文本进行分析;一种是基于机器学习方法的情感分类,还有一种是基于深度学习的情感分类。

这里我们首先介绍前两种方法:

基于规则的情感分析

基于规则的情感分析主要是依赖情感词典,在实际使用中通常被分为四类词:情感词,程度副词,否定词和领域词。利用情感词典和语法分析文本语句的语句结构和情感倾向词,然后简单的利用统计的方式进行分类。一种常见的基于规则的情感分析方式为:定义情感词典,如情感词,程度副词,否定词和领域词等

统计一句话中正向情感词,负向情感词,程度副词,否定词等出现频率

根据上述各个类型的词计算句子的情感得分,计算方式为:

equationex=N%5Ep%2CN%5En分别表示正向词和负向词的个数,w表示程度副词的权重,

equationex=I_p%2CI_n分别表示上下文是否有否定词出现。

本部分可以采用python自主实现。

基于传统的机器学习的情感分析

基于传统的机器学习方法的情感分析一般是提取文本中的特征例如词频,tf-idf,信息增益,chi统计量,文档频率等特征进行训练,然后对新的文本提取特征进行预测。常用的机器学习方法有朴素贝叶斯方法,SVM(支持向量机),GDBT,逻辑斯的回归,K近邻等。下面我们将分别简单介绍这些方法是如何进行情感分析的。朴素贝叶斯方法

朴素贝叶斯方法计算一个文档的分类的概率是计算该文档在所有的情感分类中最可能的类别

equationex=P%28A%7CB%29%3D%5Cfrac%7BP%28A%29P%28B%7CA%29%7D%7BP%28B%29%7D,那么在情感分类中,贝叶斯定理认为,在已知文本中包含的所有词(不含停用词)的概率和每种分类中单词出现的概率以及得知每种分类的概率的情况下可以计算出文档属于分类c的概率,即:

equationex=w_i表示文本中的词,

equationex=P%28w_i%29表示词

equationex=P%28w_i%7Cc%29表示词

equationex=%5Cfrac%7B%E5%88%86%E7%B1%BBc%E7%9A%84%E6%96%87%E6%A1%A3%E6%95%B0%E9%87%8F%7D%7B%E6%80%BB%E7%9A%84%E6%96%87%E6%A1%A3%E6%95%B0%E9%87%8F%7D

equationex=P%28w_i%29=

equationex=w_i在分类c中出现的概率

equationex=%5Cfrac%7B%24w_i%24%E5%9C%A8%E5%88%86%E7%B1%BBc%E4%B8%AD%E7%9A%84%E8%AF%8D%E9%A2%91%7D%7B%E5%88%86%E7%B1%BBc%E4%B8%AD%E7%9A%84%E8%AF%8D%E8%AF%AD%E6%80%BB%E6%95%B0%7D

需要注意的是我们在计算词频的时候需要去除停用词,如果和领域相关,可以考虑对领域相关的词增加权重。SVM(支持向量机),GDBT,Logistic Regression

SVM,GDBT,Logistic Regression进行情感分类时需要将文本映射成向量,然后进行训练。将文本映射成向量可以采用词袋模型(bag of words),tf-idf vec,word2vec,doc2vec进行转换。

但是在使用词袋模型或者tf-idf vec来表示文档的时候需要注意如果训练文本中文档过长可能会出现矩阵过于稀疏的情况,当出现这种情况可以考虑对矩阵进行压缩,常见的压缩方法有删除部分行或者列,当然这对我们自然文本来说并不合适,因为每一列都带边不同的词语。因此我们建议采用PCA或kSVD的方式进行压缩。K近邻

K近邻算法和上述算法类似,也需要将文本映射成向量然后选择在向量空间中距离目标最近的K个元素,选择他们所属类别最多的类别。

基于以上算法,对于文本转成向量的部分可以采用sklearn,word2vec, doc2vec等成熟的软件包进行实现。SVM,GDBT等算法sklearn已经做了很好地集成,只要将文本提取的向量特征读取进去就可以啦~

文章知识点与官方知识档案匹配,可进一步学习相关知识算法技能树首页概览33966 人正在系统学习中 相关资源:下拉通刷词软件v3.1.zip-其它代码类资源-CSDN文库

来源:我有一只小喵咭

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月7日
下一篇 2021年1月7日

相关推荐