CN111460114A - 检索方法、装置、设备及计算机可读存储介质 - Google Patents
检索方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111460114A CN111460114A CN202010162321.7A CN202010162321A CN111460114A CN 111460114 A CN111460114 A CN 111460114A CN 202010162321 A CN202010162321 A CN 202010162321A CN 111460114 A CN111460114 A CN 111460114A
- Authority
- CN
- China
- Prior art keywords
- database
- question information
- answers
- vector
- retrieval
- 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.)
- Pending
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/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/35—Clustering; Classification
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Human Computer Interaction (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及人工智能技术领域,公开了一种检索方法,接收用户输入的咨询语句,并提取关键词;将关键字输入至预设的过滤器中,查询数据库集群中包含与问题信息对应的答案的数据库集;根据预设的文字向量转换工具,将问题信息转换为句子向量;将句子向量共享给数据库集中的每个数据库,并控制每个数据库进行相似向量的搜索,得到答案向量集合;通过文字向量转化工具,将答案向量集合转换为句子,得到与问题信息对应的答案集合;本发明还提供了一种检索装置、设备及存储介质,通过对检索的数据进行分开多数据库存储的方式来实现检索,缩短了整体的检索时间,大大提升检索的速度,从而提升了用户的使用体验。
Description
技术领域
本发明涉及人工智能技术领域,尤其涉及一种检索方法、装置、设备及计算机可读存储介质。
背景技术
随着检索技术和数据库的不断发展,其检索的数据越来越多,每个数据库中数据存储也越来越多,而目前的检索数据库中,其会存储有比较完整的数据信息,当需要从数据库中调取一些数据出来使用时,则需要从数据库中进行大量的查询,这种查询时间会随着数据库中存储的数据量增加而延长。
对此,现在的实现方式是通过自然语言来进行处理,而自然语言处理过程中必定会遇到句子转句子向量的过程,当句子转换成这种稠密向量的表示的形式,查找过程将会异常耗时。例:我爱中国。转换成200维的句子向量,占用计算机内存将会是几何倍数增长,内存占用由原来的12字节迅速飙升至800字节。成千上万的句子转换成多维句子向量,将及其耗费计算机的内存资源和计算资源。
发明内容
本发明的主要目的在于提供一种检索方法、装置、设备及计算机可读存储介质,旨在解决现有的答案检索方式,由于句子转换成多维向量,导致查询时间延长的的技术问题。
为解决上述的问题,在本发明的第一方面中提供了一种检索方法,应用于人机交互系统,所述检索方法包括:接收用户输入的咨询语句,其中,所述咨询语句包括用户待询问的问题信息;根据所述问题信息检索得到包含候选答案的数据库集群;基于关键字提取算法,从所述问题信息中提取出关键词,所述关键词用于指示所述问题信息对应的答案所在的数据库;将所述关键字输入至预设的过滤器中,查询所述数据库集群中包含与所述问题信息对应的答案的数据库集;根据预设的文字向量转换工具,将所述问题信息转换为句子向量;将所述句子向量共享给所述数据库集中的每个数据库,并控制每个数据库进行相似向量的搜索,得到答案向量集合;通过所述文字向量转化工具,将所述答案向量集合转换为句子,得到与所述问题信息对应的答案集合。
可选的,本发明第一方面的一个可行实施方式中在所述根据所述问题信息检索得到包含候选答案的数据库集群之前,还包括:收集所述人机交互系统中,智能客服与客户之间的历史对话记录;提取所述历史对话记录中的问题信息和对应的答案,并对所述答案按照所述问题信息进行分类;通过预设的布隆算法,对分类后的所述问题信息和答案进行深度训练学习,得到布隆过滤器,其中,所述深度训练学习包括对所述问题信息和所述问题信息与答案之间的对应关系的学习;将同一个问题信息对应的答案建立对应关系,并存储于所述数据库集群中,利用预设的近邻搜索算法对所述数据库集群中存储的答案进行预处理,生成N棵相似向量的搜索树,N≧10。
可选的,本发明第一方面的一个可行实施方式中所述将所述关键字输入至预设的过滤器中,查询所述数据库集群中包含与所述问题信息对应的答案的数据库集包括:依次调用与所述数据库集群中数据库对应的布隆过滤器,判断所述关键词是否属于在数据库中;若存在,则选定所述数据库为与所述问题信息对应的数据库,直至判断完所述数据库集群中所有的数据库,得到与所述问题信息对应的数据库集。
可选的,本发明第一方面的一个可行实施方式中所述判断所述关键词是否属于在数据库中包括:通过所述布隆过滤器判断所述关键词是否属于其对应的数据库的检索索引。
可选的,本发明第一方面的一个可行实施方式中所述将所述句子向量共享给所述数据库集中的每个数据库,并控制每个数据库进行相似向量的搜索,得到答案向量集合包括:将所述句子向量共享给所述数据库集中的每个数据库,并控制每个数据库对自身的N棵相似向量的搜索树依次进行相似性检索,提取出与所述句子向量相似的搜索树;计算所述搜索树中每个分叉节点的向量方向,并确定其与所述句子向量的相识度;若相似度大于阈值时,则提取对应的分子节点上的向量作为所述问题信息对应的答案向量,得到答案向量集合。
可选的,本发明第一方面的一个可行实施方式中,所述利用预设的近邻搜索算法对所述数据库集群中存储的答案进行预处理,生成N棵相似向量的搜索树包括:获取所述数据库集群中存储的答案的存储布局;基于所述存储布局,调用随机抽取算法抽两个答案的存储位置;根据两个所述存储位置执行聚类数为2的聚类操作,其中,所述聚类操作为通过在两个存储位置之间连线,并绘制所述连线的垂直线,将所述存储布局分为两个子空间;统计所述子空间中的答案的数量是否大于预设数量K,K为正整数;若是,则对所述子空间继续执行聚类操作,直到每个子空间中的答案答案数量小于K。
可选的,本发明第一方面的一个可行实施方式中,所述基于关键字提取算法,从所述问题信息中提取出关键词包括:调取文本分词算法,对所述问题信息进行语义分词处理,抽取出实体名词,得到词条集合;调取关键字提取算法,从所述词条集合中提取出所述关键词。
此外,为解决上述的问题,在本发明的第二方面中提供了一种检索装置,其特征在于,所述检索装置包括:接收模块,用于接收用户输入的咨询语句,其中,所述咨询语句包括用户待询问的问题信息;检索模块,用于根据所述问题信息检索得到包含候选答案的数据库集群;提取模块,用于基于关键字提取算法,从所述问题信息中提取出关键词,所述关键词用于指示所述问题信息对应的答案所在的数据库;查询模块,用于将所述关键字输入至预设的过滤器中,查询所述数据库集群中包含与所述问题信息对应的答案的数据库集;向量转换模块,用于根据预设的文字向量转换工具,将所述问题信息转换为句子向量;向量搜索模块,用于将所述句子向量共享给所述数据库集中的每个数据库,并控制每个数据库进行相似向量的搜索,得到答案向量集合;文本转换模块,用于通过所述文字向量转化工具,将所述答案向量集合转换为句子,得到与所述问题信息对应的答案集合。
可选的,本发明第二方面的一个可行实施方式中,所述检索装置还包括:过滤器训练模块,用于收集所述人机交互系统中,智能客服与客户之间的历史对话记录;提取所述历史对话记录中的问题信息和对应的答案,并对所述答案按照所述问题信息进行分类;通过预设的布隆算法,对分类后的所述问题信息和答案进行深度训练学习,得到布隆过滤器,其中,所述深度训练学习包括对所述问题信息和所述问题信息与答案之间的对应关系的学习;将同一个问题信息对应的答案建立对应关系,并存储于所述数据库集群中,利用预设的近邻搜索算法对所述数据库集群中存储的答案进行预处理,生成N棵相似向量的搜索树,N≧10。
可选的,本发明第二方面的一个可行实施方式中,所述查询模块包括判断单元和选定单元;所述判断单元用于依次调用与所述数据库集群中数据库对应的布隆过滤器,判断所述关键词是否属于在数据库中;所述选定单元用于在判断所述关键词存在所述数据库中时,选定所述数据库为与所述问题信息对应的数据库,直至判断完所述数据库集群中所有的数据库,得到与所述问题信息对应的数据库集。
可选的,本发明第二方面的一个可行实施方式中,所述判断单元具体用于通过所述布隆过滤器判断所述关键词是否属于其对应的数据库的检索索引。
可选的,本发明第二方面的一个可行实施方式中,所述向量搜索模块包括相似性检索单元、计算单元和提取单元;所述相似性检索单元用于将所述句子向量共享给所述数据库集中的每个数据库,并控制每个数据库对自身的N棵相似向量的搜索树依次进行相似性检索,提取出与所述句子向量相似的搜索树;所述计算单元用于计算所述搜索树中每个分叉节点的向量方向,并确定其与所述句子向量的相识度;所述提取单元用于若相似度大于阈值时,则提取对应的分子节点上的向量作为所述问题信息对应的答案向量,得到答案向量集合。
可选的,本发明第二方面的一个可行实施方式中,所述过滤器训练模块具体用于获取所述数据库集群中存储的答案的存储布局;基于所述存储布局,调用随机抽取算法抽两个答案的存储位置;根据两个所述存储位置执行聚类数为2的聚类操作,其中,所述聚类操作为通过在两个存储位置之间连线,并绘制所述连线的垂直线,将所述存储布局分为两个子空间;统计所述子空间中的答案的数量是否大于预设数量K,K为正整数;若是,则对所述子空间继续执行聚类操作,直到每个子空间中的答案答案数量小于K。
可选的,本发明第二方面的一个可行实施方式中,所述提取模块具体用于调取文本分词算法,对所述问题信息进行语义分词处理,抽取出实体名词,得到词条集合;调取关键字提取算法,从所述词条集合中提取出所述关键词。
此外,为解决上述的问题,在本发明的第三方面中提供了一种检索设备,所述检索设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机可读程序,所述计算机可读程序被所述处理器执行时实现如上任一项所述的检索方法。
此外,为解决上述的问题,在本发明的第四方面中提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机可读程序,所述计算机可读程序被一个或多个处理器执行时实现如上任一项所述的检索方法。
本发明通过提供一种检索方法、装置、设备及计算机可读存储介质,通过对检索的数据进行分开多数据库存储的方式来实现检索,具体为用分布式计算方式,首先将数据分开存储到多个设备上,然后根据输入的检索内容生成对应的向量,基于向量落到每个设备上,由每个设备进行自行的检索计算,然后将每个设备检索到的结果进行统计成合后,转换为对应的数据即可得到最终数据,不仅解决单台机器的资源紧缺问题,还减轻机器的负载,缩短了整体的检索时间,大大提升检索的速度,从而提升了用户的使用体验。
附图说明
图1为本发明提供的服务器的结构示意图;
图2为本发明提供的检索方法第一实施例的流程示意图;
图3为本发明提供的检索方法第二实施例的流程示意图;
图4为本发明提供的检索方法第二实施例的流程示意图;
图5为本发明提供的检索装置一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
本发明实施例提供了一种检索方案,基于布隆过滤器的分布式快速向量检索方法,通过使用分布式计算的形式解决单机计算资源和内存不足的问题;使用布隆过滤器过滤不需要计算的数据解决计算耗时的问题;使用Annoy算法在精度允许范围内解决稠密向量检索耗时长和占用大量计算机内存问题。通过基于布隆过滤器的分布式快速向量检索方法改进后的人机交互系统和智能客服系统,大大缩短处理用户提问检索答案的时间,帮助企业改善服务质量,提高客户满意度。
图2为本发明实施例提供的检索方法的流程图,该检索方法具体包括以下步骤:
201,接收用户输入的咨询语句;
202,基于关键字提取算法,从所述问题信息中提取出关键词,所述关键词用于指示所述问题信息对应的答案所在的数据库;
在本实施例中,所述咨询语句为用户待询问的问题信息;从所述问题信息中提取出关键词主要是用于指示所述问题信息对应的答案所在的数据库,而该数据库是通过该布隆过滤器相关联,通过确定了布隆过滤器后,即可获得对应的答案的存储数据库;
进一步的,通过将所述关键词分别输入至预设的布隆过滤器集合的每个过滤器中,所述布隆过滤器对所述关键词进行过滤检索,检索确定所述过滤器中是否存在该关键词的索引条件,从而检测过滤器对应的所述数据库中是否包含所述问题信息对应的答案;
在本实施例中,对于关键词的提取具体可以是根据当前的业务场景进行定义设置,例如在保险领域中,一般对应的检索都是基于保险的名称进行检索,而同一个保险会存在多种问题,不同的问题的答案,本发明是进行分开存储的,而通过从问题中提取出保险的名称来检索出与该保险的问题相关的所有数据库,以组成一个数据库集,该数据库集是针对该种保险的,至于如何选出对应于该问题的答案可以做进行不的特征帅选。
例如,针对问题本身的提问特征进行再提取,具体可以分为两大类,分别是流程问题和理赔问题,通过基于这两大类所定义的关键词进行提取,然后根据该关键词从数据库集中再过滤帅选,得到最终的答案数据库。
203,将所述关键字输入至预设的过滤器中,查询所述数据库集群中包含与所述问题信息对应的答案的数据库集;
在本实施例中,具体的选择布隆过滤器对所述关键词进行查询,当用户想要查询某一问题的答案时,比如用户想要获知“平安福”这个业务的具体信息,用户可以通过登录APP利用其语音功能输入想要查询的问题,即输入“平安福保险有哪些权益?”,或者输入“平安福保险的理赔事项?”。APP中的智能客服接收用户输入的咨询语句,以进行答案搜索。
在实际应用中,这里的答案搜索是对该咨询内容对应的答案所在的数据库进行搜索,在该步骤中,搜索到的数据库至少有两个或者两个以上,每个数据库中存储的答案会不相同,但是都是大同小异,或者是说每个数据库存储到的答案会根据不同的用户需求进行存储的,也即是说智能客服在接收了用户输入咨询语句之后,即可根据咨询语句检索得到包含候选答案的数据库集群。
204,根据预设的文字向量转换工具,将所述问题信息转换为句子向量;
在该步骤中,具体可以使用word To Vector算法来实现转换,而在转换的过程之前,还可以通过对问题信息进行分割处理,分割出多个词,基于分割后的词序通过该wordTo Vector算法生成句子向量。在实际应用中,除了word To Vector算法之外,还可以是TF-IDF等等,只要能实现文本转换为向量的算法或者工具均可,甚至还可是采用向量转换模型来实现。
205,将所述句子向量共享给所述数据库集中的每个数据库,并控制每个数据库进行相似向量的搜索,得到答案向量集合;
为了减少检索的计算量,在本实施例中,是通过对答案数据分开多个设备进行存储,而这里的设备为人机交互系统中的检索单元,如存储数据库所在的单元,但是每个数据库会配置一个处理器,通过控制该处理器来实现单个数据库的数据检索处理,从而避免了现有的数据检索通过该一个UPU来实现,从而调了检索的速度。
206,通过所述文字向量转化工具,将所述答案向量集合转换为句子,得到与所述问题信息对应的答案集合。
在本实施例中,通过word To Vector算法将从每个数据库中检索到的答案向量进行排序,得到向量序列,然后在统一转换,得到对应的答案语句,输出最终的答案。
在实际应用中,对于从每个数据库中获取到的答案向量可以是一个完整答案的其中一个分词或者是关键词,也即是说,在收集问题答案时,对答案进行分割处理,减少答案的整体比特值,以减少每个数据库检索验证的过程,以加快速度,而在查询到答案后,要进行排序后转换才得到最终的答案文本。
通过对上述方法的实施,通过将检索到的数据库集分开多个搜索树进行相似性的计算,具体是落到每个设备上,由每个设备进行自行的检索计算,然后将每个设备检索到的结果进行统计成合后,转换为对应的数据即可得到最终想要的数据,这样不仅解决单台机器的资源紧缺问题,还减轻机器的负载,缩短了整体的检索时间,大大提升检索的速度,从而提升了用户的使用体验。
图3为本发明实施例提供的检索方法的第二种实现流程,其具体实现步骤如下:
301,接收用户输入的咨询语句;
302,根据所述问题信息检索得到包含候选答案的数据库集群;
在本实施例中,所述过滤器可以是布隆过滤器,该布隆滤波器用于判断一个元素是不是在一个集合里,一般想到的是将所有元素保存起来,然后通过比较确定。对此,该布隆过滤器需要预先训练得到,具体的训练过程为:
收集所述人机交互系统中,智能客服与客户之间的历史对话记录;
提取所述历史对话记录中的问题信息和对应的答案,并对所述答案按照所述问题信息进行分类;
通过布隆算法,对分类后的所述问题信息和对应的答案进行深度训练学习,得到布隆过滤器,其中,所述深度训练学习包括对所述问题信息和所述问题信息与答案之间的对应关系的学习;
将同一个问题信息对应的答案分开存储于所述数据库集群中,并根据预设的近邻搜索算法对每个数据库中存储的答案进行预处理,生成N棵相似向量的搜索树,N≧10。
在实际应用中,通过收集人机交互系统汇总的一些对话信息,该对话信息是坐席与用户之间的对话,然后提取其对话中的问题以及对应的答案,形成训练样本S(x1,x2,x3...xn),通过调用预先设置的布隆算法来学习答案和问题,以及答案和问题之间的对应关系,从而得到一个布隆过滤器,当然也可以是一个模型。
在训练完整后,从训练样本中选择一些进行认证,而该认证过程为设置布隆过滤器B(x)用于判断数据xi是否在需要处理的数据集合S(x1,x2,x3...xn),若处理的数据xi在集合S(x1,x2,x3...xn)中,则进行下一步,否则不处理。
将经过布隆过滤器B(x)校验并通过的数据xi通过wordToVector[4]算法转换成句子向量vi,句子向量vi经过Annoy算法[3]处理后生成n(n值按实际生产需要制定)棵相似向量搜索树。
在本实施例中,对于数据库中的答案和问题并不是固定的,而是根据实时的对话进行更新,对此,当后台数据库新增一批数据集K(x1,x2,x3...xk)时,更新数据集合S(x1,x2,x3...xn),将数据集K(x1,x2,x3...xk)合并到数集S(x1,x2,x3...xn)中得到新数据集S(x1,x2,x3...xk,...xn),此时布隆过滤器B(x)用于判断数据xi是否在数据集S(x1,x2,x3...xk,...xn)中。
进一步的,所述根据预设的近邻搜索算法对每个数据库中存储的答案进行预处理,生成N棵相似向量的搜索树的步骤包括:
获取所述数据库集群中存储的答案的存储布局;
基于所述存储布局,调用随机抽取算法抽两个答案的存储位置;
根据两个所述存储位置执行聚类数为2的聚类操作,其中,所述聚类操作为通过在两个存储位置之间连线,并绘制所述连线的垂直线,将所述存储布局分为两个子空间;
统计所述子空间中的答案的数量是否大于预设数量K,K为正整数;
若是,则对所述子空间继续执行聚类操作,直到每个子空间中的答案答案数量小于K。
在实际应用中,将数据集S(x1,x2,x3...xn)均匀分布到m台机器上,分别计算分布到每台机器的数据的n颗相似向量搜索树。即是将收集到的数据集S分为多个小集合,然后将每个小集合发送给不同的数据库进行存储,以减少数据库的存储数据压力,也可以减少暂时内存的占用。
303,调取文本分词算法,对所述问题信息进行语义分词处理,抽取出实体名词,得到词条集合;
304,调取关键字提取算法,从所述词条集合中提取出所述关键词;
305,将所述问题信息输入至所述布隆过滤器中,检索得到包含候选答案的数据库集群;
在本实施例中,在检索候选答案的过程中,具体是依次调用与所述数据库集群中数据库对应的布隆过滤器,判断所述关键词是否属于在数据库中,可选的,通过所述布隆过滤器判断所述关键词是否属于其对应的数据库的检索索引;若存在,则选定所述数据库为与所述问题信息对应的数据库,直至判断完所述数据库集群中所有的数据库,得到与所述问题信息对应的数据库集。
在实际应用中,所述数据库集群采用相似向量搜索树结构存储数据,对于上述的过程具体实现可以如下:
对咨询语句进行分析处理,并生成咨询语句的特征,所述特征为咨询语句中的问题类型或者是问题本身;根据特征检索得到包含候选答案的数据库集群。
在本实施例中,分析处理包括但不限于分词、提取关键词、词性标注、命名实体识别、语义角色标注、句法依存分析、语义依存分析中的一种或多种。
在实际应用中,智能客服接收了用户输入的咨询语句之后,即可对接收的咨询语句进行分词、提取关键词、词性标注、命名实体识别、语义角色标注、语法依存分析、语义依存分析等处理,并生成咨询语句的特征。优选的,这里选择提取关键词,而关键词是必须指向哪种保险业务的关键词,比如保险的名称。
需要说明的是,分词、提取关键词、词性标注、命名实体识别、语义角色标注、语法依存分析、语义依存分析等技术是自然语言处理领域比较常用的语句分析处理技术,为避免累赘,此处不作详细介绍。
在本实施例中,在对用户输入的咨询语句进行分析处理并获得咨询语句的特征之后,根据获取的特征,能够检索得到包含候选答案的数据库集群。
本实施例中,在对咨询语句进行详细的分析处理并生成咨询语句的特征之后,利用生成的特征进行数据库的搜索,能够提高搜索到的数据库与咨询语句的相关性。由于搜索到的数据库与咨询语句具有较高的相关性,在搜索到的数据库中,能够找到至少一个与咨询语句对应的候选答案。
306,根据预设的文字向量转换工具,将所述问题信息转换为句子向量;
307,将所述句子向量共享给所述数据库集中的每个数据库,并控制每个数据库对自身的N棵相似向量的搜索树依次进行相似性检索,提取出与所述句子向量相似的搜索树;
308,计算所述搜索树中每个分叉节点的向量方向,并确定其与所述句子向量的相识度;
309,若相似度大于阈值时,则提取对应的分子节点上的向量作为所述问题信息对应的答案向量,得到答案向量集合;
在实际应用中,还可以是通过计算关键词在数据库中的存储位置与其他存储点的位置之间的距离关系来得到相似度,相距较近的为相似度较高。
310,通过所述文字向量转化工具,将所述答案向量集合转换为句子,得到与所述问题信息对应的答案集合。
在本实施例中,对于步骤303-305还可以通过以下方式实现:
在实际使用时,所述基于关键词提取算法,从所述问题信息中提取出关键词,并确定所述关键词对应的预置布隆过滤器包括:
依次调用与所述数据库集群中数据库对应的布隆过滤器,通过所述布隆过滤器判断所述关键词是否属于其对应的数据库的检索索引;
若是,则确定所述数据库为与所述问题信息对应的数据库,直至判断完所述数据库集群中所有的数据库,得到与所述问题信息对应的数据库集。
即是,数据xi经过布隆过滤器B(x)校验并通过,将数据xi转换成句子向量vi,在m台计算机节点上同时检索n颗相似向量搜索树,最后将检索到的相似向量a11,a12,a12,...anm合并排序,并将排序的相似向量转换成句子输出。
下面以具体的应用场景进行说明本实施例的检索方法,如图4所示,处理过程如下:
401,当“福保保保险”相关的数据集s插入到数据库时,更新布隆过滤器B(x|福保保保险),更新后的布隆过滤器B(x|福保保保险)能判断数据x是否在需要处理的数据集合s中。
402,数据“福保保保险能为保险人提供多项疾病的理赔保险。”经过布隆过滤器B(x|福保保保险)校验并通过,通过word To Vector算法转换成句子向量v1,并落到m1机器上生成10颗相似向量搜索树;
数据“福保保保险的保险年龄成人为18至55周岁。”经过布隆过滤器B(x|福保保保险)校验并通过,通过word To Vector算法转换成句子向量v2,并落到m2机器上生成10颗相似向量搜索树;
数据“福保保保险的保险年龄儿童人0至17周岁。”经过布隆过滤器B(x|福保保保险)校验并通过,通过word To Vector算法转换成句子向量vn,并落到mm机器上生成10颗相似向量搜索树;
403,数据“福保保保险有哪些权益?”经过布隆过滤器B(x|福保保保险)校验并通过,通过word To Vector,算法转换成句子向量vi,同时在m台机器上检索相似向量搜索树得到相似向量a11,a12,a13,...anm。
404,将相似向量a11,a12,a13,...anm排序后转换成句子,得到数据“福保保保险有哪些权益?”的答案集合并输出。
综上所述,本发明实施例提供的基于布隆过滤器的分布式快速向量检索方法,通过使用分布式计算的形式解决单机计算资源和内存不足的问题;使用布隆过滤器过滤不需要计算的数据解决计算耗时的问题;使用Annoy算法在精度允许范围内解决稠密向量检索耗时长和占用大量计算机内存问题。通过基于布隆过滤器的分布式快速向量检索方法改进后的人机交互系统和智能客服系统,大大缩短处理用户提问检索答案的时间,帮助企业改善服务质量,提高客户满意度。
为了解决上述的问题,本发明实施例还提供了一种检索装置,如图5所示,所述检索装置包括:
接收模块501,用于接收用户输入的咨询语句,其中,所述咨询语句包括用户待询问的问题信息;
检索模块502,用于根据所述问题信息检索得到包含候选答案的数据库集群;
提取模块503,用于基于关键字提取算法,从所述问题信息中提取出关键词,所述关键词用于指示所述问题信息对应的答案所在的数据库;
查询模块504,用于将所述关键字输入至预设的过滤器中,查询所述数据库集群中包含与所述问题信息对应的答案的数据库集;
向量转换模块505,用于根据预设的文字向量转换工具,将所述问题信息转换为句子向量;
向量搜索模块506,用于将所述句子向量共享给所述数据库集中的每个数据库,并控制每个数据库进行相似向量的搜索,得到答案向量集合;
文本转换模块507,用于通过所述文字向量转化工具,将所述答案向量集合转换为句子,得到与所述问题信息对应的答案集合。
在本实施例中,所述提取模块503具体用于调取文本分词算法,对所述问题信息进行语义分词处理,抽取出实体名词,得到词条集合;调取关键字提取算法,从所述词条集合中提取出所述关键词。
在本发明的另一实施方式中,所述检索装置还包括:过滤器训练模块,用于收集所述人机交互系统中,智能客服与客户之间的历史对话记录;提取所述历史对话记录中的问题信息和对应的答案,并对所述答案按照所述问题信息进行分类;通过预设的布隆算法,对分类后的所述问题信息和答案进行深度训练学习,得到布隆过滤器,其中,所述深度训练学习包括对所述问题信息和所述问题信息与答案之间的对应关系的学习;将同一个问题信息对应的答案建立对应关系,并存储于所述数据库集群中,利用预设的近邻搜索算法对所述数据库集群中存储的答案进行预处理,生成N棵相似向量的搜索树,N≧10。
在本实施例中,所述查询模块504包括判断单元5041和选定单元5042;
所述判断单元5041用于依次调用与所述数据库集群中数据库对应的布隆过滤器,判断所述关键词是否属于在数据库中;
所述选定单元5042用于在判断所述关键词存在所述数据库中时,选定所述数据库为与所述问题信息对应的数据库,直至判断完所述数据库集群中所有的数据库,得到与所述问题信息对应的数据库集。
在本实施例中,所述判断单元5041具体用于通过所述布隆过滤器判断所述关键词是否属于其对应的数据库的检索索引。
在本实施例中,所述向量搜索模块505包括相似性检索单元5051、计算单元5052和提取单元5053;
所述相似性检索单元5051用于将所述句子向量共享给所述数据库集中的每个数据库,并控制每个数据库对自身的N棵相似向量的搜索树依次进行相似性检索,提取出与所述句子向量相似的搜索树;
所述计算单元5052用于计算所述搜索树中每个分叉节点的向量方向,并确定其与所述句子向量的相识度;
所述提取单元5053用于若相似度大于阈值时,则提取对应的分子节点上的向量作为所述问题信息对应的答案向量,得到答案向量集合。
在本实施例中,所述过滤器训练模块具体用于获取所述数据库集群中存储的答案的存储布局;基于所述存储布局,调用随机抽取算法抽两个答案的存储位置;根据两个所述存储位置执行聚类数为2的聚类操作,其中,所述聚类操作为通过在两个存储位置之间连线,并绘制所述连线的垂直线,将所述存储布局分为两个子空间;统计所述子空间中的答案的数量是否大于预设数量K,K为正整数;若是,则对所述子空间继续执行聚类操作,直到每个子空间中的答案答案数量小于K。
基于本装置的执行功能和功能对应的执行流程与上述本发明实施例的检索方法实施例说明内容相同的,因此本实施例对检索装置的实施例内容不做过多赘述。
在本发明实施例中,对于纠错装置的实现具体可以是以服务器的形式实现,即是将实现上述检索方法的装置设置为输入法系统中的服务器上的一个功能。
本发明还提供了一种检索设备,所述检索设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机可读程序,所述计算机可读程序被所述处理器执行时所实现的方法可参照本发明检索方法的各个实施例,因此不再过多赘述。
在实际应用中,这里的检索设备可以是现有的终端结构,常用的是移动终端,通过移动终端的扫描功能来启动检索功能,而该功能通过设置一个计算机可读程序来实现上述的检索方法的功能即可,如图1所示,本发明实施例方案涉及的终端的运行环境的结构示意图。
如图1所示,该服务器包括:处理器101,例如CPU,通信总线102、用户接口103,网络接口104,存储器105。其中,通信总线102用于实现这些组件之间的连接通信。用户接口103可以包括显示屏(Display)、输入单元比如键盘(Keyboard),网络接口104可选地可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器105可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器105可选地还可以是独立于前述处理器101的存储装置。
本领域技术人员可以理解,图1中示出的服务器的硬件结构并不构成对本发明中的检索装置和设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机可读存储介质的存储器105中可以包括操作系统、网络通信程序模块、用户接口程序模块以及用于实现邮件转发方法的计算机可读程序/指令。其中,操作系统是调度终端中各模块之间的通信以及执行存储器中存储的计算机可读程序/指令,上述实施例中的检索方法。
在图1所示的服务器的硬件结构中,网络接口104主要用于接入网络;用户接口603主要用于调用存储器105中存储的计算机可读程序,并执行以下检索方法的各实施例的操作。
本发明还提供一种计算机可读存储介质。
本实施例中,所述计算机可读存储介质上存储有计算机可读程序,所述计算机可读程序被一个或多个处理器执行时所实现的方法可参照本发明检索方法的各个实施例,因此不再过多赘述。
在本发明实施例提供的方法和装置,基于布隆过滤器的分布式快速向量检索方法,通过使用分布式计算的形式解决单机计算资源和内存不足的问题;使用布隆过滤器过滤不需要计算的数据解决计算耗时的问题;使用Annoy算法在精度允许范围内解决稠密向量检索耗时长和占用大量计算机内存问题。通过基于布隆过滤器的分布式快速向量检索方法改进后的人机交互系统和智能客服系统,大大缩短处理用户提问检索答案的时间,帮助企业改善服务质量,提高客户满意度。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,这些均属于本发明的保护之内。
Claims (10)
1.一种检索方法,应用于人机交互系统,其特征在于,所述检索方法包括:
接收用户输入的咨询语句,其中,所述咨询语句包括用户待询问的问题信息;
根据所述问题信息检索得到包含候选答案的数据库集群;
基于关键字提取算法,从所述问题信息中提取出关键词,所述关键词用于指示所述问题信息对应的答案所在的数据库;
将所述关键字输入至预设的过滤器中,查询所述数据库集群中包含与所述问题信息对应的答案的数据库集;
根据预设的文字向量转换工具,将所述问题信息转换为句子向量;
将所述句子向量共享给所述数据库集中的每个数据库,并控制每个数据库进行相似向量的搜索,得到答案向量集合;
通过所述文字向量转化工具,将所述答案向量集合转换为句子,得到与所述问题信息对应的答案集合。
2.根据权利要求1所述的检索方法,其特征在于,在所述根据所述问题信息检索得到包含候选答案的数据库集群之前,还包括:
收集所述人机交互系统中,智能客服与客户之间的历史对话记录;
提取所述历史对话记录中的问题信息和对应的答案,并对所述答案按照所述问题信息进行分类;
通过预设的布隆算法,对分类后的所述问题信息和答案进行深度训练学习,得到布隆过滤器,其中,所述深度训练学习包括对所述问题信息和所述问题信息与答案之间的对应关系的学习;
将同一个问题信息对应的答案建立对应关系,并存储于所述数据库集群中,利用预设的近邻搜索算法对所述数据库集群中存储的答案进行预处理,生成N棵相似向量的搜索树,N≧10。
3.根据权利要求2所述的检索方法,其特征在于,所述将所述关键字输入至预设的过滤器中,查询所述数据库集群中包含与所述问题信息对应的答案的数据库集包括:
依次调用与所述数据库集群中数据库对应的布隆过滤器,判断所述关键词是否属于在数据库中;
若存在,则选定所述数据库为与所述问题信息对应的数据库,直至判断完所述数据库集群中所有的数据库,得到与所述问题信息对应的数据库集。
4.根据权利要求3所述的检索方法,其特征在于,所述判断所述关键词是否属于在数据库中包括:通过所述布隆过滤器判断所述关键词是否属于其对应的数据库的检索索引。
5.根据权利要求3所述的检索方法,其特征在于,所述将所述句子向量共享给所述数据库集中的每个数据库,并控制每个数据库进行相似向量的搜索,得到答案向量集合包括:
将所述句子向量共享给所述数据库集中的每个数据库,并控制每个数据库对自身的N棵相似向量的搜索树依次进行相似性检索,提取出与所述句子向量相似的搜索树;
计算所述搜索树中每个分叉节点的向量方向,并确定其与所述句子向量的相识度;
若相似度大于阈值时,则提取对应的分子节点上的向量作为所述问题信息对应的答案向量,得到答案向量集合。
6.根据权利要求2所述的检索方法,其特征在于,所述利用预设的近邻搜索算法对所述数据库集群中存储的答案进行预处理,生成N棵相似向量的搜索树包括:
获取所述数据库集群中存储的答案的存储布局;
基于所述存储布局,调用随机抽取算法抽两个答案的存储位置;
根据两个所述存储位置执行聚类数为2的聚类操作,其中,所述聚类操作为通过在两个存储位置之间连线,并绘制所述连线的垂直线,将所述存储布局分为两个子空间;
统计所述子空间中的答案的数量是否大于预设数量K,K为正整数;
若是,则对所述子空间继续执行聚类操作,直到每个子空间中的答案答案数量小于K。
7.根据权利要求1-6中任一项所述的检索方法,其特征在于,所述基于关键字提取算法,从所述问题信息中提取出关键词包括:
调取文本分词算法,对所述问题信息进行语义分词处理,抽取出实体名词,得到词条集合;
调取关键字提取算法,从所述词条集合中提取出所述关键词。
8.一种检索装置,其特征在于,所述检索装置包括:
接收模块,用于接收用户输入的咨询语句,其中,所述咨询语句包括用户待询问的问题信息;
检索模块,用于根据所述问题信息检索得到包含候选答案的数据库集群;
提取模块,用于基于关键字提取算法,从所述问题信息中提取出关键词,所述关键词用于指示所述问题信息对应的答案所在的数据库;
查询模块,用于将所述关键字输入至预设的过滤器中,查询所述数据库集群中包含与所述问题信息对应的答案的数据库集;
向量转换模块,用于根据预设的文字向量转换工具,将所述问题信息转换为句子向量;
向量搜索模块,用于将所述句子向量共享给所述数据库集中的每个数据库,并控制每个数据库进行相似向量的搜索,得到答案向量集合;
文本转换模块,用于通过所述文字向量转化工具,将所述答案向量集合转换为句子,得到与所述问题信息对应的答案集合。
9.一种检索设备,其特征在于,所述检索设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机可读程序,所述计算机可读程序被所述处理器执行时实现如权利要求1-7中任一项所述的检索方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机可读程序,其特征在于,所述计算机可读程序被一个或多个处理器执行时实现如权利要求1-7中任一项所述的检索方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010162321.7A CN111460114A (zh) | 2020-03-10 | 2020-03-10 | 检索方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010162321.7A CN111460114A (zh) | 2020-03-10 | 2020-03-10 | 检索方法、装置、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111460114A true CN111460114A (zh) | 2020-07-28 |
Family
ID=71680019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010162321.7A Pending CN111460114A (zh) | 2020-03-10 | 2020-03-10 | 检索方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111460114A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112257416A (zh) * | 2020-10-28 | 2021-01-22 | 国家电网有限公司客户服务中心 | 一种稽查新词发现方法及系统 |
CN116578693A (zh) * | 2023-07-14 | 2023-08-11 | 深圳须弥云图空间科技有限公司 | 一种文本检索方法及装置 |
-
2020
- 2020-03-10 CN CN202010162321.7A patent/CN111460114A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112257416A (zh) * | 2020-10-28 | 2021-01-22 | 国家电网有限公司客户服务中心 | 一种稽查新词发现方法及系统 |
CN116578693A (zh) * | 2023-07-14 | 2023-08-11 | 深圳须弥云图空间科技有限公司 | 一种文本检索方法及装置 |
CN116578693B (zh) * | 2023-07-14 | 2024-02-20 | 深圳须弥云图空间科技有限公司 | 一种文本检索方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108304468B (zh) | 一种文本分类方法以及文本分类装置 | |
CN111414479B (zh) | 基于短文本聚类技术的标签抽取方法 | |
CN112800170A (zh) | 问题的匹配方法及装置、问题的回复方法及装置 | |
CN112069298A (zh) | 基于语义网和意图识别的人机交互方法、设备及介质 | |
CN112035599B (zh) | 基于垂直搜索的查询方法、装置、计算机设备及存储介质 | |
CN110765277B (zh) | 一种基于知识图谱的移动端的在线设备故障诊断方法 | |
CN111125334A (zh) | 一种基于预训练的搜索问答系统 | |
CN111444330A (zh) | 提取短文本关键词的方法、装置、设备及存储介质 | |
CN111274267A (zh) | 一种数据库查询方法、装置及计算机可读取存储介质 | |
CN110852095B (zh) | 语句热点提取方法及系统 | |
CN111985228A (zh) | 文本关键词提取方法、装置、计算机设备和存储介质 | |
CN109829045A (zh) | 一种问答方法和装置 | |
CN113505209A (zh) | 一种面向汽车领域的智能问答系统 | |
CN106528768A (zh) | 一种咨询热点分析方法及装置 | |
CN112100396A (zh) | 一种数据处理方法和装置 | |
CN113569023A (zh) | 一种基于知识图谱的中文医药问答系统及方法 | |
CN115827819A (zh) | 一种智能问答处理方法、装置、电子设备及存储介质 | |
CN114706966A (zh) | 基于人工智能的语音交互方法、装置、设备及存储介质 | |
CN111460114A (zh) | 检索方法、装置、设备及计算机可读存储介质 | |
CN114722198A (zh) | 产品分类编码确定方法、系统及相关装置 | |
CN113297251A (zh) | 多源数据检索方法、装置、设备及存储介质 | |
CN113157887A (zh) | 知识问答意图识别方法、装置、及计算机设备 | |
TWI734085B (zh) | 使用意圖偵測集成學習之對話系統及其方法 | |
CN116628173A (zh) | 一种基于关键字提取的智能客服信息生成系统及生成方法 | |
CN116610810A (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 |