基于多模型融合的核心工艺知识智能推送方法及系统与流程

文档序号:15999491发布日期:2018-11-20 19:16阅读:157来源:国知局

本发明涉及计算机技术领域,特别涉及一种基于多模型融合的核心工艺知识智能推送方法及系统。



背景技术:

传统信息检索系统存在许多问题。在查询访方面,主要方法有布尔查询、向量空间模型、概率模型等,各有优缺点,但是单独使用时精度不能达到最高,会有少部分不符合。在符合关键字的查询结果中,由于语义的问题,同一关键字所指并不是同一事物,即虽然条目的关键词符合检索的关键词,但是这部分信息是用户不需要的。从搜索的结果看,这虽然考虑了信息的全面性,但是无法很好地契合搜索者的需求,导致搜索的精确度和效率下降。同时,关键字检索的结果中可能出现两个甚至多个结果相似或完全相似,这是用户不希望看到的。最后,海量的数据严重拖慢了检索速度,也加大了存储空间,如何提高速度、节约空间,成为现代信息检索的新问题。

单独使用一个分类器的缺点:

fastText缺点:需要大量已标注数据来训练。

Rocchio缺点:Rocchio假设训练数据是绝对正确的,但是语料难免会有误差;语料不均衡会导致模型文件有偏差,样本多的类更有优势;认为一个类别的文档仅仅聚集在一个质心的周围,实际情况往往不是如此(这样的数据称为线性不可分的)。

多分类SVM缺点:由于此分类利用有向无环图来阻止分类器,假如最一开始的分类器回答错误(明明是类别1的文章,它说成了5),那么后面的分类器是无论如何也无法纠正它的错误的(因为后面的分类器压根没有出现“1”这个类别标签),其实对下面每一层的分类器都存在这种错误向下累积的现象。

Jaccard系数-Knn缺点:元素的取值只能是0或者1,无法利用更丰富的信息。只记录词汇是否出现,不记录词汇出现的频数。这样忽略了很多有价值的信息。

单独使用一个检索模型的缺点:

布尔模型缺点:它的检索策略源于二值判定标准,文献要么相关,要么不相关,况且也没有文档分级的概念,难以提高检索性能;虽然布尔表达式有确切的语义,但通常很难将用户的信息需求转换成布尔表达式,实际上很多用户会发现很难用布尔表达式来表达他们的查询要求。

向量空间模型缺点:相似度的计算量大,当有新文档加入时,则必须重新计算词的权值。理论上不够强,只是基于直觉的经验公式。各词项实际上并不是完全独立的,有很多字词之间虽然没有相同字或词频相差很多,但是有很大关系。

概率模型缺点:首先,对文本集的依赖性过强,需要把文献分为相关的和不相关的集合,实际上这种模型没有考虑索引词在文档中的频率;其次,该模型存储和计算的开销很大,参数估计有一定的困难,文件和查询的表达也比较困难。



技术实现要素:

本发明的目的是针对现有技术对应的不足,提供一种基于多模型融合的核心工艺知识智能推送方法及系统,其提高了检索的精度。

本发明的目的是采用下述方案实现的:一种基于多模型融合的核心工艺知识智能推送方法,包括如下步骤:

1)文本分类:将所有文本进行预处理,然后将处理后的文本输入分类器进行预分类,得到文本类别信息(类别信息为类别整体的模型向量表示);

2)计算查询所在类别:当有用户查询时,先利用检索算法进行检索,然后将用户输入与检索算法返回的多个带有类别信息的文本分别进行相似度计算,判断关键词所属的类别,取前k1个最相似的类别,只在这几个类别进行检索;

3)在前k1个最相似的类别中的每一个类别中用用户检索关键词再次使用检索算法进行检索,得到检索结果;

4)对所有检索结果使用相关度算法进行相关度排序,取前k2个结果;并使用相似度算法去除结果中过于相似的文本,得到最终检索结果,最后将最终检索结果返回给用户。

本发明的步骤4)后还包括步骤5):将最终检索结果返回给用户后,监测用户的反馈,根据用户的反馈,在用户下一次输入相同的关键词进行搜索时,使用调整算法调整用户检索关键词权重,然后使用调整后的关键词权重执行步骤2)、3)、4)进行新的一轮搜索,将调整后的结果返回给用户。输入是不同关键词的话,不会调整关键词权重。比如:用户第一次检索使用了某些关键词,检索得到了一些文档,此时用户对某个结果进行了点击,说明此结果是相关的,那么系统提升与这个文档相关的关键词的权重,下次用户再输入相同关键词时就会使用更新了的权重进行搜索。

步骤5)中调整用户的关键词权重的调整算法采用Rocchio算法,公式为:

其中,是初始的查询向量,是修改后的查询向量,Dr和Dnr是已知的相关和不相关文档集合,α、β及γ是上述三者的权重。这些权重能够控制判定结果和原始查询向量之间的平衡:如果存在大量已判断的文档,那么会给β及γ赋予较高的权重。修改后的新查询从q0开始,向着相关文档的质心向量靠近了一段距离,而同时又与不相关文档的质心向量远离了一段距离。新查询可以采用常规的向量空间模型进行检索。通过减去不相关文档的向量,我们很容易保留向量空间的正值分量。在Rocchio算法中,文档向量中的权重分量如果为负值,那么该分量将会被忽略,也就是说,此时会将该分量权重设为0。

步骤1)中使用Adaboost算法融合多种不同类型的基本分类器形成最终分类器,将处理后的数据输入最终分类器进行预分类,得到类别信息;不同类型的基本分类器包括Jaccard系数-Knn模型、fastText深度学习模型,Rocchio模型,多分类SVM模型;使用Adaboost算法融合多种不同类型的基本分类器的步骤包括:(1)输入训练数据(数据来源为清华公开中文数据集,下载地址:https://ctwdataset.github.io/downloads.html),初始化训练数据的权值分布;(2)训练基本分类器:循环迭代多次,使用当前加权分布学习基本分类器,计算基本分类器在数据集上的误差率,然后根据误差率计算基本分类器在最终分类器中所占的权重,更新训练数据的权值分布,用于下一次迭代;(3)各个基本分类器的训练过程结束后,融合经过训练的各个基本分类器,得到最终分类器。本发明采用叠加平均的方式融合经过训练的各个基本分类器。

本发明使用Adaboost融合多种分类器进行分类,分类中每步使用不同分类器,使用Adaboost算法进行权重调整,使结果达到最优。分类算法模型包括fastText深度学习模型,Rocchio模型,多分类SVM模型等,利用多种模型各自的优势,结合Adaboost的模型融合思想,对各个分类模型根据每个类别的分类效果赋予不同的权重,以显著提高整体的分类效果。

步骤3)中在前k1个最相似的类别中的每一个类别中均用用户检索关键词分别使用多种不同的检索算法进行检索,然后将所有检索结果集合后执行排序去重步骤,得到最终检索结果;多种不同的检索算法包括布尔检索算法、向量空间模型、概率模型、语言模型。

前k1个最相似的类别中的每一个类别分别使用上述四种不同的检索算法进行检索后都可以得到包含布尔查询结果、向量空间模型查询结果、概率模型查询结果、语言模型查询结果的集合,将得到的k1个包含布尔查询结果、向量空间模型查询结果、概率模型查询结果、语言模型查询结果的集合进行合并后执行步骤4)的排序去重步骤,即可得到最终检索结果集合。

步骤2)计算查询所在类别时根据用户检索关键词先利用多种不同的检索算法进行冗余检索,然后将所有检索结果集合后执行排序去重步骤,得到多个初步检索结果即带有类别信息的文本;多种不同的检索算法包括布尔检索算法、向量空间模型、概率模型、语言模型。

步骤2)中相似度计算采用Jaccard相似度算法;步骤4)利用webService技术通过网络将检索结果返回给用户;步骤4)使用Jaccard相似度算法去除结果中过于相似的文本;对结果使用BM25算法进行相关度排序,取前k2个结果。

一种基于多模型融合的核心工艺知识智能推送系统,包括:

文本预处理模块,文本预处理模块用于对文本进行预处理;

分类模块,分类模块用于将处理后的文本输入分类器进行文本预分类,得到文本类别信息;

用户输入模块,用户输入模块用于接收用户检索关键词;

第一检索模块,第一检索模块用于根据用户检索关键词利用检索算法进行检索得到初步检索结果返回给相似度匹配模块进行相似度计算,得到查询所在类别;

相似度匹配模块,相似度匹配模块用于将用户检索关键词与文本类别进行相似度计算,判断关键词所属的类别,得到若干个相似的类别,并从得到的若干个相似的类别中取前k1个最相似的类别给第二检索模块;

第二检索模块,第二检索模块用于只在前k1个最相似的类别的每一类中根据用户检索关键词利用检索算法进行检索,得到最终检索结果;

结果推送模块,所述结果推送模块用于把最终检索结果返回给用户;

用户反馈模块,用户反馈模块用于采集用于的反馈信息,根据用户的反馈,在用户下一次输入相同的关键词进行搜索时,使用调整算法调整用户检索关键词权重,然后使用调整后的关键词权重进行新的一轮搜索,将调整后的最终检索结果返回给用户。用户反馈模块用于采集用于的反馈信息,并根据用户的反馈,进一步调整用户的关键词权重,更好的拟合用户的需求,以优化下一次推送时的用户推送效果与匹配程度。

本发明的系统还包括结果排序模块和结果去重模块,结果排序处理模块用于对检索模块得到所有检索结果使用相关度算法进行相关度排序;相关度算法采用BM25算法;结果去重模块用于使用相似度算法去除结果中过于相似的文本;相似度计算采用Jaccard相似度算法。

分类模块使用Adaboost算法融合多种不同类型的基本分类器形成最终分类器;不同类型的基本分类器包括Jaccard系数-Knn模型、fastText深度学习模型,Rocchio模型,多分类SVM模型;使用Adaboost算法融合多种不同类型的基本分类器的步骤包括:(1)输入训练数据,初始化训练数据的权值分布;(2)训练基本分类器:循环迭代多次,使用当前加权分布学习基本分类器,计算基本分类器在数据集上的误差率,然后根据误差率计算基本分类器在最终分类器中所占的权重,更新训练数据的权值分布,用于下一次迭代;(3)各个基本分类器的训练过程结束后,融合经过训练的各个基本分类器,得到最终分类器;

第一检索模块用于根据用户检索关键词利用多种不同的检索算法进行冗余检索,将所有检索结果集合后执行排序去重,即可得到多个初步检索结果即带有类别信息的文本;多种不同的检索算法包括布尔检索算法、向量空间模型、概率模型、语言模型;

第二检索模块用于在前k1个最相似的类别中的每一个类别中均用用户检索关键词分别使用多种不同的检索算法进行检索,然后将所有检索结果集合后进行排序去重,即可得到最终检索结果集合;多种不同的检索算法包括布尔检索算法、向量空间模型、概率模型、语言模型;

相似度匹配模块的相似度计算采用Jaccard相似度算法;

用户反馈模块的调整算法采用Rocchio算法,公式为:

其中,是初始的查询向量,是修改后的查询向量,Dr和Dnr是已知的相关和不相关文档集合,α、β及γ是上述三者的权重。

当有用户查询时,先利用多种检索算法进行冗余检索,以确保有效数据的获取,然后将用户输入与检索算法返回的文本分别进行相似度计算,判断关键词所属的类别,取前K1个最相似的类,只在这几类别进行检索,对于每一类,在该类别中用输入的关键词分别使用不同模型进行检索,将之前的所有结果合并,使用BM25算法进行相关度排序,取前N个结果,并使用Jaccard相似度去除结果中过于相似的文本。步骤1)得到的文本类别信息是类别数量的信息,不能直接用来计算相似度。用户输入是与多种检索方法检索到的文本(包括文本本身与类别信息)进行相似度计算,使用的是jaccard相似度算法。

在现有数据集中,标注多个类别,并对数据较少的类别进行数据扩充,从而实现数据集合的平衡性。使用扩充后的数据集进行分类,以进一步提升模型的分类能力。本发明通过已标注语料数据(文本)的训练,调整各模型在整体中的权重系数,达到最优的效果。

相关技术的介绍如下:

1.Adaboost算法是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器,即弱分类器,然后把这些弱分类器集合起来,构造一个更强的最终分类器。算法本身是改变数据分布实现的,它根据每次训练集之中的每个样本的分类是否正确,以及上次的总体分类的准确率,来确定每个样本的权值。将修改权值的新数据送给下层分类器进行训练,然后将每次训练得到的分类器融合起来,作为最后的决策分类器。

Adaboost算法为:

输入训练数据{(x1,y1),(x2,y2),…,(xm,ym)},yt∈Y-{-1,+1}

初始化权重其中m为类别数量。

得到基本分类器kt:X→{-1,+1},错误率为其中Gm为线性函数,通过模型训练自动得到最佳的参数。

计算更新其中Zt为归一化因子。

最终得到的分类器为

2.相关文本分类模型介绍:

(1)fastText

fastText的模型结构如图2所示,单个词或者n-gram组合词的词向量取平均后代表该文本的向量,使用softmax函数预测文本所属各标签类别的概率,损失函数(Lossfunction)是真实标签类别与预测标签类别之间的负对数似然(Negativelog-likelihood)。

(2)Rocchio算法

使用TF-IDF计算所有出现过的词权重,以其中前k个作为所有文本共有的特征,将一个文本表示成为k维向量,向量中的值,为该词在该文本中的词频,为避免文本长度差异,使用相对词频。所有文本表示为同一空间中的一个向量,在这个空间中求属于一个类别的样本文档的质心向量。

其中n为第i的文档中第j个词的词频。

其中D为文档的总数,t为出现第j个词的文档的数量。

tftdft,f=tft,f×tdft

使用夹角余弦距离计算相似度进行分类。

其中A为用户需要检索的文档,B为数据集中的文档。

由于其计算简单、迅速、容易实现,所以它通常用来实现衡量分类系统性能的基准系统。

(3)多分类SVM

SVM考虑寻找一个满足分类要求的超平面,并且使训练集中的点距离分类面尽可能的远,也就是寻找一个分类面使它两侧的空白区域(margin)最大。使用DAGSVM对文本进行多分类,其做法是在任意两类样本之间设计一个SVM,因此k个类别的样本就需要设计k(k-1)/2个SVM。这些分类器构成一个有向无环图。该有向无环图中含有k个叶结点,每个节点对应一个二类分类器。该方法简单易行,只需要使用k-1个决策函数即可得出结果。图3示例为4类问题的DAG SVM图。

(4)jaccard系数-Knn

给定两个集合A,B,Jaccard系数定义为A与B交集的大小与A与B并集的大小的比值,定义如下:

与Jaccard系数相关的指标叫做Jaccard距离,用于描述集合之间的不相似度。Jaccard距离越大,样本相似度越低。公式定义如下:

df(A,B)=1-J(A,B)。

之后使用Knn进行分类。

计算查询所在类别这步作为算法中间承上启下的一步,需要在短时间内尽快完成,又因为结果会取前k1个类,所以误差是被允许的,因此可以使用一些快速高效,但是精确度不那么高的算法。计算查询所在类别,指的是将多种检索方式返回的检索结果(包括文本和类别信息)与用户输入使用jaccard进行相似度计算,用户输入与某类文本相似度高,那么输入的所属类别就是某类。

3.相关查询模型介绍:

(1)布尔查询模型

文档D被表示为标引词的集合,查询Q被表示为标引词的布尔组合。以布尔逻辑进行查询,合并所有查询单词的倒排索引。先将关键词视为以AND连接的查询,若结果过少,再将关键词是为以OR连接的查询。若结果过多,使用Jaccard相关度进行排序。

布尔模型简单、易理解、易实现,有效识别包含了一个某个特定词项的文档。

(2)向量空间模型

文档D和查询Q均被看成是词项构成的向量,检索过程就是计算文档向量和查询向量之间的相似度。

使用归一化的tfidf系数表示文档中的词项,即:

,取前k个权重最大词项作为k维向量,以该词项的tfidf权重作为向量中元素的值来表示一篇文档。其中N为文档数量,f为上文得到的tfidf值。

将查询也用k维向量表示,若查询出现在词项中,则该位置值为1,否则为0

使用余弦夹角计算查询和文档的相似度。

,其中q,d为用户需要检索的文档以及数据集中的文档。W为文档的具体表示(即用文档中的所有词汇Wn来表示文档)。

向量空间模型使用词项权重的算法提高了检索的性能,部分匹配的策略使得检索的结果文档集更接近用户的检索需求,可以根据文档与查询的相似度对结果文档进行排序。

(3)概率模型

概率模型基于假设:文档与一个查询式的相关性与文档集合中其他文档是没有关系的;文档和查询中的词项是相互独立的。

使用BIM模型进行计算,其中对每个查询Q,定义排序函数:

,其中pt=P(tt|R=1),qt=P(tt|R=0)。

初始情况,假设pi是常数,近似等于termi在所有文档集合中的分布,则相当于对所有同时出现在q和d中的term的IDF求和,即:

,其中N、ni分别是总文档以及包含ti的文档数目。

概率模型有严格的数学基础,可以采用相关反馈原理,可以根据文档与查询的相关概率对文档进行排序。

(4)语言模型

使用查询似然模型,设排序函数:

其中Q为待查询文档,D为数据集中的文档。M同理。于是检索问题转化为估计文档D的一元语言模型MD,也即求所有词项w的概率P(Q|MD)。

4.BM25排序模型

设排序函数:

词项ti在文档D中的词项频率;

LD(Lave):文档D长度(整个文档集的平均长度);

k1:用于控制文档中词项频率比重的调节参数;

b:用于控制文档长度比重的调节参数;

为文档的IDF。

理想情况下,参数必须在开发测试集上调到最优。一般情况下,实验表明,k1应该设在1.2到2之间。

BM25算法通过加入文档权值和查询权值,拓展了二元独立模型的得分函数。BM25模型在二元独立模型的基础上,考虑了单词在查询中的权值以及单词在文档中的权值,拟合综合上述考虑的公式,并通过实验引入经验参数。

5.Rocchio算法

Rocchio算法是广泛流传的一种相关反馈算法。假定我们有一个用户查询,并知道部分相关文档和不相关文档的信息,则可以通过如下公式得到修改后的查询向量

是韧性的查询向量,是修改后的查询向量

Dr和Dnr是已知的相关和不相关集合

α、β、γ为权重

这些权重能够控制判定结果和原始查询向量之间的平衡。修改后的新查询从开始,向着相关文档的质心向量靠近了一段距离,而同时又与不相关文档的质心向量远离了一段距离。新查询可以采用常规的向量空间模型进行检索。通过减去不相关文档的向量,我们很容易保留向量空间的正值分量。

正反馈往往比负反馈更有价值,且我们更易得到明确的正反馈(用户点击),因此上式中权重分别取

α=1、β=0.75、γ=0。

即我们只允许进行正反馈。

本发明具有的优点是:由于本方案将所有文本进行预处理,然后将处理后的文本输入分类器进行预分类,得到文本类别信息,当有用户查询或者有用户反馈时,将用户输入与文本类别信息进行相似度计算,判断关键字所属的类别,取前k1个最相似的类,只在这几类别进行检索,对于每一类,在该类别中用输入的关键字分别使用不同模型进行检索,将之前的所有结果合并,使用BM25算法进行相关度排序,取前k2个结果,并使用Jaccard相似度去除结果中过于相似的文本。本发明提出上述解决步骤,以改进传统搜索过程,增加搜索结果和用户检索关键词的相似度,优点如下:1、文本分类:将所有文本预先分类,检索时只在和关键字最相似的若干类中检索,最后将各类结果合并进行排序,在分类选择后的子类别空间中进行检索,提高了检索的精度。且本发明基于Adaboost融合多种文本分类方法,明将处理后的数据输入分类器进行预分类,并通过模型融合提升分类的效果。2、改进查询框架:基于模型融合方法,构建多个子检索模型,将其结果进行融合,同时融合多种检索方法,增加检索结果的准确性和多样性,提高检索的准确率和召回率。根据检索的实际情况,调节查询向量,使整体能够发挥最大效力。3、利用文本相似性检测算法:对于检索结果中过于相似的文本,只留下一个,减少冗余,优化查询结果,提升用户体验和满意度。4、本发明同时使用Rocchio算法使用用户的反馈信息提高结果与用户需求的相似度。注意用户的反馈(用户点击):根据用户的反馈信息,更新优化查询结果,使更新之后的结果更加符合用户预期。

附图说明

图1为本发明的基于多模型融合的核心工艺知识智能推送方法的流程图;

图2fastText深度网络模型结构示意图;

图3为四类分类SVM模型结构示意图。

具体实施方式

参见图1,一种基于多模型融合的核心工艺知识智能推送方法,包括如下步骤:

1)文本分类:将所有文本进行预处理,然后将处理后的文本输入分类器进行预分类,得到文本类别信息,类别信息为类别整体的模型向量表示;本实施例的文本即语料数据来源为清华公开中文数据集,下载地址:https://ctwdataset.github.io/downloads.html。步骤1)中使用Adaboost算法融合多种不同类型的基本分类器形成最终分类器,将处理后的数据输入最终分类器进行预分类,得到类别信息;不同类型的基本分类器包括Jaccard系数-Knn模型、fastText深度学习模型,Rocchio模型,多分类SVM模型;使用Adaboost算法融合多种不同类型的基本分类器的步骤包括:(1)输入训练数据(本实施例的数据来源为清华公开中文数据集,下载地址:https://ctwdataset.github.io/downloads.html),初始化训练数据的权值分布。如果有N个样本,则每一个训练样本最开始时都被赋予相同的权值:1/N。(2)训练基本分类器(即fastText深度学习模型,Rocchio模型,多分类SVM模型等基本分类器):循环迭代多次,使用当前加权分布学习基本分类器,计算基本分类器在数据集上的误差率,然后根据误差率计算基本分类器在最终分类器中所占的权重,更新训练数据的权值分布,用于下一次迭代。具体训练过程中,如果某个样本点已经被准确地分类,那么在构造下一个训练集中,它的权值就被降低;相反,如果某个样本点没有被准确地分类,那么它的权值就得到提高。然后,权值更新过的样本集被用于训练下一个基本分类器,整个训练过程如此迭代地进行下去。(3)各个基本分类器的训练过程结束后,融合经过训练的各个基本分类器,得到最终分类器。本发明采用叠加平均的方式融合经过训练的各个基本分类器。各个基本分类器的训练过程结束后,加大分类误差率小的基本分类器的权重,使其在最终的分类函数中起着较大的决定作用,而降低分类误差率大的基本分类器的权重,使其在最终的分类函数中起着较小的决定作用。换言之,误差率低的基本分类器在最终分类器中占的权重较大,否则较小。

本发明使用Adaboost融合多种分类器进行分类,具体方法是在分类中结合不同分类器,利用Adaboost思想进行权重调整,使分类结果达到最优,得到最终的文本分类器。分类算法模型包括fastText深度学习模型,Rocchio模型,多分类SVM模型等,利用多种模型各自的优势,结合Adaboost的模型融合思想,对各个分类模型根据每个类别的分类效果赋予不同的权重,以显著提高整体的分类效果。本发明通过已标注语料数据的训练,调整各模型在整体中的权重系数,达到最优的效果。

优选地,在现有数据集中,标注多个类别,并对数据较少的类别进行数据扩充,从而实现数据集合的平衡性。使用扩充后的数据集进行分类,以进一步提升模型的分类能力。

2)用户输入的相似度匹配:当有用户查询或者有用户反馈时,先利用检索算法进行检索,然后将用户输入与检索算法返回的多个带有类别信息的文本分别进行相似度计算,判断关键词所属的类别,得到若干个相似的类别,从得到的若干个相似的类别中取前k1(注:k1为模型训练参数,自动进行优化)个最相似的类别,只在这几个类别进行检索;步骤2)中相似度计算采用Jaccard相似度算法。优选地,步骤2)计算查询所在类别时根据用户检索关键词先利用多种不同的检索算法进行冗余检索,然后将所有检索结果集合后执行排序去重步骤,得到多个初步检索结果即带有类别信息的文本;多种不同的检索算法包括布尔检索算法、向量空间模型、概率模型、语言模型。

3)查询结果:对于前k1个最相似的类别的每一类,在该类别中用用户检索关键词使用检索算法再次进行检索,得到检索结果。

对于每一类,在该类别中用输入的关键词分别使用不同模型进行检索。优选地,步骤3)中在前k1个最相似的类别中的每一个类别中均用用户检索关键词分别使用多种不同的检索算法进行检索,然后将所有检索结果集合后执行排序去重步骤,得到最终检索结果;多种不同的检索算法包括布尔检索算法、向量空间模型、概率模型、语言模型。

前k1个最相似的类别中的每一个类别分别使用上述四种不同的检索算法进行检索后都可以得到包含布尔查询结果、向量空间模型查询结果、概率模型查询结果、语言模型查询结果的集合,将得到的k1个包含布尔查询结果、向量空间模型查询结果、概率模型查询结果、语言模型查询结果的集合进行合并后执行步骤4)的排序去重步骤,即可得到最终检索结果集合。

4)对所有检索结果使用相关度算法进行相关度排序,取前k2(注:k2为超参数,按照需求进行设定,目前设定为1000)个结果;并使用相似度算法去除结果中过于相似的文本,得到最终检索结果,最后将最终检索结果返回给用户。本发明利用webService技术通过网络将检索结果返回给用户;步骤4)使用Jaccard相似度算法去除结果中过于相似的文本;对结果使用BM25算法进行相关度排序,取前k2个结果。

在用户点击了某一个检索结果之后,说明这个结果是用户需要的,这时可以根据用户的反馈适当地调整下一次检索,使结果更接近用户的预期。

所以增加步骤5):将最终检索结果返回给用户后,监测用户的反馈,根据用户的反馈,在用户下一次输入相同的关键词进行搜索时,使用调整算法调整用户检索关键词权重,然后使用调整后的关键词权重执行步骤2)、3)、4)进行新的一轮搜索,将调整后的结果返回给用户。用户反馈就是用户对结果的点击,比如用户第一次检索使用了某些关键词,检索得到了一些文档,此时用户对某个结果进行了点击,说明此结果是相关的,那么系统提升与这个文档相关的关键词的权重,下次用户再输入相同关键词时就会使用更新了的权重进行搜索。

本发明利用webService技术通过网络将检索结果返回给用户,根据用户的反馈,进一步调整用户的关键词权重,更好的拟合用户的需求,以优化下一次推送时的用户推送效果与匹配程度。

步骤5)中调整用户的关键词权重的调整算法采用Rocchio算法,公式为:

其中,是初始的查询向量,是修改后的查询向量,Dr和Dnr是已知的相关和不相关文档集合,α、β及γ是上述三者的权重。这些权重能够控制判定结果和原始查询向量之间的平衡:如果存在大量已判断的文档,那么会给β及γ赋予较高的权重。修改后的新查询从q0开始,向着相关文档的质心向量靠近了一段距离,而同时又与不相关文档的质心向量远离了一段距离。新查询可以采用常规的向量空间模型进行检索。通过减去不相关文档的向量,我们很容易保留向量空间的正值分量。在Rocchio算法中,文档向量中的权重分量如果为负值,那么该分量将会被忽略,也就是说,此时会将该分量权重设为0。

一种基于多模型融合的核心工艺知识智能推送系统,包括:

文本预处理模块,文本预处理模块用于对文本进行预处理;

分类模块,分类模块用于将处理后的文本输入分类器进行文本预分类,得到文本类别信息;

用户输入模块,用户输入模块用于接收用户检索关键词;

第一检索模块,第一检索模块用于根据用户检索关键词利用检索算法进行检索得到初步检索结果返回给相似度匹配模块进行相似度计算,得到查询所在类别;

相似度匹配模块,相似度匹配模块用于将用户检索关键词与文本类别进行相似度计算,判断关键词所属的类别,得到若干个相似的类别,并从得到的若干个相似的类别中取前k1个最相似的类别给第二检索模块;

第二检索模块,第二检索模块用于只在前k1个最相似的类别的每一类中根据用户检索关键词利用检索算法进行检索,得到最终检索结果;

结果推送模块,所述结果推送模块用于把最终检索结果返回给用户;

用户反馈模块,用户反馈模块用于采集用于的反馈信息,根据用户的反馈,在用户下一次输入相同的关键词进行搜索时,使用调整算法调整用户检索关键词权重,然后使用调整后的关键词权重进行新的一轮搜索,将调整后的最终检索结果返回给用户。用户反馈模块用于采集用于的反馈信息,并根据用户的反馈,进一步调整用户的关键词权重,更好的拟合用户的需求,以优化下一次推送时的用户推送效果与匹配程度。

本发明的系统还包括结果排序模块和结果去重模块,结果排序处理模块用于对检索模块得到所有检索结果使用相关度算法进行相关度排序;相关度算法采用BM25算法;结果去重模块用于使用相似度算法去除结果中过于相似的文本;相似度计算采用Jaccard相似度算法。

分类模块使用Adaboost算法融合多种不同类型的基本分类器形成最终分类器;不同类型的基本分类器包括Jaccard系数-Knn模型、fastText深度学习模型,Rocchio模型,多分类SVM模型;使用Adaboost算法融合多种不同类型的基本分类器的步骤包括:(1)输入训练数据,初始化训练数据的权值分布;(2)训练基本分类器:循环迭代多次,使用当前加权分布学习基本分类器,计算基本分类器在数据集上的误差率,然后根据误差率计算基本分类器在最终分类器中所占的权重,更新训练数据的权值分布,用于下一次迭代;(3)各个基本分类器的训练过程结束后,融合经过训练的各个基本分类器,得到最终分类器;

第一检索模块用于根据用户检索关键词利用多种不同的检索算法进行冗余检索,将所有检索结果集合后执行排序去重,即可得到多个初步检索结果即带有类别信息的文本;多种不同的检索算法包括布尔检索算法、向量空间模型、概率模型、语言模型;

第二检索模块用于在前k1个最相似的类别中的每一个类别中均用用户检索关键词分别使用多种不同的检索算法进行检索,然后将所有检索结果集合后进行排序去重,即可得到最终检索结果集合;多种不同的检索算法包括布尔检索算法、向量空间模型、概率模型、语言模型;

相似度匹配模块的相似度计算采用Jaccard相似度算法;

用户反馈模块的调整算法采用Rocchio算法,公式为:

其中,是初始的查询向量,是修改后的查询向量,Dr和Dnr是已知的相关和不相关文档集合,α、β及γ是上述三者的权重。

用户输入的相似度匹配

当有用户查询时,先利用多种检索算法进行冗余检索,以确保有效数据的获取,然后将用户输入分别与检索算法返回的属于某文本类别的文本进行相似度计算,判断关键词所属的类别,取前K1个最相似的类,只在这几类别进行检索,对于每一类,在该类别中用输入的关键词分别使用不同模型进行检索,将之前的所有结果合并,使用BM25算法进行相关度排序,取前N个结果,并使用Jaccard相似度去除结果中过于相似的文本。

本发明方案与其他方案的实验结果比较:

本发明的分类融合模型针对核心工艺制造知识库系统的数据进行了优化,在核心工艺制造知识数据库上进行了测试,并和其他推送实现方案进行了对比。表现结果如下表:

表1 各模型准确率对比

本方案为给核心知识库工艺员提供快速方便的检索平台,同时建立知识智能推送平台,建立静态的核心制造数据库,典型工艺案例库、质量问题案例库以及工艺知识库等系统,实现核心制造数据的检索,典型工艺案例、质量问题案例和工艺知识的检索等,工艺知识的推送需要借助CAPP系统与“知识库”系统的集成来实现。采用面向工序级集成粒度的知识推送。

本发明解决了单个分类算法和单个检索算法的局限性,充分利用各种模型的优点,通过已标注语料数据的训练,调整各模型在整体中的权重系数,达到最优的效果。

以上所述仅为本发明的优选实施例,并不用于限制本发明,显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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