京东6.18大促主会场领京享红包更优惠

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4637|回复: 0

如何将 PDF 表格数据免费转换到 Excel ?

[复制链接]

8

主题

0

回帖

10

积分

新手上路

积分
10
发表于 2019-4-1 11:11:16 | 显示全部楼层 |阅读模式 来自 中国
所见即所获,提升你的数据采集效率。
3 ]- H; z9 x5 O/ D& S写了那篇《如何用Python批量提取PDF文本内容?》后,我在后台收到了许多留言。
8 \* S- n$ ~6 X( k( C' F* f& @" ]不少读者询问,如果是 PDF 文件中的表格呢?能否正确转换?0 K! y% }0 {+ D8 x  W7 c
我当时没有理解这种需求。因为那篇文章谈的主要是把文本抽取出来,目的主要是进行下一步的自然语言处理。这种 PDF 文件中大量的内容,都是文字。表格在其中,只占非常小的比例。
! z+ x( p) a$ z' n3 `. Q《如何用Python批量提取PDF文本内容?》一文提供的工具pdf_extractor会保留表格里面的数据,但是结构信息基本就被丢弃掉了。表格转换,属于结构化数据提取。这和我当时文章所谈的主旨不同。所以我没有一一回复。( C( q  B% s! [$ J
然而,最近我自己也遇到了这种需求。
  y. C2 U  C7 X; d6 N( z我需要从一些论文的表格中,抽取一些数据。尤其是一些对比结果的列表。/ ~9 i- O' j7 b( H6 S2 R( G, K
在机器学习的论文中,总会有这种对比表格。主要是把目前模型的结果,与基准线或者当前最好的结果进行比对,从而说明论文的价值和意义。我在《文科生用机器学习做论文,该写些什么?》一文里,专门给你谈过这种对比的选择。% L7 F( D0 q* F2 L: |+ ~
例如这样的:
9 S8 u' p! C0 m) L9 x. @; T如果在跟踪自然语言处理进展的话,你一眼就能认出,这个表格来自于哪篇论文,对吧?6 h" @! z! x3 }; |3 g" ?6 _
对,就是大名鼎鼎 BERT 语言模型。) \6 T/ }. O0 q) D5 U: E/ T
一方面,我们可能需要对论文表格中出现的一些数据进行统计计算。另一方面,我们也需要把部分结果,放在自己的论文里作为对比。而这些,如果都需要我们手动提取数据,然后再输入到程序中或者 Excel 里,会很低效7 @( r! a0 h1 x6 W( q* z
我们需要一种简便的方法,帮助自己把 PDF 表格里面的信息,在尽可能保持格式的情况下,正确提取出来。2 Q* C& W+ w; [4 Z; i0 k' b% D% {
既然有了需求,我就开始搜集信息。我发现,目前支持从 PDF 中抽取表格的应用,其实还真不少。
. i! R8 @0 H' L& R但是转换的效果,真的是参差不齐。使用的难易程度,也高低不一。有的需要你自己编写脚本,才能完成操作。
$ F) |$ G, \/ N其中转换效果较好,使用又方便的,大多是收费的。而且其中有些还着实并不便宜。. D# N, C9 }* E1 L$ y
几经搜寻对比,我终于找到了一款免费且简便好用的工具。而且经过实际尝试,发现转换效果还不错。
  m5 |0 v0 C0 S这里,我把它推荐给你。希望能帮你在阅读和写作过程中,提升 PDF 表格数据采集的效率。
! |/ i1 c, d: }% J- {$ a/ T. h它的名字叫做 Tabula ,网站链接在这里。1 X; L0 q2 @! V( T2 p
网站提供了 Windows 和 macOS 版本的下载链接,还有对应的源代码。3 F0 ?! }1 A5 d' Q7 H4 I! y
我的操作系统是 macOS ,因此这里以 macOS 版本为例。你如果使用 Windows 系统,操作是大同小异的。, a3 d$ t' o9 e/ J6 }& n$ i( F
请点击对应的链接下载安装。3 r. O' a# c/ M% `7 i1 G' S4 A' m
macOS 系统下载安装文件压缩包,解压之后,会出现这样一个目录。
$ k2 W/ m% A2 ]% x  H双击执行其中的 Tabula.app ,你就可以看见浏览器中出现这样的 Web 界面。
! f. I& j, i, ?" r8 ^+ x0 X& o9 b下面我们转换一个 PDF 文件试试看。* c" L: j$ x) U
这里,我用 BERT 论文中的表格采集为例,给你讲讲 Tabula 的使用方法。$ D, l9 Q& X2 X8 M% w
点击上图中的 Browse 按钮,选择硬盘上的 PDF 文件。
3 l6 ?- e8 K! |  f& f$ j1 z然后点击 Import 按钮导入。& {. L- s1 L7 s) y& n2 y& y
导入后的 PDF 文章内容会分页显示出来。) n3 A7 l- t9 Z+ @* Y5 W
你只需要翻到对应的页面,用鼠标勾选表格区域。
  T7 O0 D% v9 |0 Y然后点击右上方绿色的 “Preview and Export Extracted Data” 按钮,就可以看到抽取结果了。
) W1 `% Y, C! p然后,点击 Export 按钮,就可以把结果用 CSV 格式导出,并且可以在 Excel 中打开了。
) V& J8 W9 I# S7 j) s但是,有些复杂表格的提取中,原本不同的列,可能会被错误地放在一起。
6 M; d$ E6 Q# A$ H' D) {$ k& }. z例如选择这个表格的时候。
. R) D$ o, b1 S; Z' u( z; S导出的结果就成了这个样子:3 B: B( c$ w9 H0 s7 Q# E, N5 a
这怎么办呢?
. |! u" |$ n/ [: S0 W其实,处理起来并不算困难。/ n( `2 T4 ]% }) u8 ~  o. r
我们先导出自动转换结果为 CSV ,然后用 Excel 打开。5 M% ^& a5 d) x2 L. @
这里以第一列为例。显然,这里三列数据被挤在了一起。$ W. z' U  e2 }5 M3 H7 A3 T
好在因为这些数据都是用空格分割,因此拆分并不困难。
+ Q  l2 G, I7 b! i我们新建两个空列,好容纳新拆出来的数据。8 r2 t" u5 l4 m" @( W2 A3 A
然后选中第一列中需要拆分的数据。: B$ x* L( ?9 Z6 w; q5 F
进入 Data 选单,选择 Text to Columns (文本到列)按钮。3 ]" c! D2 C& n* D" @, S/ }
第一屏直接继续。! |. l* N8 E% D7 v: o8 }8 e' }
第二屏选择 Space (空格) 作为切分符号。, L) H" m7 h( ]2 ^
点击 Finish ,就可以了。
  o2 V0 ?2 s# d( w1 D$ C看,是不是已经拆分成功了?6 q9 ?+ v4 a! X6 N. h
    : |, q8 q4 ~3 T  P( k( N. ~3 b4 `
  • 你遇到的功能需求,可能别人早就解决了。因此可以找寻工具来解决,而不必自己重复发明轮子3 l/ ^' f" r, _" v% j7 \0 u
  • 对于工具的搜寻,需要掌握主动搜索的技巧。这样才能迅速定位候选项。这里给你推荐一篇搜索引擎使用技巧的教程,链接在这里;
      u# q8 X9 M3 I& ?, A  m
  • 学会利用 Tabula 从 PDF 格式的文档中自动转换表格为 Excel 可读的 CSV 格式;
    6 I/ h% d9 r8 U
  • 对于未能正确分列的转换结果,可以使用 Excel 快速进行调整。
    7 p, s3 r/ N9 Y1 O6 ]" c; y
祝学习进步!" E. R) P: O* h& `. D6 K8 M; U; \

4 s4 W8 ~' a# X- \9 D来源:http://www.yidianzixun.com/article/0LcrRSSQ6 J6 }. Q6 ]/ f
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

帖子地址: 

梦想之都-俊月星空 优酷自频道欢迎您 http://i.youku.com/zhaojun917
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /6 下一条

QQ|手机版|小黑屋|梦想之都-俊月星空 ( 粤ICP备18056059号 )|网站地图

GMT+8, 2025-7-12 17:58 , Processed in 0.037261 second(s), 24 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表