CN111460081A - 基于深度学习的答案生成方法、电子装置及可读存储介质 - Google Patents
基于深度学习的答案生成方法、电子装置及可读存储介质 Download PDFInfo
- Publication number
- CN111460081A CN111460081A CN202010235343.1A CN202010235343A CN111460081A CN 111460081 A CN111460081 A CN 111460081A CN 202010235343 A CN202010235343 A CN 202010235343A CN 111460081 A CN111460081 A CN 111460081A
- Authority
- CN
- China
- Prior art keywords
- candidate
- processed
- question
- vector
- word
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/325—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及智能决策技术领域,揭露了一种基于深度学习的答案生成方法,该方法包括:从第二数据库中查找与待处理问题匹配的多个候选问题的句向量,将待处理问题的句向量分别与每个候选问题的句向量组合生成多个向量对,计算每个向量对的差值绝对值及点乘,将待处理问题的句向量、每个候选问题的句向量、每个向量对的差值绝对值及点乘输入预设语言模型,得到每个候选问题与待处理问题的文本相似度评分,根据文本相似度评分确定出与待处理问题最匹配的候选问题,将最匹配的候选问题的答案作为待处理问题的答案。本发明还提出一种电子装置以及一种计算机可读存储介质。本发明提高了答案生成的效率及精确度。
Description
技术领域
本发明涉及智能决策技术领域,尤其涉及一种基于深度学习的答案生成方法、电子装置及可读存储介质。
背景技术
随着人工智能在生活应用中的普及,自然语言处理作为人工智能的重要组成部分,以人机交互降低人力成本为主要应用形式发挥了极大的作用。人机交互主要包括语音识别、文本理解、答案生成等方面。答案生成作为其中的核心环节,是学术界以及工程界研究的热点领域。
目前,基于深度学习的答案生成模型不断有新的突破,特别是在公开数据集的准确率上有了大幅提升。例如,最新的基于语境的词向量预训练模型BERT,一经发布,就在各种数据集评测中上获得了较佳成绩。然而,如今的模型结构越来越复杂,模型总参数量也越来越大,虽然计算机的算力每年也保持很快的增长幅度,然而在实际应用时,如果不对模型进行简化和参数量的缩减,囿于实际服务器和网络传输性能的限制,会对交互的响应速度、模型的输出效率、延时等造成极大的影响,不能满足实际应用需求。若对模型进行简化,虽然会在输出效率方面得到一定程度的提高,但会导致模型精确度的大幅度下降。因此,亟需一种答案生成方法,以提高答案生成的效率及精确度。
发明内容
鉴于以上内容,有必要提供一种基于深度学习的答案生成方法,旨在提高答案生成的效率及精确度。
本发明提供的基于深度学习的答案生成方法,包括:
查找步骤:接收用户提交的待处理问题,从第一数据库中查找与所述待处理问题匹配的多个候选问题及所述多个候选问题的答案,将所述多个候选问题的集合作为候选问题集,采用第一算法从第二数据库中查找所述候选问题集中每个候选问题的句向量;
处理步骤:对所述待处理问题执行词向量化处理,得到所述待处理问题中每个词语的词向量,将所述词向量输入预设语言模型的特征提取层,得到所述待处理问题的句向量;
组合步骤:将所述待处理问题的句向量分别与所述候选问题集中每个候选问题的句向量组合生成多个向量对,分别计算所述多个向量对中每个向量对的差值绝对值及点乘;
确定步骤:将所述待处理问题的句向量、所述候选问题集中每个候选问题的句向量、所述每个向量对的差值绝对值及点乘输入所述预设语言模型的全连接层,得到所述候选问题集中每个候选问题与所述待处理问题的文本相似度评分,根据所述文本相似度评分确定所述候选问题集中与所述待处理问题匹配度最高的候选问题,将所述匹配度最高的候选问题的答案作为所述待处理问题的答案。
可选的,所述对所述待处理问题执行词向量化处理包括:
采用第二算法对所述待处理问题进行分词,得到第一词语序列;
去除所述第一词语序列中的预设关键词,得到第二词语序列;
根据预设长度阈值对所述第二词语序列进行截断或补充,得到目标词语序列;
采用word2vec模型获取所述目标词语序列中每个词语的词向量。
可选的,所述第一算法为基于python字典的哈希算法,所述第二算法为基于监督学习的隐马尔科夫的未知单词分词算法和/或基于预设词典的正向最大匹配算法。
可选的,所述根据所述文本相似度评分确定所述候选问题集中与所述待处理问题匹配度最高的候选问题包括:
若所述候选问题集中每个候选问题与所述待处理问题的文本相似度评分均小于预设分数阈值,则确定没有与所述待处理问题匹配的候选问题,并向用户发送提示信息;或者
若所述候选问题集中仅有一个候选问题与所述待处理问题的文本相似度评分大于或等于预设分数阈值,则确定所述候选问题为与所述待处理问题匹配度最高的候选问题;或者
若所述候选问题集中有多个候选问题与所述待处理问题的文本相似度评分大于或等于预设分数阈值,则将所述多个候选问题中文本相似度评分最高的候选问题作为与所述待处理问题匹配度最高的候选问题。
可选的,所述方法还包括:
定时或实时对所述第一数据库中的候选问题及答案进行更新,并根据所述更新的候选问题更新所述第二数据库中对应的句向量。
此外,为实现上述目的,本发明还提供一种电子装置,该电子装置包括:存储器、处理器,所述存储器中存储有可在所述处理器上运行的答案生成程序,所述答案生成程序被所述处理器执行时实现如下步骤:
查找步骤:接收用户提交的待处理问题,从第一数据库中查找与所述待处理问题匹配的多个候选问题及所述多个候选问题的答案,将所述多个候选问题的集合作为候选问题集,采用第一算法从第二数据库中查找所述候选问题集中每个候选问题的句向量;
处理步骤:对所述待处理问题执行词向量化处理,得到所述待处理问题中每个词语的词向量,将所述词向量输入预设语言模型的特征提取层,得到所述待处理问题的句向量;
组合步骤:将所述待处理问题的句向量分别与所述候选问题集中每个候选问题的句向量组合生成多个向量对,分别计算所述多个向量对中每个向量对的差值绝对值及点乘;
确定步骤:将所述待处理问题的句向量、所述候选问题集中每个候选问题的句向量、所述每个向量对的差值绝对值及点乘输入所述预设语言模型的全连接层,得到所述候选问题集中每个候选问题与所述待处理问题的文本相似度评分,根据所述文本相似度评分确定所述候选问题集中与所述待处理问题匹配度最高的候选问题,将所述匹配度最高的候选问题的答案作为所述待处理问题的答案。
可选的,所述对所述待处理问题执行词向量化处理包括:
采用第二算法对所述待处理问题进行分词,得到第一词语序列;
去除所述第一词语序列中的预设关键词,得到第二词语序列;
根据预设长度阈值对所述第二词语序列进行截断或补充,得到目标词语序列;
采用word2vec模型获取所述目标词语序列中每个词语的词向量。
可选的,所述第一算法为基于python字典的哈希算法,所述第二算法为基于监督学习的隐马尔科夫的未知单词分词算法和/或基于预设词典的正向最大匹配算法。
可选的,所述答案生成程序被所述处理器执行时还实现如下步骤:
定时或实时对所述第一数据库中的候选问题及答案进行更新,并根据所述更新的候选问题更新所述第二数据库中对应的句向量。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有答案生成程序,所述答案生成程序可被一个或者多个处理器执行,以实现上述基于深度学习的答案生成方法的步骤。
相较现有技术,本发明首先从第一数据库中查找与待处理问题匹配的多个候选问题,组成候选问题集,并从第二数据库中查找候选问题集中每个候选问题的句向量,本发明提前将每个候选问题的句向量存储至第二数据库,减少了应用时计算候选问题的句向量的时间,提高了效率;然后,将待处理问题经向量化处理得到的句向量分别与所述候选问题集中每个候选问题的句向量组合生成多个向量对,计算每个向量对的差值绝对值及点乘,将所述待处理问题的句向量、候选问题集中每个候选问题的句向量、每个向量对的差值绝对值及点乘输入预设语言模型,得到所述候选问题集中每个候选问题与待处理问题的文本相似度评分,本发明通过增加向量对的差值绝对值及点乘作为预设语言模型的全连接层的输入,使得输入表征的语义更加丰富,从而使模型输出的相似度评分更加精确;最后,通过文本相似度评分确定出与待处理问题最匹配的候选问题,将最匹配的候选问题的答案作为待处理问题的答案。因此,本发明提高了答案生成的效率及精确度。
附图说明
图1为本发明电子装置一实施例的示意图;
图2为图1中的答案生成程序一实施例的程序模块图;
图3为本发明基于深度学习的答案生成方法一实施例的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
如图1所示,为本发明电子装置1一实施例的示意图。电子装置1是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。所述电子装置1可以是计算机、也可以是单个网络服务器、多个网络服务器组成的服务器组或者基于云计算的由大量主机或者网络服务器构成的云,其中云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。
在本实施例中,电子装置1包括,但不仅限于,可通过系统总线相互通信连接的存储器11、处理器12、网络接口13,该存储器11中存储有答案生成程序10,所述答案生成程序10可被所述处理器12执行。图1仅示出了具有组件11-13以及答案生成程序10的电子装置1,本领域技术人员可以理解的是,图1示出的结构并不构成对电子装置1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
其中,存储器11包括内存及至少一种类型的可读存储介质。内存为电子装置1的运行提供缓存;可读存储介质可为如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等的非易失性存储介质。在一些实施例中,可读存储介质可以是电子装置1的内部存储单元,例如该电子装置1的硬盘;在另一些实施例中,该非易失性存储介质也可以是电子装置1的外部存储设备,例如电子装置1上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。本实施例中,存储器11的可读存储介质通常用于存储安装于电子装置1的操作系统和各类应用软件,例如存储本发明一实施例中的答案生成程序10的代码等。此外,存储器11还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器12在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器12通常用于控制所述电子装置1的总体操作,例如执行与其他设备进行数据交互或者通信相关的控制和处理等。本实施例中,所述处理器12用于运行所述存储器11中存储的程序代码或者处理数据,例如运行答案生成程序10等。
网络接口13可包括无线网络接口或有线网络接口,该网络接口13用于在所述电子装置1与客户端(图中未画出)之间建立通信连接。
可选的,所述电子装置1还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选的,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子装置1中处理的信息以及用于显示可视化的用户界面。
在本发明的一实施例中,所述答案生成程序10被所述处理器12执行时实现如下查找步骤、处理步骤、组合步骤及确定步骤。
查找步骤:接收用户提交的待处理问题,从第一数据库中查找与所述待处理问题匹配的多个候选问题及所述多个候选问题的答案,将所述多个候选问题的集合作为候选问题集,采用第一算法从第二数据库中查找所述候选问题集中每个候选问题的句向量。
所述第一数据库中包括预先存储的多个候选问题及其答案,所述第二数据库中包括所述第一数据库中的每个候选问题的句向量。本实施例中,所述第一数据库为ElasticSearch数据库,ElasticSearch数据库可提供分布式、高扩展、高实时的搜索与数据分析引擎。同时,预先将ElasticSearch数据库中的每个候选问题输入预设语言模型的特征提取层得到每个候选问题的句向量,并将所述句向量存储至第二数据库,可以节省实际应用时计算候选问题的句向量的时间。
本实施例中,所述第一算法为基于python字典的哈希算法。电子装置1在接收到用户输入的待处理问题后,通过关键词匹配,从第一数据库中查找与待处理问题匹配的多个候选问题,组成候选问题集,并基于python字典的哈希算法(通过候选问题的key值计算出所述候选问题的句向量的存储地址)从第二数据库中查找所述候选问题集中每个候选问题的句向量。采用基于python字典的哈希算法可提升查找效率。
例如,用户输入的待处理问题为:我买了智盈万能险,一年四千,交八年了,能退保吗?从第一数据库中搜索匹配得到如下3个候选问题组成的候选问题集:
候选问题1:附加意外伤害保险不想要了,可以退保吗?
候选问题2:我的保险要退保,要怎么办?
候选问题3:孕妇血糖偏高,可以买保险不?
从第二数据库中查找到的所述候选问题集中3个候选问题的句向量分别为u1,u2,u3。
处理步骤:对所述待处理问题执行词向量化处理,得到所述待处理问题中每个词语的词向量,将所述词向量输入预设语言模型的特征提取层,得到所述待处理问题的句向量。
本实施例中,所述对所述待处理问题执行词向量化处理包括:
A1、采用第二算法对所述待处理问题进行分词,得到第一词语序列;
所述第二算法为基于监督学习的隐马尔科夫的未知单词分词算法和/或基于预设词典的正向最大匹配算法。
A2、去除所述第一词语序列中的预设关键词,得到第二词语序列;
所述预设关键词包括停用词(例如,喂,嗯,哦)、感叹词(例如,呀,啊,哇)及无意义词(例如,您好,好的,谢谢)。
去除预设关键词,即不影响待处理问题的语义,又可以精简待处理问题的字数,从而提高后续处理速度。
A3、根据预设长度阈值对所述第二词语序列进行截断或补充,得到目标词语序列;
当第二词语序列中的词语总字数超过预设长度阈值(例如,64个)时,则将超出预设长度阈值的部分剔除(即仅保留第二词语序列中前64个字),然而实际数据显示几乎不存在超过64个字的问题词语序列。
当第二词语序列中的词语总字数不足预设长度阈值时,用预设补全符(例如,<padding>)将第二词语序列的长度补充至预设长度阈值。
A4、采用word2vec模型获取所述目标词语序列中每个词语的词向量。
本实施例中,采用word2vec模型(用来产生词向量的模型)来获取目标词语序列中每个词语的词向量。
将目标词语序列中每个词语的词向量输入预设语言模型即可得到待处理问题的句向量。
本实施例中,所述预设语言模型为在Bert模型的基础上增加一层全连接层和softmax分类层所得到的新模型。
所述预设语言模型的特征提取层用来处理输入的词向量,并基于自注意力机制(自注意力机制用于学习句子内部的词语依赖关系,捕获句子的内部结构)输出句向量。
现有技术中,采用将待处理问题分别与多个候选问题拼接及向量化处理得到多个文本序列的词向量,然后逐一将每个文本序列的词向量输入预设语言模型的特征提取层得到句向量,以供下一步骤计算每个组合的文本相似度,然而这种方式得到的文本序列较长,导致单次输入的词向量较多,且需要多次调用预设语言模型。研究发现,文本序列的句向量生成时间与文本长度正平方相关,则上述将待处理问题分别与候选问题进行拼接的方式,生成句向量的时间复杂度为O(K*N^2),其中,K为候选问题的数量,N为拼接后的文本序列的长度。而本实施例,仅将待处理问题作为预设语言模型的输入,生成句向量的时间复杂度为O(M^2),其中M为待处理问题对应的目标词语序列的长度,M<N,候选问题的句向量则从第二数据库获取,以供下一步骤计算每个组合的文本相似度,本实施例可大幅缩短句向量的生成时间。
组合步骤:将所述待处理问题的句向量分别与所述候选问题集中每个候选问题的句向量组合生成多个向量对,分别计算所述多个向量对中每个向量对的差值绝对值及点乘。
若待处理问题“我买了智盈万能险,一年四千,交八年了,能退保吗?”的句向量为v,候选集中三个候选问题的句向量分别为u1,u2,u3,则生成的向量对分别为(u1,v),(u2,v),(u3,v);向量对的差值绝对值分别为|u1-v|,|u2-v|,|u3-v|;向量对的点乘分别为(u1*v),(u2*v),(u3*v)。
确定步骤:将所述待处理问题的句向量、所述候选问题集中每个候选问题的句向量、所述每个向量对的差值绝对值及点乘输入所述预设语言模型的全连接层,得到所述候选问题集中每个候选问题与所述待处理问题的文本相似度评分,根据所述文本相似度评分确定所述候选问题集中与所述待处理问题匹配度最高的候选问题,将所述匹配度最高的候选问题的答案作为所述待处理问题的答案。
本实施例中,增加向量对的差值绝对值及乘积作为预设语言模型的全连接层的输入,使得输入表征的语义更加丰富,从而使模型输出的相似度评分更加精确。
所述根据所述文本相似度评分确定所述候选问题集中与所述待处理问题匹配度最高的候选问题包括:
若所述候选问题集中每个候选问题与所述待处理问题的文本相似度评分均小于预设分数阈值,则确定没有与所述待处理问题匹配的候选问题,并向用户发送提示信息;或者
若所述候选问题集中仅有一个候选问题与所述待处理问题的文本相似度评分大于或等于预设分数阈值,则确定所述候选问题为与所述待处理问题匹配度最高的候选问题;或者
若所述候选问题集中有多个候选问题与所述待处理问题的文本相似度评分大于或等于预设分数阈值,则将所述多个候选问题中文本相似度评分最高的候选问题作为与所述待处理问题匹配度最高的候选问题。
在本发明的另一个实施例中,所述方法还包括:
定时或实时对所述第一数据库中的候选问题及答案进行更新,并根据所述更新的候选问题更新所述第二数据库中对应的句向量。
所述第一数据库中的候选问题及其答案和第二数据库中的句向量是动态的,用户可根据需要对其进行调整和更新。
由上述实施例可知,本发明提出的电子装置1,首先,从第一数据库中查找与待处理问题匹配的多个候选问题,组成候选问题集,并从第二数据库中查找候选问题集中每个候选问题的句向量,本发明提前将每个候选问题的句向量存储至第二数据库,减少了应用时计算候选问题的句向量的时间,提高了效率;然后,将待处理问题经向量化处理得到的句向量分别与所述候选问题集中每个候选问题的句向量组合生成多个向量对,计算每个向量对的差值绝对值及点乘,将所述待处理问题的句向量、候选问题集中每个候选问题的句向量、每个向量对的差值绝对值及点乘输入预设语言模型,得到所述候选问题集中每个候选问题与待处理问题的文本相似度评分,本发明通过增加向量对的差值绝对值及点乘作为预设语言模型的全连接层的输入,使得输入表征的语义更加丰富,从而使模型输出的相似度评分更加精确;最后,通过文本相似度评分确定出与待处理问题最匹配的候选问题,将最匹配的候选问题的答案作为待处理问题的答案。因此,本发明提高了答案生成的效率及精确度。
在其他实施例中,答案生成程序10还可以被分割为一个或者多个模块,一个或者多个模块被存储于存储器11中,并由一个或多个处理器(本实施例为处理器12)所执行以完成本发明,本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,用于描述答案生成程序10在电子装置1中的执行过程。
如图2所示,为图1中的答案生成程序10一实施例的程序模块图。
在本发明的一个实施例中,答案生成程序10包括查找模块110、处理模块120、组合模块130及确定模块140,示例性地:
所述查找模块110,用于接收用户提交的待处理问题,从第一数据库中查找与所述待处理问题匹配的多个候选问题及所述多个候选问题的答案,将所述多个候选问题的集合作为候选问题集,采用第一算法从第二数据库中查找所述候选问题集中每个候选问题的句向量。
所述处理模块120,用于对所述待处理问题执行词向量化处理,得到所述待处理问题中每个词语的词向量,将所述词向量输入预设语言模型的特征提取层,得到所述待处理问题的句向量。
所述组合模块130,用于将所述待处理问题的句向量分别与所述候选问题集中每个候选问题的句向量组合生成多个向量对,分别计算所述多个向量对中每个向量对的差值绝对值及点乘。
所述确定模块140,用于将所述待处理问题的句向量、所述候选问题集中每个候选问题的句向量、所述每个向量对的差值绝对值及点乘输入所述预设语言模型的全连接层,得到所述候选问题集中每个候选问题与所述待处理问题的文本相似度评分,根据所述文本相似度评分确定所述候选问题集中与所述待处理问题匹配度最高的候选问题,将所述匹配度最高的候选问题的答案作为所述待处理问题的答案。
上述查找模块110、处理模块120、组合模块130及确定模块140等程序模块被执行时所实现的功能或操作步骤与上述实施例大体相同,在此不再赘述。
如图3所示,为本发明基于深度学习的答案生成方法一实施例的流程图,该答案生成方法包括步骤S1-S4。
S1、接收用户提交的待处理问题,从第一数据库中查找与所述待处理问题匹配的多个候选问题及所述多个候选问题的答案,将所述多个候选问题的集合作为候选问题集,采用第一算法从第二数据库中查找所述候选问题集中每个候选问题的句向量。
所述第一数据库中包括预先存储的多个候选问题及其答案,所述第二数据库中包括所述第一数据库中的每个候选问题的句向量。本实施例中,所述第一数据库为ElasticSearch数据库,ElasticSearch数据库可提供分布式、高扩展、高实时的搜索与数据分析引擎。同时,预先将ElasticSearch数据库中的每个候选问题输入预设语言模型的特征提取层得到每个候选问题的句向量,并将所述句向量存储至第二数据库,可以节省实际应用时计算候选问题的句向量的时间。
本实施例中,所述第一算法为基于python字典的哈希算法。电子装置1在接收到用户输入的待处理问题后,通过关键词匹配,从第一数据库中查找与待处理问题匹配的多个候选问题,组成候选问题集,并基于python字典的哈希算法(通过候选问题的key值计算出所述候选问题的句向量的存储地址)从第二数据库中查找所述候选问题集中每个候选问题的句向量。采用基于python字典的哈希算法可提升查找效率。
例如,用户输入的待处理问题为:我买了智盈万能险,一年四千,交八年了,能退保吗?从第一数据库中搜索匹配得到如下3个候选问题组成的候选问题集:
候选问题1:附加意外伤害保险不想要了,可以退保吗?
候选问题2:我的保险要退保,要怎么办?
候选问题3:孕妇血糖偏高,可以买保险不?
从第二数据库中查找到的所述候选问题集中3个候选问题的句向量分别为u1,u2,u3。
S2、对所述待处理问题执行词向量化处理,得到所述待处理问题中每个词语的词向量,将所述词向量输入预设语言模型的特征提取层,得到所述待处理问题的句向量。
本实施例中,所述对所述待处理问题执行词向量化处理包括:
A1、采用第二算法对所述待处理问题进行分词,得到第一词语序列;
所述第二算法为基于监督学习的隐马尔科夫的未知单词分词算法和/或基于预设词典的正向最大匹配算法。
A2、去除所述第一词语序列中的预设关键词,得到第二词语序列;
所述预设关键词包括停用词(例如,喂,嗯,哦)、感叹词(例如,呀,啊,哇)及无意义词(例如,您好,好的,谢谢)。
去除预设关键词,即不影响待处理问题的语义,又可以精简待处理问题的字数,从而提高后续处理速度。
A3、根据预设长度阈值对所述第二词语序列进行截断或补充,得到目标词语序列;
当第二词语序列中的词语总字数超过预设长度阈值(例如,64个)时,则将超出预设长度阈值的部分剔除(即仅保留第二词语序列中前64个字),然而实际数据显示几乎不存在超过64个字的问题词语序列。
当第二词语序列中的词语总字数不足预设长度阈值时,用预设补全符(例如,<padding>)将第二词语序列的长度补充至预设长度阈值。
A4、采用word2vec模型获取所述目标词语序列中每个词语的词向量。
本实施例中,采用word2vec模型(用来产生词向量的模型)来获取目标词语序列中每个词语的词向量。
将目标词语序列中每个词语的词向量输入预设语言模型即可得到待处理问题的句向量。
本实施例中,所述预设语言模型为在Bert模型的基础上增加一层全连接层和softmax分类层所得到的新模型。
所述预设语言模型的特征提取层用来处理输入的词向量,并基于自注意力机制(自注意力机制用于学习句子内部的词语依赖关系,捕获句子的内部结构)输出句向量。
现有技术中,采用将待处理问题分别与多个候选问题拼接及向量化处理得到多个文本序列的词向量,然后逐一将每个文本序列的词向量输入预设语言模型的特征提取层得到句向量,以供下一步骤计算每个组合的文本相似度,然而这种方式得到的文本序列较长,导致单次输入的词向量较多,且需要多次调用预设语言模型。研究发现,文本序列的句向量生成时间与文本长度正平方相关,则上述将待处理问题分别与候选问题进行拼接的方式,生成句向量的时间复杂度为O(K*N^2),其中,K为候选问题的数量,N为拼接后的文本序列的长度。而本实施例,仅将待处理问题作为预设语言模型的输入,生成句向量的时间复杂度为O(M^2),其中M为待处理问题对应的目标词语序列的长度,M<N,候选问题的句向量则从第二数据库获取,以供下一步骤计算每个组合的文本相似度,本实施例可大幅缩短句向量的生成时间。
S3、将所述待处理问题的句向量分别与所述候选问题集中每个候选问题的句向量组合生成多个向量对,分别计算所述多个向量对中每个向量对的差值绝对值及点乘。
若待处理问题“我买了智盈万能险,一年四千,交八年了,能退保吗?”的句向量为v,候选集中三个候选问题的句向量分别为u1,u2,u3,则生成的向量对分别为(u1,v),(u2,v),(u3,v);向量对的差值绝对值分别为|u1-v|,|u2-v|,|u3-v|;向量对的点乘分别为(u1*v),(u2*v),(u3*v)。
S4、将所述待处理问题的句向量、所述候选问题集中每个候选问题的句向量、所述每个向量对的差值绝对值及点乘输入所述预设语言模型的全连接层,得到所述候选问题集中每个候选问题与所述待处理问题的文本相似度评分,根据所述文本相似度评分确定所述候选问题集中与所述待处理问题匹配度最高的候选问题,将所述匹配度最高的候选问题的答案作为所述待处理问题的答案。
本实施例中,增加向量对的差值绝对值及乘积作为预设语言模型的全连接层的输入,使得输入表征的语义更加丰富,从而使模型输出的相似度评分更加精确。
所述根据所述文本相似度评分确定所述候选问题集中与所述待处理问题匹配度最高的候选问题包括:
若所述候选问题集中每个候选问题与所述待处理问题的文本相似度评分均小于预设分数阈值,则确定没有与所述待处理问题匹配的候选问题,并向用户发送提示信息;或者
若所述候选问题集中仅有一个候选问题与所述待处理问题的文本相似度评分大于或等于预设分数阈值,则确定所述候选问题为与所述待处理问题匹配度最高的候选问题;或者
若所述候选问题集中有多个候选问题与所述待处理问题的文本相似度评分大于或等于预设分数阈值,则将所述多个候选问题中文本相似度评分最高的候选问题作为与所述待处理问题匹配度最高的候选问题。
在本发明的另一个实施例中,所述方法还包括:
定时或实时对所述第一数据库中的候选问题及答案进行更新,并根据所述更新的候选问题更新所述第二数据库中对应的句向量。
所述第一数据库中的候选问题及其答案和第二数据库中的句向量是动态的,用户可根据需要对其进行调整和更新。
由上述实施例可知,本发明提出的基于深度学习的答案生成方法,首先,从第一数据库中查找与待处理问题匹配的多个候选问题,组成候选问题集,并从第二数据库中查找候选问题集中每个候选问题的句向量,本发明提前将每个候选问题的句向量存储至第二数据库,减少了应用时计算候选问题的句向量的时间,提高了效率;然后,将待处理问题经向量化处理得到的句向量分别与所述候选问题集中每个候选问题的句向量组合生成多个向量对,计算每个向量对的差值绝对值及点乘,将所述待处理问题的句向量、候选问题集中每个候选问题的句向量、每个向量对的差值绝对值及点乘输入预设语言模型,得到所述候选问题集中每个候选问题与待处理问题的文本相似度评分,本发明通过增加向量对的差值绝对值及点乘作为预设语言模型的全连接层的输入,使得输入表征的语义更加丰富,从而使模型输出的相似度评分更加精确;最后,通过文本相似度评分确定出与待处理问题最匹配的候选问题,将最匹配的候选问题的答案作为待处理问题的答案。因此,本发明提高了答案生成的效率及精确度。
此外,本发明实施例还提出一种计算机可读存储介质,计算机可读存储介质可以是硬盘、多媒体卡、SD卡、闪存卡、SMC、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器等中的任意一种或者几种的任意组合。计算机可读存储介质中包括答案生成程序10,所述答案生成程序10被处理器执行时实现如下操作:
接收用户提交的待处理问题,从第一数据库中查找与所述待处理问题匹配的多个候选问题及所述多个候选问题的答案,将所述多个候选问题的集合作为候选问题集,采用第一算法从第二数据库中查找所述候选问题集中每个候选问题的句向量;
对所述待处理问题执行词向量化处理,得到所述待处理问题中每个词语的词向量,将所述词向量输入预设语言模型的特征提取层,得到所述待处理问题的句向量;
将所述待处理问题的句向量分别与所述候选问题集中每个候选问题的句向量组合生成多个向量对,分别计算所述多个向量对中每个向量对的差值绝对值及点乘;
将所述待处理问题的句向量、所述候选问题集中每个候选问题的句向量、所述每个向量对的差值绝对值及点乘输入所述预设语言模型的全连接层,得到所述候选问题集中每个候选问题与所述待处理问题的文本相似度评分,根据所述文本相似度评分确定所述候选问题集中与所述待处理问题匹配度最高的候选问题,将所述匹配度最高的候选问题的答案作为所述待处理问题的答案。
本发明之计算机可读存储介质的具体实施方式与上述基于深度学习的答案生成方法以及电子装置的具体实施方式大致相同,在此不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种基于深度学习的答案生成方法,应用于电子装置,其特征在于,所述方法包括:
查找步骤:接收用户提交的待处理问题,从第一数据库中查找与所述待处理问题匹配的多个候选问题及所述多个候选问题的答案,将所述多个候选问题的集合作为候选问题集,采用第一算法从第二数据库中查找所述候选问题集中每个候选问题的句向量;
处理步骤:对所述待处理问题执行词向量化处理,得到所述待处理问题中每个词语的词向量,将所述词向量输入预设语言模型的特征提取层,得到所述待处理问题的句向量;
组合步骤:将所述待处理问题的句向量分别与所述候选问题集中每个候选问题的句向量组合生成多个向量对,分别计算所述多个向量对中每个向量对的差值绝对值及点乘;
确定步骤:将所述待处理问题的句向量、所述候选问题集中每个候选问题的句向量、所述每个向量对的差值绝对值及点乘输入所述预设语言模型的全连接层,得到所述候选问题集中每个候选问题与所述待处理问题的文本相似度评分,根据所述文本相似度评分确定所述候选问题集中与所述待处理问题匹配度最高的候选问题,将所述匹配度最高的候选问题的答案作为所述待处理问题的答案。
2.如权利要求1所述的基于深度学习的答案生成方法,其特征在于,所述对所述待处理问题执行词向量化处理包括:
采用第二算法对所述待处理问题进行分词,得到第一词语序列;
去除所述第一词语序列中的预设关键词,得到第二词语序列;
根据预设长度阈值对所述第二词语序列进行截断或补充,得到目标词语序列;
采用word2vec模型获取所述目标词语序列中每个词语的词向量。
3.如权利要求2所述的基于深度学习的答案生成方法,其特征在于,所述第一算法为基于python字典的哈希算法,所述第二算法为基于监督学习的隐马尔科夫的未知单词分词算法和/或基于预设词典的正向最大匹配算法。
4.如权利要求3所述的基于深度学习的答案生成方法,其特征在于,所述根据所述文本相似度评分确定所述候选问题集中与所述待处理问题匹配度最高的候选问题包括:
若所述候选问题集中每个候选问题与所述待处理问题的文本相似度评分均小于预设分数阈值,则确定没有与所述待处理问题匹配的候选问题,并向用户发送提示信息;或者
若所述候选问题集中仅有一个候选问题与所述待处理问题的文本相似度评分大于或等于预设分数阈值,则确定所述候选问题为与所述待处理问题匹配度最高的候选问题;或者
若所述候选问题集中有多个候选问题与所述待处理问题的文本相似度评分大于或等于预设分数阈值,则将所述多个候选问题中文本相似度评分最高的候选问题作为与所述待处理问题匹配度最高的候选问题。
5.如权利要求1-4任一项所述的基于深度学习的答案生成方法,其特征在于,所述方法还包括:
定时或实时对所述第一数据库中的候选问题及答案进行更新,并根据所述更新的候选问题更新所述第二数据库中对应的句向量。
6.一种电子装置,其特征在于,该电子装置包括:存储器、处理器,所述存储器上存储有可在所述处理器上运行的答案生成程序,所述答案生成程序被所述处理器执行时实现如下步骤:
查找步骤:接收用户提交的待处理问题,从第一数据库中查找与所述待处理问题匹配的多个候选问题及所述多个候选问题的答案,将所述多个候选问题的集合作为候选问题集,采用第一算法从第二数据库中查找所述候选问题集中每个候选问题的句向量;
处理步骤:对所述待处理问题执行词向量化处理,得到所述待处理问题中每个词语的词向量,将所述词向量输入预设语言模型的特征提取层,得到所述待处理问题的句向量;
组合步骤:将所述待处理问题的句向量分别与所述候选问题集中每个候选问题的句向量组合生成多个向量对,分别计算所述多个向量对中每个向量对的差值绝对值及点乘;
确定步骤:将所述待处理问题的句向量、所述候选问题集中每个候选问题的句向量、所述每个向量对的差值绝对值及点乘输入所述预设语言模型的全连接层,得到所述候选问题集中每个候选问题与所述待处理问题的文本相似度评分,根据所述文本相似度评分确定所述候选问题集中与所述待处理问题匹配度最高的候选问题,将所述匹配度最高的候选问题的答案作为所述待处理问题的答案。
7.如权利要求6所述的电子装置,其特征在于,所述对所述待处理问题执行词向量化处理包括:
采用第二算法对所述待处理问题进行分词,得到第一词语序列;
去除所述第一词语序列中的预设关键词,得到第二词语序列;
根据预设长度阈值对所述第二词语序列进行截断或补充,得到目标词语序列;
采用word2vec模型获取所述目标词语序列中每个词语的词向量。
8.如权利要求7所述的电子装置,其特征在于,所述第一算法为基于python字典的哈希算法,所述第二算法为基于监督学习的隐马尔科夫的未知单词分词算法和/或基于预设词典的正向最大匹配算法。
9.如权利要求6-8任一项所述的电子装置,其特征在于,所述答案生成程序被所述处理器执行时还实现如下步骤:
定时或实时对所述第一数据库中的候选问题及答案进行更新,并根据所述更新的候选问题更新所述第二数据库中对应的句向量。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有答案生成程序,所述答案生成程序可被一个或者多个处理器执行,以实现如权利要求1至5任一项所述的基于深度学习的答案生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010235343.1A CN111460081B (zh) | 2020-03-30 | 2020-03-30 | 基于深度学习的答案生成方法、电子装置及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010235343.1A CN111460081B (zh) | 2020-03-30 | 2020-03-30 | 基于深度学习的答案生成方法、电子装置及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111460081A true CN111460081A (zh) | 2020-07-28 |
CN111460081B CN111460081B (zh) | 2023-04-07 |
Family
ID=71681757
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010235343.1A Active CN111460081B (zh) | 2020-03-30 | 2020-03-30 | 基于深度学习的答案生成方法、电子装置及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111460081B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113239169A (zh) * | 2021-06-01 | 2021-08-10 | 平安科技(深圳)有限公司 | 基于人工智能的回答生成方法、装置、设备及存储介质 |
CN113656566A (zh) * | 2021-08-18 | 2021-11-16 | 中国平安人寿保险股份有限公司 | 智能对话处理方法、装置、计算机设备及存储介质 |
CN113779360A (zh) * | 2021-08-18 | 2021-12-10 | 深圳技术大学 | 基于多头问答模型的解题方法、装置、设备及存储介质 |
CN114490965A (zh) * | 2021-12-23 | 2022-05-13 | 北京百度网讯科技有限公司 | 问题处理方法、装置、电子设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106484664A (zh) * | 2016-10-21 | 2017-03-08 | 竹间智能科技(上海)有限公司 | 一种短文本间相似度计算方法 |
CN108345672A (zh) * | 2018-02-09 | 2018-07-31 | 平安科技(深圳)有限公司 | 智能应答方法、电子装置及存储介质 |
CN108628935A (zh) * | 2018-03-19 | 2018-10-09 | 中国科学院大学 | 一种基于端到端记忆网络的问答方法 |
-
2020
- 2020-03-30 CN CN202010235343.1A patent/CN111460081B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106484664A (zh) * | 2016-10-21 | 2017-03-08 | 竹间智能科技(上海)有限公司 | 一种短文本间相似度计算方法 |
CN108345672A (zh) * | 2018-02-09 | 2018-07-31 | 平安科技(深圳)有限公司 | 智能应答方法、电子装置及存储介质 |
CN108628935A (zh) * | 2018-03-19 | 2018-10-09 | 中国科学院大学 | 一种基于端到端记忆网络的问答方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113239169A (zh) * | 2021-06-01 | 2021-08-10 | 平安科技(深圳)有限公司 | 基于人工智能的回答生成方法、装置、设备及存储介质 |
CN113239169B (zh) * | 2021-06-01 | 2023-12-05 | 平安科技(深圳)有限公司 | 基于人工智能的回答生成方法、装置、设备及存储介质 |
CN113656566A (zh) * | 2021-08-18 | 2021-11-16 | 中国平安人寿保险股份有限公司 | 智能对话处理方法、装置、计算机设备及存储介质 |
CN113779360A (zh) * | 2021-08-18 | 2021-12-10 | 深圳技术大学 | 基于多头问答模型的解题方法、装置、设备及存储介质 |
CN114490965A (zh) * | 2021-12-23 | 2022-05-13 | 北京百度网讯科技有限公司 | 问题处理方法、装置、电子设备和存储介质 |
CN114490965B (zh) * | 2021-12-23 | 2022-11-08 | 北京百度网讯科技有限公司 | 问题处理方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111460081B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111460081B (zh) | 基于深度学习的答案生成方法、电子装置及可读存储介质 | |
CN109635273B (zh) | 文本关键词提取方法、装置、设备及存储介质 | |
US11151177B2 (en) | Search method and apparatus based on artificial intelligence | |
CN107273503B (zh) | 用于生成同语言平行文本的方法和装置 | |
CN108319627B (zh) | 关键词提取方法以及关键词提取装置 | |
CN111241304A (zh) | 基于深度学习的答案生成方法、电子装置及可读存储介质 | |
US10713438B2 (en) | Determining off-topic questions in a question answering system using probabilistic language models | |
CN110825857B (zh) | 多轮问答识别方法、装置、计算机设备及存储介质 | |
CN111159363A (zh) | 一种基于知识库的问题答案确定方法及装置 | |
CN112926308B (zh) | 匹配正文的方法、装置、设备、存储介质以及程序产品 | |
CN110765765B (zh) | 基于人工智能的合同关键条款提取方法、装置及存储介质 | |
CN113609847B (zh) | 信息抽取方法、装置、电子设备及存储介质 | |
CN112307175B (zh) | 一种文本处理方法、装置、服务器及计算机可读存储介质 | |
US20230334075A1 (en) | Search platform for unstructured interaction summaries | |
CN112560489A (zh) | 一种基于Bert的实体链接方法 | |
CN110287284B (zh) | 语义匹配方法、装置及设备 | |
CN114818685B (zh) | 关键词提取方法、装置、电子设备及存储介质 | |
CN113051900B (zh) | 同义词识别方法、装置、计算机设备及存储介质 | |
CN114020864A (zh) | 搜索结果的展示方法、装置及设备 | |
CN114398877A (zh) | 基于人工智能的主题提取方法、装置、电子设备及介质 | |
CN113297854A (zh) | 文本到知识图谱实体的映射方法、装置、设备及存储介质 | |
CN110765271B (zh) | 一种实体发现与实体链接的联合处理方法及装置 | |
CN115437620B (zh) | 一种自然语言编程方法、装置、设备及存储介质 | |
CN113157896B (zh) | 一种语音对话生成方法、装置、计算机设备及存储介质 | |
CN115828924B (zh) | 自然语言语义理解方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |