我們平時在閱讀論文或者科學文獻時,見到的文件格式基本上是 PDF(Portable Document Format)。據了解,PDF 成為互聯網上第二重要的數據格式,占總訪問量的2.4%。
然而,存儲在 PDF 等文件中的信息很難轉成其他格式,尤其對數學公式更是顯得無能為力,因為轉換過程中很大程度上會丟失信息。就像下圖所展示的,帶有數學公式的 PDF,轉換起來就比較麻煩。
【資料圖】
現在,Meta AI 推出了一個 OCR 神器,可以很好的解決這個難題,該神器被命名為 Nougat。Nougat 基于 Transformer 模型構建而成,可以輕松的將 PpythonDF 文檔轉換為 MultiMarkdown,掃描版的 PDF 也能轉換,讓人頭疼的數學公式也不在話下。
論文地址:https://arxiv.org/pdf/2308.13418v1.pdf
項目主頁:https://facebookresearch.github.io/nougat/
Nougat 不但可以識別文本中出現的簡單公式,還能較為準確地轉換復雜的數學公式。
公式中出現的上標、下標等各種數學格式也分的清清楚楚:
Nougat 還能識別表格:
掃描產生畸變的文本也能處理:
不過,Nougat 生成的文檔中不包含圖片,如下面的柱狀圖:
看到這,網友紛紛表示:(轉換)效果真是絕了。
方法概述
本文架構是一個編碼器 - 解碼器 Transformer 架構,允許端到端的訓練,并以 Donut 架構為基礎。該模型不需要任何 OCR 相關輸入或模塊,文本由網絡隱式識別。該方法的概述見下圖1。
該研究用到了2個 Swin Transformer ,一個參數量為350M,可處理的序列長度為4096,另一參數量為250M,序列長度為3584。在推理過程中,使用貪婪解碼生成文本。
在圖像識別任務中,使用數據增強技術來提高泛化能力往往是有益的。由于本文只研究數字化的學術研究論文,因此需要使用一些變換來模擬掃描文件的不完美和多變性。這些變換包括侵蝕、擴張、高斯噪聲、高斯模糊、位圖轉AccQOJLilb換、圖像壓縮、網格變形和彈性變換 。每種變換都有固定的概率應用于給定的圖像。這些變換在 Albumentations 庫中實現。在訓練過程中,研究團隊也會通過隨機替換 token 的方式,對實際文本添加擾動。
每種變換的效果概覽
數據集構編程客棧建與處理
據研究團隊所知,目前還沒有 PDF 頁面和相應源代碼的配對數據集,因此他們從 arXiv 上開放獲取的文章中創建了自己的數據集。為了數據多樣性,數據集中還包括 PubMed Central (PMC) 開放訪問非商業數據集的一個子集。預訓練期間,還加入了部分行業文檔庫 (IDL)。
表1數據集構成
在處理數據集的過程中,研究團隊也將不同來源的數據進行了合適的處理,下圖展示了他們對 arXiv 文章進行源代碼收集并編譯 PDF 的過程。詳細內容請閱讀全文。
源文件被轉換成 html,然后再轉換成 Markdown。
研究團隊根據 PDF 文件中的分頁符分割 markdown 文件,并將每個頁面柵格化為圖像以創建最終配對的數據集。在編譯過程中,LaTeX 編譯器自動確定 PDF 文件的分頁符。由于他們不會為每篇論文重新編譯 LaTeX 源文件,因此必須將源文件分割成若干部分,分別對應不同的頁面。為此,他們使用 PDF 頁面上的嵌入文本,并將其與源文本進行匹配。
但是,PDF 中的圖形和表可能并不對應于它們在源代碼中的位置。為了解決這個問題,研究團隊使用 pdffigures2在預處理步驟中刪除這些元素。將識別出的字幕與 XML 文件中的字幕進行比較,根據它們的 Levenshtein 距離進行匹配。一旦源文檔被拆分為單獨的頁面,刪除的圖形和表就會重新插入到每一頁的末尾。為了更好地匹配,他們還使用 pylatexence -library 將 PDF 文本中的 unicode 字符替換為相應的 LaTeX 命令。
詞袋匹配:首先,研究團隊使用 MuPDF 從 PDF 中提取文本行,并對其進行預處理,刪除頁碼和頁眉 / 頁腳。然后使用詞袋模型與 TF-IDF 向量化器和線性支持向量機分類器。將模型擬合到以頁碼為標簽的 PDF 行。然后,他們將 LaTeX 源代碼分成段落,并預測每個段落的頁碼。理想情況下,預測將形成階梯函數,但在實踐中,信號將有噪音。為了找到最佳邊界點,他們采用類似于決策樹的邏輯,并最小化基于 Gini 不純度的度量:
其中
是在區間 [a,b] 中選擇具有預測頁碼 i 的元素的概率,該區間描述了哪些段落 (元素) 被考慮用于分割。
區間 [a, b] 的最佳拆分位置 t 為:
搜索過程從所有段落開始,對于后續的每個分頁,搜索區間的下界設置為前一個分頁位置。
模糊匹配:在第一次粗略的文檔分割之后,研究團隊嘗試找到段落中的準確位置。通過使用 fuzzysearch 庫,將預測分割位置附近的源文本與嵌入的 PDF 文本的前一頁的最后一個句子和下一頁的第一個句子進行比較,就可以達到這個目的。如果兩個分隔點在源文本中的相同位置,則認為換頁是準確的,得分為1。另一方面,如果分割位置不同,則選擇具有最小歸一化 Levenshtein 距離的分割位置,并給出1減距離的分數。要包含在數據集中,PDF 頁面的兩個分頁符的平均得分必須至少為0.9。如此一來,所有頁面的接受率約為47%。
實驗
實驗中用到的文本包含三種類別:純文本、數學表達式以及表格。
結果如表1所示。Nougat 優于其他方法,在所有指標中取得最高分,并且具有250M 參數模型的性能與350M 參數模型相當。
下圖為 Nougat 優對一篇論文的轉換結果:
Meta 表示,Nougat 在配備 NVIDIA A10G 顯卡和24GB VRAM 機器上可并行處理6個頁面,生成速度在很大程度上取決于給定頁面上的文本量。在不進行任何推理優化的情況下,基礎模型每批次平均生成時間為19.5s(token 數≈1400),與經典方法(GROBID10.6PDF/s )相比速度還是非常慢的,但 Nougat 可以正確解析數學表達式。
免責聲明:本文不構成任何商業建議,投資有風險,選擇需謹慎!本站發布的圖文一切為分享交流,傳播正能量,此文不保證數據的準確性,內容僅供參考
關鍵詞: