本文描述的实施例总体上涉及使用自然语言的数据库查询,并且更具体地涉及非语义数据库的自然语言查询(例如,关于系统的性能)。
背景技术:
比如网络管理系统(nms)等工业系统可以使用关系数据库管理系统(rdbms)来将操作数据和测量数据存储在数据库中。可以通过在数据库上执行查询来从数据库中取得这种数据。通常情况下,查询由用户或应用程序以结构化查询语言(sql)编写。尤其是对于不具备软件专业知识的用户来说,能够通过口语或书面文本以自然语言提出查询问题将是有益的。这将消除用户必须获取查询语言(比如sql)的专业知识的需要。人工智能(ai)的最新进展可以将自然语言文本问题转换成可以在数据库上执行的sql查询。然而,这种文本到sql转换假设数据库利用其数据库元素(例如,表和列)的语义名称。这种假设并非总是正确的,尤其是对于可能已经发展了几十年的传统数据库。虽然可以将数据库元素从其原始原生名称重命名为语义名称,但这可能会破坏与利用原生名称的现有应用程序的链接。换言之,不仅数据库需要修改,而且查询数据库的每个应用程序可能也都需要修改。另外,有许多场景都需要进行基于语音的查询。例如,当现场工程师将无线路由器安装在杆的顶部并想要查询网络状态时,他们可能无法可行地或安全地将文本键入其设备中。在这种情况下,如果现场工程师能够简单地说出自然语言查询,则将是有益的。然而,当自然语言查询来源于口语文本时,中间的语音到文本转换过程可能会错误地转录一个或多个领域特定值或添加其他噪音。因此,需要能够实现非语义数据库的文本到sql转换,同时对语音到文本转换进行去噪,以实现基于语音的实时查询(例如,对工业系统性能的查询)。
背景技术
技术实现思路
1、因此,公开了用于非语义数据库的自然语言查询的系统、方法以及非暂态计算机可读介质。
2、在实施例中,一种方法,包括使用至少一个硬件处理器来执行以下操作:将数据库视图添加到数据库,其中,所述数据库视图将所述数据库中的数据库元素的原生名称映射到所述数据库元素的语义名称;获得表示自然语言查询的自然语言文本输入;将机器学习文本到sql模型应用于所述自然语言文本输入以生成结构化查询语言(sql)查询,所述sql查询包括用于在所述sql查询中引用的每个数据库元素的语义名称;并且使用所述数据库视图将用于所述sql查询中引用的每个数据库元素的语义名称映射到该数据库元素的原生名称来在所述数据库上执行所述sql查询。所述数据库元素可以包括表和表内的列。所述自然语言查询和所述sql查询可以包括对网络的至少一个性能参数的值的请求。所述网络的所述至少一个性能参数可以是公用事业网络。所述公用事业网络可以是工业无线网状网络或变电站网络,其中,所述网络的性能测量结果存储在所述数据库中以使用自然语言进行查询。
3、所述方法还可以包括使用所述至少一个硬件处理器来执行以下操作:接收自然语言文本字符串;并且对所述自然语言文本字符串进行归一化以获得所述自然语言文本输入。对所述自然语言文本字符串进行归一化可以包括:识别所述自然语言文本字符串中的网络地址的文本转录;以及将所述网络地址的文本转录替换为标准格式的网络地址的表示。对所述自然语言文本字符串进行归一化可以包括:识别所述自然语言文本字符串中日期和时间中的一者或两者的文本转录;以及将所述日期和时间中的一者或两者的所述文本转录替换为表示所述日期和时间中的一者或两者的时间戳值。对所述自然语言文本字符串进行归一化可以包括:识别在所述数据库中表示的实体在所述自然语言文本字符串中的术语的文本转录;以及将所述术语的文本转录替换为所述实体的标准术语。
4、所述自然语言文本字符串可以经由图形用户界面的输入接收,并且所述方法可以进一步包括使用所述至少一个硬件处理器来执行以下操作:接收在所述数据库上执行所述sql查询的结果;并且在所述图形用户界面中显示所述结果的表示。所述自然语言文本字符串可以从外部系统接收,并且所述方法可以进一步包括使用所述至少一个硬件处理器来执行以下操作:接收在所述数据库上执行所述sql查询的结果;并且将所述结果的表示返回至所述外部系统。
5、在实施例中,一种方法,包括使用至少一个硬件处理器来执行以下操作:生成数据库的数据库视图的表示,其中,所述数据库视图将用于所述数据库中的数据库元素的原生名称映射到用于所述数据库元素的语义名称;并且使用训练数据集来训练机器学习文本到sql模型以从表示自然语言查询的自然语言文本输入生成结构化查询语言(sql)查询,所述sql查询包括在所述sql查询中引用的每个数据库元素的语义名称,所述训练数据集包括标记有sql查询的自然语言文本输入。所述数据库元素可以包括表和表内的列。所述训练数据集中的自然语言查询中的一个或多个自然语言查询可以包括对网络的至少一个性能参数的值的请求。所述网络的所述至少一个性能参数可以是公用事业网络。所述公用事业网络可以是工业无线网状网络或变电站网络,其中,所述网络的性能测量结果存储在所述数据库中以使用自然语言进行查询。
6、所述方法可以进一步包括使用所述至少一个硬件处理器以通过以下操作来生成所述训练数据集:获得包括标记有现有sql查询的自然语言文本输入的现有数据集,所述现有sql查询包括用于在所述现有sql查询中引用的每个数据库元素的原生名称;识别用于所述现有sql查询中的原生名称的语义名称;以及将所述现有sql查询中的原生名称替换为所识别的语义名称以产生经修改sql查询,其中,所述训练数据集包括来自所述现有数据集的标记有所述经修改sql查询的自然语言文本输入。所述方法可以进一步包括使用所述至少一个硬件处理器来执行以下操作:使用包括标记有语义名称的自然语言短语的另一训练数据集来训练实体提取模型以从自然语言问题中提取数据库元素的语义名称。生成所述数据库视图的所述表示可以包括:将所述经训练的实体提取模型应用于所述现有数据集中的自然语言文本输入以提取所述数据库元素的语义名称;以及将所提取的语义名称与所述现有sql查询中的原生名称中的相应原生名称相关联以产生所述数据库视图。
7、所述方法可以进一步包括使用所述至少一个硬件处理器来执行以下操作:将所述数据库视图的表示应用于所述数据库以将所述数据库视图添加到所述数据库;并且针对用户指定的一个或多个自然语言文本输入中的每一个,将所述经训练的机器学习文本到sql模型应用于所述用户指定的自然语言文本输入以生成sql查询,并且使用所述数据库视图在所述数据库上执行所生成的sql查询。所述方法可以进一步包括针对所述一个或多个用户指定的自然语言文本输入中的每一个,使用所述至少一个硬件处理器来执行以下操作:接收在所述数据库上执行所生成的sql查询的结果;并且将所述结果返回至用户系统。所述方法可以进一步包括针对所述用户指定的一个或多个自然语言文本输入中的每一个,使用所述至少一个硬件处理器来执行以下操作:接收用户指定的自然语言文本字符串;并且对所述自然语言文本字符串进行归一化以获得所述用户指定的自然语言文本输入。对所述自然语言文本字符串进行归一化可以包括:识别所述自然语言文本字符串中的特定项的文本转录;以及将所述特定项的文本转录替换为所述特定项的标准化表示。
8、应当理解,以上方法中的任何特征可以单独实施,也可以与其他特征的任何子集以任何组合来实施。因此,即使所附权利要求表明特征之间存在特定的依赖关系,所公开的实施例并不局限于这些特定的依赖关系。相反,本文描述的任何特征可以与本文描述的任何其他特征进行组合,或者在没有本文描述的任何一个或多个其他特征的情况下以任何特征的任何组合来实施。另外,上文和本文其他地方描述的任何方法可以单独地或以任何组合体现在基于处理器的系统(比如服务器)的可执行软件模块中和/或存储在非暂态计算机可读介质中的可执行指令中。