一种基于检索增强生成与自然语言处理的图表信息生成方法与流程

摘要: 本发明涉及一种基于检索增强生成与自然语言处理的图表信息生成方法,属于数据可视化与自然语言处理。背景技术:1、随着企业数字化建设、商业智能分析和数据可视化应用的持...
一种基于检索增强生成与自然语言处理的图表信息生成方法与流程

本发明涉及一种基于检索增强生成与自然语言处理的图表信息生成方法,属于数据可视化与自然语言处理。

背景技术:

1、随着企业数字化建设、商业智能分析和数据可视化应用的持续发展,结构化数据已经广泛存在于销售管理、运营监测、金融分析、医疗统计、工业生产和政务管理等场景中。用户希望通过自然语言直接描述分析需求,例如按月份统计销售额变化趋势比较不同地区的订单数量展示各产品类别的利润占比,系统即可自动从数据库中选择相关字段、生成查询结果,并进一步生成可交互、可渲染的图表代码。因此,基于自然语言的图表信息生成技术,已经成为降低数据分析门槛、提高业务决策效率和增强非专业用户数据理解能力的重要技术方向。

2、然而,在实际应用过程中,自然语言到图表代码的生成并不是简单的文本生成问题,而是同时涉及自然语言理解、数据库字段匹配、sql查询生成、图表模板选择、字段与视觉通道绑定、前端代码生成和运行环境校验等多个环节。用户查询往往具有表达模糊、指标省略、字段名称不一致、业务语义隐含等特点;数据库又存在表结构复杂、字段类型多样、字段命名不规范、数据缺失和多表关联等问题;图表模板还具有严格的类型约束、通道约束和语法约束。例如,折线图通常要求横轴具有时间或有序类别含义,纵轴需要数值字段;饼图要求类别字段与数值字段成对出现;散点图则要求两个数值字段共同构成二维空间。若系统仅根据语义相似度或大语言模型生成能力进行图表生成,容易出现字段选择错误、图表类型不匹配、视觉通道绑定不合理、代码不可执行或渲染结果为空等问题。

3、目前,为实现自然语言驱动的图表生成,常见技术方案主要包括以下三类:

4、(1)基于规则模板和人工配置的图表生成方法:该方法通常预先设置固定图表模板和字段匹配规则,当用户输入查询后,系统根据关键词、字段名称或简单规则选择图表类型,并将数据库字段填充到模板中。该类方法实现简单、可控性较强,适用于字段命名规范、查询类型固定的业务报表场景。但是,该方法严重依赖人工规则设计,难以适应复杂自然语言表达和多变的数据库结构。当用户查询中存在同义表达、省略表达或跨表分析需求时,规则系统往往无法准确理解真实意图;同时,规则方法通常缺乏对字段统计特征、模板结构约束和前端执行结果的综合判断,容易生成形式上匹配但实际不可用的图表。

5、(2)基于语义检索和模板匹配的图表生成方法:该类方法通常利用文本编码模型计算用户查询与数据库字段、图表模板之间的语义相似度,选择相似度较高的字段和模板进行图表生成。相较于纯规则方法,该方法在语义理解和泛化能力方面有所提升,能够处理一定程度的自然语言变化。然而,该类方法本质上仍是相似度排序,只能判断查询、字段和模板在语义上是否接近,无法判断生成的sql是否能够返回有效数据,也无法判断所选图表模板是否真正适合当前数据结构。例如,某个模板与用户查询语义相似,但其所需字段类型和当前sql返回字段不匹配,则最终仍可能导致图表无法渲染。因此,仅依赖语义检索难以解决语义相关但结构不可执行的问题。

6、(3)基于大语言模型的端到端图表代码生成方法:随着大语言模型的发展,一些方法尝试直接将用户查询、数据库字段说明和图表需求输入模型,由模型端到端生成sql、图表配置代码或前端可视化代码。该方法具有较强的语言理解和代码生成能力,在开放式图表生成任务中表现出一定优势。但是,该类方法普遍存在可控性和可靠性不足的问题。一方面,大语言模型可能生成数据库中不存在的字段名、错误的聚合方式或不符合模板约束的配置项,产生字段幻觉和通道错配;另一方面,模型生成的代码虽然在文本层面看似合理,但可能存在语法错误、类型错误、数据为空、dom节点未生成或渲染失败等执行问题。此外,端到端方法通常缺乏对字段—视觉通道绑定过程的显式建模,也缺少基于沙盒执行结果的自动修复机制,难以保证最终图表代码在真实前端环境中稳定运行。

7、综上所述,现有自然语言图表生成方法普遍存在规则依赖强、语义检索缺乏执行判断、字段与视觉通道绑定不具备全局约束、端到端代码生成容易产生幻觉以及缺少自动纠错机制等问题。因此,亟需研发一种基于检索增强生成与自然语言处理的图表信息生成方法,能够在用户自然语言查询、关系型数据库、图表模板库和前端执行环境之间建立完整的可检索、可对齐、可执行、可纠错链路。

技术实现思路

1、本发明目的是提供了一种基于检索增强生成与自然语言处理的图表信息生成方法,提升了图表生成的准确性、可执行性、可解释性和实际应用可靠性。

2、本发明为实现上述目的,通过以下技术方案实现:

3、一种基于检索增强生成与自然语言处理的图表信息生成方法,包括如下步骤:

4、获取数据库的数据字段信息和图表模板库;对数据库字段进行特征提取、字段类型识别和可视化角色先验建模,得到字段表示;对图表模板进行解析抽取模板中的视觉通道,并建立模板约束集合;基于字段表示、视觉通道表示和模板约束集合通过跨模态对比预训练构建多源图表知识库;

5、将用户自然语言查询解析为图表意图;基于多源图表知识库分别生成数据查询候选和图表模板候选,并组成联合候选;对联合候选进行执行验证,以检验联合候选的图表执行可行性;对联合候选涉及的字段进行反事实替换,根据替换前后的联合效用变化对联合候选进行筛选,得到联合检索结果集;

6、基于联合检索结果集,通过神经网络计算字段与视觉通道之间的匹配代价,并结合基于约束的符号惩罚项得到综合匹配代价矩阵,采用最优传输求解字段与视觉通道的对齐结果,形成字段—视觉通道对齐结果集;

7、基于联合检索结果集和字段—视觉通道对齐结果集构造代码生成上下文表示,以图表模板的抽象语法树为生成骨架进行约束解码,生成图表代码;执行图表代码,根据执行结果计算综合奖励;若执行失败,则根据错误信息对图表代码进行修复,并重复检查和执行,直至达到终止条件,输出图表生成结果。

8、优选的,所述特征提取包括语义特征提取、统计特征提取和结构特征提取,具体包括:

9、读取字段所属表名、字段名、字段注释和同表字段信息,通过基于预训练语言模型的文本语义编码器进行联合编码,得到语义特征;

10、对字段的实际数据记录进行统计分析得到统计特征,其中,数值型字段的统计特征包括取值范围、均值、标准差、分位数和缺失率,类别型字段的统计特征包括唯一值数量、类别熵和高频类别占比,时间型字段的统计特征包括时间跨度和时间粒度;

11、根据数据库schema中的表、字段、主键和外键信息,以字段作为图节点,以字段之间的主键关联、外键引用关系作为图边,构建数据库模式图,以数据库模式图为输入,采用图神经网络对字段节点进行邻域信息聚合,得到结构特征;

12、将语义特征、统计特征和结构特征分别经对应的可训练映射矩阵映射到统一表示空间后进行拼接和归一化,得到字段表示;

13、所述字段类型识别和可视化角色先验建模具体包括:

14、根据数据库声明类型并结合字段实际数据记录的取值形式和数据格式,将字段划分为数值型、类别型、时间型、布尔型和文本型,构成字段类型集合;

15、根据字段类型及其统计特征建立视觉角色先验,其中,时间型字段优先作为横轴候选;数值型字段优先作为纵轴候选;低基数类别型字段优先作为颜色、系列或图例候选;高基数类别型或文本型字段优先作为标签或提示框候选;所有字段的视觉角色先验构成视觉角色先验集合;

16、对图表模板进行解析抽取模板中的视觉通道,并建立模板约束集合,具体包括:

17、读取图表模板库中模板的图表配置代码,统一模板的数据字段配置格式和配置项名称,并删除冗余样式配置,得到标准化模板,构成标准化模板库;

18、根据模板配置语言的语法规则将标准化模板解析为抽象语法树,根据预定义的配置项名称定位能够绑定数据库字段的节点,从抽象语法树中抽取横轴、纵轴、系列、颜色、图例、标签和提示框视觉通道,得到模板的视觉通道表示集合;

19、根据模板中的实际数据映射关系建立视觉通道约束,形成模板的视觉通道约束集合,视觉通道约束包括各视觉通道之间以及视觉通道与字段类型、字段数量和数据组织方式之间的约束关系。

20、优选的,所述构建多源图表知识库具体包括:

21、利用历史生成成功的图表记录,将实际使用的字段及其对应视觉通道作为正样本,并通过同类型异语义字段替换以及违反模板通道约束的字段-视觉通道替换构造负样本;

22、计算字段表示与视觉通道表示之间的语义相似度,并利用所述正样本和负样本进行对比学习,使成功绑定的字段-通道组合获得高相似度,使语义不匹配或违反通道约束的字段-通道组合获得低相似度,训练得到字段映射矩阵和视觉通道映射矩阵;

23、将字段表示、视觉通道表示、模板约束集合以及训练得到的字段映射矩阵和视觉通道映射矩阵统一存储,形成所述多源图表知识库。

24、优选的,所述将用户自然语言查询解析为图表意图,具体包括:

25、将用户自然语言查询解析为查询意图图,所述查询意图图中的节点包括指标、分组维度、过滤条件、聚合方式、时间粒度和图表结构偏好,边表示各意图元素之间的修饰或依赖关系;

26、将查询意图图经语言模型编码和图神经网络传播后得到查询意图表示,其中,所述图神经网络由节点输入映射层、两层图注意力网络层和全局读出层组成,节点输入映射层将各节点的语言编码特征映射到统一维度,第一层图注意力网络聚合各节点的一阶邻居信息,第二层图注意力网络在第一层输出基础上聚合二阶邻居信息,全局读出层对所有节点表示进行聚合,得到查询意图的全局表示。

27、优选的,所述基于多源图表知识库分别生成数据查询候选和图表模板候选,具体包括:

28、计算所述查询意图表示与字段表示集合中各字段表示之间的语义相似度,按照相似度由高到低排序并保留前n个字段作为候选字段,基于候选字段生成b个数据查询候选,每个数据查询候选包括sql语句、所使用的数据库字段及对应的聚合、过滤和分组信息;

29、计算所述查询意图表示与各图表模板对应视觉通道表示之间的匹配相似度,并结合模板约束集合对候选模板进行约束过滤,按照综合匹配得分排序后保留前k个模板作为模板候选;

30、将数据查询候选与模板候选进行组合,形成sql-模板联合候选集合;其中,对于用户明确指定图表类型但与查询数据形态存在冲突的情况,保留用户指定模板作为候选并判断其潜在约束冲突,同时允许其他兼容模板进入候选集合。

31、优选的,所述对联合候选进行执行验证具体包括:

32、对于每一sql-模板联合候选,在只读、限时和限量的受控数据库环境中执行对应sql,得到查询结果子表;当出现以下情形之一时,将该联合候选标记为不可执行:sql执行失败;查询结果为空;sql引用字段不存在;字段类型与模板要求不兼容;查询结果规模超过预设安全阈值;涉及未经授权的数据字段;

33、对于通过sql执行的联合候选,根据模板中定义的视觉通道配置,将查询结果子表中的对应字段填充到横轴、纵轴、系列、颜色配置项,生成不包含复杂样式和自定义脚本的轻量级图表草图,并基于模板约束集合依次检查:必填视觉通道是否满足、字段类型是否满足约束、数据是否非空、类别字段基数是否处于模板可处理范围、横轴纵轴及系列配置能否形成合法图表结构,仅当上述检查全部满足时判定草图验证通过;

34、对于通过执行和草图验证的联合候选,根据sql执行状态、查询结果的数据完整性和草图的结构合规性计算执行效用,并基于所述执行效用更新联合效用,未通过验证的联合候选予以淘汰;更新联合效用公式如下:

35、,

36、,

37、,

38、其中,为执行效用;表示sql执行状态,当sql在受控数据库环境中执行成功且未发生权限、超时或字段错误时取1,否则取0;表示查询结果的数据完整性,数据完整且满足字段类型要求时取1,否则取0;表示草图是否满足图表结构要求,满足模板规定的视觉通道和结构约束时取1,否则取0;、和为对应权重;表示经过执行验证后的联合效用;为初始联合效用;为执行效用权重;表示sql-模板联合候选的初始联合效用;表示查询意图与sql候选及图表模板之间的语义匹配效用,通过计算采用余弦相似度获得;表示sql所涉及字段与模板视觉通道之间的结构适配效用;表示对应效应权重;为查询意图表示;为sql候选;为模板视觉通道表示;表示召回的第c个图标模板;为第b个数据查询候选;为字段类型集合;为模板约束集合;表示第b个sql查询候选执行得到的查询结果子表;

39、计算方式如下:

40、根据字段类型集合、视觉通道表示集合和模板约束集合,逐一检查sql候选中的字段类型、字段数量和字段组织方式是否满足模板对应视觉通道要求,满足记为1,否则记为0,将总字段类型匹配结果、总字段数量匹配结果和总数据组织方式匹配结果加权求和得到结构适配效用。

41、优选的,所述对联合候选涉及的字段进行反事实替换,根据替换前后的联合效用变化对联合候选进行筛选,得到联合检索结果集;具体包括:

42、对于通过验证的sql-模板联合候选集合选择与待检验字段类型相同但语义不同的字段作为替换候选,对查询中的指标、分组维度和时间字段分别进行反事实替换,重新生成并执行对应sql,得到反事实联合效用;

43、计算字段替换敏感度,所述字段替换敏感度为字段替换前后联合效用的变化量;

44、根据更新后的联合效用和字段替换敏感度对通过验证的联合候选进行加权综合排序,取得分最高的联合候选及其对应的最终sql查询、最终图表模板、最终数据子表和得分最高的联合候选对应的关键字段反事实替换产生的联合效用变化,形成联合检索结果集。

45、优选的,所述综合匹配代价矩阵获取方式如下:

46、通过多层感知机匹配网络对字段表示和视觉通道表示进行特征融合,输出字段与视觉通道之间的匹配得分,并将所述匹配得分取负值转换为神经匹配代价;

47、构造符号惩罚项,所述符号惩罚项包括:字段类型兼容性惩罚,当字段类型满足视觉通道所要求的字段类型时取0,否则取1;类别基数兼容性惩罚,当字段基数处于视觉通道允许的范围内时取0,否则取1;模板约束惩罚,当字段与视觉通道满足模板约束集合中对应的字段来源、语法及配置约束时取0,否则取1;各项惩罚分别乘以对应的非负惩罚权重;

48、将神经匹配代价与符号惩罚项相加得到字段-视觉通道匹配代价,将数据库字段的字段-视觉通道匹配代价组合得到综合匹配代价矩阵;对于字段替换敏感度高于预设阈值的关键字段,字段-视觉通道匹配代价如下:

49、,

50、其中,为神经匹配代价,为符号惩罚项,为敏感度调节权重,为得分最高的联合候选对应的关键字段反事实替换产生的联合效用变化。

51、优选的,采用最优传输求解字段与视觉通道的对齐结果,形成字段—视觉通道对齐结果集;具体方式如下:

52、根据模板约束集合中与最终图表模板对应的约束信息,确定各视觉通道的字段需求向量和各字段的容量向量,所述容量向量表示字段最多允许绑定的视觉通道数量,所述字段需求向量中必填视觉通道取1,选填视觉通道允许由空字段节点满足;

53、以字段—视觉通道匹配总代价、熵正则项和结构惩罚项的加权和构建优化目标,所述优化目标如下:

54、,

55、,

56、其中,表示通过对每个字段-视觉通道的匹配代价与对应软绑定概率进行逐元素乘积并求和得到字段-视觉通道匹配总代价;表示熵正则项;表示结构惩罚项;表示熵正则系数;表示结构惩罚权重;为字段-视觉通道软绑定矩阵;为最终图表模板对应的模板约束集合;表示模板约束集合中的视觉通道组合关系;表示对应通道关系的约束权重;表示两个视觉通道绑定状态之间的兼容性函数;表示与第个视觉通道存在模板组合约束关系的另一视觉通道的绑定状态,为视觉角色先验集合;

57、采用sinkhorn迭代求解优化目标得到字段—视觉通道最优软绑定矩阵;

58、以最优软绑定矩阵中各绑定概率作为候选匹配权重,选择总绑定概率最大的字段—视觉通道组合并在选择过程中剔除违反模板约束的组合,再依次校验字段容量、必填视觉通道、字段类型、类别基数以及视觉通道组合关系,若存在约束违反,则取消对应绑定并从剩余候选中重新选择,直至得到满足全部约束的离散字段—视觉通道绑定矩阵;

59、对于每个视觉通道,根据最优软绑定矩阵计算绑定置信度,当最高绑定概率低于预设置信度阈值,或者最高绑定概率与第二高绑定概率之间的差值低于预设间隔阈值时,判定该视觉通道存在绑定歧义,并保留满足模板约束的预设数量的备选字段,结合对应字段的替换敏感度建立低置信候选字段集合;

60、最优软绑定矩阵、离散字段-视觉通道绑定矩阵、绑定置信度和低置信候选字段集合作为字段-视觉通道对齐结果集。

61、优选的,所述图表生成结果生成方式具体如下:

62、构造代码生成上下文,包括:用户查询、最终数据子表中的真实字段名称与字段类型、最终图表模板、离散字段—视觉通道绑定矩阵、低置信候选字段集合、模板约束以及目标图表库版本信息;其中,仅提供最终数据子表中真实存在的字段作为生成候选,候选字段调整仅允许来自所述低置信候选字段集合;

63、所述约束解码以最终图表模板的抽象语法树为骨架,按照抽象语法树路径逐节点生成数据源、横轴、纵轴、系列、颜色、图例和提示框配置;在每个解码步骤,根据最终图表模板抽象语法树、字段绑定结果和字段类型信息构造联合掩码,基于所述联合掩码确定约束解码概率,所有抽象语法树节点完成解码后重构得到所述图表代码;

64、将图表代码注入隔离沙盒执行,所述隔离沙盒限制网络访问、cpu、内存和执行时间,且仅加载目标图表库版本,得到包括执行状态、错误日志、渲染结果和图表质量信息的沙盒执行结果;

65、若代码执行成功,根据沙盒执行结果计算综合奖励,所述综合奖励由代码语法正确性、图表是否成功渲染、图表布局和可读性、图表与用户查询意图的一致程度加权求和得到;

66、若代码执行失败或图表未能正常渲染时,将沙盒返回的错误日志转换为结构化错误信息,所述结构化错误信息包括错误类别、对应抽象语法树节点路径、涉及字段和可替换候选字段;

67、基于结构化错误信息将代码修复建模为马尔可夫决策过程,其中,状态包括当前抽象语法树节点、错误信息、字段绑定和历史修复轨迹,动作包括替换候选字段、补充必填节点和删除无效节点,策略网络采用近端策略优化更新修复策略;

68、每完成一次补丁修复后重新进行静态检查和沙盒执行,当图表代码成功执行且综合奖励达到质量阈值时停止修复,输出最终可执行图表代码,并生成记录最终可执行图表代码、沙盒执行结果、离散字段-视觉通道绑定矩阵和每轮修复的抽象语法树节点、修复动作、奖励变化和终止原因的图表生成结果。

69、本发明的优点在于:面向自然语言驱动的图表生成任务,本发明不再将数据检索和模板检索作为两个独立的相似度排序任务,而是将sql候选和图表模板候选组成联合候选对,并通过轻量级草图执行判断候选组合是否能够生成有效图表;同时引入反事实字段干预机制,要求关键字段在被同类型异语义字段替换后会显著降低图表意图满足度,从而实现对语义相关性、结构可执行性和关键字段必要性的联合筛选。

70、本发明将字段—视觉通道绑定建模为全局最优传输问题,在神经网络计算字段与视觉通道匹配代价的基础上,融合字段类型约束、字段容量约束、通道需求约束、模板语法约束和高阶图表结构因子;通过可微的sinkhorn迭代获得软对齐矩阵,并进一步投影为满足模板约束的离散绑定结果,从而避免传统局部打分方法造成的通道错配和图表结构不合理问题。

71、本发明在图表代码生成过程中引入抽象语法树状态约束、字段合法性约束、类型约束和字段—通道对齐概率偏置,对代码生成词元进行细粒度限制;在生成后进一步通过静态校验和隔离沙盒执行获取错误类型、错误日志、dom摘要和渲染质量指标,并根据错误ast路径生成补丁式修复方案,实现图表代码的自动验证与自动修复,提高生成结果的可执行性、可渲染性和实际部署可靠性。