一种项目数据查询方法及系统与流程

    专利查询2025-05-14  7


    本发明涉及数据处理,尤其涉及一种项目数据查询方法及系统。


    背景技术:

    1、传统的项目数据查询设计,主要是基于sql数据库查询技术,预先对分析场景进行查询要素的抽象,形成结构化的查询条件,例如按项目行业、规模、区域、建设主体、阶段、性质等,以引导用户进行多条件联合数据查询。当用户根据业务管理需求,选择条件进行数据定位时,系统对页面查询输入进行sql转译,实现多表、多库的单项或联合数据筛选。

    2、传统方法在技术层基于sql技术实现了数据筛选的动态,但其在业务上的服务能力是极为有限的。面对不同工作任务,各层级、各部门、各人员对项目关注重点不同,数据视角是多变的,预置条件模式无法实现对查询要素的穷举,构建出全量查询条件,以支撑多变的分析需求。且过多的查询条件,也将带来操作的复杂性问题,提高人员学习成本,同时降低人员操作体验。


    技术实现思路

    1、为了解决上述技术问题,本发明提供了一种项目数据查询方法及系统。

    2、本发明采用以下技术方案:一种项目数据查询方法,所述方法包括:

    3、获取用户输入的问题语句及待查询的数据库的数据库信息,其中,所述数据库信息包括表列信息和数据库模式图;

    4、基于预训练的bert模型对所述问题语句及所述表列信息进行编码,分别得到问题特征向量矩阵和表列特征向量矩阵,基于注意力机制将所述问题特征向量矩阵和所述表列特征向量矩阵进行综合编码,得到综合特征向量矩阵;

    5、根据所述问题特征向量矩阵、所述表列特征向量矩阵及所述综合特征向量矩阵生成sql子句,其中,所述sql子句包括select子句、where子句、group by子句、order by子句及limit子句;所述select子句包括待查询列名,所述where子句中包括条件列名;

    6、基于数据库中表名与列名的映射关系提取得到与所述待查询列名和所述条件列名对应的待查询表名,通过预设的广度优先搜索算法在所述数据库模式图中获取所述待查询表名之间的关联条件,并将所述关联条件添加至所述where子句中;

    7、将所述select子句、所述where子句、所述group by子句、所述order by子句及所述limit子句进行组合,得到目标sql查询语句,并将所述目标sql查询语句发送至数据库以获得查询结果。

    8、本发明一实施例的项目数据查询方法,通过对用户输入的查询文本和数据库信息进行特征提取,然后根据提取的特征向量矩阵生成select子句、where子句、group by子句、order by子句及limit子句这五种sql子句,使之能够更加高效、准确地生成结构化查询语句,在性能和精度上均表现出优异效果;再基于数据库中表名与列名的映射关系提取得到与待查询列名和条件列名对应的待查询表名,得到待查询表名之间的关联条件,确保生成的目标sql查询语句与数据库结构高度匹配,提升了数据库查询的效率和稳定性,使得数据查询结果更加精准;而且本发明基于sql子句的生成,更侧重于数据库表结构和查询规则,提升了数据的利用率,减少了训练数据的需求,降低了模型的训练成本。

    9、进一步的,所述基于预训练的bert模型对所述问题语句及所述表列信息进行编码,分别得到问题特征向量矩阵和表列特征向量矩阵,基于注意力机制将所述问题特征向量矩阵和所述表列特征向量矩阵进行综合编码,得到综合特征向量矩阵的步骤具体包括:

    10、基于预训练的bert模型对所述问题语句进行编码,得到问题特征向量矩阵,记为;

    11、定义所述表列信息为,其中,为第张表中的第个列名,为数据库中表的数量,为第张表中列名的数量,为所述表列信息的起始符,为所述表列信息的终止符;

    12、基于预训练的bert模型对所述表列信息进行编码,得到表列特征向量矩阵,记为,,其中,为所述起始符的特征向量,为所述终止符的特征向量,为所述表列信息中第张表中第个列名的特征向量,为的特征向量,所述表列信息中列名与所述表列特征向量矩阵中特征向量一一对应;

    13、将所述问题特征向量矩阵和所述表列特征向量矩阵通过注意力机制进行综合编码,得到综合特征向量矩阵:

    14、

    15、其中,为综合编码学习因子,为所述问题特征向量矩阵的权重参数,为所述表列特征向量矩阵的权重参数。

    16、进一步的,所述select子句包括待查询列名及与所述待查询列名对应的聚合函数,所述待查询列名和所述聚合函数的生成步骤具体包括:

    17、基于预设的lstm神经网络对所述综合特征向量矩阵进一步编码,得到最后一个时间步的隐藏状态;

    18、将所述起始符作为初始解码的输入,记为,所述隐藏状态作为解码的初始状态,将第个时间步得到解码向量记为,将所述解码向量与所述表列特征向量矩阵通过注意力机制进行计算,得到在第个时间步选中数据库中每一个列名的概率集合:

    19、

    20、其中,为在第个时间步选中数据库中每个列名的概率集合,中的元素与所述表列信息中的列名数量相同且一一对应,为计算时的注意力权重参数;

    21、选取中概率值最大的元素,记为,令与对应的所述表列信息中的列名作为第个时间步的待查询列名,并将该所述待查询列名在所述表列特征向量矩阵中对应的特征向量作为下一时间步解码的输入,记为;

    22、直至在一个时间步中选中数据库中的列名为所述终止符为止,基于得到的所述待查询列名的顺序将全部所述待查询列名生成待查询列名集合;

    23、将所述聚合函数的类别与预设的第一全连接层进行关联;定义所述待查询列名集合中的第个所述待查询列名为,则记在所述表列特征向量矩阵中的特征向量为;

    24、将所述与所述通过注意力机制进行计算第一上下文向量:

    25、

    26、其中,为第个所述待查询列名对应的第一上下文向量,为计算时的注意力权重参数;

    27、将所述第一上下文向量输入至所述第一全连接层,得到第个所述待查询列名对应聚合函数类别的概率集合:

    28、

    29、其中,为第个所述待查询列名对应聚合函数类别的概率集合,和分别为所述第一全连接层的第一学习参数和第二学习参数;

    30、选取中概率最高的元素所对应的聚合函数作为第个所述待查询列名对应的聚合函数。

    31、进一步的,所述where子句包括条件列名、条件操作符和条件值,定义所述条件列名、所述条件操作符和所述条件值构成的三元组为sql查询条件,所述where子句的生成步骤具体包括:

    32、采用独立的学习参数重复执行生成所述待查询列名集合的步骤,得到条件列名集合,所述条件列名集合包括多个所述条件列名;

    33、将所述条件操作符的类别与预设的第二全连接层进行关联;定义所述条件列名集合中的第个所述条件列名为,则记在所述表列特征向量矩阵中的特征向量为;

    34、将所述与所述通过注意力机制进行计算第二上下文向量:

    35、

    36、其中,为第个所述条件列名对应的第二上下文向量,为计算时的注意力权重参数;

    37、将所述第二上下文向量输入至所述第二全连接层,得到第个所述条件列名对应条件操作符类别的概率集合:

    38、

    39、其中,为第个所述条件列名对应条件操作符类别的概率集合,和分别所述第二全连接层的第一学习参数和第二学习参数;

    40、选取中概率最高的元素所对应的所述条件操作符作为第个所述条件列名对应的所述条件操作符;

    41、将所述与所述通过注意力机制进行计算第三上下文向量:

    42、

    43、其中,为第个所述条件列名对应的第三上下文向量,为计算时的注意力权重参数;

    44、基于预设的lstm神经网络将所述作为编码输入,得到最后一个时间步的隐藏状态,将所述隐藏状态作为解码的初始状态,所述起始符作为初始解码输入,通过逐步解码得到条件标记序列,直至生成所述终止符为止,根据所述条件标记序列即可得到所述条件值。

    45、进一步的,所述group by子句的生成步骤具体包括:

    46、将所述与所述通过注意力机制进行计算第四上下文向量:

    47、

    48、其中,为第个所述待查询列名对应的第四上下文向量,为计算时的注意力权重参数;

    49、计算第个所述待查询列名存入所述group by子句中的概率:

    50、

    51、其中,为第个所述待查询列名存入所述group by子句中的概率,为所述的权重参数,为所述的权重参数;

    52、若大于预设的第一概率阈值,则将第个所述待查询列名存入所述groupby子句中。

    53、进一步的,所述order by子句的生成步骤具体包括:

    54、将所述待查询列名的排序方式类别与预设的第三全连接层关联;其中,所述待查询列名的排序方式类别包括‘none’,‘asc’, ‘desc’;

    55、将所述与所述通过注意力机制进行计算第五上下文向量:

    56、

    57、其中,为第个所述待查询列名对应的第五上下文向量,为计算时的注意力权重参数;

    58、将所述输入至所述第三全连接层,得到第个所述待查询列名对应排序方式类别的概率集合:

    59、

    60、其中,为第个所述待查询列名对应排序方式类别的概率集合,和分别为所述第三全连接层的第一学习参数和第二学习参数;

    61、选取中概率最高的元素所对应的排序方式作为第个所述待查询列名对应的排序方式,并由此得到所述order by子句;

    62、其中,若第个所述待查询列名的排序方式为‘none’,则第个所述待查询列名不加入所述order by子句,若第个所述待查询列名的排序方式为‘asc’或‘desc’,则将第个所述待查询列名加入所述order by子句,并将第个所述待查询列名按正序排序或倒序排序。

    63、进一步的,所述 limit子句的生成步骤具体包括:

    64、采用预设的第四全连接层对所述进行二分类,并以此判断是否需要所述limit子句,所述第四全连接层的输出概率为:

    65、

    66、其中,和分别为所述第四全连接层的第一学习参数和第二学习参数;

    67、若所述大于预设的第二概率阈值,则判断需要所述limit子句;

    68、基于函数确定所述limit子句的limit值:

    69、

    70、其中,、、及分别为所述limit值的第一学习参数、第二学习参数、第三学习参数及第四学习参数。

    71、本发明还提出一种项目数据查询系统,所述系统包括:

    72、获取模块,用于获取用户输入的问题语句及待查询的数据库的数据库信息,其中,所述数据库信息包括表列信息和数据库模式图;

    73、编码模块,用于基于预训练的bert模型对所述问题语句及所述表列信息进行编码,分别得到问题特征向量矩阵和表列特征向量矩阵,基于注意力机制将所述问题特征向量矩阵和所述表列特征向量矩阵进行综合编码,得到综合特征向量矩阵;

    74、sql子句模块,用于根据所述问题特征向量矩阵、所述表列特征向量矩阵及所述综合特征向量矩阵生成sql子句,其中,所述sql子句包括select子句、where子句、group by子句、order by子句及limit子句;

    75、表关联条件模块,用于基于数据库中表名与列名的映射关系提取得到与所述待查询列名和所述条件列名对应的待查询表名,通过预设的广度优先搜索算法在所述数据库模式图中获取所述待查询表名之间的关联条件,并将所述关联条件添加至所述where子句中;

    76、查询模块,用于将所述select子句、所述where子句、所述group by子句、所述order by子句及所述limit子句进行组合,得到目标sql查询语句,并将所述目标sql查询语句发送至数据库以获得查询结果。

    77、本发明一实施例的项目数据查询系统,通过对用户输入的查询文本和数据库信息进行特征提取,然后根据提取的特征向量矩阵生成select子句、where子句、group by子句、order by子句及limit子句这五种sql子句,使之能够更加高效、准确地生成结构化查询语句,在性能和精度上均表现出优异效果;再基于数据库中表名与列名的映射关系提取得到与待查询列名和条件列名对应的待查询表名,得到待查询表名之间的关联条件,确保生成的目标sql查询语句与数据库结构高度匹配,提升了数据库查询的效率和稳定性,使得数据查询结果更加精准;而且本发明基于sql子句的生成,更侧重于数据库表结构和查询规则,提升了数据的利用率,减少了训练数据的需求,降低了模型的训练成本。

    78、本发明还提出一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的项目数据查询方法。

    79、本发明还提出一种终端,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的项目数据查询方法。


    技术特征:

    1.一种项目数据查询方法,其特征在于,所述方法包括:

    2.根据权利要求1所述的项目数据查询方法,其特征在于,所述基于预训练的bert模型对所述问题语句及所述表列信息进行编码,分别得到问题特征向量矩阵和表列特征向量矩阵,基于注意力机制将所述问题特征向量矩阵和所述表列特征向量矩阵进行综合编码,得到综合特征向量矩阵的步骤具体包括:

    3.根据权利要求2所述的项目数据查询方法,其特征在于,所述select子句包括待查询列名及与所述待查询列名对应的聚合函数,所述待查询列名和所述聚合函数的生成步骤具体包括:

    4.根据权利要求3所述的项目数据查询方法,其特征在于,所述where子句包括条件列名、条件操作符和条件值,定义所述条件列名、所述条件操作符和所述条件值构成的三元组为sql查询条件,所述where子句的生成步骤具体包括:

    5.根据权利要求3所述的项目数据查询方法,其特征在于,所述group by子句的生成步骤具体包括:

    6. 根据权利要求3所述的项目数据查询方法,其特征在于,所述order by子句的生成步骤具体包括:

    7. 根据权利要求3所述的项目数据查询方法,其特征在于,所述 limit子句的生成步骤具体包括:

    8.一种项目数据查询系统,其特征在于,所述系统包括:

    9.一种可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至7任一项所述的项目数据查询方法。

    10.一种终端,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的项目数据查询方法。


    技术总结
    本发明涉及数据处理技术领域,尤其涉及一种项目数据查询方法及系统,方法包括:获取用户输入的问题语句及数据库信息;基于预训练的bert模型和注意力机制对问题语句及数据库信息进行编码,分别得到问题特征向量矩阵、表列特征向量矩阵及综合特征向量矩阵;根据提取的特征向量矩阵生成SQL子句;基于数据库中表名与列名的映射关系提取得到待查询表名,通过预设的广度优先搜索算法获取待查询表名之间的关联条件;将SQL子句进行组合,得到目标SQL查询语句,并将目标SQL查询语句发送至数据库以获得查询结果。本发明能够更加高效、准确地生成结构化查询语句,使得数据查询结果更加精准。

    技术研发人员:谢波,蔡伟,舒文华,于程远
    受保护的技术使用者:思创数码科技股份有限公司
    技术研发日:
    技术公布日:2024/11/26
    转载请注明原文地址:https://tc.8miu.com/read-28349.html

    最新回复(0)