一种基于自然语言理解的智能取数系统及其方法技术方案

技术编号:21850831 阅读:37 留言:0更新日期:2019-08-14 00:23
本发明专利技术公开了一种基于自然语言理解的智能取数系统及其方法,包括用户自然语言交互模块、Search Engine、Schema Graph、Tokenizer、Tree Builder、SQL Generation,用户自然语言交互模块输送自然语言至外部分词器进行外部分段来分隔单词,Tokenizer识别每个分隔单词含义和将单词组合成短语,最终自动或与用户交互选择最佳组合和解释;Tree Builder根据Tokenizer内的节点序列构建Query Tree,SQL Generation则将Query Tree转化成SQL至数据库DB内、并反馈至用户自然语言交互模块内供用户参考,其技术方案要点为,能够支持更多的问句形式和支持更丰富的复杂查询,运用更少的信息可以在没有与用户交互的情况下在MAS数据集上达到更高的准确度。

An Intelligent Numbering System Based on Natural Language Understanding and Its Method

【技术实现步骤摘要】
一种基于自然语言理解的智能取数系统及其方法
本专利技术涉及计算机科学领域,特别涉及一种基于自然语言理解的智能取数系统及其方法。
技术介绍
数据库的自然语言接口为人们提供了一种更简单、更符合习惯的方式来访问数据库,即使是缺乏计算机专业知识的人也可以通过该接口,使用自然语言查询的方式,轻松获取数据库中的数据。使用这样的查询方式,用户既不需要掌握复杂的结构化查询语言(如SQL),也不需要了解数据库的表结构,然而数据库自然语言的接口构建一直是个难题,目前最主流的解决方案有NaLIR、ATHENA等。图1展示了NaLIR的系统架构,整个系统由三个主要部分组成:问句解析部分、交互式通信器和查询树翻译器部分。问句解析部分包含分析树节点映射器(parsetreenodemapper)和分析树结构调整器(parsetreestructureAdjustor),负责将自然语言查询解析成一颗查询树。交互式通信器(interactivecommunicator)负责与用户交流,来确保解析过程的正确性。被用户所确认的查询树会被查询树翻译器(querytreetranslator)翻译成SQL语句,然后由RDBMS(关系型数据库管理系统)执行。图2展示了ATHENA的系统架构,假设用户提交了这样一个查询:“ShowmerestrictedstockinvestmentsinAlibabasince2012byinvestorandyear”。第一步,NLQ引擎将确定这个查询对应至本体中的哪些元素。比如,片段“restrictedstock”将被对看作是InstitutionalInvestment.type或是Holding.type属性的一个值。相似的,片段“Alibaba”可能指Company.name、一个InvestorCompany或者一个Lender。NLQ引擎会处理所有这些可能的对应关系,并生成符合条件的解释结果的列表,解释结果需要遵循本体结构和语法上的约束,对于每个解释结果,会生成相应的自然语言解释。在查询被解释的过程中,NLQ引擎依赖于一个附属的服务,叫做翻译索引(TranslationIndex,TI)。TI为RS中的数据和元数据、本体中的概念、属性、关系提供了索引。比如,在上述例子中,NLQ引擎会在TI中搜索“Alibaba”这个词,“Alibaba”被映射至本体中的Company.name属性。而基于本体至数据库映射关系,TI会知道“Alibaba”是RS中保存的Company表name列中的一个数据值。当然,事实上“Alibaba”还对应着本体中的其他元素(InvestorCompany、Lender),TI会获得“Alibaba”与数据库对象之间的所有关系。TI通过使用语义变体生成方案提供了强大而灵活的匹配功能。重要的是,通过TI索引的数据,ATHENA不仅可以索引准确的值,也可以支持某个值的不同别名。ATHENA提供了语义变体生成器(variantgenerator,VG),对人名、公司名等有效。比如,给一个输入字符串“AlibabaInc”,公司名的VG会给出以下一些别名:f“Alibaba”,“AlibabaInc”,“AlibabaInc.”,“AlibabaIncorporated”}。这使得ATHENA的用户可以通过索引中值的任何别名准确的表达一个查询,TI在离线初始化阶段被构建,并由RS中的数据填充。ATHENA的一个显著特点是两阶段方法的使用,这带来了模块间的物理独立性。通过对于本体的依赖和对于TI的利用,NLQ引擎对于RS中实际保存的数据毫不知情。为了支持这个两阶段方法,ATHENA在本体之上定义了一个中间查询语言,叫做本体查询语言(OntologyQueryLanguage,OQL)。OQL扮演的角色是为上层模块带来独立性,使它们不需要依赖于底层的数据存储形式及目标查询语言。比如说,相同的查询解释(OQL)可以同时被应用于关系型存储或是图型存储之上。这篇论文聚焦于关系型存储,OQL将作为查询翻译器(QueryTranslator)的输入,用来生成相应的SQL查询,NLQ引擎产生的每一个解释都将被翻译成一个OQL查询。针对上述NaLIR和ATHENA,依据存在缺陷和不足,具体如下:对于NaLIR,1、过度依赖于dependencyparser(依存解析器)的可靠性,当问句复杂、语义解析出现较大偏差时,通过之后的步骤也无法修补;2、当问句较长时,在随机调整这一步上,搜索空间太大,既带来了较大的时间成本,搜索结果也难保准确。对于ATHENA,1、不支持嵌套型SQL的生成,因而支持的问句形式受限;2、不支持同一实体多次出现,因此无法支持一些复杂问句。综上所述,这两种目前最具代表性的解决方案都存在不少问题,它们在处理复杂查询时往往力不从心,在某些特定情形也容易出错。
技术实现思路
针对现有技术存在的不足,本专利技术的目的在于提供一种基于自然语言理解的智能取数系统及其方法,能够支持更多的问句形式和支持更丰富的复杂查询,运用更少的信息可以在没有与用户交互的情况下在MAS数据集上达到89%的准确度(与NaLIR、ATHENA相同)。本专利技术的上述技术目的是通过以下技术方案得以实现的:一种基于自然语言理解的智能取数方法,包括如下步骤:步骤1,用户输入搜索自然语言,外部分词器进行外部分段来分隔中文查询单词、并输送每个分隔单词至标记解析器Tokenizer内识别含义;步骤2,标记解析器Tokenizer尝试识别每个分隔单词的含义,必要时将分隔单词组合成短语,最后将单词和短语映射到含有语义信息的节点上,所有的单词最初都会标记成UnknownNode节点类型;步骤2.1,标记解析器Tokenizer首先解析与数据库不相关的节点,并配备一个词库用于识别这些类型的节点,为了解决同一个词在不同语境中有不同的含义,标记解析器Tokenizer允许编写识别规则,识别规则匹配的是句子中的节点,根据上下文解释单词;步骤2.2,标记解析器Tokenizer第二步解析与数据库相关的节点,首先从词本身出发,从所有匹配和组合方式中,通过打分的方式找到最佳的匹配和组合方式,接着将最佳匹配所有的节点的所有映射全排列,得到所有可能的组合,并将每个组合映射到数据模型SchemaGraph的节点上,对这些节点生成SteinerTree,在所有的SteinerTree中,权重最小的组合即为最终标记解析器Tokenizer的结果,如果依旧有多个结果,则随机选出一个,并将所有结果返回用户,如有误用户可以订正;步骤3,将得到的节点序列转化成查询树QueryTree,查询树QueryTree的构建方式采用先局部建成小的子树,再合并的建树方法;步骤4,将查询树QueryTree转化成结构化查询语言SQL至数据库DB内、并反馈至用户自然语言交互模块内供用户参考。进一步优选为,所述在步骤2.2中打分选择最近匹配和组合方式过程中,得分的高低从以下四个方面考虑:被匹配项的字符应尽可能多的匹配、稀有被匹配项应具有更高的优先级、不要破坏原始分词、匹配的字符要连续。针对上述的一种基于自然语言理解的智能取数方法,同时延伸出:一种基于自然语言理解的智能取数系统,包括用本文档来自技高网
...

【技术保护点】
1.一种基于自然语言理解的智能取数方法,其特征是,包括如下步骤:步骤1,用户输入搜索自然语言,外部分词器进行外部分段来分隔中文查询单词、并输送每个分隔单词至标记解析器Tokenizer内识别含义;步骤2,标记解析器Tokenizer尝试识别每个分隔单词的含义,必要时将分隔单词组合成短语,最后将单词和短语映射到含有语义信息的节点上,所有的单词最初都会标记成UnknownNode节点类型;步骤2.1,标记解析器Tokenizer首先解析与数据库不相关的节点,并配备一个词库用于识别这些类型的节点,为了解决同一个词在不同语境中有不同的含义,标记解析器Tokenizer允许编写识别规则,识别规则匹配的是句子中的节点,根据上下文解释单词;步骤2.2,标记解析器Tokenizer第二步解析与数据库相关的节点,首先从词本身出发,从所有匹配和组合方式中,通过打分的方式找到最佳的匹配和组合方式,接着将最佳匹配所有的节点的所有映射全排列,得到所有可能的组合,并将每个组合映射到数据模型Schema Graph的节点上,对这些节点生成Steiner Tree,在所有的Steiner Tree中,权重最小的组合即为最终标记解析器Tokenizer的结果,如果依旧有多个结果,则随机选出一个,并将所有结果返回用户,如有误用户可以订正;步骤3,将得到的节点序列转化成查询树Query Tree,查询树Query Tree的构建方式采用先局部建成小的子树,再合并的建树方法;步骤4,将查询树Query Tree转化成结构化查询语言SQL至数据库DB内、并反馈至用户自然语言交互模块内供用户参考。...

【技术特征摘要】
1.一种基于自然语言理解的智能取数方法,其特征是,包括如下步骤:步骤1,用户输入搜索自然语言,外部分词器进行外部分段来分隔中文查询单词、并输送每个分隔单词至标记解析器Tokenizer内识别含义;步骤2,标记解析器Tokenizer尝试识别每个分隔单词的含义,必要时将分隔单词组合成短语,最后将单词和短语映射到含有语义信息的节点上,所有的单词最初都会标记成UnknownNode节点类型;步骤2.1,标记解析器Tokenizer首先解析与数据库不相关的节点,并配备一个词库用于识别这些类型的节点,为了解决同一个词在不同语境中有不同的含义,标记解析器Tokenizer允许编写识别规则,识别规则匹配的是句子中的节点,根据上下文解释单词;步骤2.2,标记解析器Tokenizer第二步解析与数据库相关的节点,首先从词本身出发,从所有匹配和组合方式中,通过打分的方式找到最佳的匹配和组合方式,接着将最佳匹配所有的节点的所有映射全排列,得到所有可能的组合,并将每个组合映射到数据模型SchemaGraph的节点上,对这些节点生成SteinerTree,在所有的SteinerTree中,权重最小的组合即为最终标记解析器Tokenizer的结果,如果依旧有多个结果,则随机选出一个,并将所有结果返回用户,如有误用户可以订正;步骤3,将得到的节点序列转化成查询树QueryTree,查询树QueryTree的构建方式采用先局部建成小的子树,再合并的建树方法;步骤4,将查询树QueryTree转化成结构化查询语言SQL至数据库DB内、并反馈至用户自然语言交互模块内供用户参考。2.根据权利要求1所述的一种基于自然语言理解的智能...

【专利技术属性】
技术研发人员:王同和凌立刚孙锐
申请(专利权)人:杭州量之智能科技有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1