失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python 多分类情感词典_情感分类(sentiment classification)推荐使用什么算法和软件包?...

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

时间:2022-12-10 03:45:11

相关推荐

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

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

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

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

基于规则的情感分析

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

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

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

其中

分别表示正向词和负向词的个数,w表示程度副词的权重,

分别表示正向词和负向词的权重,

分别表示上下文是否有否定词出现。

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

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

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

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

的后验概率。那么对于每个分类的概率如何计算呢?贝叶斯公式为

,那么在情感分类中,贝叶斯定理认为,在已知文本中包含的所有词(不含停用词)的概率和每种分类中单词出现的概率以及得知每种分类的概率的情况下可以计算出文档属于分类c的概率,即:

其中c表示文档的分类,

表示文本中的词,

表示文档属于分类c的概率,

表示词

出现的概率,

表示词

在分类c中出现的概率。

那么上述概率应该如何计算呢:分类c的概率P(c)=

出现的概率

=

在分类c中出现的概率

=

需要注意的是我们在计算词频的时候需要去除停用词,如果和领域相关,可以考虑对领域相关的词增加权重。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已经做了很好地集成,只要将文本提取的向量特征读取进去就可以啦~

如果觉得《python 多分类情感词典_情感分类(sentiment classification)推荐使用什么算法和软件包?...》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。