RAG文档处理中的数值图表和流程图如何解析?从表示方式到代表解决方案
创作时间:
作者:
@小白创作中心
RAG文档处理中的数值图表和流程图如何解析?从表示方式到代表解决方案
引用
1
来源
1.
https://53ai.com/news/RAG/2024111128510.html
本文主要围绕文档中的图表解析这一工作展开介绍,分别讨论了数值图表和流程图的解析方法。文章内容具有较高的技术价值,对于从事AI、大数据和软件开发等领域的读者具有参考意义。
一、数值图表的解析
在文档处理中,经常会遇到各种类型的图表,包括流程图、柱状图等数值图表以及其他图片。其中,对于柱状图等数值图,目前已经有了很多将柱状图转换为底层json_dict的方案,比如onechart和unichart。其核心是通过构造<数值图表, json_dict>的输入输出对,然后丢入多模态模型进行sft微调。
关键点在于微调数据的生成,主要是靠反向渲染(通过生成json_dict数据,然后送入matplotlib、echarts或者pyecharts进行渲染)。这种思路其实就是在拟合数据集,很容易因为数据的多样性不足,表现并不稳定,很容易出现幻觉。将这些数据转写之后,可以再进行分析,以及类型转换等。
二、流程图的解析
流程图(FlowChart)是描述我们进行某一项活动所遵循顺序的一种图示方法,能通过图形符号形象地表示解决问题的步骤和程序。
1. flowchart的表示方法
flowchart其实有很多种表示方式,例如:
- 使用mermaid表示流程图:
flowchart LR
A[下单] --> B{库存检查}
B - 有货 --> C[支付]
B - 无货 --> D[提示缺货]
C --> E{支付成功?}
E - 是 --> F[发货]
E - 否 --> G[支付失败]
G --> A
- 使用UML表示流程图
- 使用networkx来表示:
import networkx as nx
import matplotlib.pyplot as plt
data_dict = {
1:[{'left':20, 'right':21}],
20:[{'left':30, 'right':31}],
21:[{'left':40, 'right':41}],
30:[],
31:[],
40:[],
41:[]
}
G = nx.DiGraph()
# step 1: add edges
for key in data_dict:
print(key)
for source in data_dict[key]:
if 'left' in source:
print('left [%d]' % (source['left']))
if source['left'] in data_dict:
G.add_edge(key, source['left'])
if 'right' in source:
print('right [%d]' % (source['right']))
if source['right'] in data_dict:
G.add_edge(key, source['right'])
# nx.draw_networkx(G)
# plt.show()
print(G.edges())
- 使用知识图谱三元组的表示形式
- 用视觉的方式进行表示,标注对应的boundingbox以及位置信息等。
2. 如何解析流程图
核心难点是流程图中节点的识别、线的识别以及ocr识别。目前主要有两种主流方法:
- 多模态方法:如《FlowLearn: Evaluating Large Vision-Language Models on Flowchart Understanding》
- 传统深度学习CV处理方案:如《Flowmind2Digital: The First Comprehensive Flowmind Recognition and Conversion Approach》
Flowmind2digital方法包括两个主要部分:对象和关键点检测,以及后处理。首先是对象和关键点检测,使用Mask-RCNN进行对象检测。其次后处理,包括形状生成、连接确定、文本内容提取和自动排版。
总结
本文主要围绕文档中的图表解析这一工作作了介绍,分别介绍了数值图表的解析、流程图表解析两个任务的一些代表方案。整个大的潮流,其实都是往多模态的方向做,但受限于图片分辨率、OCR效果以及多样性,所以,但多模态大模型已经有了初步这样的能力。
热门推荐
嘴巴上火了怎么办才能好得快
架空历史的《庆余年》与《琅琊榜》,其背后有哪些历史原型
斯坦利·米尔格拉姆的服从实验:探究权威下的人性
向消费者协会投诉的三种方式
面神经损伤的治疗方法有哪些?
Tokens是啥?为啥大模型按Tokens收费?和API调用、订阅收费区别?
橄榄油的功效与作用
酵母粉浇花的正确方法(让你的花园更加繁茂生机的魔法)
欧阳询和欧阳修是什么关系
孝文帝迁都洛阳:中国化改革背后的深层动因
用项目管理方法克服拖延症:SMART原则、WBS等实用技巧
抑郁症患者使用喹硫平减量全攻略
磨玻璃结节如何随访?希望大家能听进去,少走弯路!
日本人口数量2024总数,日本人口密度和预测统计
笔记本禁用自带键盘:一场“拯救”手腕与效率的革命
注意!严重的腹泻可危害生命
微波炉蒸蛋需要几分钟?好方法值得收藏!
幼儿园宠物安全知识指南
适合两岁宝宝学英语的方法
多重人格障碍症的危害有哪些
奶白色汤背后的健康秘密,你知道吗
二锅头酒文化的历史演变与品鉴技巧
流量单位KB、MB、GB含义及换算关系解析
孕妇可以吃冰淇淋吗
机器学习中的数学基础:对数详解
通胀与通缩哪一个更可怕?
TBNK检查:全面评估免疫状态的医学检测
起诉离婚会有什么回执?立案流程及注意事项全解析
全面解析香港优才计划:申请条件、流程、利弊及适合与不适合人群
使用DeepSeek和ChatGPT构建量化交易策略