Nougat:OCR神器,解锁PDF中的数学宝藏
数学,对于许多人来说,往往是一道难以逾越的坎。在阅读学术论文或科学文献时,我们通常会面对那些充斥着数学公式的PDF文件。这种文件格式,虽然在互联网上占据着2.4%的数据量,但其中的信息却难以转化为其他格式,尤其是数学公式。尝试将这些复杂的数学公式转换为其他格式,常常导致信息的丢失。对于像下图中所示的这种包含数学公式的PDF,转换工作更是令人头疼。
然而,现在有了一款名为Nougat的OCR神器,由MetaAI推出,基于Transformer模型构建而成。Nougat可以轻松地将PDF文档转换为MultiMarkdown,即使是扫描版的PDF,也能被它轻松应对。不再需要担心那些复杂的数学公式,Nougat能够准确地识别和转换它们,就算公式中有上标、下标等各种数学格式,也能轻松搞定。
此外,Nougat还能识别文档中的表格,即使是扫描产生畸变的文本,也能处理得游刃有余。然而需要注意的是,Nougat生成的文档中不包含图片,所以像下面这种柱状图无法被转换。
网友看到这一神奇的效果后,纷纷表示感叹。Nougat不仅在简单公式的识别方面表现出色,对于复杂的数学公式也能游刃有余。
那么,Nougat是如何做到这一切的呢?
这篇文章将带你深入了解它的方法和技术。
编码器-解码器Transformer架构
Nougat的核心是一个编码器-解码器Transformer架构,允许端到端的训练,并以Donut架构为基础。令人印象深刻的是,这个模型不需要任何OCR相关输入或模块,文本由网络隐式识别。如下图所示,这一方法的概述呈现在图1中。
为了实现这一目标,研究团队使用了两个SwinTransformer,其中一个参数量为M,可处理的序列长度为,另一个参数量为M,序列长度为。
在推理过程中,他们采用了贪婪解码方法来生成文本。
数据增强技术
在图像识别任务中,使用数据增强技术来提高模型的泛化能力是常见的做法。因此,研究团队在训练Nougat时,也采用了一些变换来模拟扫描文件的不完美和多变性。这些变换包括侵蚀、扩张、高斯噪声、高斯模糊、位图转换、图像压缩、网格变形和弹性变换。每种变换都有一定的概率应用于给定的图像,这些变换是通过Albumentations库来实现的。
此外,在训练过程中,研究团队还采用了随机替换token的方式,对实际文本进行扰动,以增加模型的鲁棒性。
数据集构建与处理
为了训练Nougat,研究团队需要一个包含PDF页面和相应源代码的配对数据集。然而,据他们所知,目前并没有这样的数据集存在。因此,他们从arXiv上开放获取的文章中创建了自己的数据集,为了数据多样性,还包括了PubMedCentral(PMC)开放访问非商业数据集的一个子集。
在预训练期间,还加入了部分行业文档库(IDL)。
数据集构建的过程涉及将源文件转换成HTML,然后再转换成Markdown。为了将每个页面栅格化为图像,研究团队根据PDF文件中的分页符将Markdown文件进行分割。由于他们不能为每篇论文重新编译LaTeX源文件,所以必须将源文件分割成若干部分,分别对应不同的页面。为此,他们使用PDF页面上的嵌入文本,并将其与源文本进行匹配。
然而,PDF中的图形和表可能并不对应于它们在源代码中的位置,为了解决这个问题,研究团队使用pdffigures2在预处理步骤中删除这些元素。将识别出的字幕与XML文件中的字幕进行比较,根据它们的Levenshtein距离进行匹配。一旦源文档被拆分为单独的页面,删除的图形和表就会重新插入到每一页的末尾。为了更好地匹配,他们还使用pylatexence-library将PDF文本中的unicode字符替换为相应的LaTeX命令。
词袋匹配与模糊匹配
为了更好地识别页面的分割点,研究团队采用了
词袋匹配和模糊匹配方法。首先,他们使用MuPDF从PDF中提取文本行,并对其进行预处理,删除页码和页眉/页脚。然后,采用了词袋模型与TF-IDF向量化器以及线性支持向量机分类器,将模型拟合到以页码为标签的PDF行上。接着,他们将LaTeX源代码分成段落,并预测每个段落的页码。
在实际操作中,预测结果形成了一个阶梯函数,但由于噪音的存在,信号可能会受到干扰。为了找到最佳的分割点,他们采用了一种类似于决策树的逻辑,通过最小化基于Gini不纯度的度量来确定最佳分割位置。这个过程涉及在区间[a,b]中选择具有预测页码i的元素的概率,该区间描述了哪些段落(元素)被考虑用于分割。最佳拆分位置t为:
t=argmin
a≤tb
(Gini(i,[a,t])+Gini(i,[t,b]))
这个搜索过程从所有段落开始,对于后续的每个分页,搜索区间的下界设置为前一个分页位置。
另外,为了更准确地确定段落的分割位置,研究团队采用了模糊匹配方法。在粗略的文档分割之后,他们尝试找到段落中的准确位置,这是通过使用fuzzysearch库实现的。具体而言,他们将预测分割位置附近的源文本与嵌入的PDF文本的前一页的最后一个句子和下一页的第一个句子进行比较。如果两个分隔点在源文本中的相同位置,则认为是准确的,得分为1。否则,他们选择具有最小归一化Levenshtein距离的分割位置,并给出1减距离的分数。
为了被包含在数据集中,PDF页面的两个分页符的平均得分必须至少为0.9。通过这一方法,他们成功地保持了数据集的质量,接受率约为47%。
实验结果
在进行实验时,研究团队使用的文本包括三种类别:纯文本、数学表达式以及表格。实验结果如表1所示,Nougat在各项指标上均优于其他方法,显示出了出色的性能。尤其是,M参数模型的性能与M参数模型相当。
通过Meta的测试,Nougat在配备NVIDIAA10G显卡和24GBVRAM机器上能够并行处理6个页面,生成速度主要取决于给定页面上的文本量。尽管与经典方法相比,基础模型的生成速度可能较慢,但Nougat在正确解析数学表达式方面表现卓越,展现了其在处理学术文献的巨大潜力。
总结来说,Nougat是一款强大的OCR神器,能够轻松地解锁PDF文档中的数学宝藏。
它基于编码器-解码器Transformer架构,结合数据增强技术,成功构建了一个高效的模型。通过词袋匹配和模糊匹配方法,它能够准确地识别文本分割点,为生成高质量的MultiMarkdown文档打下了坚实的基础。无论是对学术研究者还是对科研爱好者,Nougat都将成为一个不可或缺的工具,使他们更轻松地处理数学和科学文献。它的潜力无限,将为学术研究带来新的可能性,让数学公式不再成为阅读的障碍。