尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️
作者 | 若名
出品 | AI科技大本營
如果經常跟數據表格打交道,那你應該體驗過那種令人煩躁到抓狂的心情。但現在,學會下面將要介紹的一款工具的使用方法,相信我,它會讓你在工作中簡直不能更舒爽。
Excalibur,從古希臘語翻譯過來就是「神劍」,它現在也是一種用於從 PDF 中提取表格數據的 Web 界面,使用 Python 3 編寫,由 Camelot(Python 庫) 提供支持,可以讓任何人輕鬆地從 PDF 文件中提取表格數據。需要注意的是,Excalibur 僅適用於基於文本的 PDF 文件,掃描文件不在此列。
Camelot 和 Excalibur 的作者和維護者是來自新德里 Bharati Vidyapeeth 工程學院的 Vinayak Mehta,目前他正全職做這些項目。
Excalibur 的四大特性
可移植文件格式
PDF 文件定義了將字符放置在相對於頁面左下角的 x,y 坐標的指令。通過將某些字符放在比其他字符更近的地方來模擬單詞。空格是通過將單詞放在相對較遠的地方來模擬的。最後,通過放置在電子表格中顯示的字詞來模擬表格,格式沒有表格結構的內部表示。
自動檢測 PDF 中的表格數據
可移植文件格式不是為表格數據設計的。可悲的是,許多開放數據共享時都是 PDF 文件,但對其中的表格進行分析卻是一件非常痛苦的事。簡單的復制黏貼行不通,Excalibur 通過自動檢測 PDF 中的表格並讓你通過 Web 界面將它們保存為 CSV 和 Excel 文件,這使 PDF 表格提取變得非常簡單。
可動態調整表格提取規則
雖然有很多廣泛用於 PDF 表格提取的開源和閉源工具,但他們輸出的表格良莠不齊。Excalibur 由 Camelot 提供支持,為用戶提供附加設置以調整表格提取並獲得最佳效果。相較而言,它的性能要好於其他開源工具和庫。
數據完全可控且安全
你可以完全控制數據,因為所有文件存儲和處理都在你自己的本地或遠程計算機上進行。Excalibur 還可以配置 MySQL 和 Celery 系統,以並行和分布式方式執行表格提取任務。默認情況下,任務按順序執行。
快速上手指南
下載和安裝
https://github.com/camelot-dev/excalibur/releases
https://excalibur-py.readthedocs.io/en/master/user/install.html#install
設置開發環境
你可以使用 pip 輕鬆安裝開發依賴項:
$pipinstallexcalibur-py[dev]
測試(很快)
安裝後,你可以使用以下命令運行測試:
$pythonsetup.pytest
使用「神劍」
安裝後,可以使用以下命令初始化元數據的數據庫:
$excaliburinitdb
然後使用以下命令啟動 Web 服務器:
$excaliburwebserver
現在,你可以轉到 http:// localhost:5000 並開始從 PDF 文件中提取表格數據。
上傳 PDF
你可以使用 Web 界面上傳 PDF 文件,還可以與之前的上傳進行整合。
自動檢測表格
Excalibur 可以自動檢測 PDF 中的表格。
繪制表格區域或者放置分隔符
如果表格深埋在文本內部並且自動檢測失敗,則可以通過繪制表格區域和列分隔符進行操作。
加載已保存的規則設置
你也可以保存 PDF 文件中表格提取的規則設置,並將其應用於新的 PDF 文件以提取具有類似結構的表格。
查看和下載數據
最後,你可以查看提取的表格並將其下載為 CSV 或 Excel 文件。Excalibur 還支持 JSON 和 HTML 格式。
最後給出源代碼鏈接,你可以通過以下方式查看最新源代碼:
$gitclonehttps://www.github.com/camelot-dev/excalibur
熱 文推 薦
☞Hacker News 12 月招聘趨勢:React 已連續霸榜 19 個月
print_r('點個好看吧!');var_dump('點個好看吧!');NSLog(@"點個好看吧!");System.out.println("點個好看吧!");console.log("點個好看吧!");print("點個好看吧!");printf("點個好看吧!\n");cout<<"點個好看吧!"<<endl;Console.WriteLine("點個好看吧!");fmt.Println("點個好看吧!");Response.Write("點個好看吧!");alert("點個好看吧!")echo "點個好看吧!"
點擊「閱讀原文」,打開 CSDN App 閱讀更貼心!
喜歡就點擊「好看」吧!