一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于变压器知识库的信息检索方法及系统与流程

2022-02-23 02:03:13 来源:中国专利 TAG:


1.本技术涉及自然语言处理领域、信息检索领域、标准数字化领域及变压器智慧运维检修领域,尤其涉及了一种基于变压器知识库的信息检索方法及系统。


背景技术:

2.从简单的数据库搜索到复杂的网络搜索引擎,信息检索涉及到为用户查询所需的相关信息,并对相关的文档按照一定规则进行排序。排序是信息检索的核心问题,目前主要有相关度排序模型、重要性排序模型和学习排序模型。其中,相关性排序模型根据查询量和文档之间的相似度对文档进行排序,如布尔模型、td-idf和bm25,该方法考虑了词频相关性但并未考虑语义信息,通过若干子策略精排检索结果,该方法适用于精准检索领域(查询量一定出现在检索结果中);重要性排序模型不考虑查询量,仅根据文档间的图结构来判断文档的权威程度,如pagerank、textrank算法等,该方法可以分析文档间的关系,但是检索准确率不高;学习排序模型利用机器学习算法来解决排序问题,提取语料库中句子相应的特征(既包括查询量和文档间的各种相关度,也包括文档本身的特征及重要性等),通过人工或从粗排列表中得到文档相关性标注,最终使用模型学习排序列表,如ranknet、lambdarank算法等,该类算法模型可以挖掘不同语料之间的语义信息关系,实现语义层面的关联检索,但是训练样本需求量较大,数据标准经验程度较高,流程复杂,对于精准检索中条款定位准确性提升有限。
3.电力行业技术标准/规范是指导基层安全生产、推进业务高质量发展的必要保障,是设备管理技术工作的前提条件。基层人员在开展运维检修等作业时,须严格按照技术标准的流程规范开展作业,存在大量技术标准的检索需求。然而,国家电网公司已有上千项电网设备技术标准,数量庞大、内容复杂,主要以书籍、文档形式线下进行管理,基层人员不能及时查阅和充分运用,未充分发挥技术标准对各类作业的指导作用。
4.电力行业知识库标准/规范检索与广义检索任务的区别在于:电力行业知识库检索相对于广义检索是一种有边界的检索,检索范围只针对有限个行业标准及规范;同时,广义检索任务得出的检索结果仅做参考,对检索结果的全面性要求更高,但是电力行业知识库检索是一种“严肃的”检索方式,检索结果需指导基层作业,对检索结果的准确性要求更高。
5.综上所述,亟需采用新技术手段,构建基于知识库的信息检索系统,实现技术标准的结构化、知识化、智能化,改进基层人员对于技术标准的使用形式,提高检索效率,解决技术答案难找到,甚至找不到的问题,提升设备管理作业质效。但是,目前信息检索中的排序方法基本采用单个模型来检索用户键入的查询量,重要性排序模型适用于精准检索,但未考虑语义信息相关性,关联检索准确率较低;学习模型适用于关联信息检索,整体流程复杂,对于精准检索中条款定位准确性提升不高。


技术实现要素:

6.发明目的:为了解决背景技术中的问题,本发明提出了一种基于变压器知识库的信息检索方法及系统,提供一种词频相关性和语义相似度特征提取及融合算法,检索系统提供了一种集成精准检索和关联信息检索的方法,同时保证知识库检索结果的条款定位准确性和全面性,本发明设计了一种基于restful接口的检索系统,用户在系统检索框中键入查询量,系统会自动返回并展示检索结果,操作流程简单方便。
7.技术方案:为实现本发明的目的,本发明所述的基于变压器知识库的信息检索方法,具体包括以下步骤:
8.步骤1、选取变压器运维、检修作业场景下常用的技术规范构成原始样本库;
9.步骤2、通过光学字符识别技术将原始样本库转换成可用的语料库文件;
10.步骤3、提取语料库中各章节标题中的关键词,形成变压器知识库初版词典;采用分词模型将语料库中的字串变成词串,提取句中关键词,迭代更新变压器知识库词典;步骤3中所述的迭代更新变压器知识库词典,包括以下步骤:
11.步骤31、对语料库中30%的数据进行人工分词,根据停词表滤除句中无用的字词;
12.步骤32、使用人工分词的结果增量训练分词模型;本发明使用增量训练的lac(lexical analysis of chinese)模型进行电力领域中文分词,
13.步骤33、根据训练好的分词模型,对语料库中所有的句子进行分词,滤除停词表中的无用字词;
14.步骤34、对分词后的结果采用textrank算法进行关键词提取,并更新变压器知识库词典。
15.步骤4、通过算法对文档中的单词进行量化,提取词频相关性特征;同时将语料库中不同长度的句子映射成固定维度的句向量,将句向量输入度量神经网络模型提取句子的语义表征,得到语义信息特征;
16.步骤4中所述的提取词频相关性特征包括:
17.步骤411、以分词后的每个关键术语作为查询术语,使用tf-idf、bm25 okapi、bm25 或bm25f算法计算得到语料库中每一句话的查询术语词频相关性特征;
18.步骤412、对标题和正文赋予不同的权重α和(1-α);
19.步骤413、根据唯一检索号构建语料库词频相关性特征向量库。
20.步骤4中所述的语义信息特征,其提取步骤包括:
21.步骤421、对语料库中的分词术语通过word2vec算法计算256维词向量;
22.步骤422、将词频相关性特征与词向量相乘,对句中每个术语的词向量进行加权平均,得到句向量;
23.步骤423、构建基于孪生结构的度量神经网络,将两句话的句向量输入结构相同、参数共享的神经网络,通过三元组损失函数优化度量空间,使相关的语义表征尽量靠近,无关的语义表征尽量远离;
24.步骤424、模型测试时,提取度量神经网络的最后一层神经元作为语义表征特征;
25.步骤425、根据唯一检索号构建语义表征特征向量库;
26.步骤426、进行关键术语检索时,使用向量间的余弦距离表征两个句子间的相似度。
27.步骤5、根据步骤3得到的分词模型及变压器知识库词典进行查询量分词;
28.步骤6、首先,结合多种词频特征量的归一化结果对语料库中的句子进行精准检索粗排序;然后,将查询量输入度量神经网络与语料库中的句子语义表征进行相似度匹配,并根据该值进行语料库关联信息粗排序;包括:
29.步骤61、根据用户键入查询量的分词结果,计算词频相关性tf
query
,如果一个查询量被分词模型分成多个术语,则计算术语词频相关性之和:
[0030][0031]
其中i代表语料库中第i个句子,query代表键入查询量的分词结果,n代表分词词串,norm代表归一化后的相关性数值,归一化范围为[0.3,1];
[0032]
步骤62、根据步骤4所述的度量神经网络模型提取查询量的句向量,再经过度量神经网络计算查询量和语料库中句子的余弦距离,并将结果归一化到[0.3,1]范围;
[0033]
步骤63、结合词频相关性和语义相似度度量排序,分别形成精准检索和关联信息检索粗排序列表。
[0034]
步骤7、设置后处理逻辑策略,调整检索排序。
[0035]
步骤7中所述的后处理逻辑策略包括:
[0036]
步骤71、根据查询量是否包含于标题,二次调整检索排序;
[0037]
步骤72、如果分词结果包含多个术语,考虑术语之间的相互关系和在句中的间隔,微调相关性排序;
[0038]
步骤73、考虑标准/规范不同级标题对检索结果的影响、查询量分词术语在句子中出现的频率等因素,调整词频相关性和语义相似度的加权权重,调整检索排序;
[0039]
步骤74、考虑日常约束实现检索精排,所述日常约束包括:同一标准同一章节在系统返回结果中仅出现一次;电力行业标准优先级大于电力行业推荐标准优先级大于国家电网企业标准优先级。
[0040]
对应的,本发明提出一种基于变压器知识库的信息检索系统,该系统包括存储器、处理器和交互展示装置,所述存储器中存有通过算法训练得到的分词模型、变压器知识库词典、词频相关性特征和语义信息特征,所述处理器根据交互展示装置发送的查询量,执行权利要求1所述的基于变压器知识库的信息检索方法中的步骤,并将最终的排序结果发送至所述交互展示装置展示。
[0041]
有益效果:与现有技术相比,本发明具有如下显著的优点:本发明构建的方法及系统可以同时挖掘查询信息与语料库之间在词频及语义方面的关系,同时实现精准检索和关联信息检索,满足实际业务对电力标准/规范检索在条款定位准确性和全面性上的要求;通过采用多种词频分析算法,并通过集成学习融合、调整检索排序,有效地提升了算法的条款定位精准性。在建立知识库的过程中,根据电力行业标准/规范检索的业务需求及文档特征,为各级标题和正文设定了不同权重,突出了标题对正文的作用,并将这些权重引入词频相关性计算;结合词频相关性和语义特征建立关联检索模型,同时提升了关联检索结果的条款定位准确性和全面性。本发明根据业务需求,建立了适用于电力行业标准/规范检索的后处理精排策略,提升了结果的排序合理性;按照实际业务需求构建了包含38个标准及规范的样本库,当需要扩展样本库时,发明中涉及的模型均可方便地进行增量学习,语料库、
分词字典及特征库更新通过文件续写即可实现,扩充操作简便;本发明设计的系统采用restful接口实现用户与程序的交互,最终通过网页形式展示呈现,可以纳入智慧运维检修、数字化班组等业务流程和系统中。
附图说明
[0042]
图1是本发明所述的文档饱和度参数对bm25系列算法得分score的影响;
[0043]
图2是本发明所述的语义信息表征模型示意图;
[0044]
图3是本发明所述的基于变压器知识库的信息检索系统检索界面示意图;
[0045]
图4是本发明所述的基于变压器知识库的信息检索系统检索结果界面示意图;
[0046]
图5是本发明所述的基于变压器知识库的信息检索方法的流程图。
具体实施方式
[0047]
下面结合附图和实施方式对本发明的技术方案作进一步的说明。
[0048]
本发明所述的基于变压器知识库的信息检索方法,该方法通过构建精准检索和关联信息检索模型,可以挖掘用户键入的查询量与标准/规范之间在语义和词频上的关系,能够提高检索结果的准确性、全面性及排序合理性,满足实际业务中的检索要求,为变电站标准/规范数字化工作奠定了技术基础。该方法的流程如图5所示,具体包括以下步骤:
[0049]
步骤a,样本库构建。
[0050]
根据变压器运维检修实际需求,本发明选取常用的38个技术规范构成样本库,样本库列表如表1所示。
[0051]
表1、38个常用技术标准/规范
[0052]
[0053][0054]
步骤b,语料库建立。
[0055]
本发明所用的语料库共计7742条,均是通过将pdf格式的样本库标准文档通过ocr、结构化处理等方法,转化成后续处理中所需的csv格式语料库。其具体步骤如下:
[0056]
(b.1)从中国知网(文件格式为.pdf)、国家电网标准电子化库(文件格式为.gwbz)等网址对表1中的标准进行全文下载;
[0057]
(b.2)对pdf格式的文档直接进行ocr识别,保存成word格式文档;对gwbz格式的文件先将其打印扫描另存为pdf格式文档,再进行ocr识别,保存为word格式文档。为防止转换过程中出现错误,通过校对进行修改。可以通过人工校对审核转化后的文档,修改由于初始文档质量较低造成ocr转化后出现的错别字、公式符号错误等;
[0058]
(b.3)按照标题结构化解析word文档,将解析后的结果存储为csv格式文件,csv文件的行内容为文中每一句话,列内容包括唯一索引号,标准/规范编号,标准/规范名称,段落所属最低级子标题,段落子标题集合,正文等关键信息;
[0059]
人工审核生成的csv文档,主要修改文档结构化过程遇到的错误,如标题号缺失、标题错误,还需要调整修改每句话的长度,避免过长或过短的句子影响后续算法性能。
[0060]
步骤c,变压器知识库词典迭代及电力领域中文分词。
[0061]
先建立变压器知识库初版词典:人工提取语料库中各章节标题中的关键词,形成变压器知识库初版词典。然后对变压器知识库初版词典进行分词和迭代。本发明所述的词典迭代及电力领域中文分词主要包括分词模型增量训练,根据分词结果的句子关键词提取,基于关键词的词典迭代。其具体步骤如下:
[0062]
(c.1)电力领域中文分词。中文分词模型为百度公司研发的lac算法(https://github.com/baidu/lac),本发明采用增量训练的方法,使算法更适配数据集。
[0063]
(c.1.1)训练集准备。对语料库中30%的句子进行人工分词,构成分词模型训练
集,人工分词的一般原则是保证电力领域专有名词不被分开,分开的术语以空格隔开;
[0064]
(c.1.2)增量训练。对训练集进行增量训练,训练周期为10轮,训练完成的模型保存至指定路径;
[0065]
(c.1.3)初版词典构建。本发明所用的初版词典主要由语料库中句子对应的标题构成,人工对初版词典进行分词审核,审核的一般原则是保留重要术语;
[0066]
(c.1.4)中文分词。基于训练完成的模型及初版词典对语料库中的句子进行分词,考虑到标准规范中仍存在部分英文,因此分词结果以“||”进行分隔,并存储到固定路径;
[0067]
(c.1.5)分词结果预处理。预处理是处理文本模型的重要步骤之一,该步骤没有固定规则,而与进行的任务相关。本发明所述的分词结果预处理具体包括如下步骤:
[0068]
(c.1.5.1)滤除停用词。停用词是最常见的词,它们不会给后续的文本处理任务带来太多的额外价值(如“的”、“即”、“则”等),而滤除停用词会增加计算和存储效率。本发明遍历所有分词结果,如果词串包含于停用词列表,则不添加至最后的分词列表。
[0069]
(c.1.5.2)滤除单字符。单字符对于了解文档的作用有限,所以本发明遍历迭代分词结果,如果词串长度不大于1,则不添加至分词列表。
[0070]
(c.1.5.3)滤除标点符号。标点符号对于本发明采用的中文语料为主的语料库是不必要的符号,由于(b.2)采用ocr对文档进行转化,存在标点符号存在半角和全角混淆的情况,因此滤除的标点符号应同时包含半角和全角字符(如“,”、“,”、“\n”、
“‑”
等),本发明将所有需要滤除的符号存储在一个变量中,然后迭代该变量,在语料库中删除特定的符号;
[0071]
(c.1.5.4)英文字符统一为小写。由于电力行业标准/规范中存在一定量的英文缩写、解释、公式等,计算机对于文本数据是敏感的,即the不同于the,但人类知道这两者语义上是相同的。因此,本发明将所有英文字符均转化为小写处理;
[0072]
(c.1.5.5)英文词干转换。时态是英文中特殊的表示形式(如playing和played),但是不同时态表达的语义信息基本相同,词干转化就是将不同时态的单词转化为词干。本发明使用porter-stemmer的库,识别并删除单词的后缀或词缀。
[0073]
(c.2)提取分词结果中的关键词。自然语言处理(nlp)领域中,关键词提取是基本任务之一,对于不同长度的文本,往往可以通过几个关键词了解整段话的主题思想。本发明采用基于词图模型的textrank算法进行关键词抽取,通过词串之间的关系构建并分析文档的语言网络图,在图上寻找具有重要作用的术语。其具体步骤如下:
[0074]
(c.2.1)构建语言网络有向有权图g=(v,e)。其中v为节点集,由(c.1.5)的分词结果组成,然后采用共现关系构造图中任意两点之间的边e,仅当两个节点的术语在长度为k的窗口中共现时,节点间才存在边,当k表示窗口大小,即最多出现k个单词,当e是单向边时,边权值(w)为0.5,当e是双向边时,边权值为1。
[0075]
(c.2.2)算法迭代。根据式1,迭代各节点的重要性权重s,直至收敛:
[0076][0077]
式中,dn为阻尼系数,代表图中某一特定点指向其他任一点的概率,一般取值为0.85;in(vi)是存在指向术语i的集合,out(vj)是术语j存在的指向其他术语的连接集合,w
ji
为术语i和j间的边权值,w
jk
为术语k和j间的边权值。公式要经过多次迭代才能得到结
果,s(vj)为术语j的重要性权重,每个术语的初始重要性权重s均设置为1,收敛的目标是图中任意一点的误差率小于给定的阈值。
[0078]
(c.2.3)对节点重要性权重进行倒序排序,得到最重要的t个术语,作为候选关键词,本发明中t取值为3;
[0079]
(c.2.4)由(c.2.3)得到的t个关键词,在原始文本中进行标记,如果形成相邻词组,则组合成关键词组。
[0080]
(c.3)变压器知识库词典迭代,将生成的关键词加入变压器知识库词典,并保证关键词仅在词典中出现一次。本发明最后对表1中的38个标注形成了共包含4620个关键词的词典。根据该词典及步骤c.1.2中训练的分词模型再次进行电力行业人工分词及分词结果预处理流程,形成最终的分词结果,以唯一索引号为“键”,分词结果为“值”,存入json文件。
[0081]
步骤d,特征信息提取。
[0082]
本发明对语料库中的句子提取词频信息和语义表征作为特征向量。词频信息是通过算法对文档中的术语进行量化,量化的数值代表术语在文档和语料库中的重要性,该类特征信息适用于精准检索场景;同时,将语料库中不同长度的句子映射成一个固定维度的句向量,将句向量输入度量神经网络模型提取句子的语义表征,该类表征适用于关联信息检索场景。
[0083]
(d.1)词频信息特征。目前,搜索引擎是工作生活中不可或缺的一部分,从网页搜索到手机应用搜索再到聊天记录搜索,搜索结果的直观理解是查询量关键术语出现的次数越多,文档(网页)与查询量的匹配度越高。这就是词频相关性特征的直观体现。本发明分别使用了tf-idf、okapi bm25、bm25 和bm25f来计算词频相关性特征。
[0084]
(d.1.1)术语频率-逆文档频率(tf-idf)算法,计算过程可分为tf和idf两部分,具体步骤如下:
[0085]
(d.1.1.1)计算词频(term frequency)。词频衡量了术语在文档中的出现频率,取决于文档的长度和术语的通用性,但由于语料库中句子长短不同,不能简单地说,长文档比短文档更重要,因此,本发明对词频进行归一化处理,用词频除以句子中的术语总数;
[0086]
(d.1.1.2)词频向量化。检索任务不能仅考虑文档中出现的词,这样会造成向量长度不同,因此需要向量化用户键入的查询量及语料库中的文档。本发明基于分词结果统计所有可能出现的术语列表,然后对于语料库中的每句话检查术语列表中每个术语的计数,如果存在,在向量的对应位置填入tf值,如果不存在,则填入0:
[0087][0088]
其中,t代表术语列表中第t个术语,d代表语料库中第d个句子,tf(t,d)表示词频,n
t
代表术语t在当前文档d中出现的次数,代表d文档中所有词出现的总次数。
[0089]
(d.1.1.3)计算文档频率(document frequency,df)。df值是度量句子(即文档)在语料库中重要性的方法,指语料库中包含术语的句子数量。本发明使用符号df来表示df值,为了将df和tf(t,d)保持在一个范围内,通过除以语料库中句子的总数(用n表示)进行规范化;
[0090]
(d.1.1.4)计算逆文本频率(inverse document frequency,idf)表征该术语在语
料库中出现的频率与重要性之间的关系,频率越高则重要性越低。针对后续扩展性要求,随着语料库逐步增大造成idf值爆炸,本发明取idf值的log对数;同时,为了防止术语没有出现在术语列表中,造成分母df为0的情况,本发明在分母上加1来平滑idf值:
[0091]
idf(t)=log(n/(df 1))
ꢀꢀꢀ
(3)
[0092]
其中,idf(t)为逆文本频率,n代表文档总数,df代表文档频率。
[0093]
(d.1.1.5)计算tf-idf值。本发明通过取tf和idf的乘积值,得到tf-idf评分:
[0094]
tf-idf(t,d)=tf(t,d)*log(n/(df 1))
ꢀꢀꢀ
(4)
[0095]
(d.1.1.6)计算加权tf-idf值。基于电力行业标准/规范中标题的重要性,需要对标题和正文设定不同的权重,本发明设置正文权重为0.4,标题权重为0.6。通过比对术语列表中术语是否包含于标题来更新tf-idf值,如果术语包含于标题,保持tf-idf值,否则将tf-idf值乘以权重0.4;
[0096]
(d.1.1.7)保存tf-idf值。本发明使用字典形式保存tf-idf值,字典的“键”为一个元组,元组元素的构成为(唯一索引号,术语),字典的“值”为式4计算的td-idf值,最终将字典保存成json格式文件,存储至指定路径。
[0097]
(d.1.2)okapi best matching 25(okapi bm25)算法,是搜索引擎用来评估文档与给定查询量相关性的一个排名函数,本质上是一种词袋检索函数,根据每个文档中出现的查询量对一组文档进行排序,而不考虑查询量与文档的接近程度。bm25是一系列评分函数,其中的组件和参数略有不同,经典的okapi bm25的表示形式如式5:
[0098][0099]
式中组件和参数具体意义如下:
[0100]
变量qi代表第i个查询术语。举例来说,如果用户需搜索“套管”,查询量仅包含一个术语,因此q0即为“套管”;如果键入的查询量经过步骤c电力领域中文分词后的结果是“套管绝缘油”,即含有2个关键术语,q0为“套管”,q1为“绝缘油”,这两部分的检索计算结果代入式5其它组件,再将结果相加即为最终的okapi bm25算法输出score值。
[0101]
idf(qi)是第i个查询术语的逆文档频率。虽然与d.1.1.4中的短语名称相同,但是bm25中的idf(qi)的计算与tf-idf存在差异,bm25中的idf衡量了一个术语在所有文件中出现的频率,并为常见的术语制定“惩罚”策略,如式6所示:
[0102][0103]
其中,doccount代表语料库中句子总量,f(qi)代表包含第i个查询术语的文档数量。式6赋予相对罕见查询术语有更高的idf(qi)系数,使得这些术语对最终bm25score的贡献更大。例如,键入的查询量为“尽管套管绝缘油......”,分词后的关键术语为“尽管套管绝缘油......”,因为“尽管”经常出现于语料库中,所以“套管绝缘油”才是对最终输出结果贡献更大的术语。通过式6可以赋予关键术语更大的权重。
[0104]
代表句子的相对长度,计算方法是用当前句子的长度除以语料库中句子的平均长度。如果文档长度比平均长度长,式5中的分母就会变大,score(d,q)就会降低;如果比
平均长度短,式5中的分母会变小,分数会增加。上述句子长度指经过中文分词预处理后有效的术语数量。
[0105]
加权因子b乘以相对长度用于控制文档长度对score值的影响,如果b越大,句子长度对score的影响更大,如果将b设置为0,那么句子的相对长度将不会对score产生影响。本发明中变量b设置为0.75。
[0106]
f(qi,d)代表文档d中关键术语qi出现的次数,参数的意义是关键词出现在文档中的次数越多,得分就越高,直观来说,包含多次关键术语的文档更有可能与需查询的关键术语匹配。
[0107]
变量k1代表文档饱和度参数,有助于确定词频饱和特性,它限制了单个查询术语对文档得分的影响程度。图1说明了k1对bm25得分的影响情况,k1表征曲线的斜率变化情况,当tf≤k1时,词频对评分的影响曲线快速增长,而当tf>k1时,词频对评分的影响曲线逐渐变慢。本发明中,k1的值设置为1.5。
[0108]
(d.1.3)bm25 算法是okapi bm25算法的扩展形式,d.1.2.3所述的句子相对长度造成超长文档与根本不包含关键术语的较短文档具有类似的相关性,导致式5对超长文档进行不公平的评分。因此,bm25 的评分公式加入了额外的自由参数δ,本发明中设置为1:
[0109][0110]
(d.1.4)bm25f算法是另一种对okapi bm25的改进形式。okapi bm25在计算相关性时把文档当作整体来考虑,但是电力行业标准/规范通常会被切分成多个部分,每部分都包含标题、正文等域,这些域对检索结果的排序贡献不能同等对待,需要为它们设定不同的权重,bm25f计算的分值即为术语在每个域中的分值加权求和:
[0111][0112]
其中,表示术语t在文档d中出现的频率,boostc表示对应域c的权值,lc表示域c中内容的长度,avlc表示域c中内容的平均长度,bc为域c的调节因子。本发明中,共设置标题域和正文域,标题域权重为0.6,由于标题长度较短,因此bc设置为0;正文域权重为0.4,bc设置为0.75。
[0113]
(d.2)语义信息表征是通过深度神经网络自动学习句子在向量空间中的表示,并使得语义相近的句子在向量空间尽量靠近,而语义不同的句子在向量空间尽量远离,算法模型示意图如图2所示。这种方法解决了词频相关性特征只能输出精准包含查询术语的文档(即精准检索),无法进行语义上近义词检索(即关联信息检索)的问题。具体步骤如下:
[0114]
(d.2.1)word2vec算法根据当前词生成下一个词的词向量,词向量指将不同文字符号转化成相同维度的数值表示形式,或嵌入到一个数学空间内。本发明使用skip-gram word2vec模型,根据输入词预测上下文。算法的建模过程与自编码器(auto-encoder)类似,
整体流程为构建输入和输出同维度的神经网络,当模型训练好之后,并不用该模型处理新的任务,只需要提取模型训练的隐藏层参数作为词向量表征,具体步骤如下:
[0115]
(d.2.1.1)输入层为当前词的one-hot编码的形式,举例来说,假设语料库中共有按照某种规则排序的v个术语,在排序列表中找到当前术语,并将向量中对应位置设置为1,本发明中共有22794个关键词,所以n为输入关键词个数;
[0116]
(d.2.1.2)隐藏层的目的是得到语义特征表示,本发明中使用的词向量维度为300,因此隐藏层的权重矩阵为隐藏层输出就是对应术语的词向量;
[0117]
(d.2.1.3)输出层向量的维度与输入层相同,是一个sofimax回归分类器,每个输出节点的值表示0~1之间的概率,所有输出层神经元节点的概率之和为1,模型优化目标是使输出层神经元节点的值与输入one-hot向量尽量接近;
[0118]
(d.2.1.4)本发明使用gensim工具包训练word2vec模型,具体说明如下:
[0119]
(d.2.1.4.1)窗口大小:不同任务应使用不同的窗口大小,使用较小窗口(一般为2~15)得到的词向量表征,如果相似性得分较高,表明术语是可互换的。电力行业标准/规范的语料库是以段落或句子进行划分的,因此选用较小的窗口即可满足要求,本发明中,窗口大小设置为5,表明除了输入术语本身以外还包括前后各两个术语;
[0120]
(d.2.1.4.2)负样本数量:word2vec论文中认为5~20个负样本是比较理想的数量,当拥有足够大的数据集时,2~5个负样本也可满足要求,结合使用的语料库规模,本发明使用了9个负样本;
[0121]
(d.2.1.4.3)其它参数:参数min_count设置为5,代表去除出现5次以下的术语;语料库训练共迭代10轮。
[0122]
(d.2.1.5)词向量保存与加载,分别通过gensim中的model.wv.save_word2vec_format和keyedvectors.load保存和加载词向量,保存的格式为.wordvectors,该格式可简便转化为向量(ndarray)或张量(tensor)形式,方便后续计算。
[0123]
(d.2.2)idf加权平均句向量。平均句向量指对分词后的每个术语取word2vec词向量,分别对每一位进行相加平均,这样做认为所有词重要程度都一样。本发明使用idf值细化每个术语对于当前文本的重要程度或贡献值,使用式4计算的idf值对词向量进行加权。
[0124]
(d.2.3)度量神经网络采用孪生网络结构(结构相同,权值共享),将d.2.2中的句向量经过两层全连接层得到语义表征,并设定triplet loss作为损失函数,优化句向量空间,使得语义上相似的语句尽量靠近,不相关的语句尽量远离,具体步骤如下:
[0125]
(d.2.3.1)度量神经网络训练样本对自动生成,计算每句话的句向量(anchor)与语料库中其它句向量之间的余弦相似度,并按相似度由大到小排序,选取排序列表中的前20位作为相似正样本对(正样本对,positive),标记为1,选取排序中的后20位,认为其为不相关负样本对(负样本对,negative),标记为0;
[0126]
(d.2.3.2)训练样本对人工审核,由业务专家对自动生成的样本进行审核,修改、去除标记出错的样本对;
[0127]
(d.2.3.3)度量神经网络的结构包括三个全连接层,权重矩阵分别为(d.2.3.3)度量神经网络的结构包括三个全连接层,权重矩阵分别为输出的语义特征向量为64维;
[0128]
(d.2.3.4)三元组损失函数用于训练差异性较小的样本,训练标记包括锚样本(anchor),正样本(相关样本,positive)和负样本(不相关样本,negative),通过优化使
anchor与positive距离小于anchor与negative的距离,实现度量学习:
[0129][0130]
其中,margin代表距离阈值,本发明中设定为0.35。
[0131]
(d.2.3.5)本发明所述的算法训练参数如下:全连接层的初始化方式采用随机初始化,优化器选择为sgd,初始学习率为0.01,动量项为0.949,权重衰减系数为5
×
10-4
,批量训练大小为32,训练迭代共计100轮,学习率下降方式是指在第60轮和第80轮迭代在原学习率基础上分别缩放1/10。
[0132]
(d.2.3.6)模型训练完成后,依次将语料库中所有idf加权后的句向量输入度量神经网络,得到d.2.3.3中输出层的神经元作为语义特征,根据唯一检索号存储成json格式文件。
[0133]
步骤e,查询量分词。
[0134]
根据步骤c.1中增量训练的lac分词模型、步骤c.3更新迭代后的变压器知识库词典、步骤c.1分词预处理方式对用户键入的查询量进行分词。
[0135]
步骤f,集成检索排序。
[0136]
根据查询量的分词结果,计算分词结果与语料库中句子的词频相关性及语义相似性数值,由于每种算法度量值的取值范围不同,本发明将相同算法得出的结果归一化到[0.3,1]范围,最后按照唯一检索号进行相加求和。具体步骤如下:
[0137]
(f.1)计算查询量分词术语与语料库分词结果的匹配分数,匹配分数计算适用于步骤d.1中的所有方法。读取步骤d.1以字典形式存储的json文件,本发明根据分词术语遍历字典中的所有“键”,如果术语存在,将算法计算的score值添加到以唯一检索号为“键”的词频相关性字典中,对同一种算法所有相关文档的score值进行归一化,最终形成每种算法的排序;
[0138]
(f.2)计算查询量与语料库的余弦相似度,匹配分数在大多数情况下都是有效的方法,但是随着查询量分词术语数量的增多,匹配分数排序会出现偏差。余弦相似度则将查询量及语料库中的文档向量化,具体步骤如下:
[0139]
(f.2.1)本发明使用语料库中全部关键词生成22794维的向量,按照一定顺序对这些词进行排序;
[0140]
(f.2.2)将语料库中句子的分词结果在f.2.1生成的向量中找到索引位置,并把对应算法的score值填入向量;
[0141]
(f.2.3)对于查询量的向量化,按照步骤d.1中的方法计算词频相关性,其中tf-idf和bm25算法中的术语频率项(tf项)由查询量本身决定,而idf项则根据语料库中相关参量进行计算,将词频信息的score值填入查询向量对应索引位置;
[0142]
(f.2.4)根据式10计算余弦相似度,并进行排序:
[0143][0144]
其中,vecq和vecd分别代表向量化后的查询量和语料库文档。
[0145]
(f.3)集成词频相关性计算结果,本发明将tf-idf,okapi bm25,bm25 和bm25f得
到的相似性度量cos_sim,以唯一检索号为依据进行平均,根据平均后的数值进行排序,形成词频相关性粗排序列表。
[0146]
(f.4)计算查询量与语料库的语义相似度,本发明将查询量输入训练完成的深度神经网络得到语义信息特征向量,并与语料库中的语义特征向量对比语义相似度,具体步骤如下:
[0147]
(f.4.1)通过gensim工具包内keyedvectors.load函数加载语料库词向量文件;
[0148]
(f.4.2)根据步骤e的查询量分词结果从加载的词向量库和语料库中分别找到词向量表征与idf权值,得到idf加权后的句向量;
[0149]
(f.4.3)将加权后的句向量输入完成训练的深度度量神经网络,得到输出层的神经元数值作为语义信息特征向量;
[0150]
(f.4.4)读取步骤d.2.3.6中保存的语料库句向量,依次与查询量句向量计算余弦相似度;
[0151]
(f.4.5)按照查询量分词结果在语料库句子中出现的频率nri对余弦相似度进行加权,作为语义相似度度量:
[0152][0153]
式中,appeari表示术语在语料库第i个句子中出现的次数,ni表示第i个段落总共包含的不重复术语总数。
[0154]
(f.5)将语义相似度归一化至[0.3,1]范围,进行排序,形成语义相似度粗排序列表。
[0155]
步骤g,后处理精排,根据词频相关性和语义相似度制定后处理策略,调整粗排序列表,形成最终精排序列表,具体步骤如下:
[0156]
(g.1)新建最终输出的精排序列表;
[0157]
(g.2)词频相关性后处理精排序,按照粗排序列表开始迭代,当满足如下条件时,将该段落的唯一索引号提前加入精排序列表:
[0158]
(g.2.1)查询量完全包含于正文或标题;
[0159]
(g.2.2)查询量分词结果完全包含于标题;
[0160]
(g.2.3)若以空格键隔开的查询量,字符串拼接后完全包含于标题或正文。
[0161]
(g.3)语义相似性后处理精排,按照粗排序列表开始迭代,当满足查询量的分词结果完全包含于集合(语料库段落正文,段落对应标题,标准大标题)时,将唯一索引号添加到精排序类别;
[0162]
(g.4)集成词频相关性和语义相似性结果,对粗排序列表中剩余的段落进行相加、排序,将最终的排序结果添加到精排序列表中;
[0163]
(g.5)按照实际应用的规则过滤精排序列表,具体包括:
[0164]
(g.5.1)同一标准同一章节在系统返回结果中仅出现一次;
[0165]
(g.5.2)当数值度量标准相同时,电力行业标准(dl)优先级大于电力行业推荐标准(dl/t)大于国家电网企业标准(q/gdw)等。
[0166]
步骤h,基于restful接口的检索系统搭建。
[0167]
本发明所述的检索系统主要包括前端web界面和后端检索模块,前端web界面基于装载windows操作系统的个人电脑,使用vue框架搭建;后端检索模块基于装载ubuntu系统
的python实现,两个模块之间通过restful接口进行通信。主要步骤如下:
[0168]
(h.1)安装搭建vue调试开发环境。
[0169]
(h.1.1)下载安装node环境,因为vue的运行依赖于node中npm管理工具实现;
[0170]
(h.1.2)搭建vue项目环境,安装可全局使用的vue-cli脚手架。
[0171]
(h.2)通过vue中的cssmodule实现网页渲染和样式管理,设计的网页样式如图3所示,用户可在界面中央的文本框内键入所需查询的术语或句子。
[0172]
(h.3)用户完成键入后,点击旁边的“检索”按钮进行检索,点击检索时,vue通过axios工具库生成所需的请求链接,本发明使用get方式向后端程序传入参数,链接形式为http://《ip》:《port》/ir?query=《q》。链接中ip为运行python程序的服务器ip,port为服务器开放通信的端口,q为用户键入的查询量。
[0173]
(h.4)后端检索模块主要包含链接解析,初始化,信息检索等功能模块。
[0174]
(h.4.1)考虑运行效率,检索程序中的初始化过程耗时较长,如果每进行一次检索都载入初始化参数,无法满足实际运行需求。因此,在进行接口通信之前,先进行程序初始化,载入所需的人工智能模型及参数,包括分词模型、停词表、word2vec词向量、深度度量学习模型、词频信息特征向量库、语义信息特征向量库等;
[0175]
(h.4.2)安装python的flask工具包,实现restful接口服务,通过app.route传入前端传输的url及通信方式(get、post等),通过request.args解析url参数,得到所需的查询量;
[0176]
(h.4.3)根据查询量进行信息检索,程序应返回步骤g.4中的精排序列表,返回值为json格式字符串,主要包括的“键”为排序序号、电力行业标准/规范名称、对应正文内容。
[0177]
(h.5)vue解析后端返回的json字符串,通过css模块渲染展示于web界面中。vue通过“键”名直接读取json字符串中的变量,标准/规范的名称放大位于每条检索结果的上方,名称下放入正文内容,正文中包含查询量关键术语的地方用高亮表示,搜索结果示意如图4所示。
[0178]
基于上述方法,搭建基于restful接口的检索系统,实现用户与代码的实时交互。该系统包括存储器、处理器和交互展示装置,所述存储器中存有通过算法训练得到的分词模型、变压器知识库词典、词频相关性特征和语义信息特征,所述处理器根据交互展示装置发送的查询量,结合词频相关性和语义相似性的归一化结果对语料库中的句子进行精准检索粗排序,然后将查询量输入度量神经网络与语料库中的句子语义表征进行相似度匹配,并根据该值进行语料库关联信息粗排序,最后根据后处理逻辑策略调整检索排序,并将最终的排序结果发送至所述交互展示装置展示。系统采用restful接口实现用户与代码的互联:用户在前端web界面键入查询量后点击检索按钮,前端自动向后端程序发出get请求;后端python代码解析前端发送的url链接,后端程序输入用户键入的查询量,并将检索结果用json字符串形式返回检索系统;检索系统解析json字符串,并最终将检索结果展示于系统界面。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献