掌桥专利:专业的专利平台
掌桥专利
首页

一种基于检索和对比学习的情感分析方法

文献发布时间:2024-04-18 19:53:33


一种基于检索和对比学习的情感分析方法

技术领域

本发明涉及自然语言处理技术领域,特别指一种基于检索和对比学习的情感分析方法。

背景技术

随着互联网的普及,互联网用户数呈几何式增长,伴随的是用户越来越倾向于在互联网上发表自己的看法,如在微博、Facebook等社交媒体网站上分享自己的即时动态,或对其他用户的动态发表自己的评论,或在购物网站上对商品的使用体验进行评价等。通过分析这些带有浓厚情感色彩的文本,在社会舆情检测、商品个性化推荐、聊天机器人设计等方面都能提供科学有效的帮助。

随着情感分析任务的精细化,当前最常见、应用最广的是属性级情感分析任务,研究的是一段文本中所有情感对象,识别各个情感对象的情感polarity。传统上,情感分析主要采用基于深度学习的方法,通过对文本进行语义计算,挖掘深层语义含义,抽取出文本本质的特征,获得文本抽象表示,再进行情感polarity分类。虽然传统方法已经取得了巨大的成功,但大都独立的对每个句子单独进行计算,并没有对不同句子间可能存在的关系进行建模,因此不能学习到跨句子的通用知识,使得模型在情感表示能力上还有欠缺。

因此,如何提供一种基于检索和对比学习的情感分析方法,实现提升模型情感表示能力,进而提升情感分类性能,成为一个亟待解决的技术问题。

发明内容

本发明要解决的技术问题,在于提供一种基于检索和对比学习的情感分析方法,实现提升模型情感表示能力,进而提升情感分类性能。

本发明是这样实现的:一种基于检索和对比学习的情感分析方法,包括如下步骤:

步骤S10、获取大量的情感文本数据,并对各所述情感文本数据进行预处理;

步骤S20、提取预处理后的各所述情感文本数据中的实体,对各所述实体进行标注以构建样本,进而生成情感数据集;

步骤S30、通过Elasticsearch对所述情感数据集中的样本进行倒排索引,为各所述样本检索与其相似的样本;

步骤S40、基于神经网络创建一情感分类模型,利用所述情感数据集对情感分类模型进行训练,训练的同时,使用对比学习技术拉近各所述样本与相似的样本的向量距离;

步骤S50、利用训练完成的所述情感分类模型进行情感分析。

进一步地,所述步骤S10具体为:

自动获取大量的情感文本数据,并对各所述情感文本数据进行去除超链接、特殊字符以及重复字符的预处理。

进一步地,所述步骤S20具体为:

使用命名实体识别技术提取预处理后的各所述情感文本数据中的实体,选取部分所述实体作为aspect,对各所述实体进行情感polarity的标注以构建样本,进而生成情感数据集。

进一步地,所述步骤S30具体为:

基于预设比例将所述情感数据集划分为训练集、验证集以及测试集;

通过Elasticsearch对所述训练集中的样本进行倒排索引,构建一个键值列表,键为样本的aspect以及polarity,值为对应的样本;

基于所述aspect以及polarity为各样本检索与其相似的样本。

进一步地,所述步骤S40中,所述情感分类模型用于对样本进行分词,基于BERT将分词输入转换为样本向量,使用对比学习技术,拉近各所述样本与相似的样本的向量距离,再将所述样本向量输入线性层以及softmax函数以获取预测概率分布,进而输出情感的预测结果。

进一步地,所述步骤S40中,所述使用对比学习技术拉近各所述样本与相似的样本的向量距离的损失公式表示为:

其中,loss

进一步地,所述将所述样本向量输入线性层以及softmax函数以获取预测概率分布,进而输出情感的预测结果具体为:

利用线性层对所述样本向量进行降维后,使用softmax函数预测对应样本向量的概率分布:

其中,

将概率分布

进一步地,所述利用所述情感数据集对情感分类模型进行训练具体为:

以降低loss

其中,loss

进一步地,所述分类损失的计算公式为:

其中,

本发明的优点在于:

通过对获取的情感文本数据进行预处理,提取预处理后的各情感文本数据中的实体,并对各实体进行标注以构建样本,进而生成情感数据集,接着对情感数据集中的样本进行倒排索引,为各样本检索与其相似的样本,利用情感数据集对基于神经网络创建的情感分类模型进行训练,训练的同时,使用对比学习技术拉近各样本与其相似样本的向量距离,最后利用训练完成的情感分类模型进行情感分析,即通过检索和对比学习,让情感分类模型从相似的样本中学习通用知识,增强情感分类模型的表征能力,获得更加鲁棒的句子表示能力,最终极大的提升了模型情感表示能力,进而极大的提升了情感分类性能。

附图说明

下面参照附图结合实施例对本发明作进一步的说明。

图1是本发明一种基于检索和对比学习的情感分析方法的流程图。

图2是本发明一种基于检索和对比学习的情感分析方法的流程示意图。

图3是本发明情感分类模型训练的示意图。

图4是本发明情感分类模型的输入模块的示意图。

图5是本发明情感分类模型的BERT模块的示意图。

图6是本发明情感分类模型的对比学习模块的示意图。

图7是本发明情感分类模型的线性分类模块的示意图。

具体实施方式

本申请实施例中的技术方案,总体思路如下:通过检索和对比学习,让情感分类模型从相似的样本中学习通用知识,以提升模型情感表示能力,进而提升情感分类性能。

请参照图1至图7所示,本发明一种基于检索和对比学习的情感分析方法的较佳实施例之一,包括如下步骤:

步骤S10、获取大量的情感文本数据,并对各所述情感文本数据进行预处理;

步骤S20、提取预处理后的各所述情感文本数据中的实体,对各所述实体进行标注以构建样本,进而生成情感数据集;

步骤S30、通过Elasticsearch对所述情感数据集中的样本进行倒排索引,为各所述样本检索与其相似的样本;即利用Elasticsearch进行相似样本检索;

步骤S40、基于神经网络创建一情感分类模型,利用所述情感数据集对情感分类模型进行训练,训练的同时,使用对比学习技术拉近各所述样本与相似的样本的向量距离;

步骤S50、利用训练完成的所述情感分类模型进行情感分析。

所述步骤S10具体为:

自动获取大量的情感文本数据,并使用正则方式对各所述情感文本数据进行去除超链接、特殊字符以及重复字符的预处理;所述情感文本数据可为对于某一数码产品的评价,可从京东、淘宝等平台获得用户对于该商品的评价意见文本。

所述步骤S20具体为:

使用命名实体识别技术提取预处理后的各所述情感文本数据中的实体,选取部分所述实体作为aspect,对各所述实体进行情感polarity的标注(包括积极、中性、消极三类)以构建样本,进而生成高质量的情感数据集。

所述步骤S30具体为:

基于预设比例将所述情感数据集划分为训练集、验证集以及测试集;所述预设比例优选为8:1:1;

通过Elasticsearch对所述训练集中的样本进行倒排索引,构建一个键值列表,即{key,value}列表,键为样本的aspect以及polarity,值为对应的样本;Elasticsearch中的倒排索引机制能够进行快速搜索并提取出匹配的内容;

基于所述样本的aspect以及polarity为各样本检索与其相似的样本。

对于给定的目标样本,通过精确匹配方式从数据库中检索其相似样本,即从数据库中将样本key与目标样本key相同的样本提取出来,随机选取k个样本作为该目标样本的相似样本;值得注意的是,检索出的样本数量可能小于k个,此时采用不同dropout方式对目标样本进行处理,以创建新的相似样本来代替。

所述步骤S40中,所述情感分类模型用于对样本进行分词,基于BERT将分词输入转换为样本向量,使用对比学习技术,拉近各所述样本与相似的样本的向量距离,使情感分类模型能学习到跨句子的通用知识,再将所述样本向量输入线性层以及softmax函数以获取预测概率分布,进而输出情感的预测结果。

具体实施时,对于中文的文本数据,可采用jieba工具对样本句子进行分词;对于英文的文本数据,根据空格进行分词。样本向量的转换过程具体为:将样本的aspect用[SEP]符号拼接在样本句子后面作为输入,,采用各自的词向量方法,获得输入的每个分词(token)的向量化表示,经BERT编码计算后,得到融合整个样本句子的关于该指定aspect的样本表示向量。

所述情感分类模型包括输入模块、BERT编码模块、对比学习模块、线性分类模块。

输入模块:对于中文文本,按双字节编码方式对Jieba分词后的汉字进行编码得到词向量;对于英文文本,按BERT模型中的Tokenizer获得以BPE方式分词的词向量。将样本词向量表示输入到BERT模型中进行语义计算。

BERT编码模块:采用BERT中的多头注意力机制对输入的词向量表示进行语义特征提取,使得每个词向量都能聚合上下文信息,以获得更本质的特征信息。多头注意力机制从广度上增强了模型对句子特征的提取能力;堆叠多个多头注意力机制从深度上保证了模型对句子的表示能力,使得模型能够学习到句子更深层的含义。

对比学习模块:使用对比学习拉近目标样本表示与其相似样本表示的距离,从而使模型能够感知到目标样本及其相似样本间的通用知识,达到增强模型表示能力的目标。

线性分类模块:首先使用一个线性模型对目标样本的向量表示进行特征提纯,然后利用softmax函数对提纯后的特征进行归一化处理,得到样本分类的概率分布,将概率最大类别作为该样本的情感polarity预测结果。

所述步骤S40中,所述使用对比学习技术拉近各所述样本与相似的样本的向量距离的损失公式表示为:

其中,loss

所述将所述样本向量输入线性层以及softmax函数以获取预测概率分布,进而输出情感的预测结果具体为:

利用线性层对所述样本向量进行降维(维度为polarity的分类数)后,使用softmax函数预测对应样本向量的概率分布:

其中,

将概率分布

所述利用所述情感数据集对情感分类模型进行训练具体为:

以降低loss

其中,loss

所述分类损失的计算公式为:

其中,

本发明一种基于检索和对比学习的情感分析方法的较佳实施例之二,包括如下步骤:

1.构建情感数据集

首先从相关领域的互联网平台中采集未经处理的文本数据,该文本数据可能包含大量无效内容,需要对文本数据进行数据清洗操作。以从微博中采集的中文文本数据为例:“终终终终终终终于抢到了5个口罩,心情好像中大奖一样开心,我太难了,一罩难求@Survive”,1)句中“终终终终终终终于”从人类的观点来看,表现出强烈的情感色彩,但这种描述会混淆计算机对文本的理解;2)句中“@Survive”是链接操作,旨在将该发布推送给指定用户,对文本情感分析无意义。在数据清洗阶段,最直接有效的方法是设计正则将无效内容删除,因此,上述文本数据清洗后呈现为“终于抢到了5个口罩,心情好像中大奖一样开心,我太难了,一罩难求”。对于数据清洗后的每条文本,采用命名实体识别技术提取出文本中存在的实体,如上述文本数据可能提取到的实体有“口罩”、“心情”、“大奖”、“我”等。雇佣专业人员选择相关的实体作为样本的aspect,并标注其情感polarity(包括积极、中性、消极),如上述例子中,选择“口罩”作为aspect,情感polarity为“积极”。将具有确定aspect和polarity的句子构建成为一个样本。

获取大量的样本后,按8:1:1的比例,随机将样本划分为训练集、验证集和测试集。

2.检索相似样本

为了快速获得相似样本,采用Elasticsearch对训练集中的样本进行倒排索引,每个样本扩展为一个{key,value}对,其中key为样本aspect及其polarity,value为样本本身。以Laptops数据集中的样本为例,样本“The battery life was shorter thanexpected.”在Elasticsearch数据库中呈现为{battery life:negative,“The batterylife was shorter than expected.”}。对于给定的目标样本,采用精确匹配方式获得相似样本,即在Elasticsearch数据库中将目标样本的key与其他样本的key进行比较,选出key相同的样本。同样以上述例子为例,提取出的相似样本有{battery life:negative,“Has a2-3hours battery life.”}、{battery life:negative,“The battery life is probablyan hour as best.”}。我们为每个样本配备k个相似样本,当数据库中相似样本数大于k时,随机选择k个即可;当相似样本数小于k时,将目标样本本身作为相似样本进行补充,但在编码阶段,会采用不同的dropout方式将目标样本进行差异化表示。

3.设计基于对比学习的情感分类模型

如图3所示,情感分类模型基于BERT,具体来说,包括输入模块、BERT编码模块、对比学习模块和线性分类模块。

输入模块:如图4所示,token编码E

BERT编码模块:如图5所示,BERT编码模块包含三个组成成分,分别是多头注意力机制、前馈神经网络和残差连接与规范化。其中最主要的是多头注意力机制,由多个自注意力机制构成,从不同角度聚合上下文信息。假设输入矩阵为E

式中:Q、K、V是输入矩阵E

将多个自注意力机制的输出拼接起来,获得当前输入经过多头注意力机制后的结果:

式中:W是一个映射矩阵,将拼接后的矩阵映射成维度与E

将原始输入E

上述过程为一层BERT编码过程,为了挖掘文本深层的语义信息,在BERT-Base预训练模型中叠加了6层,在BERT-Large预训练模型中叠加了12层。BERT编码模块最后输出的是能够充分表示文本丰富内涵的向量表示E

对比学习模块:如图6所示,经过上述检索步骤后,每个目标样本表示

式中:sim()是相似性度量函数,b是模型训练时的批量大小。

模型训练时,通过优化对比损失,使得模型能够学习到跨句子中的通用知识,进而提高模型的表示能力。

线性分类模块:在模型训练阶段,在使用BERT编码模块获得目标样本向量表示E

式中:W

得到预测的概率分布后,采用交叉熵计算分类损失:

4.文本情感预测

在训练阶段,利用训练集对模型进行训练,优化损失为对比损失与分类损失的联合损失:loss=loss

其中,λ是超参数,控制对比损失对模型训练的影响程度。

随后,输出在验证集上表现最好的模型作为最终的文本情感预测分类器,用于新输入的文本的情感预测。为进一步观察输出模型的性能,将使用测试集对分类器的准确性进行评估。具体的,将测试集中的样本输入到模型中,经过BERT编码后得到样本的向量表示,再经过线性分类模块得到样本的预测概率分布,将概率最大的分类结果作为情感polarity预测结果,并判断是否分类准确,进而获得分类器的分类准确性。

综上所述,本发明的优点在于:

通过对获取的情感文本数据进行预处理,提取预处理后的各情感文本数据中的实体,并对各实体进行标注以构建样本,进而生成情感数据集,接着对情感数据集中的样本进行倒排索引,为各样本检索与其相似的样本,利用情感数据集对基于神经网络创建的情感分类模型进行训练,训练的同时,使用对比学习技术拉近各样本与其相似样本的向量距离,最后利用训练完成的情感分类模型进行情感分析,即通过检索和对比学习,让情感分类模型从相似的样本中学习通用知识,增强情感分类模型的表征能力,获得更加鲁棒的句子表示能力,最终极大的提升了模型情感表示能力,进而极大的提升了情感分类性能。

虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

技术分类

06120116339495