CN117539893A - 数据处理方法、介质、装置和计算设备 - Google Patents

数据处理方法、介质、装置和计算设备 Download PDF

Info

Publication number
CN117539893A
CN117539893A CN202311508413.6A CN202311508413A CN117539893A CN 117539893 A CN117539893 A CN 117539893A CN 202311508413 A CN202311508413 A CN 202311508413A CN 117539893 A CN117539893 A CN 117539893A
Authority
CN
China
Prior art keywords
field
field value
information
data
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311508413.6A
Other languages
English (en)
Inventor
汪源
余利华
毛煜苏
胡雪亮
胡凡
沙雨辰
肖康
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN202311508413.6A priority Critical patent/CN117539893A/zh
Publication of CN117539893A publication Critical patent/CN117539893A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/243Natural language query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation
    • G06F16/24522Translation of natural language queries to structured queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/256Integrating or interfacing systems involving database management systems in federated or virtual databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开的实施方式提供了一种数据处理方法、介质、装置和计算设备,涉及数据处理领域。该方法应用于商业智能BI***,该BI***包括大语言模型,该方法包括:获取包含有数据请求信息的自然语言问句,以及目标视图的视图元信息,其中,目标视图是由BI***所提供的数据模型,对数据库中的物理表进行建模获得的虚拟表,目标视图是基于自然语言问句的第一意图进行配置获得的;基于数据增强信息,对自然语言问句以及视图元信息进行检索增强处理,以获得对应的目标提示词信息;将目标提示词信息输入至大语言模型,以获得对应的结构化查询语言SQL语句;依据SQL语句取得对应于数据请求信息的数据请求结果,以提高所获取的数据结果的准确性。

Description

数据处理方法、介质、装置和计算设备
技术领域
本公开的实施方式涉及数据处理领域,更具体地,本公开的实施方式涉及一种数据处理方法、介质、装置和计算设备。
背景技术
本部分旨在为本公开的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
目前,商业智能(Business Intelligence,简称:BI)***可以向用户提供自动取数操作、数据分析处理、数据可视化等功能。具体地,BI***支持收集和转换多个来源的数据、数据建模处理、数据分析处理,以及可视化显示数据分析报告,以满足用户的数据请求需求。此外,近年来大语言模型凭借其较高的自然语言理解能力、翻译能力等数据处理能力,受到了广泛的关注。
如何准确理解用户的数据请求意图,提高数据请求结果的准确性,是一个亟需解决的问题。
发明内容
本公开提供一种数据处理方法、介质、装置和计算设备,以提高数据请求结果的准确性。
在本公开实施方式的第一方面中,提供了一种数据处理方法,应用于商业智能BI***,该BI***包括大语言模型,包括:
获取包含有数据请求信息的自然语言问句,以及目标视图的视图元信息,其中,所述目标视图是由所述BI***所提供的数据模型,对数据库中的物理表进行建模获得的虚拟表,所述目标视图是基于所述自然语言问句的第一意图进行配置获得的;
基于数据增强信息,对所述自然语言问句以及所述视图元信息进行检索增强处理,以获得对应的目标提示词信息;
将所述目标提示词信息输入至所述大语言模型,以获得对应的结构化查询语言SQL语句;
依据所述SQL语句取得对应于所述数据请求信息的数据请求结果。
在一种可能的实现方式中,所述数据增强信息至少包括:
由所述BI***所提供的数据模型所对应的虚拟表中所有字段的字段名称;
由所述BI***所提供的数据模型所对应的虚拟表中各字段对应的字段类型;
由所述BI***所提供的数据模型所对应的虚拟表中各字段下的第一预设数量个字段值。
在一种可能的实现方式中,基于数据增强信息,对所述自然语言问句以及所述视图元信息进行检索增强处理,包括:
提取所述自然语言问句中的关键词,将所述关键词与所述目标视图下相应字段的字段值进行匹配,以得到所命中的候选字段值;
基于所述候选字段值与所述自然语言问句之间的相似度结果,对所述候选字段值进行排序;
依据相似度结果由高到低的顺序,选取排名靠前的第二预设数量个候选字段值作为目标字段值,并确定与之对应的目标字段;
基于所述目标字段对所述数据增强信息进行缩减,以获得目标数据增强信息,该目标数据增强信息中不包括除所述目标字段以外的字段;
将所述自然语言问句、所述视图元信息以及所述目标数据增强信息确定为所述目标提示词信息。
在一种可能的实现方式中,所述目标提示词信息还包括:所述自然语言问句所对应的上文问答信息、所述上文问答信息对应的历史提示词信息、所述上文问答信息对应的历史视图的表元信息中的至少一项;所述上文问答信息为所述自然语言问句之前,同一用户发出的历史问句以及历史问句所对应的请求结果;所述表元信息是基于所述历史问句的第二意图进行配置获得的。
在一种可能的实现方式中,将所述目标提示词信息输入至所述大语言模型,以获得对应的结构化查询语言SQL语句,包括:
由所述大语言模型输出第一查询语句;所述第一查询语句为基于伪SQL代码形式编写的;
确定所述第一查询语句中的第一where条件子句;
若确定所述第一where条件子句包括赋值操作符,且所述第一where条件子句指示筛选的第一字段值命中了所述数据增强信息中的至少一个第二字段值,则根据like操作符以及通配符,对所述第一where条件子句进行改写,得到第二where条件子句;其中,所述第二字段值为以所述第一字段值开头的字段值,或者,所述第二字段值为以所述第一字段值结尾的字段值,或者,所述第二字段值为以所述第一字段值作为中间取值的字段值,或者,所述第二字段值为子序列中包括所述第一字段值的字段值;
将所述第一查询语句中的第一where条件子句,替换为第二where条件子句,得到第二查询语句;
根据所述第二查询语句,确定所述SQL语句。
在一种可能的实现方式中,根据like操作符以及通配符,对所述第一where条件子句进行改写,得到第二where条件子句,包括:
将所述第一where条件子句中的赋值操作符替换为所述like操作符,得到第三where条件子句;
若所述第二字段值为以所述第一字段值开头的字段值,则在所述第三where条件子句中的第一字段值的结尾处添加通配符,得到第二where条件子语句;
若所述第二字段值为以所述第一字段值结尾的字段值,则在所述第三where条件子句中的第一字段值的开头处添加通配符,得到第二where条件子语句;
若所述第二字段值为以所述第一字段值作为中间取值的字段值,则在所述第三where条件子句中的第一字段值的结尾处以及所述第一字段值的开头处分别添加通配符;
若所述第二字段值为子序列中包括所述第一字段值的字段值,则在所述第三where条件子句中的第一字段值所包含的字符间隔之间添加通配符,得到第二where条件子语句。
在一种可能的实现方式中,所述方法还包括:
若确定所述第一where条件子句包括赋值操作符,且所述第一where条件子句指示筛选的第一字段值完全命中了所述数据增强信息中字段值,则确定所述第一查询语句为第二查询语句。
在一种可能的实现方式中,所述方法还包括:
若确定所述第一where条件子句表征匹配以第一字段值为结尾的字段值,且在所述数据增强信息中不包括以第一字段值为结尾的字段值,则在所述第一where条件子句中的第一字段值的结尾处添加通配符,得到第二where条件子句;
若确定所述第一where条件子句表征匹配以第一字段值为开头的字段值,且在所述数据增强信息中不包括以第一字段值为开头的字段值,则在所述第一where条件子句中的第一字段值的开头处添加通配符,得到第二where条件子句。
在一种可能的实现方式中,根据所述第二查询语句,确定所述SQL语句,包括:
根据所述第二查询语句,确定第三查询语句;所述第三查询语句为用于表征所述第二查询语句的第三意图的通用数据查询结构;
根据所述第三查询语句,确定所述SQL语句;所述SQL语句为用于面向数据库中的物理表进行取数操作的查询语句。
在一种可能的实现方式中,根据所述第二查询语句,确定第三查询语句,包括:
识别所述第二查询语句中的select算子所对应的查询条件和第二where条件子句;所述查询条件包括select算子指示选择的待处理字段,所述待处理字段为大语言模型基于目标提示词信息所得到的;
确定所述查询条件所对应的语法树;
根据所述语法树,确定所述语法树所对应的第一计算字段;其中,所述第一计算字段包括:所述待处理字段在虚拟表中的字段标识、所述待处理字段的第一处理规则;
根据所述第一计算字段和所述第二where条件子句,确定第三查询语句。
在一种可能的实现方式中,根据所述第一计算字段和所述第二where条件子句,确定第三查询语句,包括:
确定所述第二where条件子句对应的至少一个第二计算字段;所述第二计算字段包括:第二where条件子句指示筛选的第一字段、指示筛选的第一字段所对应的字段值筛选范围;
若所述第二计算字段的数量为多个,则根据所述第二where条件子句,确定第二计算字段间的逻辑运算关系;所述逻辑运算关系包括:and运算关系、or运算关系、not运算关系;
根据所述第一计算字段、所述第二计算字段以及所述逻辑运算关系,确定第三查询语句。
在一种可能的实现方式中,根据所述第一计算字段、所述第二计算字段以及所述逻辑运算关系,确定第三查询语句,包括:
若确定在多个第二计算字段中包括多个第三计算字段,且所述多个第三计算字段各自包含的第一字段相同,所述多个第三计算字段两两间的逻辑运算关系为and运算关系,则对所述多个第三计算字段中的第一字段所对应的字段值筛选范围合并处理,得到合并后的第四计算字段;
根据所述第四计算字段、所述第二计算字段和所述第一计算字段确定第三查询语句。
在一种可能的实现方式中,所述方法还包括:
根据所述第三查询语句,输出自然语言形式的描述信息;其中,所述描述信息用于对所述第二查询语句的第三意图作出解释。
在一种可能的实现方式中,所述方法还包括:
响应于针对所述描述信息的第一调整请求,显示与所述描述信息所对应的多个筛选项;所述第一调整请求表征需要对第三意图进行调整;所述筛选项用于指示所述第二查询语句指示处理的字段以及所述字段的第二处理规则;所述第二处理规则包括以下至少一项:字段所对应的字段取值的排序规则、字段所对应的字段取值的分组规则、字段所对应的取值规则;
响应于针对所述筛选项的第二调整请求,调整所述第三查询语句,得到调整后的第三查询语句;所述第二调整请求用于指示调整所述筛选项所指示的内容;
基于所述调整后的第三查询语句,确定调整后的SQL语句。
在一种可能的实现方式中,所述数据请求结果的输出形式包括以下中的至少一种:图表、报表以及数据值。
在本公开实施方式的第二方面中,提供了一种数据处理装置,应用于商业智能BI***,该BI***包括大语言模型,包括:
获取单元,用于获取包含有数据请求信息的自然语言问句,以及目标视图的视图元信息,其中,所述目标视图是由所述BI***所提供的数据模型,对数据库中的物理表进行建模获得的虚拟表,所述目标视图是基于所述自然语言问句的第一意图进行配置获得的;
第一处理单元,用于基于数据增强信息,对所述自然语言问句以及所述视图元信息进行检索增强处理,以获得对应的目标提示词信息;
第二处理单元,用于将所述目标提示词信息输入至所述大语言模型,以获得对应的结构化查询语言SQL语句;
第三处理单元,用于依据所述SQL语句取得对应于所述数据请求信息的数据请求结果。
在一种可能的实现方式中,所述数据增强信息至少包括:
由所述BI***所提供的数据模型所对应的虚拟表中所有字段的字段名称;
由所述BI***所提供的数据模型所对应的虚拟表中各字段对应的字段类型;
由所述BI***所提供的数据模型所对应的虚拟表中各字段下的第一预设数量个字段值。
在一种可能的实现方式中,第一处理单元,包括:
提取模块,用于提取所述自然语言问句中的关键词;
匹配模块,用于将所述关键词与所述目标视图下相应字段的字段值进行匹配,以得到所命中的候选字段值;
排序模块,用于基于所述候选字段值与所述自然语言问句之间的相似度结果,对所述候选字段值进行排序;
第一确定模块,用于依据相似度结果由高到低的顺序,选取排名靠前的第二预设数量个候选字段值作为目标字段值,并确定与之对应的目标字段;
处理模块,用于基于所述目标字段对所述数据增强信息进行缩减,以获得目标数据增强信息,该目标数据增强信息中不包括除所述目标字段以外的字段;
第二确定模块,用于将所述自然语言问句、所述视图元信息以及所述目标数据增强信息确定为所述目标提示词信息。
在一种可能的实现方式中,所述目标提示词信息还包括:所述自然语言问句所对应的上文问答信息、所述上文问答信息对应的历史提示词信息、所述上文问答信息对应的历史视图的表元信息中的至少一项;所述上文问答信息为所述自然语言问句之前,同一用户发出的历史问句以及历史问句所对应的请求结果;所述表元信息是基于所述历史问句的第二意图进行配置获得的。
在一种可能的实现方式中,第二处理单元,包括:
输出模块,用于由所述大语言模型输出第一查询语句;所述第一查询语句为基于伪SQL代码形式编写的;
第三确定模块,用于确定所述第一查询语句中的第一where条件子句;
第一改写模块,用于若确定所述第一where条件子句包括赋值操作符,且所述第一where条件子句指示筛选的第一字段值命中了所述数据增强信息中的至少一个第二字段值,则根据like操作符以及通配符,对所述第一where条件子句进行改写,得到第二where条件子句;其中,所述第二字段值为以所述第一字段值开头的字段值,或者,所述第二字段值为以所述第一字段值结尾的字段值,或者,所述第二字段值为以所述第一字段值作为中间取值的字段值,或者,所述第二字段值为子序列中包括所述第一字段值的字段值;
替换模块,用于将所述第一查询语句中的第一where条件子句,替换为第二where条件子句,得到第二查询语句;
第四确定模块,用于根据所述第二查询语句,确定所述SQL语句。
在一种可能的实现方式中,第一改写模块,具体用于:
将所述第一where条件子句中的赋值操作符替换为所述like操作符,得到第三where条件子句;
若所述第二字段值为以所述第一字段值开头的字段值,则在所述第三where条件子句中的第一字段值的结尾处添加通配符,得到第二where条件子语句;
若所述第二字段值为以所述第一字段值结尾的字段值,则在所述第三where条件子句中的第一字段值的开头处添加通配符,得到第二where条件子语句;
若所述第二字段值为以所述第一字段值作为中间取值的字段值,则在所述第三where条件子句中的第一字段值的结尾处以及所述第一字段值的开头处分别添加通配符;
若所述第二字段值为子序列中包括所述第一字段值的字段值,则在所述第三where条件子句中的第一字段值所包含的字符间隔之间添加通配符,得到第二where条件子语句。
在一种可能的实现方式中,所述装置还包括:
第五确定模块,用于若确定所述第一where条件子句包括赋值操作符,且所述第一where条件子句指示筛选的第一字段值完全命中了所述数据增强信息中字段值,则确定所述第一查询语句为第二查询语句。
在一种可能的实现方式中,所述装置还包括:
第二改写模块,用于若确定所述第一where条件子句表征匹配以第一字段值为结尾的字段值,且在所述数据增强信息中不包括以第一字段值为结尾的字段值,则在所述第一where条件子句中的第一字段值的结尾处添加通配符,得到第二where条件子句;
第三改写模块,用于若确定所述第一where条件子句表征匹配以第一字段值为开头的字段值,且在所述数据增强信息中不包括以第一字段值为开头的字段值,则在所述第一where条件子句中的第一字段值的开头处添加通配符,得到第二where条件子句。
在一种可能的实现方式中,第四确定模块,具体用于:
根据所述第二查询语句,确定第三查询语句;所述第三查询语句为用于表征所述第二查询语句的第三意图的通用数据查询结构;
根据所述第三查询语句,确定所述SQL语句;所述SQL语句为用于面向数据库中的物理表进行取数操作的查询语句。
在一种可能的实现方式中,第四确定模块,具体用于:
识别所述第二查询语句中的select算子所对应的查询条件和第二where条件子句;所述查询条件包括select算子指示选择的待处理字段,所述待处理字段为大语言模型基于目标提示词信息所得到的;
确定所述查询条件所对应的语法树;
根据所述语法树,确定所述语法树所对应的第一计算字段;其中,所述第一计算字段包括:所述待处理字段在虚拟表中的字段标识、所述待处理字段的第一处理规则;
根据所述第一计算字段和所述第二where条件子句,确定第三查询语句。
在一种可能的实现方式中,第四确定模块,具体用于:
确定所述第二where条件子句对应的至少一个第二计算字段;所述第二计算字段包括:第二where条件子句指示筛选的第一字段、指示筛选的第一字段所对应的字段值筛选范围;
若所述第二计算字段的数量为多个,则根据所述第二where条件子句,确定第二计算字段间的逻辑运算关系;所述逻辑运算关系包括:and运算关系、or运算关系、not运算关系;
根据所述第一计算字段、所述第二计算字段以及所述逻辑运算关系,确定第三查询语句。
在一种可能的实现方式中,第四确定模块,具体用于:
若确定在多个第二计算字段中包括多个第三计算字段,且所述多个第三计算字段各自包含的第一字段相同,所述多个第三计算字段两两间的逻辑运算关系为and运算关系,则对所述多个第三计算字段中的第一字段所对应的字段值筛选范围合并处理,得到合并后的第四计算字段;
根据所述第四计算字段、所述第二计算字段和所述第一计算字段确定第三查询语句。
在一种可能的实现方式中,第四确定模块,还用于:
根据所述第三查询语句,输出自然语言形式的描述信息;其中,所述描述信息用于对所述第二查询语句的第三意图作出解释。
在一种可能的实现方式中,所述装置还包括:
第一显示模块,用于响应于针对所述描述信息的第一调整请求,显示与所述描述信息所对应的多个筛选项;所述第一调整请求表征需要对第三意图进行调整;所述筛选项用于指示所述第二查询语句指示处理的字段以及所述字段的第二处理规则;所述第二处理规则包括以下至少一项:字段所对应的字段取值的排序规则、字段所对应的字段取值的分组规则、字段所对应的取值规则;
调整模块,用于响应于针对所述筛选项的第二调整请求,调整所述第三查询语句,得到调整后的第三查询语句;所述第二调整请求用于指示调整所述筛选项所指示的内容;
第六确定模块,用于基于所述调整后的第三查询语句,确定调整后的SQL语句。
在一种可能的实现方式中,所述数据请求结果的输出形式包括以下中的至少一种:图表、报表以及数据值。
在本公开实施方式的第三方面中,提供了一种计算机可读存储介质,包括:所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如第一方面任一项所述的方法。
在本公开实施方式的第四方面中,提供了一种计算设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述计算设备执行第一方面中任一项所述的方法。
根据本公开实施方式的数据处理方法、介质、装置和计算设备,通过所接收到的自然语言问句以及视图元信息进行检索增强处理,提高了输入至大语言模型的输入数据与用户的意图(即,自然语言问句所第一意图)的相关性,以提高模型输出结果的准确性,进一步确保所获取到的数据请求结果符合用户的意图。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
图1为本公开实施例提供的一种取数示意图;
图2为本公开实施例提供的一种应用场景示意图;
图3为本公开实施例提供的一种数据处理方法的流程示意图;
图4为本公开实施例提供的一种目标视图的确定方法;
图5为本公开实施例提供的又一种数据处理方法的流程示意图;
图6为本公开实施例提供的另一种数据处理方法的流程示意图;
图7为本公开实施例提供的一种数据处理方法的示意图;
图8为本公开实施例提供的一种语法树结构;
图9为本公开实施例提供的第二种语法树结构;
图10为本公开实施例提供的第三种语法树结构;
图11为本公开实施例提供的一种数据请求结果的界面显示示意图;
图12为本公开实施例提供的又一种数据请求结果的界面显示示意图;
图13为本公开实施例提供的再一种数据请求结果的界面显示示意图;
图14为本公开实施例提供的一种存储介质的示意图;
图15为本公开实施例提供的一种数据处理装置的结构示意图;
图16为本公开实施例提供的一种计算设备的结构示意图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本公开的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本公开的实施方式可以实现为一种***、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本公开的实施方式,提出了一种数据处理的方法、介质、装置和计算设备。
在本文中,需要理解的是,所涉及的术语含义如下:
伪代码,是用介于自然语言和计算机语言之间的文字和符号(包括数学符号)来描述算法的算法描述语言。
大语言模型(Large Language Model,简称LLM),是指使用大量文本数据训练的深度学习模型,可以生成自然语言文本或理解语言文本,常用于处理多种自然语言任务,如文本分类、问答、对话等。
结构化查询语言(Structured Query Language,简称SQL),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库***。
商业智能(Business Intelligence,简称BI)***,一种可用于进行数据分析、可视化等处理的***。
子序列,又称为子数列,某个序列的子序列是从最初序列通过去除某些元素但不破坏余下元素的相对位置(在前或在后)而形成的新序列。
最长公共子序列,是一个在一个序列集合中(通常为两个序列)用来查找所有序列中最长子序列的问题。一个数列,如果分别是两个或多个已知数列的子序列,且是所有符合此条件序列中最长的,则称为已知序列的最长公共子序列。
子串,字符串中任意个连续的字符组成的子序列称为该字符串的子串。
最长公共子串,一个子串,若该子串为多个字符串中每一字符串的子串,且为符合上述条件的子串中最长的,则可以称最长的子串为最长公共子串。
需要说明的是,本公开所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本公开的若干代表性实施方式,详细阐释本公开的原理和精神。
发明概述
本发明人发现,当BI***使用者需要进行数据查询时,BI***使用者可以向大语言模型发出提问,并由大语言模型对接收到的用户提问进行处理,进而生成用于进行数据查询的SQL语句。之后,基于所获取的SQL语句,在数据库中查询SQL语句指示查询的数据结果,并且还可以基于大语言模型对SQL语句以及用户提问中所包含的提示词进行处理,得到用于解释SQL语句的自然语言解释。最后,将得到的数据结果以及SQL解释进行展示。
然而,上述直接基于大语言模型生成的SQL进行数据查询的方式,只能由用户查看SQL语句来确定返回的结果是否准确。受大语言模型幻觉的影响,当大语言模型输出的SQL语句合法但是数据请求结果不正确,即输出的SQL语句与用户的查询意图无法匹配时,用户只能重新输入新的提问让大语言模型重新处理,或者,由用户主动对大语言模型输出的SQL进行调整。然而,上述用户主动修改SQL的方法需要用户具有读写SQL语句的专业知识技能。
进一步地,本公开中提供一种应用于集成有大语言模型的BI***的数据处理方法,如图1所示,图1为本公开实施例提供的一种数据处理流程示意图。当获取到BI***的使用者所发出的自然语言问句以及视图元信息之后,通过对输入大语言模型的自然语言问句以及视图元信息进行检索增强处理,以获取到更多与自然语言问句和视图元信息相关的提示词信息,提高大语言模型输出结果的准确性,进而提高最终得到的数据请求结果的准确性。
在介绍了本公开的基本原理之后,下面具体介绍本公开的各种非限制性实施方式。
应用场景总览
首先参考图2,图2为本公开实施例提供的一种应用场景示意图。如图2所示,用户可以通过语音、第三方设备转发、操作电子设备的显示界面等的方式,向电子设备输入携带有数据查询请求的自然语言问句,并且,也可以在电子设备的显示界面上通过查找、勾选、输入等操作方式,确定需要查询的视图元信息,以便电子设备可以基于大语言模型,对所接收到的自然语言问句以及视图元信息进行处理,并向用户输出用户请求查询的数据结果。
示例性方法
下面结合图2的应用场景,参考图3-图13来描述根据本公开示例性实施方式的用于数据处理的方法。需要注意的是,上述应用场景仅是为了便于理解本公开的精神和原理而示出,本公开的实施方式在此方面不受任何限制。相反,本公开的实施方式可以应用于适用的任何场景。
图3为本公开实施例提供的一种数据处理方法的流程示意图。如图3所示,该方法包括以下步骤:
S301、获取包含有数据请求信息的自然语言问句,以及目标视图的视图元信息,其中,目标视图是由BI***所提供的数据模型,对数据库中的物理表进行建模获得的虚拟表,目标视图是基于自然语言问句的第一意图进行配置获得的。
示例性地,本实施例中所提供的数据处理方法可应用于商业智能BI***,且在商业智能BI***中包括有大语言模型。
本实施例中所提供的BI***支持用户通过语音的方式向其发出携带有数据请求信息的自然语言问句。且BI***中配置有多个数据模型,其中,数据模型为基于数据库中所存储的物理表进行数据建模处理(例如表关联处理、数据加工处理等操作)得到的虚拟表。即,数据模型中可以配置有模型所对应的字段、字段的字段说明、字段类型等模型信息,本实施例中不做具体限制。
当用户存在数据请求需求时,用户可以发出携带有数据请求信息的自然语言问句。并且,用户还可以基于自身所发出的自然语言问句的第一意图,在多个数据模型中确定自身需要使用的数据模型,即上述目标视图。或者,一种可能的实现方式中,目标视图也可以为BI***通过分析所接收到的自然语言问句的第一意图所确定的。
此外,本实施例中所提供的目标视图的视图元信息可以理解包括目标视图下被选中的字段。
举例来说,图4为本公开实施例提供的一种目标视图的确定方法。具体地,BI***可以提供选择数据表的功能界面,在功能界面中可以显示BI***所提供的虚拟表的表名以及虚拟表中所包含的字段名称,用户可以通过在界面中的多个虚拟表中勾选目标视图。
S302、基于数据增强信息,对自然语言问句以及视图元信息进行检索增强处理,以获得对应的目标提示词信息。
示例性地,本实施例中的数据增强信息可以包括BI***中所包含的所有数据模型所对应的模型信息,该数据增强信息可以为预先配置并存储在***中的。本实施例中,对于数据增强信息的具体内容不做具体限制。
当获取到自然语言问句以及视图元信息之后,可以在数据增强信息中检索与上述自然语言问句和/或视图元信息所关联的信息,并根据检索得到的内容,确定目标提示词信息。
在一种可能的实现方式中,首先可以提取自然语言问句以及视图元信息中所包含的字段,之后将所提取的字段与数据增强信息中所包含的全部字段进行匹配,并将数据增强信息中匹配度大于预设值的字段作为目标提示词信息中所包含的信息。
S303、将目标提示词信息输入至大语言模型,以获得对应的结构化查询语言SQL语句。
示例性地,在获取到目标提示词信息之后,可以将目标提示词信息作为大语言模型的输入数据,并由大语言模型进行处理后得到SQL语句。
S304、依据SQL语句取得对应于数据请求信息的数据请求结果。
示例性地,当获取到SQL语句之后,可以基于所得到的SQL语句进行相应的数据请求处理,以得到最终的数据请求结果。
可以理解的是,相比于相关技术中需要人工手动选择需要处理的全部字段并且编写各字段间的处理规则的数据处理方式,本实施例中BI***使用者仅需提供携带有数据请求信息的自然语言问句以及目标视图,进而由大语言模型确定实际需要处理的字段以及字段下的数据,并向用户反馈最终的数据处理结果,进而降低BI***使用者的操作复杂度,提高用户使用体验。并且,本实施例中大语言模型通过结合数据增强信息,在数据增强信息中检索与自然语言问句和视图元信息相关的信息作为目标增强信息,输入至大语言模型的目标提示词信息,有利于大语言模型基于更多与自然语言问句和视图元信息相关联的信息,理解用户的数据请求意图,提高所输出的SQL语句的准确性,以及后续数据请求结果的准确性。
图5为本公开实施例提供的又一种数据处理方法的流程示意图,如图5所示,该方法包括以下步骤:
S501、获取包含有数据请求信息的自然语言问句,以及目标视图的视图元信息,其中,目标视图是由BI***所提供的数据模型,对数据库中的物理表进行建模获得的虚拟表,目标视图是基于自然语言问句的第一意图进行配置获得的。
示例性地,本实施例中所提供的方法应用于配置有大语言模型的BI***,步骤S501的具体原理可以参见步骤S301,此处不再赘述。
S502、提取自然语言问句中的关键词,将关键词与目标视图下相应字段的字段值进行匹配,以得到所命中的候选字段值。
示例性地,本实施例中,在获取到自然语言问句中首先可以提取自然语言问句中所包含的关键词。具体地,关键词可以理解为自然语言问句中除感叹词、助词等词语之外的词语,本实施例中对于关键词的提取方式不做具体限制。
并且,本实施例中数据增强信息中包括有BI***所提供的数据模型对应的虚拟表中的字段以及字段值。
当提取到自然语言问句中的关键词之后,首先在数据增强信息中筛选目标视图下所对应的字段以及字段值。之后,将所得到的关键词和目标视图下所对应的字段的字段值进行匹配,进而查找到关键词所命中的候选字段值。其中,命中的候选字段值可以为包括有关键词所包含的字符的字段值。
S503、基于候选字段值与自然语言问句之间的相似度结果,对候选字段值进行排序。
示例性地,在筛选出候选字段值之后,进一步的还可以确定候选字段值与自然语言问句之间的相似度结果,其中,相似度结果可以理解为候选字段值和自然语言问句之间的字符串匹配度。
一个示例中,在确定相似度结果时,可以结合多种不同的相似度算法来确定候选字段值与自然语言问句之间的相似度结果,以便提高最终所确定的相似度结果的准确性。
一个示例中,在确定候选字段值和自然语言问句之间的相似度结果时,可以根据相关技术中所提供的编辑距离算法、余弦相似度算法、矩阵相似度算法等方式,确定相似度结果。
一个示例中,在确定相似度结果时,首先可以确定候选字段值和自然语言问句之间的最长公共子串。并确定最长公共子串对应的第一字符数量和候选字段值对应的第二字符数量的第一比值确定为相似度结果。
一个示例中,在确定相似度结果时,首先可以确定候选字段值和自然语言问句之间的最长公共子序列,并确定最长公共子序列对应的第三字符数量和候选字段值对应的第二字符数量的第二比值确定为相似度结果。
一个示例中,也可以将上述所得到的第一比值和第二比值二者的平均值作为相似度结果。
并且,在获取到各候选字段所对应的相似度结果之后,还可以基于相似度结果对候选字段值进行排序。
S504、依据相似度结果由高到低的顺序,选取排名靠前的第二预设数量个候选字段值作为目标字段值,并确定与之对应的目标字段;
示例性地,可以根据相似度结果从高到低的顺序排列之后,选取前几个候选字段值作为目标字段值,并且,进一步确定各目标字段值各自所对应的目标字段。
在一种可能的实现方式,所选择的候选字段值的数量(即,上述第二数量),可以结合大语言模型的所能够接收输入的数据的数据量所确定。
S505、基于目标字段对数据增强信息进行缩减,以获得目标数据增强信息,该目标数据增强信息中不包括除目标字段以外的字段;数据增强信息至少包括:由BI***所提供的数据模型所对应的虚拟表中所有字段的字段名称;由BI***所提供的数据模型所对应的虚拟表中各字段对应的字段类型;由BI***所提供的数据模型所对应的虚拟表中各字段下的第一预设数量个字段值。
示例性地,在确定出目标字段之后,可以根据所筛选出的目标字段对数据增强信息进行筛选缩减,以便在数据增强信息中删除除目标字段以外的其余字段。
需要说明的是,本实施例中,在数据增强信息中可以包括BI***所提供的数据模型所对应的所有字段各自的字段名称、各字段下所对应的字段值以及各字段所对应的字段类型。其中,在数据增强信息中具体可以包括字段下的所有字段值,也可以包括字段下的部分字段值,本实施例中对于字段下字段值的数量(即,第一预设数量)不做具体限制。可以理解的是,通过在数据增强信息中配置数据模型所对应的字段名称、字段的字段类型以及字段所对应的字段取值,以便后续可以基于数据增强信息获取更多与当前所获取到的自然语言问句以及视图元信息相关联的数据,进而提供给大语言模型进行处理,以提高大语言模型输出结果的准确性。并且,在一种可能的实现方式中,当检测到数据模型被修改后,还会重新根据被修改后的数据模型所对应的模型信息来更新数据增强信息。或者,也可以通过设置定时触发数据增强信息更新的任务,以便对数据增强信息进行实时更新。
在一种可能的实现方式中,在上述数据增强信息的基础上,在对数据增强信息进行缩减时,可以在数据增强信息中去除出目标字段以外的其余字段、上述其余字段所对应的字段名称、字段值等内容。或者,也可以直接将目标字段值、目标字段的字段名称以及目标字段的字段类型确定为目标数据增强信息。
S506、将自然语言问句、视图元信息以及目标数据增强信息确定为目标提示词信息。
示例性地,本实施例中,在得到目标数据增强信息之后,可以将目标数据增强信息中所包含的信息以及所接收到的自然语言问句和视图元信息,确定为需要输入至大语言模型的目标提示词信息。
可以理解的是,本实施例中,通过在数据增强信息中匹配与自然语言问句所对应的关键词具有较高相似度的目标字段值,并基于所得到的目标字段值,确定目标字段值所对应的目标字段。以便后续可以基于所得到的目标字段,在数据增强信息中筛选出目标字段所对应的信息(例如,目标字段对应的字段名称、目标字段对应的字段值、目标字段的字段类型)确定为目标数据增强信息。进而,基于与自然语言问句和视图元信息相似度较高的目标数据增强信息,使得大语言模型能够充分理解用户数据请求意图,以提高所得到的数据请求结果的准确性。
一个示例中,目标提示词信息还包括:自然语言问句所对应的上文问答信息、上文问答信息对应的历史提示词信息、上文问答信息对应的历史视图的表元信息中的至少一项;上文问答信息为自然语言问句之前,同一用户发出的历史问句以及历史问句所对应的请求结果;表元信息是基于历史问句的第二意图进行配置获得的。
示例性地,在一种可能的实现方式中,输入至大语言模型的目标提示词信息中不仅可以包含本次所获取到的自然语言问句以及视图元信息,进一步地,还可以基于历史时刻下同一用户所发出的问句所关联的信息。具体地,目标提示词信息还可以包括在接收到当前的自然语言问句之前,所确定的上文问答信息,其中,上文问答信息中包括由同一用户发出历史问句以及BI***针对该历史问句所反馈请求结果。具体地,历史问句可以理解为同一用户历史时刻下所发出的携带有数据请求的自然语言问句。此外,目标数据增强信息中还可以包括有上文问答信息对应的历史提示词信息,其中,历史提示词信息可以理解为基于上文问答信息中所包含的历史问句所确定出的提示词,具体地可以参见本实施例中所提供的目标提示词信息的获取方式来确定。又或者,目标提示词信息中也可以包括基于历史问句所对应的数据请求意图(即,上述第二意图)所确定出的表元信息,具体地与本实施例中所提供的视图元信息类似,此处不再具体赘述。
可以理解的是,本实施例中,通过在目标提示词信息中配置用户历史时刻下发出的历史问句所关联的上文问答信息、历史提示词信息以及表元信息中的至少一项,以便大语言模型也可以结合历史时刻下的问答情况,基于多轮询问,准确确定当前时刻下的数据请求意图,进一步提高所得到的SQL语句的准确性。
S507、将目标提示词信息输入至大语言模型,以获得对应的结构化查询语言SQL语句。
S508、依据SQL语句取得对应于数据请求信息的数据请求结果。
示例性地,步骤S507-S508的技术原理可以参见步骤S303-S304,此处不再赘述。
需要说明的是,在后续输出数据请求结果时,数据请求结果的输出形式包括以下中的至少一种:图表、报表以及数据值的方式,其中,图表可以理解为采用柱状图、折线图、饼状图等方式进行数据显示的方式。报表则可以理解为采用表格的形式进行数据展示的方式。在一种可能的实现方式中自然语言问句中也可以携带有用户所选择的结果输出形式,可以通过对自然语言问句进行语义理解处理以确定最终的数据输出形式,并以所确定的输出形式,向用户展示数据请求结果。
可以理解的是,本实施例中通过筛选与当前所获取到的自然语言问句所包含的关键词相似度较高的目标字段值,以及目标字段值所对应的目标字段。进而在数据增强信息中可以仅保留目标字段所对应的相关联的信息,进而得到目标数据增强信息,并将目标数据增强信息、自然语言问句以及视图元信息结合起来作为大语言模型的输入,相比于相关技术中仅将自然语言问句作为模型输入的方式,有利于提高模型输出的SQL语句更加符合用户的数据请求意图。此外,还可以在大语言模型输入中添加历史时刻下的历史问句的问答情况,准确确定当前时刻下的数据请求意图,进一步提高所得到的SQL语句的准确性。
图6为本公开实施例提供的另一种数据处理方法的流程示意图,如图6所示,该方法包括以下步骤:
S601、获取包含有数据请求信息的自然语言问句,以及目标视图的视图元信息,其中,目标视图是由BI***所提供的数据模型,对数据库中的物理表进行建模获得的虚拟表,目标视图是基于自然语言问句的第一意图进行配置获得的。
S602、基于数据增强信息,对自然语言问句以及视图元信息进行检索增强处理,以获得对应的目标提示词信息。
示例性地,本实施例中所提供的方法应用于配置有大语言模型的BI***,步骤S601-S602的具体原理可以参见步骤S301-S302,此处不再赘述。
S603、由大语言模型输出第一查询语句;第一查询语句为基于伪SQL代码形式编写的。
示例性地,本实施例中,大语言模型可用于基于输入的目标提示词信息,输出基于伪SQL代码所编写得到的第一查询语句。其中,伪SQL代码为介于自然语言与机器可执行的SQL代码之间的一种编译复杂度较低算法描述语言。
需要说明的是,在实际应用中由于不同的数据存储***适用于不同版本的SQL方言,且由大语言模型直接输出编译复杂度较高的SQL代码的效果较差,因此,本实施例中可以大语言模型学习生成编译复杂度较低的伪SQL代码。后续可以基于大语言模型的伪SQL代码再转换为可面向数据库进行数据请求的SQL语句。
S604、确定第一查询语句中的第一where条件子句。
示例性地,本实施例中,并非直接由所得到的第一查询语句转换得相应的SQL语句,而是需要将第一where条件子句中进行修改变更,之后再生成相应的SQL语句的。
S605、若确定第一where条件子句包括赋值操作符,且第一where条件子句指示筛选的第一字段值命中了数据增强信息中的至少一个第二字段值,则根据like操作符以及通配符,对第一where条件子句进行改写,得到第二where条件子句;其中,第二字段值为以第一字段值开头的字段值,或者,第二字段值为以第一字段值结尾的字段值,或者,第二字段值为以第一字段值作为中间取值的字段值,或者,第二字段值为子序列中包括第一字段值的字段值。
示例性地,本实施例中,当获取到第一查询语句中首先对第一查询语句中的第一where条件子语句进行判断,确定第一where条件子句是否包括赋值操作符,即,确定第一where条件子句在进行筛选时是否为精确匹配。当第一where条件子句中包括赋值操作符时,则表征第一where条件子句为精确匹配的条件语句。之后,可以进一步对第一where条件子句中指示筛选的第一字段值与数据增强信息进行匹配,以确定在数据增强信息中是否存在第二字段值。需要说明的是,第二字段值可以理解为以第一字段值为开头的字段值,或者,以第一字段值为结尾的字段值,或者,将第一字段值作为字段值中间字符串的字段值,或者,子序列中包括第一字段值的字段值。若存在上述第二字段值,则确定上述直接赋值的第一where条件子句无法准确匹配与第一字段值相关的全部字段值,因此,可以根据like操作符以及通配符,对第一where条件子句进行改写,即,将第一where条件子句进行改写为模糊匹配的方式,以便基于改写后所得到的第二where条件子句可以筛选出更多的数据。
举例来说,若确定存在一个第二字段值,则无论第二字段值是上述何种类型,都可以在第二字段值所包含的字符间隔之间添加通配符%,并在第二字段值的开头和结尾分别添加一个通配符%,以便后续可以基于改写后的第二where条件子句,获取到更多的数据。
在一种可能的实现方式中,也可以仅在数据增强信息中所包含的目标数据增强信息中进行匹配,以确定是否存在第二字段值。可以理解的是,目标数据增强信息中为基于自然语言问句和视图元信息所筛选出来的,因此,也可以仅在目标数据增强信息中查找,减少需要匹配的数据量。
可以理解的是,本实施例中,通过在第一where条件子句为精准匹配语句,且根据第一where条件子句中的第一字段值匹配到第二字段值的场景下,可以根据用于模糊匹配的like操作符以及通配符对第一where条件子句进行改写,以便改写后所得到的第二where条件子句可以匹配到更多的数据,进一步对大语言模型所输出的第一查询语句进行矫正,以提高最终输出的SQL语句的准确性。
一个示例中,在执行“根据like操作符以及通配符,对第一where条件子句进行改写,得到第二where条件子句”的步骤时,可以基于如下步骤实现:将第一where条件子句中的赋值操作符替换为like操作符,得到第三where条件子句;若第二字段值为以第一字段值开头的字段值,则在第三where条件子句中的第一字段值的结尾处添加通配符,得到第二where条件子语句;若第二字段值为以第一字段值结尾的字段值,则在第三where条件子句中的第一字段值的开头处添加通配符,得到第二where条件子语句;若第二字段值为以第一字段值作为中间取值的字段值,则在第三where条件子句中的第一字段值的结尾处以及第一字段值的开头处分别添加通配符;若第二字段值为子序列中包括第一字段值的字段值,则在第三where条件子句中的第一字段值所包含的字符间隔之间添加通配符,得到第二where条件子语句。
示例性地,本实施例中可以基于匹配得到的第二字段值所对应的类型,针对不同类型进行不同的第一where条件子句的改写。在对第一where条件子句进行改写时,首先需要将第一where条件子句所包含的幅值操作符替换为like操作符,进而得到第三where条件子句。之后,再根据所匹配到的第二字段值,若第二字段值为以第一字段值为开头的字段值,则后续可以在第三where条件子句中第一字段值的结尾处添加通配符,得到第二where条件子句。通过上述改写方式,可以基于得到的第二where条件子句匹配到以第一字段值为开头的所有字段值。
同样地,针对第二字段为以第一字段值为结尾的场景,则可以在第三where条件子句中第一字段值的开头处添加通配符,即,用一个通配符表征任意位数的任意字符。进而,通过上述修改方式所得到的第二where条件子句可用于匹配包括以第一字段值为结尾的所有字段值。
此外,针对第二字段值为以第一字段值作为中间取值的字段值的情况下,可以在第三where条件子句中的第一字段值的开头与结尾处各添加一个通配符,以便后续可以用于匹配字段值中间包括有第一字段值的全部字段。
而针对第二字段值为子序列中包括第一字段值的字段值的情况下,可以在第三where条件子句中第一字段值所包含的字符间隔之间添加通配符,进一步还可以在第一字段值的开头和结尾处也各自添加一个通配符,以得到改写后的第二where条件子句。后续可以基于第二where条件子句来匹配将第一字段值作为子序列的全部字段值。
可以理解的是,本实施例中,针对不同类型下的第二字段值采用不同的where条件子句的改写方式,以便后续可以匹配出与第二字段值为同一类型下的字段值。
S606、若确定第一where条件子句包括赋值操作符,且第一where条件子句指示筛选的第一字段值完全命中了数据增强信息中字段值,则确定第一查询语句为第二查询语句。
示例性地,本实施例中,当第一where条件子句为包括赋值操作符的精确匹配语句时,进一步的,若确定第一where条件子句中的第一字段值可以准确命中数据增强信息中的字段值,则此时不对第一查询语句进行改写处理,即确定第一查询语句的准确性较高,可以直接将第一查询语句确定为本实施例中的第二查询语句用作后续SQL语句的生成。
可以理解的是,本实施例中,当第一where条件子句用于精确匹配语句,且指示匹配的第一字段值位于数据增强信息中时,则可以确定大语言模型所输出的第一查询语句可准确表征用户的查询意图,则无需对其进行模糊匹配改写,以避免后续需要进行额外的数据请求处理。
S607、若确定第一where条件子句表征匹配以第一字段值为结尾的字段值,且在数据增强信息中不包括以第一字段值为结尾的字段值,则在第一where条件子句中的第一字段值的结尾处添加通配符,得到第二where条件子句。
示例性地,本实施例中,当第一where条件子句为模糊匹配语句,例如,包括用于模糊匹配的like操作符时,且第一where条件子句表征匹配以第一字段值为结尾的字段值时,若进一步的确定数据增强信息中不存在以第一字段值结尾的字段值,则确定当前生成的第一where条件子句不准确,进一步的可以通过在第一where条件子句中的第一字段值的结尾处添加通配符的方式改写第一where条件子句,得到改写后的第二where条件子句,以便后续可以匹配以第一字段值为中间取值的字段值。
S608、若确定第一where条件子句表征匹配以第一字段值为开头的字段值,且在数据增强信息中不包括以第一字段值为开头的字段值,则在第一where条件子句中的第一字段值的开头处添加通配符,得到第二where条件子句。
示例性地,本实施例中,当第一where条件子句为模糊匹配语句,且第一where条件子句表征匹配以第一字段值为开头的字段值时,若进一步的确定数据增强信息中不存在以第一字段值开头的字段值,则确定大语言模型输出的第一查询语句不准确,进一步的可以通过在第一where条件子句中的第一字段值的开头处添加通配符的方式改写第一where条件子句,得到改写后的第二where条件子句,以便后续可以匹配以第一字段值为中间取值的字段值。
可以理解的是,本实施例中,在大语言模型输出的第一查询语句中的第一where条件子句为模糊匹配语句,且数据增强信息中不包括需要模糊匹配的内容时,则通过进一步地在第一where条件子句的开头或者结尾处添加通配符的方式,以便通过改写之后可以匹配到用户所需的数据。
S609、将第一查询语句中的第一where条件子句,替换为第二where条件子句,得到第二查询语句。
示例性地,本实施例中,在获取到第二where条件子句,则可以将第一查询语句中的第一where条件子句替换为第二where条件子句,后续根据第二查询语句所表征的查询意图进行数据请求。
S610、根据第二查询语句,确定SQL语句。
示例性地,在获取到第二查询语句之后,可以将基于所得到的第二查询语句,将其转换为用于面向数据库中的物理表进行取数操作的SQL语句。在一种可能的实现方式中,在将第二查询语句转换为SQL语句时,可以根据SQL代码所对应的语法规则,对第二查询语句进行改写,以确保最终得到的SQL语句符合数据库底层SQL语句的编译要求。
一个示例中,在执行上述步骤S510时可以通过以下步骤实现:根据第二查询语句,确定第三查询语句;第三查询语句为用于表征第二查询语句的第三意图的通用数据查询结构;根据第三查询语句,确定SQL语句;SQL语句为用于面向数据库中的物理表进行取数操作的查询语句。
示例性地,本实施例中,在根据第二查询语句得到SQL语句时,为了屏蔽不同数据源之间所对应的数据查询语言之间的差异,本实施例中首先会基于获取到的第二查询语句所指示的第三意图,将第二查询语句转换为一种通用数据查询结构的第三查询语句,之后,在基于BI***中的数据引擎模块,将第三查询语句转换为可面向数据库中的物理表进行数据查询的SQL语句。
可以理解的是,本实施例中通过第二查询语句转换为第三查询语句之后,再由第三查询语句转换为SQL语句的方法,一方面是为了将第二查询语句转换为BI***中的数据引擎可以识别的通用数据查询结构,另一方面转换为通用数据查询结构还屏蔽了不同数据源之间所对应的查询语句的差异性,后续可直接依托BI***,将第三查询语句转换为适合于数据库所对应的物理表的数据查询的SQL语句。需要说明的是,BI***中的数据引擎可用于在数据库中的物理表中进行取数操作。
一个示例中,根据第二查询语句,确定第三查询语句,包括以下步骤:识别第二查询语句中的select算子所对应的查询条件和第二where条件子句;查询条件包括select算子指示选择的待处理字段,待处理字段为大语言模型基于目标提示词信息所得到的;确定查询条件所对应的语法树;根据语法树,确定语法树所对应的第一计算字段;其中,第一计算字段包括:待处理字段在虚拟表中的字段标识、待处理字段的第一处理规则;根据第一计算字段和第二where条件子句,确定第三查询语句。
示例性地,本实施例中,在将第二查询语句转换为第三查询语句时,首先会在第二查询语句中查找select算子所指示的查询条件,以及第二查询语句中所包含的第二where条件子句。可以理解的是,查询条件中包括有select算子指示选择的待处理字段,且上述待处理字段为大语言模块通过对接收到的目标提示词信息进行处理所输出的。
针对select算子所指示的查询条件,首先会将查询条件转换为其所对应的语法树,以便用语法树的形式表征出查询条件所对应的语法结构。之后,在基于语法树所表征的语法结构,确定查询条件所指示选择的待处理字段之间的第一处理规则,例如,第一处理规则可以为待处理字段之间的计算规则、待处理字段的排序规则等。此外,由于后续转化得到的第三查询语句需要确保BI***可以准确识别,因此,还需要确定待处理字段在BI***所提供虚拟表中所对应的字段标识(例如,待处理字段在虚拟表中的字段名称)。进而,基于上述待处理字段在虚拟表中的字段标识,以及待处理字段之间的第一处理规则,进而得到第一计算字段。之后再基于第一计算字段以及第二where条件子句,确定第三查询语句。
可以理解的是,本实施例中,通过分析确定第二查询语句中select算子所指示的查询条件的待处理字段之间的第一处理规则,以及待处理字段在虚拟表中的字段标识,以便最终得到的第三查询语句可以被BI***准确识别。
此外,针对于第二查询语句所对应的第二where条件子句,可以通过如下步骤转换为与第二where条件子句所对应的第二计算字段,具体地包括:确定第二where条件子句对应的至少一个第二计算字段;第二计算字段包括:第二where条件子句指示筛选的第一字段、指示筛选的第一字段所对应的字段值筛选范围;若第二计算字段的数量为多个,则根据第二where条件子句,确定第二计算字段间的逻辑运算关系;逻辑运算关系包括:and运算关系、or运算关系、not运算关系;根据第一计算字段、第二计算字段以及逻辑运算关系,确定第三查询语句。
示例性地,本实施例中在将第二查询语句转换为第三查询语句时,可以将第二查询语句中的第二where条件子句转换为第二计算字段。需要说明的是,第二where条件子句中指示了需要筛选的内容,进而可以将第二where条件子句转换为至少一个第二计算字段。其中,一个第二计算字段中对应一个第二where条件子句指示筛选的第一字段,且第二计算字段中包括有需要筛选的第一字段、以及第一字段所对应的字段值的筛选范围。此外,当存在多个第二计算字段时,还需要根据第二where条件子句,确定各第二计算字段之间的逻辑运算关系。
之后,基于逻辑运算关系,将第二计算字段连接起来,并结合之前所获取到的第一计算字段,进而得到第三查询语句。此外,在一种可能的实现方式中,在确定第二计算字段时,第二计算字段中所包含的第一字段也需要采用BI***中虚拟表中的字段标识来标记,以便第三查询语句可以被识别。
可以理解的是,本实施例中通过将第二查询语句中的第二where条件子句转换为一个个第二计算字段以生成第三查询语句,以便BI***中的数据引擎在进行数据请求时,可以准确识别上述第三查询语句。
并且,在上述实施例的基础上,在执行“根据第一计算字段、第二计算字段以及逻辑运算关系,确定第三查询语句”的步骤时,可以通过以下方式实现:若确定在多个第二计算字段中包括多个第三计算字段,且多个第三计算字段各自包含的第一字段相同,多个第三计算字段两两间的逻辑运算关系为and运算关系,则对多个第三计算字段中的第一字段所对应的字段值筛选范围合并处理,得到合并后的第四计算字段;根据第四计算字段、第二计算字段和第一计算字段确定第三查询语句。
示例性地,本实施例中当获取到多个第二计算字段时,还会对多个第二计算字段进行合并处理,具体地可以合并的两个第二计算字段需要满足以下条件:第二计算字段中的第一字段相同,且第二计算字段之间的逻辑运算关系为and运算关系,则此时,可以将满足上述条件的多个第二计算字段(上述将满足条件的多个第二计算字段称为多个第三计算字段)中的字段值筛选范围合并,并基于合并后的第四计算字段、第二计算字段中未被合并的第二计算计算、以及第一计算字段,生成最终的第三查询语句。
可以理解的是,本实施例中通过对第二计算字段进行上述合并处理,以便后续在基于第三查询语句,向用户提供用于解释第三查询语句的描述信息时,所观察到的筛选条件更加简洁。
S611、依据SQL语句取得对应于数据请求信息的数据请求结果。
示例性地,步骤S611的技术原理可以参见步骤S304,此处不再赘述。
在一种可能的实现方式中,在上述实施例的基础上,当获取到第三查询语句之后,还可以包括以下步骤:根据第三查询语句,输出自然语言形式的描述信息;其中,描述信息用于对第二查询语句的第三意图作出解释。
示例性地,本实施例中,为了便于用户理解当前数据请求的意图,在获取到第三查询语句之后,不仅会基于第三查询语句得到最终面向物理表的SQL语句,还会基于第三查询语句,生成可用于解释第二查询语句的第三意图的解释信息。需要说明的是,本实施例中第三查询语句和第二查询语句所表征的意图相同。
可以理解的是,本实施例中可以向用户输出用于解释第二查询语句的第三意图的描述信息,且该描述信息采用BI***使用者容易理解的自然语言形式,有利于提高了BI***使用者的使用体验,以便在大语言模型出现幻觉时,BI***使用者仍可以基于描述信息确定当前所获取的数据请求结果的查询意图。并且,本实施例中通过基于同一通用数据查询结构(即,上述第三查询语句),生成SQL语句和描述信息的方式,以确保最终生成的描述信息可以准确表征SQL语句的意图。
在一种可能的实现方式中,在上述实施例的基础上,当获取到描述信息之后,可以将描述信息和数据请求结果一同显示给用户。并且,还可以包括以下步骤:响应于针对描述信息的第一调整请求,显示与描述信息所对应的多个筛选项;第一调整请求表征需要对第三意图进行调整;筛选项用于指示第二查询语句指示处理的字段以及字段的第二处理规则;第二处理规则包括以下至少一项:字段所对应的字段取值的排序规则、字段所对应的字段取值的分组规则、字段所对应的取值规则;响应于针对筛选项的第二调整请求,调整第三查询语句,得到调整后的第三查询语句;第二调整请求用于指示调整筛选项所指示的内容;基于调整后的第三查询语句,确定调整后的SQL语句。
示例性地,本实施例中,界面中所显示的描述信息支持用户进行调整修改,当确定用户对描述信息进行修改之后,会基于修改后的描述信息,重新确定数据请求结果进行显示。
当接收到用户请求修改描述信息的第一调整请求之后,会对原本显示的描述信息的格式进行修改,即将描述信息进行拆分,拆分为多个可以进行调整的筛选项。其中,每一个筛选项可以对应一个第二查询语句指示处理的字段。需要说明的是,第二查询语句所指示处理的字段可以包括第二查询语句中select算子对应的查询条件中的字段,以及第二查询语句中第二where条件子句指示筛选的字段。此外,筛选项中还可以表征出字段所对应的第二处理规则,例如,第二处理规则可以为该字段下字段取值的排序规则,或者,该字段下需要筛选哪些字段值(即字段所对应的取值规则),或者,字段下字段值的分组规则。
之后,用户可以通过对所显示的筛选项发出第二调整请求,以便BI***接收到上述第二调整请求之后,会修改之前所生成的第三查询语句,以便后续可以基于调整后的第三查询语句,重新生成新的SQL语句,以重新获取新的数据请求结果。
可以理解的是,本实施例中,BI***不仅可以向BI***使用者输出自然语言形式的描述信息,还支持用户对描述信息进行调整修改,以便BI***使用者通过对描述信息的调整,获取到BI***使用者所需要的数据请求结果,方便BI***使用者进行取数操作,无需依赖专业编程技能。
举例来说,图7为本公开实施例提供的一种数据处理方法的示意图。在进行数据处理之前,首先可以进行数据增强信息的准备。具体地,数据增强信息可以以下步骤获取:对于每个数据模型,获取数据模型的虚拟表中的所有字段,并排除掉隐藏的字段(其中,隐藏字段可以理解为用户无权访问的字段)。之后获取剩余字段在虚拟表中所对应的字段值、以及剩余字段在虚拟表中所对应的字段类型。之后,将把数据模型所对应的字段名称、字段类型,存储到关系型数据库中,用于构建目标数据增强信息。并基于数据模型所对应的模型标识,将各数据模型所对应的排除后的剩余字段的字段名称以及字段值存储至Elasticsearch中,用于与自然语言问句中的关键词进行比对。即,将Elasticsearch中存储的数据模型对应的字段名称和字段值、以及关系型数据库中存储的数据模型对应的字段名称、字段类型作为本实施例中的数据增强信息。
当获取到用户的自然语言问句之后,会在Elasticsearch中进行全文检索,检索出用户提问中可能命中哪些字段的哪些字段值。并根据命中的字段值、字段值对应的字段名称以及字段名称所对应的字段类型,确定目标数据增强信息。在一种可能的实现方式中,目标数据增强信息中会优先摆放用户的问句命中了的且相似度较高的字段值,以便让大语言模型注意到所涉及到的字段,以提高生成的SQL的准确性。
比如用户问“合同明细”表中,“上半年大数据的销售额是多少?”,若确定“大数据”命中了“销售团队”列中的“大数据销售部”,则在目标数据增强信息中,销售团队下的字段值“大数据销售部”会放在第一个的位置,以便生成的SQL为“销售团队”=“大数据销售部”,而非“销售团队”=“大数据”,避免后续出现查询结果为空的现象。
在获取到目标提示词信息之后,可以基于大语言模型得到第一查询语句。之后,可以对第一查询语句进行处理,以对第一查询语句中的第一where条件子句所表征的筛选范围进行调整扩充,进而得到第二查询语句。例如,如果第一where条件子句生成的是“销售团队”=“大数据”,则可以根据销售团队这个字段下是否有较多包含“大数据”的字段值,并第一where条件子句调整为“销售团队”like“%大数据%”,或矫正为“销售团队”=“大数据销售部”,具体使用哪种矫正策略,取决于该字段的所有字段值中有多少字段值能被“大数据”命中。
例如,对于第一where条件子句为【字段1=‘值A’】情形(其中,“字段1”为一个字段名称):若值A完全命中了字段1的某个字段值,则保持第一where条件子句不变。若值A命中了字段1下的至少一个字段值,且命中的至少一个字段值中的每一字段值都是以值A开头的,则改写第一where条件子句为【字段1like‘值A%’】,其中,改写后的条件表征在字段1下的字段值中匹配以值A为开头的字段值;若值A命中了字段1下的至少一个字段值,且命中的至少一个字段值中的每一字段值都是以值A结尾的,则改写第一where条件子句为【字段1like‘%值A’】,其中,改写后的条件表征在字段1下的字段值中匹配以值A为结尾的字段值;若字段1所对应的字段值中,存在多个字段值均以值A为中间字符串,则改写第一where条件子句为【字段1like‘%值A%’】,其中,改写后的条件表征在字段1下的字段值中匹配以值A为中间字符串的字段值;若值A命中字段1下的多个字段值,且命中的多个字段值中的每一字段值的子序列中均包括有值A,则改写条件为【字段1like‘%值%A%’】(即,每隔一个字符***一个%),其中,改写后的条件表征在字段1下的字段值中匹配以值A为结尾的字段值。
对于第一where条件子句为【字段1like‘%值A’】的情形,若字段1所对应的字段值中不存在以值A结尾的字段值,则修改第一where条件子句为【字段1like‘%值A%’】,或者,修改为【字段1like‘%值%A%’】,修改后的条件的含义可以参见上述情形中的描述。
对于第一where条件子句为【字段1like‘值A%’】情形:若字段1所对应的字段值中不存在以值A开头的字段值,则修改为【字段1like‘%值A%’】,或者,修改为【字段1like‘%值%A%’】,修改后的条件的含义可以参见上述情形中的描述。
进而,通过上述方法,对第一查询语句进行调整,以得到第二查询语句。
在得到第二查询语句之后,为了确保BI***中的数据引擎模块可以准确识别所生成的查询语句,还会将第二查询语句转换为表征第二查询语句的查询意图的通用查询结构(即,第三查询语句)。举例来说,在进行转换时,首先识别第二查询语句中的select、from、where、order by、group by、limit、offset、having等操作符所对应的字符串,并对各部分涉及到的字段进行解析,得到每一个具体表达式的语法树。
比如,图8为本公开实施例提供的一种语法树结构,图8中的语法树在第二查询语句中的含义为需要将销售额与成本的差值作为利润。在得到语法树之后,需要将语法树中所涉及到的字段转换为BI***中的虚拟表中所对应的字段标识,进而得到第一计算字段:标识1-标识2,其中,标识1为销售额在虚拟表中的字段标识,标识2为成本在虚拟表中的字段标识。针对第二查询语句中的where条件子句“where“类别”=’文具’and“发货日期”>‘2022-03-03’”可以转换为相应的第二计算字段“[类别]=“文具”AND[发货日期]>#2022-03-03#”。此外,当确定出的第二计算字段分别为:“[发货日期]>=#2022-03-03 00:00:00#”与“[发货日期]<#2022-03-04#”,且上述两个第二计算字段之间为and操作符连接,则可以将上述两个第二计算字段合并为表征选取发货日期为2022年3月3号的数据的字段。
又比如,针对第二查询语句为select:[“地区”,“SUM(\“销售额\”)”],则进一步的需要确定上述第二查询语句中所包含的地区以及销售额这两个字段各自所对应的语法树结构,图9为本公开实施例提供的第二种语法树结构;图10为本公开实施例提供的第三种语法树结构;其中,图9所示的语法树为地区字段所对应的语法树;图10所对应的语法树为销售额字段所对应的语法树。
图11为本公开实施例提供的一种数据请求结果的界面显示示意图,图11中在上方数据框中显示有描述信息以及查询的数据表的名称,下方数据框中,以表格的形式显示出了查询出的数据。当用户点击上方数据框中的编辑按钮时,上方数据框中的描述信息会被切分为多个可进行调整的筛选项。如图12所示,图12为本公开实施例提供的又一种数据请求结果的界面显示示意图。图中,对描述信息中的描述信息进行了拆分,得到了地区、发货日期、分组、排序等多个处理对应的筛选项。当用户点击图中计算利润求和的筛选项时,可以进一步显示出利润、求和两个可以更改的筛选项,以便用户可以修改需要计算的字段,并设置相应的计算方式。在用户修改结束点击确定之后,会根据修改后的描述信息重新显示新的数据查询结果。
图13为本公开实施例提供的再一种数据请求结果的界面显示示意图。如图13所示,在结果显示界面中,可以采用柱状图的形式显示各渠道下商品点击到排行、各渠道下新增用户数量排行以及各阶段下的用户转化留存率(即,图中的转化率)。此外,还可以采用折线图的形式显示各渠道每天所对应的新增用户数量,并基于柱状图的形式显示各渠道每天所对应的活跃用户数量。
可以理解的是,本实施例中,通过对所获取到的自然语言问句以及视图元信息进行数据增强处理,并将数据增强处理后得到的目标数据增强信息、视图元信息以及自然语言问句作为大语言模型的输入数据,以便提高大语言模型所输出的第一查询语句的准确性。并且,获取到大语言模型所输出的第一查询语句之后,通过对第一查询语句进行矫正处理,以便矫正后所得到的第二查询语句中的where条件子句可以匹配到更多的数据,以确保最终的数据请求结果更加符合用户的数据请求意图。在得到第二查询语句之后,还会将第二查询语句转换为BI***中的数据引擎所能够识别的通用数据查询结构(即,第三查询语句),以便用第三查询语句来表征第二查询语句的第三意图。之后,BI***中的数据引擎即可以将所接收到的第三数据查询语句转换为可面向数据库中的物理表进行取数的SQL语句,并基于所得到的SQL语句在数据库中完成取数操作,得到取数结果。并根据得到的取数结果,确定最终输出的数据处理结果。此外,还可以基于第三查询语句生成自然语言形式的描述信息,方便用户得知第三查询语句所对应的第三意图。此外,BI***所显示的描述信息还支持调整修改,进而用户无需进行复杂的编程语句的调整,即可重新获取数据请求结果。
示例性介质
在介绍了本公开示例性实施方式的方法之后,接下来,参考图14对本公开示例性实施方式的存储介质进行说明。
参考图14所示,存储介质140中存储着根据本公开的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备。
示例性装置
在介绍了本公开示例性实施方式的介质之后,接下来,参考图15对本公开示例性实施方式的数据处理装置1500进行说明,用于实现上述任一方法实施例中的方法,其实现原理和技术效果类似,在此不再赘述。
如图15所示,数据处理装置1500中包括:
获取单元1501,用于获取包含有数据请求信息的自然语言问句,以及目标视图的视图元信息,其中,目标视图是由BI***所提供的数据模型,对数据库中的物理表进行建模获得的虚拟表,目标视图是基于自然语言问句的第一意图进行配置获得的。
第一处理单元1502,用于基于数据增强信息,对自然语言问句以及视图元信息进行检索增强处理,以获得对应的目标提示词信息。
第二处理单元1503,用于将目标提示词信息输入至大语言模型,以获得对应的结构化查询语言SQL语句。
第三处理单元1504,用于依据SQL语句取得对应于数据请求信息的数据请求结果。
在一种可能的实现方式中,数据增强信息至少包括:
由BI***所提供的数据模型所对应的虚拟表中所有字段的字段名称;
由BI***所提供的数据模型所对应的虚拟表中各字段对应的字段类型;
由BI***所提供的数据模型所对应的虚拟表中各字段下的第一预设数量个字段值。
在一种可能的实现方式中,第一处理单元,包括:
提取模块,用于提取自然语言问句中的关键词;
匹配模块,用于将关键词与目标视图下相应字段的字段值进行匹配,以得到所命中的候选字段值;
排序模块,用于基于候选字段值与自然语言问句之间的相似度结果,对候选字段值进行排序;
第一确定模块,用于依据相似度结果由高到低的顺序,选取排名靠前的第二预设数量个候选字段值作为目标字段值,并确定与之对应的目标字段;
处理模块,用于基于目标字段对数据增强信息进行缩减,以获得目标数据增强信息,该目标数据增强信息中不包括除目标字段以外的字段;
第二确定模块,用于将自然语言问句、视图元信息以及目标数据增强信息确定为目标提示词信息。
在一种可能的实现方式中,目标提示词信息还包括:自然语言问句所对应的上文问答信息、上文问答信息对应的历史提示词信息、上文问答信息对应的历史视图的表元信息中的至少一项;上文问答信息为自然语言问句之前,同一用户发出的历史问句以及历史问句所对应的请求结果;表元信息是基于历史问句的第二意图进行配置获得的。
在一种可能的实现方式中,第二处理单元,包括:
输出模块,用于由大语言模型输出第一查询语句;第一查询语句为基于伪SQL代码形式编写的;
第三确定模块,用于确定第一查询语句中的第一where条件子句;
第一改写模块,用于若确定第一where条件子句包括赋值操作符,且第一where条件子句指示筛选的第一字段值命中了数据增强信息中的至少一个第二字段值,则根据like操作符以及通配符,对第一where条件子句进行改写,得到第二where条件子句;其中,第二字段值为以第一字段值开头的字段值,或者,第二字段值为以第一字段值结尾的字段值,或者,第二字段值为以第一字段值作为中间取值的字段值,或者,第二字段值为子序列中包括第一字段值的字段值;
替换模块,用于将第一查询语句中的第一where条件子句,替换为第二where条件子句,得到第二查询语句;
第四确定模块,用于根据第二查询语句,确定SQL语句。
在一种可能的实现方式中,第一改写模块,具体用于:
将第一where条件子句中的赋值操作符替换为like操作符,得到第三where条件子句;
若第二字段值为以第一字段值开头的字段值,则在第三where条件子句中的第一字段值的结尾处添加通配符,得到第二where条件子语句;
若第二字段值为以第一字段值结尾的字段值,则在第三where条件子句中的第一字段值的开头处添加通配符,得到第二where条件子语句;
若第二字段值为以第一字段值作为中间取值的字段值,则在第三where条件子句中的第一字段值的结尾处以及第一字段值的开头处分别添加通配符;
若第二字段值为子序列中包括第一字段值的字段值,则在第三where条件子句中的第一字段值所包含的字符间隔之间添加通配符,得到第二where条件子语句。
在一种可能的实现方式中,装置还包括:
第五确定模块,用于若确定第一where条件子句包括赋值操作符,且第一where条件子句指示筛选的第一字段值完全命中了数据增强信息中字段值,则确定第一查询语句为第二查询语句。
在一种可能的实现方式中,装置还包括:
第二改写模块,用于若确定第一where条件子句表征匹配以第一字段值为结尾的字段值,且在数据增强信息中不包括以第一字段值为结尾的字段值,则在第一where条件子句中的第一字段值的结尾处添加通配符,得到第二where条件子句;
第三改写模块,用于若确定第一where条件子句表征匹配以第一字段值为开头的字段值,且在数据增强信息中不包括以第一字段值为开头的字段值,则在第一where条件子句中的第一字段值的开头处添加通配符,得到第二where条件子句。
在一种可能的实现方式中,第四确定模块,具体用于:
根据第二查询语句,确定第三查询语句;第三查询语句为用于表征第二查询语句的第三意图的通用数据查询结构;
根据第三查询语句,确定SQL语句;SQL语句为用于面向数据库中的物理表进行取数操作的查询语句。
在一种可能的实现方式中,第四确定模块,具体用于:
识别第二查询语句中的select算子所对应的查询条件和第二where条件子句;查询条件包括select算子指示选择的待处理字段,待处理字段为大语言模型基于目标提示词信息所得到的;
确定查询条件所对应的语法树;
根据语法树,确定语法树所对应的第一计算字段;其中,第一计算字段包括:待处理字段在虚拟表中的字段标识、待处理字段的第一处理规则;
根据第一计算字段和第二where条件子句,确定第三查询语句。
在一种可能的实现方式中,第四确定模块,具体用于:
确定第二where条件子句对应的至少一个第二计算字段;第二计算字段包括:第二where条件子句指示筛选的第一字段、指示筛选的第一字段所对应的字段值筛选范围;
若第二计算字段的数量为多个,则根据第二where条件子句,确定第二计算字段间的逻辑运算关系;逻辑运算关系包括:and运算关系、or运算关系、not运算关系;
根据第一计算字段、第二计算字段以及逻辑运算关系,确定第三查询语句。
在一种可能的实现方式中,第四确定模块,具体用于:
若确定在多个第二计算字段中包括多个第三计算字段,且多个第三计算字段各自包含的第一字段相同,多个第三计算字段两两间的逻辑运算关系为and运算关系,则对多个第三计算字段中的第一字段所对应的字段值筛选范围合并处理,得到合并后的第四计算字段;
根据第四计算字段、第二计算字段和第一计算字段确定第三查询语句。
在一种可能的实现方式中,第四确定模块,还用于:
根据第三查询语句,输出自然语言形式的描述信息;其中,描述信息用于对第二查询语句的第三意图作出解释。
在一种可能的实现方式中,装置还包括:
第一显示模块,用于响应于针对描述信息的第一调整请求,显示与描述信息所对应的多个筛选项;第一调整请求表征需要对第三意图进行调整;筛选项用于指示第二查询语句指示处理的字段以及字段的第二处理规则;第二处理规则包括以下至少一项:字段所对应的字段取值的排序规则、字段所对应的字段取值的分组规则、字段所对应的取值规则;
调整模块,用于响应于针对筛选项的第二调整请求,调整第三查询语句,得到调整后的第三查询语句;第二调整请求用于指示调整筛选项所指示的内容;
第六确定模块,用于基于调整后的第三查询语句,确定调整后的SQL语句。
在一种可能的实现方式中,数据请求结果的输出形式包括以下中的至少一种:图表、报表以及数据值。
示例性计算设备
在介绍了本公开示例性实施方式的方法、介质和装置之后,接下来,参考图16对本公开示例性实施方式的计算设备进行说明。
图16显示的计算设备1600仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图16所示,计算设备1600以通用计算设备的形式表现。计算设备1600的组件可以包括但不限于:至少一个处理单元1601、至少一个存储单元1602,连接不同***组件(包括处理单元1601和存储单元1602)的总线1603。其中,至少一个存储单元1602中存储有计算机执行指令;至少一个处理单元1601包括处理器,处理器执行该计算机执行指令,以实现上文描述的方法。
总线1603包括数据总线、控制总线和地址总线。
存储单元1602可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)16021和/或高速缓存存储器16022,可以进一步包括非易失性存储器形式的可读介质,例如只读存储器(ROM)16023。
存储单元1602还可以包括具有一组(至少一个)程序模块16024的程序/实用工具16025,这样的程序模块16024包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算设备1600也可以与一个或多个外部设备1604(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(I/O)接口1605进行。并且,计算设备1600还可以通过网络适配器1606与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图16所示,网络适配器1606通过总线1603与计算设备1600的其它模块通信。应当理解,尽管图中未示出,可以结合计算设备1600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
应当注意,尽管在上文详细描述中提及了数据处理装置的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本公开的精神和原理,但是应该理解,本公开并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

Claims (10)

1.一种数据处理方法,应用于商业智能BI***,该BI***包括大语言模型,其特征在于,包括:
获取包含有数据请求信息的自然语言问句,以及目标视图的视图元信息,其中,所述目标视图是由所述BI***所提供的数据模型,对数据库中的物理表进行建模获得的虚拟表,所述目标视图是基于所述自然语言问句的第一意图进行配置获得的;
基于数据增强信息,对所述自然语言问句以及所述视图元信息进行检索增强处理,以获得对应的目标提示词信息;
将所述目标提示词信息输入至所述大语言模型,以获得对应的结构化查询语言SQL语句;
依据所述SQL语句取得对应于所述数据请求信息的数据请求结果。
2.根据权利要求1所述的方法,其特征在于,所述数据增强信息至少包括:
由所述BI***所提供的数据模型所对应的虚拟表中所有字段的字段名称;
由所述BI***所提供的数据模型所对应的虚拟表中各字段对应的字段类型;
由所述BI***所提供的数据模型所对应的虚拟表中各字段下的第一预设数量个字段值。
3.根据权利要求2所述的方法,其特征在于,基于数据增强信息,对所述自然语言问句以及所述视图元信息进行检索增强处理,包括:
提取所述自然语言问句中的关键词,将所述关键词与所述目标视图下相应字段的字段值进行匹配,以得到所命中的候选字段值;
基于所述候选字段值与所述自然语言问句之间的相似度结果,对所述候选字段值进行排序;
依据相似度结果由高到低的顺序,选取排名靠前的第二预设数量个候选字段值作为目标字段值,并确定与之对应的目标字段;
基于所述目标字段对所述数据增强信息进行缩减,以获得目标数据增强信息,该目标数据增强信息中不包括除所述目标字段以外的字段;
将所述自然语言问句、所述视图元信息以及所述目标数据增强信息确定为所述目标提示词信息。
4.根据权利要求3所述的方法,其特征在于,所述目标提示词信息还包括:所述自然语言问句所对应的上文问答信息、所述上文问答信息对应的历史提示词信息、所述上文问答信息对应的历史视图的表元信息中的至少一项;所述上文问答信息为所述自然语言问句之前,同一用户发出的历史问句以及历史问句所对应的请求结果;所述表元信息是基于所述历史问句的第二意图进行配置获得的。
5.根据权利要求1所述的方法,其特征在于,将所述目标提示词信息输入至所述大语言模型,以获得对应的结构化查询语言SQL语句,包括:
由所述大语言模型输出第一查询语句;所述第一查询语句为基于伪SQL代码形式编写的;
确定所述第一查询语句中的第一where条件子句;
若确定所述第一where条件子句包括赋值操作符,且所述第一where条件子句指示筛选的第一字段值命中了所述数据增强信息中的至少一个第二字段值,则根据like操作符以及通配符,对所述第一where条件子句进行改写,得到第二where条件子句;其中,所述第二字段值为以所述第一字段值开头的字段值,或者,所述第二字段值为以所述第一字段值结尾的字段值,或者,所述第二字段值为以所述第一字段值作为中间取值的字段值,或者,所述第二字段值为子序列中包括所述第一字段值的字段值;
将所述第一查询语句中的第一where条件子句,替换为第二where条件子句,得到第二查询语句;
根据所述第二查询语句,确定所述SQL语句。
6.根据权利要求5所述的方法,其特征在于,根据like操作符以及通配符,对所述第一where条件子句进行改写,得到第二where条件子句,包括:
将所述第一where条件子句中的赋值操作符替换为所述like操作符,得到第三where条件子句;
若所述第二字段值为以所述第一字段值开头的字段值,则在所述第三where条件子句中的第一字段值的结尾处添加通配符,得到第二where条件子语句;
若所述第二字段值为以所述第一字段值结尾的字段值,则在所述第三where条件子句中的第一字段值的开头处添加通配符,得到第二where条件子语句;
若所述第二字段值为以所述第一字段值作为中间取值的字段值,则在所述第三where条件子句中的第一字段值的结尾处以及所述第一字段值的开头处分别添加通配符;
若所述第二字段值为子序列中包括所述第一字段值的字段值,则在所述第三where条件子句中的第一字段值所包含的字符间隔之间添加通配符,得到第二where条件子语句。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若确定所述第一where条件子句包括赋值操作符,且所述第一where条件子句指示筛选的第一字段值完全命中了所述数据增强信息中字段值,则确定所述第一查询语句为第二查询语句。
8.一种数据处理装置,应用于商业智能BI***,该BI***包括大语言模型,其特征在于,包括:
获取单元,用于获取包含有数据请求信息的自然语言问句,以及目标视图的视图元信息,其中,所述目标视图是由所述BI***所提供的数据模型,对数据库中的物理表进行建模获得的虚拟表,所述目标视图是基于所述自然语言问句的第一意图进行配置获得的;
第一处理单元,用于基于数据增强信息,对所述自然语言问句以及所述视图元信息进行检索增强处理,以获得对应的目标提示词信息;
第二处理单元,用于将所述目标提示词信息输入至所述大语言模型,以获得对应的结构化查询语言SQL语句;
第三处理单元,用于依据所述SQL语句取得对应于所述数据请求信息的数据请求结果。
9.一种计算机可读存储介质,包括:所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1-7中任一项所述的方法。
10.一种计算设备,包括:
至少一个处理器;
以及与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述计算设备执行如权利要求1至7中任一项所述的方法。
CN202311508413.6A 2023-11-13 2023-11-13 数据处理方法、介质、装置和计算设备 Pending CN117539893A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311508413.6A CN117539893A (zh) 2023-11-13 2023-11-13 数据处理方法、介质、装置和计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311508413.6A CN117539893A (zh) 2023-11-13 2023-11-13 数据处理方法、介质、装置和计算设备

Publications (1)

Publication Number Publication Date
CN117539893A true CN117539893A (zh) 2024-02-09

Family

ID=89791259

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311508413.6A Pending CN117539893A (zh) 2023-11-13 2023-11-13 数据处理方法、介质、装置和计算设备

Country Status (1)

Country Link
CN (1) CN117539893A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118035280A (zh) * 2024-04-10 2024-05-14 广州思迈特软件有限公司 数据查询方法、装置、电子设备以及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118035280A (zh) * 2024-04-10 2024-05-14 广州思迈特软件有限公司 数据查询方法、装置、电子设备以及存储介质

Similar Documents

Publication Publication Date Title
US8468167B2 (en) Automatic data validation and correction
KR100969447B1 (ko) 자연 언어 커맨드에 따른 표 렌더링
US8219566B2 (en) System and method for determining valid citation patterns in electronic documents
US7318162B2 (en) Computer-implemented system and method for managing data integrity validation rules
CA2750609C (en) Methods and systems for matching records and normalizing names
US6691122B1 (en) Methods, systems, and computer program products for compiling information into information categories using an expert system
CA2853627C (en) Automatic creation of clinical study reports
CN110297880B (zh) 语料产品的推荐方法、装置、设备及存储介质
US20090112845A1 (en) System and method for language sensitive contextual searching
US20210174025A1 (en) A hierarchical entity recognition and semantic modeling framework for information extraction
CN111190920B (zh) 一种基于自然语言的数据交互查询方法及其***
CN117539893A (zh) 数据处理方法、介质、装置和计算设备
CN113342923A (zh) 数据查询方法、装置、电子设备及可读存储介质
US20200311406A1 (en) Method for analysing digital documents
WO2021169203A1 (zh) 基于多层级结构相似度的单基因病名称推荐方法和***
US20140075299A1 (en) Systems and methods for generating extraction models
CN111143370B (zh) 用于分析多个数据表之间关系的方法、设备和计算机可读存储介质
US8165987B2 (en) System and method of machine-aided information extraction rule development
CN114141384A (zh) 用于检索医学数据的方法、设备和介质
CN114238664A (zh) 一种海外商标检索方法、设备、介质及产品
JP2018156552A (ja) 計算機システム及び文章データの検索方法
Monaco Methods for in-sourcing authority control with MarcEdit, SQL, and regular expressions
US20200167432A1 (en) Query discovery and interpretation
WO2019142094A1 (en) System and method for semantic text search
US20180121502A1 (en) User Search Query Processing

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination