首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >印度小哥“神剑”:PDF提取表格so easy!

印度小哥“神剑”:PDF提取表格so easy!

作者头像
AI科技大本营
发布2019-01-02 15:33:56
2.2K0
发布2019-01-02 15:33:56
举报

作者 | 若名

出品 | 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 轻松安装开发依赖项:

$ pip install excalibur-py [dev]

测试(很快)

安装后,你可以使用以下命令运行测试:

$ python setup.py test

使用“神剑”

安装后,可以使用以下命令初始化元数据的数据库:

$ excalibur initdb

然后使用以下命令启动 Web 服务器:

$ excalibur webserver

现在,你可以转到 http:// localhost:5000 并开始从 PDF 文件中提取表格数据。

上传 PDF

你可以使用 Web 界面上传 PDF 文件,还可以与之前的上传进行整合。

自动检测表格

Excalibur 可以自动检测 PDF 中的表格。

绘制表格区域或者放置分隔符

如果表格深埋在文本内部并且自动检测失败,则可以通过绘制表格区域和列分隔符进行操作。

加载已保存的规则设置

你也可以保存 PDF 文件中表格提取的规则设置,并将其应用于新的 PDF 文件以提取具有类似结构的表格。

查看和下载数据

最后,你可以查看提取的表格并将其下载为 CSV 或 Excel 文件。Excalibur 还支持 JSON 和 HTML 格式。

最后给出源代码链接,你可以通过以下方式查看最新源代码:

$ git clone https://www.github.com/camelot-dev/excalibur

(*本文为AI科技大本营原创文章,转载请联系作者)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI科技大本营 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Excalibur 的四大特性
  • 快速上手指南
    • 设置开发环境
      • 测试(很快)
      相关产品与服务
      云数据库 MySQL
      腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档