1.本发明涉及自然语言处理技术领域,更具体的,涉及一种面向电网领域的多策略智能搜索问答方法及系统。
背景技术:2.我国是一个用电大国,对电力的生产和维护需要专业的电力技术工人去支持,对于现场作业复杂、情况多变并且危险系数较高,维修人员需要精准的判断问题并快速的解决问题,电网相关技术知识内容涉及面广,相关人员需要储备大量的电网知识内容,并且很难记住容易忘记,还包括对营销、物流、信息、配电、输电等很多相关服务技能,这给维修维护人员带来了极大不便。对于专业电网相关知识内容,传统的问答系统已经不能够满足现有的需求。
3.faq问答系统是结合信息检索技术和自然语言处理技术的人工智能产品。常见的faq问答系统从用户提出问答到用户获取答案,通常需要以下三个步骤:问题分析、信息检索和生成答案。针对用户以自然语言形式提出的问题,问题分析模块主要实现问题的预处理,通常需要对问题进行分词、去停用词以及词性标注操作,同时还应获取问题关键词,从而获取用户问题意图。信息检索模块主要是通过相似度计算从给定的faq数据集中检索出与用户问题最相似的问题。生成答案模块主要实现对检索出的问题-答案对进行排序,返回用户相似度最高的答案给到用户。
4.faq问答系统中,文本相似度计算是信息检索阶段的关键技术,目前文本相似度计算的方法大致有以下几类:(1)基于字面匹配的方法,该方法主要从词形上进行文本匹配,典型的方法如jaacard距离、最长公共子串方法、bm25算法等。通常情况下,同一个词在不同的语境下可能有不同的含义,不同的词语在某些场景下可能有相同的含义,因此字面匹配方法在语义相似性方面有较大的局限性。
5.(2)基于统计的方法,该方法主要是依据语料库将文本转化为向量形式,使计算机可以执行相应的操作,获取具有相似上下文的词语。典型的方法如向量空间模型(vector space model,vsm)、神经网络模型等。如huang等人设计提出的dssm网络,运用dnn网络将问题和问答对映射为地位语义向量,然后实现低维向量空间中计算其语义向量间的余弦距离,获取其相似度实现文本匹配任务,但在文本的上下文信息及语序信息上效果欠佳。
6.(3)基于规则的方法,该方法需要通过人工构建具有一定规则的知识库,并根据其中定义的规则,将文本中的特征词分解为概念,从而实现特征词之间的相似度计算转化为概念间的相似度计算。gabrilovich等人设计提出的显性语义分析方法(explicit semantic analysis,esa),通过计算概念向量间距离来计算文本特征次间的相似度获得了较好的效果,但其在构建规则部分需要耗费大量的人力资源。
7.在实际应用场景中,即工业界中,对于faq问答系统的匹配速度有着较高的要求,通常要求系统能够与用户进行实时交互,用户提出的问题形式错综复杂,问题中存在关键
词省略以及指代现象,口语化的问题形式等给计算机理解用户问题带来了一定的阻碍。除此之外,随着事件的推移和产品的版本迭代,faq问题-答案库需要定期进行增量更新,这对于faq问答系统的鲁棒性同样有着较高的要求。其次,学术界对于faq问答系统的研究较少,重点集中于相似度计算等单点技术方面,无法满足实际应用场景的需求,对于faq问答系统整体的研究与应用实现带来了一定的挑战。
技术实现要素:8.本发明为了解决以上现有技术的传统问答功能无法针对电网专业领域知识内容进行精确查找的问题,提供了一种面向电网领域的多策略智能搜索问答方法及系统,从而解决现有的传统问答功能无法对电网专业领域知识内容进行语义层面的精确查找的问题。
9.为实现上述本发明目的,采用的技术方案如下:一种面向电网领域的多策略智能搜索问答方法,所述的方法包括步骤如下:获取用户问题;同时对用户问题、由电网专业领域知识内容构成的faq问题-答案对库进行语义特征提取,将用户问题转化成向量形式,将每个faq问题-答案对提取语义特征向量;使用faiss向量搜索引擎对faq问题-答案对的语义特征向量构建每个问题-答案对的向量索引,由此得到faq问题-答案对库的向量索引矩阵;根据每个问题-答案对的索引与用户问题对应的向量形式,利用faiss进行向量检索,先对用户问题向量和构建好的faq问题-答案对库向量索引矩阵进行l2归一化处理,然后通过cosine similarity计算,得到的分数作为相似度依据,获取n个与用户问题相似度最高的向量,得到从faq问题-答案对库中检索出与用户问题相似度最高的n个问答对;对基于召回阶段得到的相似度最高的n个问答对进行排序,返回相似度最高k个答案;其中n、k均为大于0的正整数,且k小于或等于n。
10.优选地,当获取用户问题之后,先判断用户问题是否为空字符串;若为空字符串,则提示用户重新输入;若用户问题不是空字符串,则将用户问题转化成向量形式。
11.优选地,使用深度学习模型对 faq问题-答案对库的每个问题-答案对提取语义特征向量。
12.优选地,使用 faiss 向量搜索引擎中的倒排乘积量化索引对 faq 问题-答案对构建每个问题-答案对的索引。
13.优选地,若没有找到与用户问题相似的标准问题,则转到kbqa模块,利用图谱问答服务,对用户提问的问题进行处理;所述的kbqa模块在faq问题-答案对库中进行查找和匹配是否存在相似的标准问题,若存在则返回对应答案;若不存在标准问题,则将问题添加至faq知识库中并人工给出答案;同时对用户反馈不满意的问题也添加至faq知识库中并人工给出答案;将人工给出的答案作为下一次迭代的训练数据样本,用于对faq问题-答案对库进行重构。
14.优选地,所述的深度学习模型采用sentence-transformer框架,利用hugging face开源的预训练模型库中的distiluse-base-multilingual-cased模型来完成faq问题-答案对库的构建和对用户问题的语义特征向量的提取;distiluse-base-multilingual-cased模型结构为双塔模型结构;训练过程是首先把句子对分别输入到两个子bert模型中,
然后通过池化策略得到句子表示u、v,接着把句子表示u、v,和|u-v|拼接起来,最后经过softmax函数得到相似概率,通过最小化交叉熵损失来distiluse-base-multilingual-cased模型,同时更新权重w。
15.一种面向电网领域的多策略智能搜索问答系统,包括faq问题-答案对库、语义特征提取模块、向量库索引构建模块、语义信息检索模块、问题匹配模块;所述的faq问题-答案对库,由电网专业领域知识内容构成;所述的语义特征提取模块,用于对用户问题进行语义特征提取,将用户问题转化成向量形式;同时对faq问题-答案对库进行语义特征提取,将每个faq问题-答案对提取语义特征向量;所述的向量库索引构建模块,使用faiss向量搜索引擎对faq问题-答案对的语义特征向量构建每个问题-答案对的向量索引,由此得到faq问题-答案对库的向量索引矩阵;所述的语义信息检索模块,用于根据每个问题-答案对的索引与用户问题对应的向量形式,利用faiss进行向量检索,先对用户问题向量和构建好的faq问题-答案对库向量索引矩阵进行l2归一化处理,然后通过cosine similarity计算,得到的分数作为相似度依据,获取n个与用户问题相似度最高的向量,得到从faq问题-答案对库中检索出与用户问题相似度最高的n个问答对;所述的问题匹配模块,对基于召回阶段得到相似度最高的n个问答对进行排序,返回相似度最高k个答案;其中n、k均为大于0的正整数,且k小于或等于n。
16.优选地,所述的语义特征提取模块采用深度学习模型提取特征向量。
17.一种计算机系统,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如所述面向电网领域的多策略智能搜索问答方法的步骤。
18.一种计算机可读存储介质,其上存储有计算机程序,所述的计算机程序被处理器执行时,实现所述面向电网领域的多策略智能搜索问答方法的步骤。
19.本发明的有益效果如下:本发明通过采用语义向量检索的方式,提取每个问题句子的向量特征,通过问题向量计算,获取在实际情况下对用户常问的问题与标准答案收集起来的faq问题-答案对库中匹配最准确的、最相似的问答对,提高搜索的准确性。同时在向量匹配的过程采用向量搜索引擎处理这些向量,能非常快速的实现海量相似文本的查询、排序,针对用户提出的重复性问题,提升其问题回复的准确率与效率,通过快速的向用户返回常见问题答案,使得人工客服可以专注于解决系统无法回复的问题,提升人员的工作效率,同时也极大节约企业的劳动力资源与财务资源的开销。
附图说明
20.图1是本发明所述的面向电网领域的多策略智能搜索问答方法的流程图。
21.图2是本发明所述的面向电网领域的多策略智能搜索问答方法的原理框图。
22.图3是双塔模型结构图。
23.图4是faq问答对生成示例图。
24.图5是本发明多策略智能搜索问答系统的原理图。
具体实施方式
25.下面结合附图和具体实施方式对本发明做详细描述。
26.实施例1如图1、2所示,一种面向电网领域的多策略智能搜索问答方法,所述的方法包括步骤如下:获取用户问题;同时对用户问题、由电网专业领域知识内容构成的faq问题-答案对库进行语义特征提取,将用户问题转化成向量形式,将每个faq问题-答案对提取语义特征向量;使用faiss向量搜索引擎对faq问题-答案对的语义特征向量构建每个问题-答案对的向量索引,由此得到faq问题-答案对库的向量索引矩阵;根据每个问题-答案对的索引与用户问题对应的向量形式,利用faiss进行向量检索,先对用户问题向量和构建好的faq问题-答案对库向量索引矩阵进行l2归一化处理,然后通过cosine similarity计算,得到的分数作为相似度依据,获取n个与用户问题相似度最高的向量,得到从faq问题-答案对库中检索出与用户问题相似度最高的n个问答对;对基于召回打分阶段得到的相似度最高的n个问答对进行排序,返回相似度最高k个答案;其中n、k均为大于0的正整数,且k小于或等于n。
27.本实施例能针对用户提出的问题,能够依据向量检索技术对其特征向量进行快速检索。
28.在本实施例中,得到从faq问题-答案对库中检索出与用户问题相似度最高的n个问答对是属于召回打分阶段,通过利用faiss计算cos余弦距离,作为相似度分数。返回相似度最高k个答案是属于排序阶段,可以根据用户的需求进行一定数量的返回,k是n的topk。本实施例利用faiss构建的向量集合存储在矩阵中。faiss仅使用32位浮点矩阵,其中矩阵的列表示向量的特征,行表示向量样本数。
29.在一个具体的实施例中,当获取用户问题之后,先判断用户问题是否为空字符串;若为空字符串,则提示用户重新输入;若用户问题不是空字符串,则将用户问题转化成向量形式。
30.在一个具体的实施例中,使用深度学习模型对faq问题-答案对库的每个问题-答案对提取语义特征向量。所述的深度学习模型采用sentence transformers模型。
31.在一个具体的实施例中,使用 faiss 向量搜索引擎中的倒排乘积量化索引对 faq 问题-答案对构建每个问题-答案对的索引,实现对用户问题表示向量的快速检索,提升faq问答系统的问答效率。
32.在一个具体的实施例中,若没有找到与用户问题相似的标准问题,则转到kbqa模块,利用图谱问答服务,对用户提问的问题进行处理;所述的kbqa模块在faq问题-答案对库中进行查找和匹配是否存在相似的标准问题,若存在则返回对应答案;若不存在标准问题,则将问题添加至faq知识库中并人工给出答案;同时对用户反馈不满意的答案也添加至faq知识库中并人工给出答案;将人工给出的答案作为下一次迭代的训练数据样本,用于对faq问题-答案对库进行重构。
33.在本实施例中,设置迭代时间为一周迭代一次,通过对faq问题-答案对库进行重构,以进一步优化智能问答系统。
34.所述的kbqa是图谱问答模块,其本身为一个单独的服务,当从faq问题-答案对库获取不到任何答案时,调用kbqa模块,对用户的问题进行回答。
35.需要说明的是,如图4所示,为了能进一步提高准确率,在返回标答案后,还标记用户对该答案的满意度,如满意、或不满意;针对不满意的答案,添加至faq问题-答案对库中并人工给出答案,这种做法有利于提交问答精确度,能保证返回用户想到的答案,提高用户满意度。
36.在一个具体的实施例中,如图3所示,所述的深度学习模型采用sentence-transformer框架,利用hugging face开源的预训练模型库中的distiluse-base-multilingual-cased模型来完成faq问题-答案对库的构建和对用户问题的语义特征向量的提取;distiluse-base-multilingual-cased模型结构为双塔模型结构;训练过程是首先把句子对分别输入到两个子bert模型中,然后通过池化策略得到句子表示u、v,接着把句子表示u、v,和|u-v|拼接起来,最后经过softmax函数得到相似概率,通过最小化交叉熵损失来distiluse-base-multilingual-cased模型,同时更新权重w。
37.所述的distiluse-base-multilingual-cased模型,是由hugging face通过大规模语料训练出来的预训练模型。
38.本实施例通过采用语义向量检索的方式,利用向量化技术,使用经过大量的faq问题-答案对库训练的预训练模型,提取每个句子的向量特征,通过向量计算获取问句与faq问题-答案对库中候选问句的语义距离,从而解决现有的传统问答功能无法对电网专业领域知识内容进行语义层面的精确查找。并且通过faq和kbqa两种问答模块的结合解决对单一问答检索准确性不高的问题。
39.实施例2如图5所示,一种面向电网领域的多策略智能搜索问答系统,包括faq问题-答案对库、语义特征提取模块、向量库索引构建模块、语义信息检索模块、问题匹配模块;所述的faq问题-答案对库,由电网专业领域知识内容构成;所述的语义特征提取模块,用于对用户问题进行语义特征提取,将用户问题转化成向量形式;同时对faq问题-答案对库进行语义特征提取,将每个faq问题-答案对提取语义特征向量;所述的向量库索引构建模块,使用faiss向量搜索引擎对faq问题-答案对的语义特征向量构建每个问题-答案对的向量索引,由此得到faq问题-答案对库的向量索引矩阵;所述的语义信息检索模块,用于根据每个问题-答案对的索引与用户问题对应的向量形式,利用faiss进行向量检索,先对用户问题向量和构建好的faq问题-答案对库向量索引矩阵进行l2归一化处理,然后通过cosine similarity计算,得到的分数作为相似度依据,获取n个与用户问题相似度最高的向量,得到从faq问题-答案对库中检索出与用户问题相似度最高的n个问答对;所述的问题匹配模块,对基于召回阶段得到相似度最高的n个问答对进行排序,返回相似度最高k个答案;其中n、k均为大于0的正整数,且k小于或等于n。
40.在本实施例所述的,所述的语义特征提取模块采用深度学习模型提取特征向量。
41.实施例3一种计算机系统,包括存储器、处理器及存储在所述存储器上并可在所述处理器
上运行的计算机程序,所述处理器执行所述计算机程序时实现如实施例1所述面向电网领域的多策略智能搜索问答方法的步骤。
42.其中,存储器和处理器采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器和存储器的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器。
43.实施例4一种计算机可读存储介质,其上存储有计算机程序,所述的计算机程序被处理器执行时,实现如实施例1所述面向电网领域的多策略智能搜索问答方法的步骤。
44.即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
45.显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。