一种非结构化数据的检索方法及装置与流程

文档序号:18257877发布日期:2019-07-24 10:25阅读:173来源:国知局
一种非结构化数据的检索方法及装置与流程
本发明属于智能问答
技术领域
,具体涉及一种非结构化数据的检索方法及装置。
背景技术
:非结构化数据是指未经预定义的数据模型或模式进行结构化的数据。典型的非结构化数据包括文本文件、电子邮件、社交媒体、网站数据、移动数据、通信数据等。基于非结构数据型的问答,比如文档型问答,是指根据用户的问题,从文档库中寻找合适的答案,不同于基于知识库的问答,文档型问答不需要使用人工标注的数据进行训练,减少了对数据的依赖,在自动对话系统中起着重要的作用。现有技术提出了通过窗口滑动的方式进行段落检索的问答方法或将主题相近的句子组合在一起作为段落的问答方法。然而现有的基于段落检索的问答方法或基于主题检索的问答方法普遍存在以下问题:对答案粒度的控制缺乏灵活性,难以满足用户的要求,同时对具有多层级结构的非结构化数据无法很好地利用其上下文信息,此外也不能很好地处理包括表格、问答、枚举等数据格式多样的非结构化数据。技术实现要素:本发明提出一种非结构化数据的检索方法及装置,实现对答案范围的灵活控制,提高检索精度,有效解决多层级结构、数据格式多样的非结构化数据的阅读理解问题。一方面,本发明提供了一种非结构化数据的检索方法,所述方法包括:获取非结构化数据集;根据所述非结构化数据集中每个非结构数据的上下文信息构建所述非结构化数据集对应的层级结构;提取与每个层级对应的非结构化数据以生成节点,从而构建与所述非结构化数据集对应的树形数据集;根据用户提问信息,搜索所述树形数据集;基于搜索结果,确定候选项集,所述候选项集包括至少一个节点。另一方面提供了一种结构化数据的检索装置,所述装置包括:获取模块,用于获取非结构化数据集;层级结构构建模块,用于根据所述非结构化数据集中每个非结构数据的上下文信息构建所述非结构化数据集对应的层级结构;树形数据集构建模块,用于提取与每个层级对应的非结构化数据以生成节点,从而构建与所述非结构化数据集对应的树形数据集;搜索模块,用于根据用户提问信息,搜索所述树形数据集;确定模块,用于基于搜索结果,确定候选项集,所述候选项集包括至少一个节点。本发明提供的非结构化数据的检索方法及装置,利用树形数据集可以更好地组织文档,提高检索的灵活性,解决不同答案长度需求的用户问题,且可以通过返回不同层次的节点来实现对答案范围的灵活控制,同时,利用树形数据集,能够很好地保留上下文信息,使得出现在不同上下文的相似文本,也可以很好地被区分开来,提高检索的精度,此外,可以将非结构化数据中包含的表格、问答、枚举等比较复杂的内容一起处理成树形数据集中的一部分,有效解决多层级结构、数据格式多样的非结构化数据的阅读理解问题。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。图1是本发明实施例提供的非结构化数据的检索系统的示意图;图2是本发明实施例提供的非结构化数据的检索方法的一种流程示意图;图3是本发明实施例提供的提取与每个层级对应的非结构化数据以生成节点,从而构建与所述非结构化数据集对应的树形数据集的一种流程示意图;图4是采用本发明实施例中的非结构化数据的检索方法构建的树形数据集;图5是本发明实施例提供的非结构化数据的一种示意图;图6是本发明实施例提供的基于搜索结果,确定候选项集的一种流程示意图;图7是本发明实施例提供的基于所述第一相似度,确定候选项集的一种流程示意图;图8是本发明实施例提供的非结构化数据的检索方法的另一种流程示意图;图9是本发明实施例提供的计算所述用户提问信息与所述候选项集中的节点之间的第二相似度的一种流程示意图;图10是本发明实施例提供的非结构化数据的检索装置的一种结构示意图;图11是本发明实施例提供的非结构化数据的检索装置的另一种结构示意图;图12是本发明实施例提供的一种服务器的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。请参阅图1,图1是本发明实施例提供的一种非结构化数据检索系统的示意图,如图1所示,该非结构数据检索系统可以至少包括服务器01和客户端02。具体的,本说明书实施例中,所述服务器01可以包括一个独立运行的服务器,或者分布式服务器,或者由多个服务器组成的服务器集群。服务器01可以包括有网络通信单元、处理器和存储器等等。具体的,所述服务器01可以为上述客户端02提供后台服务。具体的,本说明书实施例中,客户端02可以包括智能手机、台式电脑、平板电脑、笔记本电脑、数字助理、智能可穿戴设备、车载、音箱、电视、机器人等类型的实体设备,也可以包括运行于实体设备中的软体,例如虚拟机等。本发明实施例中客户端02可以支持对非结构化数据进行检索。本说明书实施例主要应用于各领域的咨询软件、智能客服等产品中。以智能客服为例,在智能客服的应用场景中,存在多种不同的问题处理模块,比如FAQ(FrequentlyAskedQuestions,常见的问题项目与对应问题的解答)、任务型问答等,这些模块的会利用预先整理好的知识来回答用户的提问,除此之外还可能存在一些未经处理的存量文档。如果遇到FAQ、任务型问答等模块无法处理用户提问情况,这意味着用户提问超出预先构建的知识体系,需要从存量非结构数据集中提取合适的答案,智能客服会将提问转发给阅读理解模块,并由阅读理解模块从非结构数据集中提取合适的答案。本说明书实施例适用于处理含有层次关系或数据格式多样的非结构化数据库,如文档中存在多级标题的情况或包括表格、问答、枚举等单的情况,本说明实施例中的检索方法及装置在检索答案时能够很好地利用文档内容的层次关系,并根据层次关系自适应地确定答案的粒度。以下介绍本发明一种非结构化数据的检索方法,图2是本发明实施例提供的一种非结构化数据的检索方法的流程示意图,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图2所示,所述方法可以包括:S201:获取非结构化数据集。在本说明书实施例中,非结构化数据是指未经预定义的数据模型或模式进行结构化的数据。非结构化数据,比如可以包括文本文件(比如文档、表格等)、电子邮件、社交媒体(比如脸书、推特等上的数据)、网站数据、移动数据(比如短信等)、通信数据(比如聊天、即时通信、电话录音等)等。在实际应用中,用于自动对话的非结构数据集包括不同种类和个数的非结构化数据,比如,非结构化数据集可以仅包括一个网站数据,也可以是两篇文档和一封电子邮件的组合,也可以是一篇文档、一个网站数据和一个通信数据的组合等。在本说明书实施例中,获取由不同种类和个数的非结构化数据组成非结构化数据集,该非结构化数据集将用于后续的基于用户提问的检索过程中。S203:根据所述非结构化数据集中每个非结构数据的上下文信息构建所述非结构化数据集对应的层级结构。在实际应用中,所述非结构化数据集为由至少一个对象组成的数据集合。在一个具体的实施例中,所述对象可以包括上述所述的文本文件、电子邮件、社交媒体、网站数据、移动数据、通信数据等。在一个具体的实施例中,所述根据所述非结构化数据集中每个非结构数据的上下文信息构建所述非结构化数据集对应的层级结构,可以包括:根据所述对象的目录、段落编号或标题中的至少一个,识别每个所述对象的层级结构。S205:提取与每个层级对应的非结构化数据以生成节点,从而构建与所述非结构化数据集对应的树形数据集。在一个具体的实施例中,如图3所示,所述提取与每个层级对应的非结构化数据以生成节点,从而构建与所述非结构化数据集对应的树形数据集可以包括:S2051:在每个所述对象中,提取与每个层级对应的数据,并生成节点,以构建至少一个树形对象集,其中,每个所述树形对象集均具有一个根节点;S2053:设置一个虚拟根节点,使所述虚拟根节点与每个所述树形对象集的根节点相连,生成一个具有单一虚拟根节点的树形数据集,其中,每个所述树形对象集的根节点均转变为所述虚拟根节点的子节点。在实际应用中,如果非结构化数据集包括多个对象,在将每一个对象处理成树形对象集后,需要引入一个全局的虚拟根节点作为每个树形对象集的根节点,将非结构数据集表示为单一根节点的树形数据集。在一个具体的实施例中,非结构化数据集可以为由文档1、文档2、文档3以及文档4组成的集合,在树形数据集构建的时候,可以先将文档1、文档2、文档3以及文档4分别转换为树形对象集,接着引入一个虚拟根节点作为每个树形对象集的根节点,将该非结构数据集表示为单一根节点的树形数据集,如图4所示。本说明书实施例中,虚拟根节点将作为答案搜索的入口,同时,引入一个虚拟根节点可以保证每个所述树形对象集在相同的计算体系上进行检索搜索,有利于提高检索精度和灵活性。当然,本说明书实施例并不限于引入单一虚拟根节点这一情况,在实际应用中,比如,当非结构数据集中仅包括一篇文档时,可以不引入虚拟根节点作为父节点,还可以根据实际情况,引入多个虚拟根节点等。下面,将结合实际应用中的具体案例,对S203-S205进行进一步说明:在一个具体的实施例中,如果所述对象为带有段落编号的文档,所述非结构化数据可以为由多个文档组成的文档集,可以根据文档中的段落编号构建并识别每一个文档的层级结构,提取与每个层级对应的文档以生成节点,从而构建与文档集对应的文档树。比如,中国人民银行的某个通知文件中的部分内容如下:“五、准备工作人民银行省会(首府)城市中心支行以上分支机构和深圳市中心支行(以下统称人民银行省级分支机构)要按照取消企业银行账户许可地区进展情况,结合本地实际,做好相关组织实施工作。(一)业务准备1.制度修订。人民银行分支机构要制定辖区内企业银行账户监督管理、取消企业银行账户许可宣传等方案,银行要完成相关企业银行账户管理、内控合规、业务考核、责任追究等制度以及企业银行账户管理协议修订工作,并报当地人民银行分支机构备案。2.业务培训。人民银行分支机构要组织或协助银行组织完成对银行柜员、账户管理人员、客户经理、客服人员等相关人员的业务培训。”在上述文档中,“准备工作”是一级结构,“业务准备”是二级结构,“制度修订”和“业务培训”是三级结构,这些层级结构可以通过他们使用的序号的模式来识别,比如上述文档中一级结构采用的都是汉字的数字,即一、二、三、…,而二级结构采用的是括号加汉字,即(一)、(二)、(三)、…,而三级结构采用的是阿拉伯数字1、2、3、…,进行编号。在文档树构建的时候,事先枚举出文档中可能存在的段落编号类型,并将这些段落编号类型分别映射为某个数字,表示段落编号类型对应的层级结构类型,如表1所示。当段落编号类型转变时,说明当前叙述的层级结构类型发生了变化。表1:段落编号类型与层级结构类型的对应关系段落编号类型层级结构类型一、二、三、…0(一)、(二)、(三)、…11、2、3、…2……在文档树构建的时候,可以使用栈结构来记录处理过的段落编号类型(styleStack),以及每种段落编号类型对应的最近处理过的节点(docStyle)。将当前处理的编号类型记为curstyle,每次遇到新的编号类型时存在两种可能:(1).遇到新的编号类型,进入新的层级,如从“五->(一)”跳到“五->(一)->1”。在文档树的层级上往下走了一层。(2).遇到栈styleStack中记录的编号类型,跳出当前层级,如从“五->(一)->1”回到“五->(二)”,或者直接回到“六”。在文档树的层级上往上走了一层或多层。具体地,可以使用上述两个栈:styleStack和docStack,来将上述的文档构建成文档树,步骤如下:假设从“五、准备工作”这一句开始进行处理。初始化步骤:首先将两个栈分别初始化为空,创建一个空节点作为虚拟的根节点,并将根节点压入docStack中,此外设置一个“当前活跃的父节点”(curHead),curHead用于指向栈顶元素。文档树构建步骤:识别到“五”是某种段落编号类型,根据表1找到“五”对应的层级结构类型是0,将层级结构类型0压入styleStack中,然后以“准备工作”为内容创建节点,并将该节点设置为curHead的子节点。将新创建的节点压入docStack,同时更新curHead指向新的栈顶元素。接着处理下一段“人民银行省会…”发现本段没有出现编号,将本段一整段作为内容创建新的子节点,并作为curHead的子节点。由于这段文字没有编号,因此不会对栈产生影响。接着处理“(一)业务准备”,发现文档存在一个新的段落编号类型“(一)”,并且它对应的层级结构类型“1”不存在styleStack中,于是确定这是一个新的层级。将“1”压入styleStack中,为“业务准备”创建新的节点,并将它设置为curHead的子节点。将新节点压入docStack中,更新curHead。继续往下处理,同样的,“1.制度修订…”的段落编号类型“2”没有出现在styleStack中,操作与上一步类似。当处理到“2.业务培训”时,查表1发现段落编号类型2已经在styleStack的栈顶,说明上一次处理过的段落编号和当前要处理的段落编号是同一层级的,将docStack的栈顶元素出栈,更新curHead。为“2.业务培训”创建节点,并置为curHead的子节点,将新的节点压入docStack,更新curHead。(在将docStack栈顶元素出栈之后,curHead指向了上一层的节点,保证文档树构建的准确性)。通过上述步骤,可以将上述文档构建成一个文档树结构,在该文档树结构中,“业务准备”是“准备工作”的子节点,“制度修订”和“业务培训”是“业务准备”的子节点,“制度修订”和“业务培训”互为兄弟节点。在一些实施例中,如果文档有多个,包括文档A、文档B和文档C,可以采用上述类似的步骤将文档A、文档B和文档C分别转换成文档树A、文档树B和文档树C,为了使各个文档树能够在一个计算体系下进行计算和搜索,提高搜索的精度和检索的灵活性,可以引入一个虚拟的根节点作为文档树A、文档树B和文档树C的根节点。在一个具体的实施例中,所述对象可以为网站数据,所述非结构化数据可以为由多个网站数据组成的集合,可以根据文网站数据中的标题构建并识别每一个文档的层级结构,提取与每个层级对应的数据以生成节点,从而构建与网站数据对应的非结构化数据集。具体的,图5所示为某一网站主页,该网站主页上包含了社交、金融、娱乐等七个不同的类别,而每个类别下分别有不同的产品,其中“主页”为一级标题,“社交”、“金融”、“娱乐”、“资讯”、“工具”、“平台”、“人工智能”为二级标题,“QQ”、“微信”、“QQ空间”为三级标题,可以通以下步骤将该上述网站数据转换为非结构化数据:层级结构识别:根据该网站主页的上下文信息,提取该主页的标题,根据该标题确定该网站主页上数据的层级结构,比如,一级标题为第一级结构,二级标题为第二级结构,三级标题为第三级结构等。树形数据集构建:提取与每个层级结构对应的数据以生成节点,比如,与第一级结构对应的数据为“主页”,与第二级结构对应的数据为“社交”、“金融”、“娱乐”、“资讯”、“工具”、“平台”、“人工智能”,与第三级结构对应的数据为“QQ”、“微信”、“QQ空间”,“QQ”、“微信”以及“QQ空间”下面的内容为第四级结构,则在构建树形数据集的时候,可以将“主页”确定为该树形结构的根节点,将“社交”、“金融”、“娱乐”、“资讯”、“工具”、“平台”、“人工智能”分别作为该根节点的子节点,其中“社交”、“金融”、“娱乐”、“资讯”、“工具”、“平台”、“人工智能”互为兄弟节点,“QQ”、“微信”、“QQ空间”是“社交”的子节点,其中,QQ”、“微信”以及“QQ空间”互为兄弟节点,“QQ”下方的内容“QQ是腾讯公司推出的一款横跨PC和移动互联网时代的即时通信平台……”为“QQ”的子节点,“微信”下方的内容“2011年上线至今,微信,用一种纯粹的创新理念,为数以亿计用户的生活带来改变……”为“微信”的子节点,“QQ空间”下方的内容“QQ空间是一个包容网民各种关系链的社交大平台,满足用户展示……”为“QQ空间”空间的子节点……。通过上述步骤,可以快速地将上述网站主页上的网站数据构建成一个树形数据。在这种树形结构下,不同层次上文本的上下文信息得到了保留,比如,“微信”在文档树上的路径为主页->社交->微信,这些上下文信息在很多情况下都是有用的。此外,树状结构还能为不同用户提问提供不同粒度的答案,比如在查询关键词“微信”的时候,将返回以“微信”为根节点的子树内容,查询“社交产品”时,则会返回以“社交”为根节点的子树内容,而查询“主页”则返回以“主页”为根节点的整棵文档树。在实际应用中,如果非结构化数据集中不仅包括上述网站主页上的网站数据,还包括其他类型的数据,可以相应地将会各种类型的数据均转换为树形数据,通过一个虚拟的根节点将每一个树形数据的根节点均连接起来,以将整个非结构化数据表示为单一根节点的树形数据集。在一个具体的实施例中,所述对象可以为没有段落编号的文档,如果该文档具有目录结构,此时可以通过以下步骤构建文档树:根据文档的上下文信息识别出该文档的目录,根据该目录构建该文档的层级结构;将文档的目录与上下文信息相互匹配,提取与每个层级对应的数据,并将提取的数据作为该层级的节点,从而构建与该文档对应的树形数据。如果非结构化数据集中包括多种类型和个数的对象,则可以采用上述方案对每个对象分别构建树形对象集,接着引入一个虚拟根节点,将每个树形对象集连接起来,从而将非结构化数据集表示为具有单一虚拟根节点的树形数据集。在一些实施例中,还可以采用其他方式构建树形数据集,比如,主题聚合的方式,即以不同主题粒度构建树形数据集。S207:根据用户提问信息,搜索所述树形数据集。本说明书实施例中,在搜索所述树形数据集之前,还可以包括通过分词、去停词、查询扩展等操作将用户提问新转化为合适的查询语句。本说明书实施例,在树形数据集构建完成之后,根据用户提问信息,搜索所述树形数据集可以包括:根据所述用户提问信息,采用集束搜索算法从所述虚拟根节点开始,对整个文档森林进行广度优先的集束搜索,直至每一条未被裁剪的路径都到达叶子节点。在进行搜索的过程中,记录下所有搜索过的节点作为候选项集,包括中间节点和叶子节点。其中,集束搜索算法是一种启发式图搜索算法,为了减少搜索所占用的空间和时间,在每一步深度扩展的时候,剪掉一些质量比较差的结点,保留下一些质量较高的结点。本说明书实施例采用集束搜索算法能够有效减少空间消耗,并提高搜索时间效率。S209:基于搜索结果,确定候选项集,所述候选项集包括至少一个节点。本说明书实施例,在对树形数据集从上到下进行搜索的时候,需要边计算相似度边确定出搜索路径,搜索过的路径上的节点都会被提取出来作为候选项集的选择依据,如图6所示,所述基于搜索结果,确定候选项集可以包括:S2091:计算所述用户提问信息与搜索路径上的节点之间的第一相似度,所述第一相似度包括历史分数和未来分数,所述历史分数包括从所述虚拟根节点到当前节点的路径上的数据与所述用户提问信息之间的相似度,所述未来分数包括以当前节点为父节点的子树上的数据与所述用户提问信息之间的相似度。在一个具体的实施例中,比如,A为根节点,B为A的子节点,D和E为B的子节点,D和E互为兄弟节点,F为D的子节点,搜索路径为A-B,B为当前节点,则历史分数可以为(A->B)上的数据与用户提问信息的相似度,未来分数可以为(B->D->E)和(B->E)上的数据与用户提问信息的相似度。在一个具体的实施例中,可以通过BM25算法计算历史分数和未来分数,BM25是二元独立模型的扩展,其计算公式如下:其中,qi是查询中的第i个词,fi是qi在非结构化数据d中的词频(比如qi在非文档d中的词频),N是非结构化数据总数(比如文档总数),n(qi)是包含词qi的非结构化数据个数(比如包含词qi的文档数)。本说明书实施例,通过历史分数和未来分数来确定候选项集,历史分数用于结合当前语境的上文,未来分数则是为了避免受到局部信息的干扰,可以尽可能多地召回所有相关的候选项集。S2093:基于所述第一相似度,确定候选项集。在一个具体的实施例中,如图7所示,所述基于所述第一相似度,确定候选项集,可以包括:S20931:对所述历史分数与所述未来分数进行求和、求平均值或求加权平均值处理,基于处理结果对所述搜索路径上的节点进行降序排列以得到第一候选项序列。S20933:将所述第一候选序列中的前N个节点作为候选项集,其中,N为大于等于1的正整数。本说明书实施例,在确定历史分数和所述未来分数之后,需要对历史分数和所述未来分数进行数学运算处理,比如求和、求平均值或求加权平均值处理等,并根据处理结果确定出候选项集。实际应用中,在搜索树形数据集的时候,需要先确定一个搜索的宽度,比如可以将宽度大小设置为2时,那从虚拟根节点出发,每次往下层节点搜索的时候只会扩展2个分支。比如,从第一层到第二层的时候,如果只有两个分支,那就不需要剪枝操作。从第二层到第三层的时候,如果第三层的分支数量大于2,那就需要进行如下剪枝操作:首先对第三层的节点按第一相似度进行排序,然后只取出排名前2的节点对应的分支进行继续搜索,剪掉剩下的分支。与此同时,搜索路径上的所有节点均会被放入候选项集中。实际应用中,如果所述候选项集包括多个节点,则所述多个节点位于所述树形数据集中的不同分支。在一个具体的实施例中,可以通过以下命令实现S207-S209:输入:用户问题q,文档树根节点root,集束搜索宽度K,输出:候选项集在一个具体的实施例中,在所述基于搜索结果,确定候选项集之后,还可以包括对所述候选项集中的节点进行重新排列的步骤,重新排列是为了将候选项集中相关性较高的内容尽可能排在前面,因此,重新排列阶段可以采用更为严格的方式计算相似度,比如,对于当前节点,计算从根节点到当前节点的路径上的文本与用户问题的Jaccard距离来表征相似度,Jaccard距离越大,相似度越高,公式如下:其中,Q表示用户提问中包含的词的集合,C表示节点中包含的词的集合,|Q∩C|是Q与C交集的大小,|Q∪C|是Q与C并集的大小,Q与C均有n个二元属性,即每个属性取值为{0,1}。本说明书实施例中的Jaccard距离是对现有Jaccard距离的改进,与现有Jaccard距离相比,本说明书实施例中的改进的Jaccard距离算法能够使得用户提问中的词尽可能多地在候选项集中出现。具体地,如图8所示,对所述候选项集中的节点进行重新排列的步骤可以包括:S2011:计算所述用户提问信息与所述候选项集中的节点之间的第二相似度;在本发明实施例中,如图9所示,所述计算所述用户提问信息与所述候选项集之间的第二相似度可以包括:S20111:提取所述用户提问信息中包含的关键词以及所述节点中包含的关键词,将所述关键词作为二元变量的一个属性;S20113:将所述用户提问信息中包含的关键词组合成第一变量属性集合,并将所述节点中包含的关键词组合成第二变量属性集合;S20115:计算所述第一变量属性集合与所述第二变量属性集合交集的大小以得到交集值,计算所述第一变量属性集合与所述第二变量属性集合并集的大小以得到并集值,其中,所述交集值与所述并集值的比值为第一比值,所述交集值与所述第一变量属性集合的大小的比值为第二比值;S20117:对所述第一比值与所述第二比值进行求和,以得到所述第二相似度。S2013:根据所述第二相似度对所述候选项集中的节点进行降序排列以得到第二候选项序列;S2015:将所述第二候选序列中的前M个节点作为检索结果推荐给用户,其中,M为大于等于1的正整数。本说明书实施例,在计算出候选项集中的候选项(即节点)与用户提问信息之间的第二相似度之后,可以根据各自的第二相似度对于候选项进行降序排列得到第二候选项序列,按照实际需求,将排在前面的前M个候选项作为检索答案返回给用户,在实际应用中,因为候选序列比较好控制,通过候选序列来确定返回的答案数量,可靠性和精度较高。本发明实施例还提供了一种非结构化数据的检索装置,如图10所示,所述装置可以包括:获取模块1001,可以用于获取非结构化数据集;层级结构构建模块1003,可以用于根据所述非结构化数据集中每个非结构数据的上下文信息构建所述非结构化数据集对应的层级结构;树形数据集构建模块1005,可以用于提取与每个层级对应的非结构化数据以生成节点,从而构建与所述非结构化数据集对应的树形数据集;搜索模块1007,可以用于根据用户提问信息,搜索所述树形数据集;确定模块1009,可以用于基于搜索结果,确定候选项集,所述候选项集包括至少一个节点。在一些实施例中,所述非结构化数据集可以至少一个对象组成的数据集合;所述层级结构构建模块1003可以步用于:根据所述对象的目录、段落编号或标题中的至少一个,识别每个所述对象的层级结构;所述树形数据集构建模块1005可以步包括:树形对象集构建单元,用于在每个所述对象中,提取与每个层级对应的数据,并生成节点,以构建至少一个树形对象集,其中,每个所述树形对象集均具有一个根节点;生成单元,用于设置一个虚拟根节点,使所述虚拟根节点与每个所述树形对象集的根节点相连,生成一个具有单一虚拟根节点的树形数据集,其中,每个所述树形对象集的根节点均转变为所述虚拟根节点的子节点。在一些实施例中,所述搜索模块1007可以进一步用于:根据所述用户提问信息,从所述虚拟根节点开始搜索所述树形数据集。在一些实施例中,所述确定模块1009可以进一步包括:第一相似度计算单元,用于计算所述用户提问信息与搜索路径上的节点之间的第一相似度,所述第一相似度包括历史分数和未来分数,所述历史分数包括从所述虚拟根节点到当前节点的路径上的数据与所述用户提问信息之间的相似度,所述未来分数包括以当前节点为父节点的子树上的数据与所述用户提问信息之间的相似度;第一候选序列生成单元,用于对所述历史分数与所述未来分数进行求和、求平均值或求加权平均值处理,基于处理结果对所述搜索路径上的节点进行降序排列以得到第一候选项序列;候选项集生成单元,用于将所述第一候选序列中的前N个节点作为候选项集,其中,N为大于等于1的正整数。如图11所示,在一些实施例中,所述非结构化数据的检索装置还可以包括:第二相似度计算模块10011,用于计算所述用户提问信息与所述候选项集中的节点之间的第二相似度;第二候选序列生成模块10013,用于根据所述第二相似度对所述候选项集中的节点进行降序排列以得到第二候选项序列;推荐模块10015,用于将所述第二候选序列中的前M个节点作为检索结果推荐给用户,其中,M为大于等于1的正整数。在一些实施例中,所述第二相似度计算模块可以包括:提取单元,用于提取所述用户提问信息中包含的关键词以及所述节点中包含的关键词,将所述关键词作为二元变量的一个属性;组合单元,用于将所述用户提问信息中包含的关键词组合成第一变量属性集合,并将所述节点中包含的关键词组合成第二变量属性集合;比值计算单元,用于计算所述第一变量属性集合与所述第二变量属性集合交集的大小以得到交集值,计算所述第一变量属性集合与所述第二变量属性集合并集的大小以得到并集值,其中,所述交集值与所述并集值的比值为第一比值,所述交集值与所述第一变量属性集合的大小的比值为第二比值;求和单元,用于对所述第一比值与所述第二比值进行求和,以得到所述第二相似度。所述的装置实施例中的装置与方法实施例基于同样地发明构思。本发明实施例提供了一种非结构化数据检索的终端,该终端包括处理器和存储器,该存储器中存储有至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、该至少一段程序、该代码集或指令集由该处理器加载并执行以实现如上述方法实施例所提供的非结构化数据检索的方法。本发明的实施例还提供了一种存储介质,所述存储介质可设置于终端之中以保存用于实现方法实施例中一种非结构化数据的检索方法相关的至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、该至少一段程序、该代码集或指令集由该处理器加载并执行以实现上述方法实施例提供的非结构化数据的检索方法。可选地,在本说明书实施例中,存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。本说明书实施例所述存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据所述设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。本发明实施例所提供的非结构化数据检索的方法实施例可以在移动终端、计算机终端、服务器或者类似的运算装置中执行。以运行在服务器上为例,图12是本发明实施例提供的一种确非结构化数据的检索方法的服务器的硬件结构框图。如图12所示,该服务器1200可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(CentralProcessingUnits,CPU)1210(处理器1210可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器1230,一个或一个以上存储应用程序1223或数据1222的存储介质1220(例如一个或一个以上海量存储设备)。其中,存储器1230和存储介质1220可以是短暂存储或持久存储。存储在存储介质1220的程序可以包括一个或一个以上模块,每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1210可以设置为与存储介质1220通信,在服务器1200上执行存储介质1220中的一系列指令操作。服务器1200还可以包括一个或一个以上电源1260,一个或一个以上有线或无线网络接口1250,一个或一个以上输入输出接口1240,和/或,一个或一个以上操作系统1221,例如WindowsServerTM,MacOSXTM,UnixTM,LinuxTM,FreeBSDTM等等。输入输出接口1240可以用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器1200的通信供应商提供的无线网络。在一个实例中,输入输出接口1240包括一个网络适配器(NetworkInterfaceController,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,输入输出接口1240可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。本领域普通技术人员可以理解,图12所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,服务器1200还可包括比图12中所示更多或者更少的组件,或者具有与图12所示不同的配置。由上述本发明提供非结构化数据的检索方法、装置、终端或存储介质的实施例可见,本发明中首先获取非结构化数据集,然后根据所述非结构化数据集中每个非结构数据的上下文信息构建所述非结构化数据集对应的层级结构,接着提取与每个层级对应的非结构化数据以生成节点,从而构建与所述非结构化数据集对应的树形数据集,最后根据用户提问信息,搜索所述树形数据集,并基于搜索结果,确定候选项集,所述候选项集包括至少一个节点,能够很好地利用非结构化数据的上下文信息和层级结构,解决多层级结构、数据格式多样的非结构化数据的阅读理解问题。需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和服务器实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1