背景技术
现有的文本分类特征选择和验证方案在内容领域分类上已经有很好的效果,但应用在情感分析领域时具有以下的问题:
1、针对通用的适用场景,对情感分析这一业务领域不够深入,尤其是在互联网上情感信息存在明显的非平衡语料分布,人工构造情感分析语料集时容易错误分类等问题,现有算法对这两个问题的考虑普遍不足;
2、针对不同特征提取算法的通用验证比较基础,缺乏实际应用上的最佳实践设计。比如常用的验证方法中TFIDF关注词频,但对出现频度不高的关键词容易忽视;而相对的信息增益考虑了特征出现与否,但由于不考虑词频,对低频词的作用又容易夸大。
同时,现有的情感分析技术方案具有以下问题:
1、大部分现有中文情感分析算法的准确率偏低,缺少能够指导算法改进的特征验证或者特征选择方案,比如根据第五届中文倾向性分析评测研讨会COAE2013的结果,正确率普遍在60%左右;
2、文本信息由特征向量构成表示,但由于缺乏公认的领域最佳实践,情感分析的建模和算法也是五花八门,因此对情感分析特征向量的识别验证方案也需要考虑这些算法和模型各自的特点,比如常用的词袋,n-gram,word2vec等多种模型等。
综上,本发明旨在解决文本情感分析领域的特征验证问题中的特征向量集输入处理步骤,即得出特征是否适用于情感分析这一结论的初步判断,并生成有用信息用于后续处理。
发明内容
为了克服现有技术的上述缺点,本发明提供了一种文本情感分析特征验证的前置处理方法。
本发明解决其技术问题所采用的技术方案是:一种文本情感分析特征验证的前置处理方法,包括如下步骤:
步骤一、对原始训练集的预处理得到预处理信息:
S1、确定原始训练集的概要,并输出结果sample_struct,包括:样本总体数量参数sample_size、情感分类的分布参数sample_dist和文本信息分布内容参数sample_text_info;
S2、输入待验证的特征向量集,确定原特征向量集的概要,并输出结果vector_struct,包括:多标号参数vector_multi、硬性柔性参数vector_prop和特征向量的维度参数vector_dimen;
S3、对原始数据进行扩充,并输出结果addtion_sets:包括:
(1)若特征向量的维度参数vector_dimen是低维的且不包含词频信息,则构建基于词袋模型的特征向量,对低维度的特征向量进行补充,得到词频信息补充结果tf_addition_set;
(2)若情感分类的分布参数sample_dist分布不均衡,则对训练集进行均衡化处理,得到均衡化处理结果even_addition_set;
S4、构造出整合后的预处理信息,包括:原始特征向量集origin_set、追加特征向量集addtion_sets、特征向量集属性vector_struct、训练集属性sample_struct;
步骤二、对预处理信息进行特征验证和特征选择:
S1、对于原始特征向量集:根据sample_size值和vector_dimen值,在同时进行基于交叉验证做判断标准的特征选择和基于bootstrap来验证分类准确率两种处理之后,对处理结果乘以不同的权重;
S2、对于参考向量集:逐个特征向量集采用通用的InfoGain选择出代表性的特征项;采用类bagging算法构建向量集,对向量集中的每个向量通过多数投票的方式确定理论推算的分类值,再通过向量集的推算分类值与训练集的实际分类值的差距获得训练集信息。
与现有技术相比,本发明的积极效果是:本发明从训练集和特征向量两个方面着手生成分析信息,既保障了评估结论的信息丰富程度,同时又有助于提高整个情感分析流程的准确度。本发明还具备良好的通用性和可扩展性,对各种不同建模和实现的情感分析算法都能发挥良好效果,具体表现如下:
1、将训练集和原始特征向量集的数据属性单独提取出;
2、整合多种算法生成作为参照对比的特征向量集,并保留扩展能力;
3、将情感词频信息和TFIDF词频信息整合后追加到原始特征中;
4、修正非均衡训练集的情感分类分布;
5、对原始情感特征向量集结合特征选择和假设检验算法进行深度分析;
6、对原始情感分析算法进行逐特征删除然后进行卡方检验作对比验证;
7、对多参考特征向量集抽取模型作为广度分析的基础。
具体实施方式
一种文本情感分析特征验证的前置处理方法,包括如下步骤:
1.对原始训练集的预处理得到预处理信息:
如图1所示,本步骤包括如下具体内容:
1.1.对原始训练集进行概要分析,输出结果记为sample_struct:
(1)判断样本总体数量是否够大:将判断结果用参数sample_size表示,对于情感分析样本,样本够大表示各有效分类的不重复样本数在1000以上。
(2)判断情感分类的分布是否均衡:将判断结果用参数sample_dist表示,其中包括不同分类的样本数量,如果不同分类的样本个数相差不大,则均衡;否则不均衡。
(3)获得文本信息分布内容,用参数sample_text_info表示,包括:字数、句数和段数;
概要分析的结果会体现在整个流程的输出中,在后续处理中发挥输入参数的作用。
1.2.输入待验证的特征向量集并判断,输出结果记为vector_struct:
(1)是多标号还是单标号,即除了情感特征外,是否包含其他分类信息,记为参数vector_multi;
(2)分析结果是硬性还是柔性,即分析结果是否由多项情感值的取值概率构成,记为参数vector_prop;
(3)特征向量的维度(向量个数)是否够高(向量个数大于500或者大于样本个数的20%则维度高),是否包含词频信息,记为参数vector_dimen。
1.3.数据扩充,输出结果记为addtion_sets
本步骤从多个方面对原始数据进行扩充,互为参照,从而提供算法调整方向的综合考量依据。
1.3.1.词频信息补充,处理结果记为tf_addition_set。根据特征向量的维度vector_dimen,若特征向量集是低维的且不包含词频信息,则需要构建基于词袋模型的特征向量,从而允许对低维度的特征向量进行补充,主要包括以下训练集处理方式:
1)基于情感词典生成词袋特征向量,每项特征值是词频与情感值之积:
2)基于TFIDF提取出的词典生成词袋特征向量:
添加的新特征需要使用加权平均KL散度进行降维处理。
本步骤通过进行向量集补充,确保词信息在情感分析中被考虑到,并能结合经验性的情感词典和通用的词频词典两方面的信息优势,同时保持两种信息的独立性。
1.3.2.训练集均衡化,处理结果记为even_addition_set。根据情感分类的分布sample_dist,对于训练集中情感分类分布不均的情况,需要通过重复选取偏少类型或者减少偏多类型的方式进行均衡化处理,之后重新按照给定的情感分析算法生成参考向量集。
本步骤通过对比均衡与非均衡测试集的处理结果,提供后续调整的依据。
1.3.3.模型中保留扩展空间,允许自行添加生成附加向量集的方案,输出
为custom_addition_set。
1.4.构造出整合后的预处理信息,主要包括:
原始特征向量集origin_set
追加特征向量集addtion_sets;
特征向量集属性vector_struct;
训练集属性sample_struct;
构造好预处理信息后,开始进行特征验证和选择的流程,进入特征选择和特征验证;
2.对预处理信息进行特征验证和特征选择:
如图2所示,本步骤包括如下具体内容:
2.1.输入预处理信息后,需要从原始向量集和参考向量集两个方向上进行处理,分别采用深度优先和广度优先的基本思路。
2.1.1.对于原始特征向量集信息,重点关注各个特征反应分类准确率的可靠度
对原始特征向量集进行深度分析时,需要保证对大样本和小样本的综合考量,同时对原始向量集的特征进行较深入的分析。因此,需要根据sample_size值和vector_dimen值,在同时进行了以下两种处理之后,对结果乘以不同的权重:
2.1.1.1.基于交叉验证做判断标准的特征选择,对大规模样本具有优势,特征选择算法可自行指定,建议使用InfoGain和DF算法相结合的方式,同时关注词频信息和词是否存在的影响这两方面。
2.1.1.2.基于bootstrap来验证分类准确率:用于对比的参考向量集通过修改原始算法进行逐特征删减,采用卡方检验判断生成的分类结果之间是否存在显著性差异,从而判断单特征项的可用性。卡方检验的假设是:在进行了特征改动后,判断为不同情感分类的样本数量是否发生了显著变化。该方法重点用于低维度的特征上,对于小样本具有更高可用性。
采用非参数的卡方检验可规避情感信息分布不规律的情况,同时对每个特征的细致判断能充分满足深度分析的需求。
2.1.2.对于参考向量集的处理,主要是不同集合之间的对比,采用广度优先的处理方式,具有良好的通用性:
2.1.2.1.逐个特征向量集采用通用的InfoGain选择出代表性的特征项;
2.1.2.2.类bagging算法是指:设向量集为下标从1到n,则向量集为D1到Dn,则每个向量集中的元素都对应于原始训练集中的一项,设原始训练集共m项,第i项对应的分类为Ci,在向量集Dj的分类为Cij,则可以构建如下向量集
(1,C11,C12…C1j…C1n,C1),
…
(i,Ci1…Cij…Cin,Ci),
…
(m,Cm1…Cmj…Cmn,Cm)
之后,对该向量集中的每个向量,可以通过多数投票的方式确定理论推算的分类值,再通过向量集的推算分类值与训练集的实际分类值的差距可获得多种信息,包括训练集中对应条目是否误分等。
本步骤确立了对训练集和多个向量集信息的综合构造方式,通用而直观,便于运算。最后,将推导出的信息进行简单汇总,后续可以用更具针对性的策略加以处理。