一种基于自然语言的数据交互查询方法及其系统与流程

文档序号:20838860发布日期:2020-05-22 17:13阅读:274来源:国知局
一种基于自然语言的数据交互查询方法及其系统与流程

本发明涉及一种基于自然语言构建数据交互查询语句,以进行数据交互查询的方法及其系统,属于数据查询技术领域。



背景技术:

随着数据化进程,各大企事业单位开始将各种资料网络化、数据化,相应的数据快速查询需求越来越多,在现有的软件系统中数据查询的方式主要有两种:一种是利用图形化的数据过滤组件的方式;另一种是基于数据库查询语句(dataquerylanguage)的查询的方式,利用图形化组件过滤的查询方式具有直观、实用、相对安全可控的优势,适合非专业用户使用,但是其缺少查询上的灵活性;而基于数据库查询语句的查询方式具有极高的灵活性和组合能力,广泛的适用于各种查询场合,但是只有专业用户在熟悉查询语法并了解数据库结构的情况下才能使用该方式,并且该方式的查询语句大多与数据库种类绑定,不具有可移植性。



技术实现要素:

为了解决现有数据查询方式无法在专业度低的同时提高查询灵活性的问题,本发明提出了一种基于自然语言的数据交互查询方法及其系统,通过对数据库的分析,获取自然语言与数据库查询语言的映射关系,自动化的实现自然语言到数据库查询语言的转换,在降低操作难度的同时保证了数据查询的灵活性。

为解决上述技术问题,本发明采用了如下技术手段:

一种基于自然语言的数据交互查询方法,具体包括以下步骤:

s1、采集待查询的数据库,获取数据库中的数据集;

s2、基于元数据索引技术从数据集中获取数据元信息;

s3、基于待查询的数据库构建数据库查询语法映射库;

s4、基于数据元信息和数据库查询语法映射库生成查询链库;

s5、根据查询链库动态解析录入系统的自然语言文本,生成数据库查询语句;

s6、利用数据库查询语句在待查询的数据库中进行数据查询,并显示查询结果。

进一步的,所述数据元信息包括数据名称、数据类型和数据值。

进一步的,步骤s3的具体操作为:

根据数据库类型对待查询的数据库进行分类,分别获取每类数据库所支持的查询语法、查询语句和查询语句支持的数据类型,并将查询语句转换成自然语言词元,按照数据库类型将自然语言词元、查询语句、查询语句支持的数据类型和查询语法依次存入数据库查询语法映射库。

进一步的,所述数据库查询语法映射库采用键值的存储格式。

进一步的,步骤s4的具体操作为:

根据查询语句支持的数据类型,将数据元信息与自然语言词元关联起来,生成查询链库,所述查询链库中包含多条查询链,每一条查询链至少包括一个数据元信息和一个自然语言词元。

进一步的,步骤s5的具体操作为:

在显示界面录入自然语言文本过程中,实时对自然语言文本进行分词操作,依次计算分词结果与查询链库中的每个查询链的匹配度,按照匹配度对查询链库中的查询链进行排序,并按照顺序在显示界面上显示查询链,完成自然语言文本录制后,取匹配度最高的查询链,获取查询链中的数据元信息和自然语言词元,根据数据库语法映射库获取对应的查询语法和查询语句,生成该自然语言文本对应的数据库查询语句。

一种基于自然语言的数据交互查询系统,包括数据分析模块、查询语法映射模块、查询解析模块、查询显示模块和存储模块;所述数据分析模块,用于利用元数据索引技术分析待查询的数据库中的数据集,从数据集中获取数据元信息;所述查询语法映射模块,用于根据待查询的数据库类型获取数据库查询语法、查询语句和查询语句支持的数据类型,构建数据库查询语法映射库,并生成查询链库;所述查询解析模块,用于接收自然语言文本,并根据数据元信息、数据库查询语法映射库和查询链库生成自然语言文本对应的数据库查询语句;所述查询显示模块,用于录入自然语言文本,接收数据库查询语句进行数据库查询操作,并显示数据查询结果;所述存储模块,用于存储待查询的数据库、数据元信息、数据库查询语法映射库、查询链库、自然语言文本和数据查询结果。

进一步的,所述数据库查询语法映射库包括自然语言词元、查询语句、查询语句支持的数据类型和查询语法。

进一步的,所述查询链库中包含多条查询链,每一条查询链至少包括一个数据元信息和一个自然语言词元。

进一步的,所述查询显示模块采用手机、平板或电脑。

采用以上技术手段后可以获得以下优势:

本发明提出了一种基于自然语言的数据交互查询方法及其系统,本发明方法和系统获取数据库中的数据元信息、数据库查询语句和查询语法,建立数据库查询语法映射库,然后再通过数据库查询语句支持的数据类型,关联数据元信息和数据查询语法映射库,生成查询链库,在实际使用中,用户使用自然语言描述数据查询需求,系统自动匹配查询链,并根据查询链生成相应的数据库查询语言,实现数据查询需求,本发明方法和系统操作简单,即使是非专业用户也可以利用直观的自然语言描述完成复杂灵活的数据查询,提高了查询效率,减少了企事业单位对查询人员的培训成本。此外,本发明方法和系统基于数据库查询语法映射库生成查询链,通过查询链实现自然语言词元和数据库查询语句的一一映射,查询语句不与数据库查询语言强制绑定,具备较高的可移植性,适应于各个技术领域。

附图说明

图1为本发明一种基于自然语言的数据交互查询方法的步骤流程图。

图2为本发明一种基于自然语言的数据交互查询系统的结构示意图。

图3为本发明实施例中查询显示模块的页面显示图。

图中,1是数据分析模块,2是查询语法映射模块,3是查询解析模块,4是查询显示模块,5是存储模块。

具体实施方式

下面结合附图对本发明的技术方案作进一步说明:

一种基于自然语言的数据交互查询方法,如图1所示,具体包括以下步骤:

s1、采集待查询的数据库,获取数据库中的数据集。根据应用场景的不同,待查询的数据库也不同,比如某高校要查询学生各项信息,那么待查询的数据库就是高校建立的学生数据信息库,其中可能包括学生基本信息表、学生期末成绩表、学生考勤表等数据集。

s2、基于元数据索引技术从数据集中获取数据元信息。利用现有技术中的元数据索引方法或模块从数据库的数据集中提取数据元信息,数据元信息主要包括数据名称、数据类型和数据值等,数据类型包括字符串、数字、文本等。以学生基本信息表为例,元数据索引模块逐列扫描表中数据,获取列字段信息和每个列字段的值,其中,列名为数据名称,如学生学号、姓名、年龄、籍贯等,列名下具体的值就是数据值。提取数据元信息,可以进一步整理数据库中的数据,有利于后续查询。

s3、基于待查询的数据库构建数据库查询语法映射库,具体操作为:

根据数据库类型对待查询的数据库进行分类,由专业技术人员从相关网站或其他渠道分别获取每类数据库所支持的查询语法、查询语句和查询语句支持的数据类型,此处的查询语句主要包括数据库查询语法中用到比较符和操作符,不同的查询语句支持的数据类型不同,比如比较符“=”支持所有数据类型,但是比较符“<”不支持文本类数据。将查询语句转换成自然语言词元,以ansisql数据库为例,“in”是ansisql数据库的一个查询语句,其对应的自然语言词元为“值为下述值之一”。以数据库类型为准,将自然语言词元、查询语句、查询语句支持的数据类型和查询语法等信息依次存入数据库查询语法映射库,完成每类数据库的数据查询语言到部分自然查询语言的映射。本实施例中数据库查询语法映射库采用键值的存储格式。

除了对查询语句进行自然语言映射之外,一个数据库类型还需要有构建整体查询语句的逻辑组合词元映射,比如,将逻辑组合词元“and”映射到自然语言词元“并且/同时”,将“or”映射到“或”等等,这样可以进一步完善数据库查询语法的映射关系,方便后续的构建查询链、匹配查询链和自然语言文本、构建数据库查询语句等操作。

下面给出了一个简化的数据库查询语法映射库的存储结构伪代码:

可以看到,在数据库查询语法映射库中包含了每个查询语句支持的数据类型以及进一步对应的参数。

s4、基于数据元信息和数据库查询语法映射库生成查询链库,具体操作为:

根据查询语句支持的数据类型,将数据元信息与自然语言词元关联起来,生成查询链库,由于一个自然语言词元可以支持多种数据类型,所以查询链库罗列了由每个自然语言词元开始的所有可能的数据查询语句的结构,每一个数据查询语句的构造就是一条查询链,每一条查询链至少包括一个数据元信息和一个自然语言词元,即每条查询链都可以反应一个自然语言词元开始的针对一个数据元信息的数据查询语句构造,比如“等于年龄”,其中,“等于”是自然语言词元中的比较符,等于后面可以连接任何数据类型,“年龄”是数据元信息,即查询的目标列,“等于年龄”就是一个查询语句构造。此外,在实际使用中,客户输入的参数可能不是数据库中已包含的数据元信息,为了帮这类参数进场查询,查询链库中还包含一个长度为1的查询链,用于对任意参数进行模糊匹配。

s5、根据查询链库动态解析录入系统的自然语言文本,生成数据库查询语句,具体操作为:

在显示界面录入自然语言文本过程中,实时对自然语言文本进行分词操作,依次计算分词结果与查询链库中的每个查询链的匹配度,按照匹配度对查询链库中的查询链进行排序,并按照顺序在显示界面上显示查询链,完成自然语言文本录制后,取匹配度最高的查询链,获取查询链中的数据元信息和自然语言词元,根据数据库语法映射库获取对应的查询语法和查询语句,生成该自然语言文本对应的数据库查询语句。比如,用户输入了“姓名”,系统进行元数据确认后发现“姓名”是一个数据字段,并获得其数据类型nvarchar,而nvarchar支持的比较符有“等于”、“包含下列文字”、“为空”、“不为空”等,系统可以将支持的比较符列表数据返回给用户,显示一个列表供用户选择上述比较符,在用户输入完成并提交查询后,系统匹配最接近的查询链,并根据映射关系反向将自然语言转换为数据库查询语言,完成用户的查询操作。

s6、利用数据库查询语句在待查询的数据库中进行数据查询,并显示查询结果。

一种基于自然语言的数据交互查询系统,如图2所示,包括数据分析模块1、查询语法映射模块2、查询解析模块3、查询显示模块4和存储模块5,其中,数据分析模块用于利用元数据索引技术分析待查询的数据库中的数据集,从数据集中获取数据元信息,即数据名称、数据类型和数据值等信息。查询语法映射模块用于根据待查询的数据库类型获取数据库查询语法、查询语句和查询语句支持的数据类型,然后根据查询语句生产自然语言词元,构建数据库查询语法映射库,数据库查询语法映射库包括自然语言词元、查询语句、查询语句支持的数据类型和查询语法,并以查询语言支持的数据类型为标准,利用数据元信息和数据库查询语法映射库生成查询链库,查询链库罗列了由某一个自然语言词元开始的所有可能的数据查询语句的结构,其中包含多条查询链,每一条查询链至少包括一个数据元信息和一个自然语言词元。查询解析模块用于接收用户输入的自然语言文本,对自然语言文本进行解析,根据数据元信息、数据库查询语法映射库和查询链库生成自然语言文本对应的数据库查询语句。查询显示模块可以采用手机、平板或电脑等任何具有录入和显示功能的硬件设备,其主要用于录入自然语言文本,接收数据库查询语句,并利用数据库查询语句从存储模块存储的待查询数据库中查找数据,然后显示数据查询结果,图3是本发明实施例中查询显示模块的一个显示页面,可以看到当用户输入“专业名称等于光学工程并且出生年份等于”后,输入框下方显示了出生年份可能等于的值,在可能值较多的情况下,其只显示了前20个值。存储模块主要用于存储待查询的数据库、数据元信息、数据库查询语法映射库、查询链库、自然语言文本和数据查询结果等信息。

本发明方法和系统操作简单,即使是非专业用户也可以利用直观的自然语言描述完成复杂灵活的数据查询,提高了查询效率,减少了企事业单位对查询人员的培训成本。此外,本发明方法和系统基于数据库查询语法映射库生成查询链,通过查询链实现自然语言词元和数据库查询语句的一一映射,查询语句不与数据库查询语言强制绑定,具备较高的可移植性,适应于各个技术领域。

上面结合附图对本发明的实施方式作了详细地说明,但是本发明并不局限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1