想象一下,你被淹没在无数 PDF、电子表格和扫描文件中,苦苦寻找隐藏在某个复杂表格中的关键数据。从财务报告和研究论文,到简历和发票,这些文档中包含的复杂表格蕴藏着大量的结构化数据,需要快速准确地提取。传统上,提取这些结构化信息一直是数据处理中的一项复杂任务。然而,随着大型语言模型 (LLM) 的兴起,我们现在拥有了另一种工具,有可能解锁复杂的表格数据。
表格无处不在,以密集的格式存储着大量信息。 优秀的表格解析器的准确性,可以为企业中许多工作流程的自动化铺平道路。
本文将带您了解表格提取技术的演变,从传统方法到 LLM 的前沿应用。 您将了解到:
• 表格提取概述及其固有挑战
• 传统的表格提取方法及其局限性
• LLM 如何应用于提高表格提取精度
• 实现基于 LLM 的表格提取的实用见解,包括代码示例
• 深入探讨 Nanonets 如何使用 LLM 进行表格提取
• 使用 LLM 进行表格提取的优缺点
• 这个快速发展领域的未来趋势和潜在发展
一、表格提取的挑战
表格提取是指从嵌入文档中的表格中识别和提取结构化数据的过程。表格提取的主要目标是将嵌入表格中的数据转换为结构化格式(例如 CSV、Excel、Markdown、JSON),以准确反映表格的行、列和单元格内容。然后,这些结构化数据可以轻松地分析、操作和集成到各种数据处理工作流程中。
是什么让从表格中提取信息如此困难?
• 格式多样:表格有多种格式,从简单的网格到复杂的嵌套结构。
• 上下文依赖:理解表格通常需要理解周围的文本和文档结构。
• 数据质量:处理不完美的输入,例如低分辨率扫描件、格式不正确的文档或非文本元素。
• 格式多样:您的提取管道应该能够处理多种输入文件格式。
• 每个文档/图像有多个表格:某些文档需要单独提取多个图像。
• 布局不一致:现实世界文档中的表格很少遵循标准格式,这使得基于规则的提取具有挑战性:
• 复杂的单元格结构:单元格通常跨越多行或多列,创建不规则的网格。
• 内容多样:单元格可能包含不同的元素,从简单的文本到嵌套的表格、段落或列表。
• 分层信息:多级标题和子标题创建了复杂的数据关系。
• 上下文相关解释:单元格含义可能依赖于周围的单元格或外部引用。
• 格式不一致:不同的字体、颜色和边框样式传达了额外的含义。
• 混合数据类型:表格可以在单个结构中组合文本、数字和图形。
图示:一个简单的表格,展示了布局的不一致性。存在合并单元格、列和行的层次结构、字体变化以及列之间混合的数据类型。
这些因素创造了独特的布局,难以进行标准化解析,因此需要更灵活、上下文感知的提取方法。
二、表格提取的应用
表格提取在各个行业都有广泛的应用,以下是一些用例示例,在这些用例中,将非结构化表格数据转换为可操作的见解至关重要:
• 财务分析:表格提取用于处理财务报告、资产负债表和损益表。这使得能够快速汇编财务指标,用于分析、预测和监管报告。
• 科学研究:研究人员使用表格提取从多篇已发表的论文中整理实验结果。
• 商业智能:公司从销售报告、市场调查和竞争对手分析文档中提取表格数据。这允许进行趋势分析、绩效跟踪和明智的决策。
• 医疗保健:表格提取有助于处理来自医疗文件的患者数据、实验室结果和临床试验结果。
• 法律文件处理:律师事务所和法律部门使用表格提取来分析合同条款、专利权利要求和判例法统计数据。
• 政府和公共政策:表格提取应用于人口普查数据、预算报告和选举结果。这支持人口分析、政策规划和公共行政。
三、传统表格提取方法
传统的表格提取方法(包括基于规则的系统和机器学习方法)在应对这些挑战方面取得了长足的进步。然而,当面对现实世界表格的多样性和复杂性时,它们可能会显得力不从心。表格提取主要依赖于三种主要方法:
• 基于规则的系统,
• 传统的机器学习方法,以及
• 计算机视觉方法
这些方法中的每一种都有其自身的优点和局限性,这些优点和局限性塑造了表格提取技术的演变。
3.1 基于规则的方法
基于规则的方法是最早用于表格检测和提取的方法之一。这些系统依赖于从 OCR 提取文本,每个单词都有边界框,然后是一组预定义的规则和启发式方法,用于从文档中识别和提取表格数据。
基于规则的系统如何工作
1. 布局分析:这些系统通常首先分析文档布局,寻找指示表格存在的视觉线索,例如网格线或对齐的文本。
2. 模式识别:它们使用预定义的模式来识别表格结构,例如列之间的规则间距或单元格内一致的数据格式。
3. 单元格提取:一旦识别出表格,基于规则的系统就会根据检测到的布局(例如网格线或一致的间距)确定每个单元格的边界,然后捕获这些边界内的数据。
优点
• 可解释性:规则通常很简单,人类易于理解和修改。
• 精度:对于定义明确的表格格式,基于规则的系统可以实现很高的准确性。
局限性
• 缺乏灵活性:基于规则的系统难以概括对偏离预期格式或缺乏清晰视觉线索的表格的提取。这会限制系统跨不同领域的适用性。
• 规则创建的复杂性:随着表格格式变得越来越多样化,所需的规则数量呈指数级增长,使得系统难以维护。
• 处理非结构化数据的困难:这些系统在处理嵌入在非结构化文本中或格式不一致的表格时,通常会失败。
3.2 机器学习方法
随着基于规则的系统的局限性变得越来越明显,研究人员转向机器学习技术来提高表格提取能力。典型的机器学习工作流程也将依赖 OCR,然后是在单词和单词位置之上构建 ML 模型。
常见的表格提取机器学习技术
• 支持向量机 (SVM):用于根据文本对齐、间距和格式等特征对表格区域和单个单元格进行分类。
• 随机森林:用于基于特征的表格检测和结构识别,利用决策树来识别不同的表格布局和元素。
• 条件随机场 (CRF):应用于对表格行和列的顺序性质进行建模。CRF 在捕获相邻单元格之间的依赖关系方面特别有效。
• 神经网络:早期将神经网络应用于表格结构识别和单元格分类。最近的方法包括深度学习模型,如卷积神经网络 (CNN) 用于基于图像的表格检测,以及递归神经网络 (RNN) 用于理解表格中单元格之间的关系,我们将在下一节中详细介绍这些内容。
优点
• 提高了灵活性:与基于规则的系统相比,ML 模型可以学习识别更广泛的表格格式。
• 适应性:使用适当的训练数据,ML 模型可以比重写规则更容易地适应新的领域。
挑战
• 数据依赖:ML 模型的性能在很大程度上取决于训练数据的质量和数量,而收集和标记训练数据可能既昂贵又耗时。
• 特征工程:传统的 ML 方法通常需要仔细的特征工程,这对于不同的表格格式来说可能很复杂。
• 可扩展性问题:随着表格格式种类的增加,模型可能需要频繁地重新训练和更新以保持准确性。
• 上下文理解:许多传统的 ML 模型难以理解表格周围的上下文,而这通常对于正确解释至关重要。
3.3 深度学习方法
随着过去十年计算机视觉的兴起,已经出现了几种试图解决表格提取问题的深度学习架构。通常,这些模型是目标检测模型的一些变体,其中被检测到的目标是“表格”、“列”、“行”、“单元格”和“合并单元格”。
该领域的一些著名架构包括:
• 表格 Transformer - DETR 的一种变体,专门针对表格检测和识别进行了训练。这以其简单性和对各种图像的可靠性而闻名。
• MuTabNet - PubTabNet 数据集上的顶级执行者之一,该模型具有 3 个组件,CNN 主干、HTML 解码器和单元格解码器。为特定任务使用专用模型是其性能如此之高的原因之一
• TableMaster 是另一种基于 Transformer 的模型,它协同使用四种不同的任务来解决表格提取问题。结构识别、线条检测、框分配和匹配管道。
无论模型如何,所有这些架构都负责创建边界框,并依赖 OCR 将文本放置在正确的框中。除了计算量大且耗时之外,传统机器学习模型的所有缺点在这里仍然适用,唯一的额外优势是不必进行任何特征工程。
虽然基于规则、传统机器学习和深度学习方法对表格提取做出了重大贡献,但当面对现实世界文档的巨大多样性和复杂性时,它们通常会显得力不从心。这些局限性为更先进的技术铺平了道路,包括大型语言模型的应用,我们将在下一节探讨。
四、LLM 在表格提取中的应用
传统的表格提取方法在许多情况下都能很好地工作,但毫无疑问,LLM 对该领域产生了影响。如上所述,虽然 LLM 最初是为自然语言处理任务而设计的,但它们在理解和处理表格数据方面表现出了强大的能力。本节介绍了关键的 LLM,并探讨了它们如何在表格提取中推动最先进技术 (SOTA) 的发展。
一些最著名的 LLM 包括:
• GPT(生成式预训练 Transformer):由 OpenAI 开发,GPT 模型(如 GPT-4 和 GPT-4o)以其生成连贯且上下文相关的文本的能力而闻名。它们可以理解和处理各种语言任务,包括表格解释。
• BERT(来自 Transformer 的双向编码器表示):由 Google 创建,BERT 擅长理解文本中单词的上下文。它的双向训练使其能够通过查看单词前后出现的单词来掌握单词的完整上下文。
• T5(文本到文本转换 Transformer):由 Google 开发,T5 将每个 NLP 任务都视为一个“文本到文本”问题,这使得它可以应用于各种任务。
• LLaMA(大型语言模型 Meta AI):由 Meta AI 创建,LLaMA 的设计比其他一些更大的模型更高效、更容易访问(开源)。它在各种任务中都表现出色,并催生了许多微调的变体。
• Gemini:由 Google 开发,Gemini 是一种多模态 AI 模型,能够处理和理解文本、图像、视频和音频。它能够跨不同数据类型工作,这使得它对于复杂的表格提取任务特别有趣。
• Claude:由 Anthropic 创建,Claude 以其强大的语言理解和生成能力而闻名。它的设计重点是安全性和道德考虑,这在处理表格中的敏感数据时特别有价值。
这些 LLM 代表了 AI 语言技术的前沿,每个 LLM 都为表格提取任务带来了独特的优势。它们在理解上下文、处理多种数据类型和生成类人响应方面的先进能力正在突破自动化表格提取的可能性界限。
4.1 理解和处理表格数据的 LLM 功能
LLM 在处理表格数据方面表现出了令人印象深刻的能力,与传统方法相比具有以下几个优势:
• 上下文理解:LLM 可以理解表格出现的上下文,包括周围的文本。这允许更准确地解释表格内容和结构。
• 灵活的结构识别:这些模型可以识别和适应各种表格结构,包括复杂、不可预测和非标准的布局,比基于规则的系统更灵活。想想合并的单元格或嵌套的表格。请记住,虽然它们比传统方法更适合处理复杂的表格,但 LLM 并不是万能的,仍然存在固有的挑战,本文稍后将对此进行讨论。
• 自然语言交互:LLM 可以用自然语言回答有关表格内容的问题,使数据提取更加直观和用户友好。
• 数据插补:在表格数据不完整或不清楚的情况下,LLM 有时可以根据上下文和常识推断出缺失的信息。然而,这需要仔细监控,因为存在幻觉的风险(我们将在后面详细讨论这一点!)
• 多模态理解:先进的 LLM 可以同时处理文本和图像输入,允许它们从各种文档格式(包括扫描图像)中提取表格。视觉语言模型 (VLM) 可用于识别和提取文档中的表格和图形。
• 适应性:LLM 可以在特定领域或表格类型上进行微调,使其能够专注于特定领域,而不会损失其通用能力。
4.2 LLM 在表格提取中的局限性
尽管 LLM 具有先进的功能,但在表格提取方面也面临着一些挑战。尽管与传统的 OCR 方法相比,LLM 能够提取更复杂、更不可预测的表格,但它们也面临着一些限制。
• 可重复性:使用 LLM 进行表格提取的一个关键挑战是其输出缺乏可重复性。与基于规则的系统或传统的 OCR 方法不同,LLM 即使在多次处理相同的输入时也可能会产生略有不同的结果。这种可变性可能会阻碍需要精确、可重复的表格提取的应用程序的一致性。
• 黑盒:LLM 作为黑盒系统运行,这意味着它们的决策过程不易解释。这种缺乏透明度使得错误分析变得复杂,因为用户无法跟踪模型是如何或为什么达到特定输出的。在表格提取中,这种不透明性可能会产生问题,尤其是在处理敏感数据时,问责制和理解模型行为至关重要。
• 微调:在某些情况下,可能需要微调才能执行有效的表格提取。微调是一项资源密集型任务,需要大量的标记示例、计算能力和专业知识。
• 领域特异性:一般来说,LLM 是通用的,但它们可能难以处理包含行业术语或高度专业化内容的领域特定表格。在这些情况下,可能需要微调模型,以便更好地理解手头领域的上下文。
• 幻觉:LLM 特有的一个关键问题是幻觉的风险——生成看似合理但不正确的数据。在表格提取中,这可能表现为虚构表格单元格、错误解释列关系或捏造数据以填补感知到的空白。这种幻觉可能特别成问题,因为它们可能不会立即显现出来,而是自信地呈现给用户,并可能在下游数据分析中导致重大错误。您将在下一节的示例中看到 LLM 在创建列名时进行创造性控制的一些示例。
• 可扩展性:LLM 在处理大型数据集时面临着可扩展性方面的挑战。随着数据量的增长,计算需求也会增加,这可能导致处理速度变慢和性能瓶颈。
• 成本:部署 LLM 进行表格提取可能很昂贵。云基础设施、GPU 和能源消耗的成本可能会迅速增加,与更传统的方法相比,LLM 是一种昂贵的选择。
• 隐私:使用 LLM 进行表格提取通常涉及处理敏感数据,这可能会引发隐私问题。许多 LLM 依赖于基于云的平台,这使得确保符合数据保护法规和保护敏感信息免受潜在安全风险变得具有挑战性。与任何人工智能技术一样,妥善处理潜在的敏感信息、确保数据隐私和解决道德问题(包括减轻偏见)至关重要。
4.3 如何使用 LLM 进行表格提取
鉴于其优点和缺点,社区已经找到了以下方法,可以以多种方式使用 LLM 从文档中提取表格数据:
• 使用 OCR 技术将文档提取为机器可读格式,然后提交给 LLM。
• 对于 VLM,我们可以另外直接传递文档的图像
图示:从 PDF 发送信息到 LLM 的流程。发送图像是仅适用于 VLM 的。
4.4 LLM 与传统技术
在文档处理方面,在传统技术和基于 OCR 的 LLM 之间进行选择取决于任务的具体要求。让我们看看在做决定时需要评估的几个方面:
特征 | 传统技术 | LLM |
准确性 | 对于结构化、标准化的表格具有很高的准确性。 | 在处理复杂的表格格式方面更灵活,但一致性较低,可能需要微调。 |
速度 | 更快,尤其是在规模化时 | 更慢,上下文分析需要更多处理时间 |
灵活性 | 不太灵活,无法准确处理复杂的表格格式。 | 灵活,可以适应不可预测和不明确的表格布局(注意幻觉) |
上下文理解 | 最低限度,侧重于识别和提取 | 对表格和周围数据的上下文有很强的理解 |
可扩展性 | 可扩展到大量数据 | 可扩展性成本高昂且资源密集 |
用例 | 适用于表单、发票和标准化表格 | 最适合需要上下文理解的更复杂、更多样化的表格 还可以用于分析和理解表格 |
在实践中,系统采用使用 OCR 进行初始文本提取和使用 LLM 进行更深层次分析和解释的方法,以在文档处理任务中实现最佳结果。
五、评估 LLM 在表格提取中的表现
由于表格格式、文档类型和提取要求的多样性,评估 LLM 在表格提取中的表现是一项复杂的任务。以下是常见基准测试方法和指标的概述:
常见的基准测试数据集
• SciTSR(科学表格结构识别数据集): https://github.com/Academic-Hammer/SciTSR ,包含来自科学论文的表格,由于其结构复杂而具有挑战性。
• TableBank: https://doc-analysis.github.io/tablebank-page,一个包含来自科学论文和财务报告的表格的大规模数据集。
• PubTabNet: https://github.com/ibm-aur-nlp/PubTabNet,一个来自科学出版物的表格的大型数据集,对结构识别和内容提取都很有用。
• ICDAR(国际文档分析和识别会议)数据集: https://github.com/DS4SD/DocLayNet ,各种侧重于文档分析(包括表格提取)的竞赛数据集。
• 视觉文档检索 (ViDoRe):基准测试: https://github.com/illuin-tech/vidore-benchmark,侧重于对包含表格、图像和图形的视觉丰富的文档的文档检索性能评估。
关键绩效指标
评估表格提取的性能是一项复杂的任务,因为性能不仅涉及提取表格中包含的值,还涉及表格的结构。可以评估的元素包括单元格内容,以及结构元素,如单元格拓扑(布局)和位置。
• 精确率:正确提取的表格元素占所有提取元素的比例。
• 召回率:正确提取的表格元素占文档中所有实际表格元素的比例。
• F1 分数:精确率和召回率的调和平均值,提供了性能的平衡度量。
• TEDS(基于树编辑距离的相似度): https://arxiv.org/abs/1911.10683 ,一种专门用于评估表格提取任务准确性的指标。它通过计算将表格的一种树表示转换为另一种树表示所需的最小操作(插入、删除或替换)次数来衡量提取表格结构与真实表格结构之间的相似度。
• GriTS(网格表格相似度): https://arxiv.org/pdf/2203.12555, GriTS 是一种表格结构识别 (TSR) 评估框架,用于衡量提取的表格拓扑、内容和位置的正确性。它使用精确率和召回率等指标,并通过对预测的表格结构与实际表格结构之间的相似度进行评分来计算部分正确性,而不是要求完全匹配。
六、使用 LLM 进行表格提取的代码示例
在本节中,我们将使用 LLM 对表格提取的实现进行编码。我们将从 Meta 财报 的第一页中提取一个表格,如下所示:
此过程将涵盖以下关键步骤:
• OCR
• 调用 LLM API 来提取表格
• 解析 API 输出
• 最后,审查结果
6.1 将文档传递给 OCR 引擎,如 Nanonets:
import requests
import base64
import json
url = "https://app.nanonets.com/api/v2/OCR/FullText"
payload = {"urls": ["MY_IMAGE_URL"]}
files = [
(
"file",
("FILE_NAME", open("/content/meta_table_image.png", "rb"), "application/pdf"),
)
]
headers = {}
response = requests.request(
"POST",
url,
headers=headers,
data=payload,
files=files,
auth=requests.auth.HTTPBasicAuth("XXX", ""),
)
def extract_words_text(data):
# 解析类似 JSON 的字符串
parsed_data = json.loads(data)
# 导航到 'words' 数组
words = parsed_data["results"]["page_data"]["words"]
# 仅提取每个单词的 'text' 字段并将其连接起来
text_only = " ".join(word["text"] for word in words)
return text_only
extracted_text = extract_words_text(response.text)
print(extracted_text)
OCR 结果:
FACEBOOK Meta Reports Second Quarter 2024 Results MENLO PARK Calif. July 31.2024 /PRNewswire/ Meta Platforms Inc (Nasdag METAX today reported financial results for the quarter ended June 30, 2024 "We had strong quarter and Meta Al is on track to be the most used Al assistant in the world by the end of the year said Mark Zuckerberg Meta founder and CEC "We've released the first frontier-level open source Al model we continue to see good traction with our Ray-Ban Meta Al glasses and we're driving good growth across our apps Second Quarter 2024 Financial Highlights Three Months Ended June 30 In millions excent percentages and ner share amounts 2024 2023 % Change Revenue 39.071 31.999 22 Costs and expenses 24.224 22.607 7% Income from onerations 14.847 9302 58 Operating margin 38 29 Provision for income taxes 1.64 1505 0.0 Effective tax rate 11 16 % Net income 13.465 7.789 73 Diluted earnings per share (FPS 5.16 2.0 73 Second Quarter 2024 Operational and Other Financial Highlights Family daily active people (DAPY DAP was 3.27 billion on average for June 2024, an increase of 7% year -over vear Ad impressions Ad impressions delivered across our Family of Apps increased by 10% year -over-vear Average price per ad Average price per ad increased by 10% vear -over-year Revenue Total revenue was $39.07 billion an increase of 22% year-over -year Revenue or a constant
讨论: 结果的格式是一个长文本字符串,虽然总体准确性还算不错,但有些单词和数字提取错误。这突出显示了使用 LLM 处理此提取可能会有所帮助的一个方面,因为即使提取错误的单词,LLM 也可以使用周围的上下文来理解文本。请记住,如果表格中数字内容的 OCR 结果存在问题,LLM 不太可能修复此问题 - 这意味着我们应该仔细检查任何 OCR 系统的输出。在本例中,一个例子是实际表格值“9,392”被错误地提取为“9302”。
6.2 将提取的文本发送到 LLM 并解析输出:
现在我们已经使用 OCR 提取了文本,让我们将其传递给几个不同的 LLM,指示它们将文本中检测到的任何表格提取为 Markdown 格式。
关于提示工程的说明: 在测试 LLM 表格提取时,提示工程可能会改善您的提取效果。除了调整提示以提高准确性之外,您还可以提供自定义说明,例如以任何格式(Markdown、JSON、HTML 等)提取表格,并根据周围文本和文档上下文提供表格中每列的描述。
6.2.1 OpenAI GPT-4:
%pip install openai
from openai import OpenAI
# 设置您的 OpenAI API 密钥
client = OpenAI(api_key='OpenAI_API_KEY')
def extract_table(extracted_text):
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": "你是一个 helpful assistant,可以将表格数据提取为 Markdown 格式。"},
{"role": "user", "content": f"这是一段包含一个或多个表格的文本:\n{extracted_text}\n\n请提取表格。"}
]
)
return response.choices.message.content
extract_table(extracted_text)
结果:
讨论: 从文本中提取的值被正确放置在表格中,并且表格的总体结构具有代表性。不应该有值的单元格中正确地有一个“-”。然而,有一些有趣的现象。首先,LLM 将第一列命名为“Financial Metrics”,这在原始文档中是没有的。它还在几个财务指标名称上附加了“(百万美元)”和“(%)”。这些添加在上下文中是有意义的,但它不是精确的提取。其次,列名“Three Months Ended June 30”应该跨越 2024 年和 2023 年。
6.2.2 Google Gemini Pro:
import google.generativeai as genai
# 设置您的 Gemini API 密钥
genai.configure(api_key="Your_Google_AI_API_KEY")
def extract_table(extracted_text):
# 设置模型
model = genai.GenerativeModel("gemini-pro")
# 创建提示
prompt = f"""这是一段包含一个或多个表格的文本:
{extracted_text}
请提取表格并将其格式化为 Markdown。"""
# 生成响应
response = model.generate_content(prompt)
# 返回生成的内容
return response.text
result = extract_table(extracted_text)
print(result)
结果:
讨论: 同样,提取的值位于正确的位置。LLM 创建了一些列名,包括“Category”、“Q2 2024”和“Q2 2023”,而省略了“Three Months Ended June 30”。Gemini 决定在没有数据的单元格中放置“n/a”,而不是“-”。总的来说,根据文档的上下文,提取的内容和结构看起来都不错,但如果您正在寻找精确的提取,那么这不是精确的。
6.2.3 Mistral-Nemo-Instruct:
import requests
def query_huggingface_api(prompt, model_name="mistralai/Mistral-Nemo-Instruct-2407"):
API_URL = f"https://api-inference.huggingface.co/models/{model_name}"
headers = {"Authorization": f"Bearer YOUR_HF_TOKEN"}
payload = {
"inputs": prompt,
"parameters": {
"max_new_tokens": 1024,
"temperature": 0.01, # 低温,减少提取的创造性
},
}
response = requests.post(API_URL, headers=headers, json=payload)
return response.json()
prompt = f"这是一段包含一个或多个表格的文本:\n{extracted_text}\n\n请以 Markdown 格式提取表格。"
result = query_huggingface_api(prompt)
print(result)
# 提取生成的文本
if isinstance(result, list) and len(result) > 0 and "generated_text" in result:
generated_text = result["generated_text"]
print("\n生成的文本:", generated_text)
else:
print("\n错误:无法提取生成的文本。")
结果:
讨论: Mistral-Nemo-Instruct 是一个比 GPT-4o 或 Gemini 能力弱的 LLM,我们看到提取的表格准确性较低。表格中的原始行表示良好,但 LLM 将文档页面底部的项目符号解释为表格的一部分,这不应该包括在内。
相关链接
• 视觉文档检索 (ViDoRe):基准:https://github.com/illuin-tech/vidore-benchmark
• 模糊图像演示:https://github.com/doc-analysis/TableBank/blob/master/data/Sampled_Detection_data/Latex/images/1401.0016_5.jpg
• Nanonets 表格提取:https://nanonets.com/blog/table-extraction-using-llms-unlocking-structured-data-from-documents/
• 将图像转换为 Excel:https://nanonets.com/image-to-excel
• SciTSR 数据集:https://github.com/Academic-Hammer/SciTSR
• TableBank 数据集:https://doc-analysis.github.io/tablebank-page/
• PubTabNet 数据集:https://github.com/ibm-aur-nlp/PubTabNet
• ICDAR 数据集:https://github.com/DS4SD/DocLayNet
• TEDS 指标:https://arxiv.org/abs/1911.10683
• GriTS 指标:https://arxiv.org/pdf/2203.12555