问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

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效果以及多样性,所以,但多模态大模型已经有了初步这样的能力。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号