基于动态阈值和多分类器的文本情感分析方法与流程

文档序号:16134651发布日期:2018-12-01 00:47阅读:1539来源:国知局

本发明属于基于半监督学习的文本分类技术领域,具体涉及一种基于动态阈值和多分类器的文本情感分析方法。

背景技术

随着社交网络的迅速发展,越来越多的人倾向于在线上平台发表自己的意见和看法,比如目前流行的微博、微信朋友圈、豆瓣网、知乎等等。为了更好地理解和利用这些评论,针对社交媒体用户评论的情感分析已经成为当下的研究热点。这类情感分析可以应用到不同的场景,有助于各部门进行网络决策、金融预测、政策制定和舆情分析等等。比如,豆瓣用户可以根据其他用户对某一电影的影评,分析其所蕴含的情感极性,来判断是否选择观看该影片,为人们的日常生活带来便利。

目前,文本情感分析的主要方法是基于机器(深度)学习的有监督学习。这类方法需要有大量带情感标签的数据的支持,但在实际中这类数据的获取往往受到挑战。一方面,因为情感的标注需要制定相应的专家规则,并手动人工标注,在时间和人力财力上受到局限。另一方面,网络变化日新月异,网络信息爆炸式增长,有情感标注的数据很难直接获取,而一些没有情感标注的数据却很容易更新和获取。

为了解决情感标签不足的问题,相继提出了半监督学习和无监督学习。典型的无监督学习是基于情感词典的方法,但网络文化日新月异,词语更新速度极快,很难获取到合适的、实时更新的情感词库。另一类无监督学习是基于聚类思想的方法,但这种方法往往只能将不同情感的文本加以分类,但无法获取具体的情感类型。因此,基于半监督学习的文本情感分析方法是目前最值得研究的一类方法,本文据此提出了一种基于动态阈值和多分类器的情感分析方法,进一步提高情感分析的准确率。



技术实现要素:

本发明所要解决的技术问题是:提供一种更加准确的文本情感分析方法,在部分已知情感的文本数据基础上训练一个合理的分类器,利用该分类器对测试集文本进行情感预测,试图使得到的预测准确率最高。为实现上述目的,本发明采取以下技术方案:

一种基于动态阈值和多分类器的半监督文本情感分析方法,包括下列步骤:

步骤1:采社交媒体用户线上评论数据;

步骤2:根据情感的不同,对其中部分数据进行情感标注并记为l,未标注情感的数据记为u;

步骤3:对数据进行分词预处理;

步骤4:用word2vec工具将词转化为数值型向量,将每条数据用一个n*k的矩阵表示,其中n表示该数据由n个词组成,k表示每个词的维度;

步骤5:采用有放回的抽样方法对l进行抽样,该过程重复t次,相应得到t个抽样样本序列lt和t个未抽中样本序列oobt;

步骤6:选取一个抽样样本序列lt,和无情感标注的数据,这里记为ut;

步骤7:用lt训练svm分类器ct,用ct对ut进行预测,将可靠度达到阈值的样本l加入lt中,并从ut中将其删去;

步骤8:更新阈值,重复步骤7),直到达到截至条件,得到最终的svm分类器ct;阈值更新方法为:动态变化且随迭代次数的增加,阈值逐渐减小;

步骤9:用oobt计算分类器ct的可靠度pt;

步骤10:重复步骤6)-9),可得到t个基分类器bc和其相应的可靠度p;

步骤11:用t个bc对预测文本s进行预测,将t个bc的p基于预测类别进行累加,s的情感属于可靠度累加和最高的一类。

本发明由于采取以上技术方案,其具有以下优点:

(1)提出了基于动态阈值的自动标注情感数据的选取规则。随着迭代次数的增加,阈值逐渐降低,既保证了前面的数据情感可靠度高,避免错误累积,又保证了整体有情感标注的数据充足,达到提高情感分析准确率的目标。

(2)多分类器共同预测。相比单一分类器,多分类器的共同决策会降低其失误率或侥幸预测的概率,进一步确保了预测的准确性。

(3)提出了权重投票策略。相比于相对多数投票法,该发明考虑了不同分类器性能的差异,降低了不良分类器对预测结果造成的影响。

附图说明

图1为基于动态阈值和多分类器的情感分析机制。

图2为基于动态阈值的分类器训练流程。

图3为权重投票策略流程。

具体实施方式

本发明提出了一种基于动态阈值和多分类器的情感分析方法,在基于动态阈值不断扩大数据情感标签的基础上运用多个分类器共同决策文本情感,使得情感分析更加精确。图1显示了本发明的情感分析机制。图2显示了基于动态阈值的分类器训练流程。图3显示了权重投票策略流程。

具体实施步骤如下:

1)首先采用爬虫的手段采集评论文本数据集,数据集包括训练集和预测集,其中训练集分为有情感标注的数据l(比例小)和无情感标注的数据u(比例大)。根据情感的不同,对l进行情感标注,如积极、消极和中立;或者是主观和客观;再或者是更加细致的情感,如愤怒、生气、紧张、开心、难过等等。然后用现有的分词系统对文本进行分词处理,现有的分词系统有百度分词、结巴分词和中科院分词系统等等。

2)用word2vec工具对大规模语料进行训练,将词转化为数值型向量,每个词组选取其k维特征构建k维向量。如果文本中的词出现在训练语料中,那么就将word2vec训练出的向量作为该词的词向量;如果未出现在训练语料中,就采取随机初始化的方式进行向量表示。这样每一条文本都是一个n*k的矩阵。

3)采用有放回的抽样方法对l进行抽样,该过程重复t次,得到相应t个抽样样本序列lt和t个oobt序列。

4)选取一个抽样样本序列lt,和无情感标注的数据u,这里记为ut。

5)用lt训练svm分类器ct;用ct对ut进行预测,将可靠度达到阈值的预测样本l加入lt中,并从ut中将其删去。

lt←lt+l

ut←ut-l

6)更新阈值,重复步骤5),直到达到截至条件,得到最终的svm分类器ct,其具体流程见图2。

这里提出了动态阈值函数,来确定每步迭代的阈值:

thresiter_num=f(iter_num)(1)

其中,thresiter_num代表第iter_num次迭代的阈值;f是动态阈值函数;iter_num动态阈值函数的自变量,代表迭代次数。值得注意的是,动态阈值函数f满足(2),意味着随着迭代次数的增加,该阈值逐渐减小。

本发明的基于动态阈值的自动标注情感数据的选取规则如下:该规则基于半监督学习,其核心思想是使未标注情感的数据由已知情感的数据通过训练自动得到相应的情感标签。这是一个迭代过程,在迭代中不断扩大已知情感标签数据的数量。但是自动标注的情感标签并非全部可靠,随着迭代的增加,这种错误会逐步累积,对后面的预测造成影响。因此,该方法针对自动标情感可靠性的不同,设置了动态阈值的选取规则。该规则认为在前期迭代中,阈值设置较高,保证前期自动标注的情感可信度较高,避免对后面的迭代造成影响;在后期迭代中,阈值设置较低,保证有更多自动标注情感的数据被选入到最后的训练集,达到扩大有标注情感标签数据的目的。

7)用oobt计算分类器ct的可靠度pt,并对测试集样本进行预测。

8)重复步骤4)-7),可以在每一个抽样样本上训练出一个基分类器,因此一共可以得到t个基分类器的可靠度和对应的预测类别,这里的可靠度用f值进行计算。

9)集成多个基分类器对测试集文本进行最终的情感预测。采用权重投票策略,这里的权重指分类器的可靠度,t个分类器权重基于预测类别进行累加,某类的权重累加值最高,那么该文本的情感就归属于这一类,其具体流程见图3。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1