精华内容
下载资源
问答
  • 怎么把PDF中的文字提取出来

    千次阅读 2016-03-29 11:07:32
    在使用里面的内容的时候也比较繁琐。若要提取里面的一些文字内容,一般都会想到复制,但是一次只能复制少量的文本内容,而且复制到word或者txt文档后排版可能会乱。那有什么高效的方法呢。  首先是我们...
      PDF文档大家也都见过,这种格式的文档编辑起来不像word文档那样方便。在使用里面的内容的时候也比较繁琐。若要提取里面的一些文字内容,一般都会想到复制,但是一次只能复制少量的文本内容,而且复制到word或者txt文档中后排版可能会乱。那有什么高效的方法呢。

      首先是我们用来打开查看pdf文件都会用到的Adobe Reader,利用这个也是可以提取里面的文字内容的。
      先打开pdf文件,然后选择“文件-另存为”,将文档以文本格式存储,也就是存储为txt文本文档。
      这种方法可以很快将pdf文档中的文本导入到txt文本中,但是可以看到在排版上还是有一些错误,转换后还需要对txt进行编辑。

      除了Adobe Reader我们也可以通过pdf格式转换工具或者在线pdf转txt的方式将pdf文件的格式转成txt的方式来实现文字的提取。操作方法相同,我们就以pdf转换工具为例。
      安装一个pdf转换工具,打开选择里面的对应选项——文件转txt。然后将pdf文件添加进来,用转换工具可以一次对多个pdf文件进行操作,而且可以转换指定的页面内容。
      设置好存储位置后,点开始转换文档将自动进行转换,pdf文件中的文本类型的内容会转换为txt文本文档。转换后的文档排版不会改变,在后期编辑使用时比较方便。
    展开全文
  • 提取PDF文件中的图片内容看似简单,但是如果文档特别大,而且图片也特别多的话,想要一次性将PDF中的图片内容提取出来恐怕就不那么简单了。  通过一些pdf的网页工具我们可以在线对PDF文件中的图片进行提取,不用...
      提取PDF文件中的图片内容看似简单,但是如果文档特别大,而且图片也特别多的话,想要一次性将PDF中的图片内容提取出来恐怕就不那么简单了。

      通过一些pdf的网页工具我们可以在线对PDF文件中的图片进行提取,不用借助任何电脑软件工具就可以完成操作。当然这对文档大小也是有限制的,文档如果超过2M就不行了。在线转换工具(app.xunjiepdf.com
      首先进入到在线的pdf转换页面,在PDF处理下拉列表中选择“PDF图片获取”选项,然后就会进入到该功能页面。
      接着点选择文件,将pdf文件上传到转换工具中,点开始转换。文档会自动进行相应的操作。转换完成后点击文件后面的“下载”,将提取的图片取回本地。下载的文件是一个压缩包,图片都在压缩包里面,解压文件就可以得到这些图片了。

      对于超过规格的文件,也就是比较大的文档就要用电脑上的软件工具来进行操作了,一般这种操作可以用pdf转换器来实现。
      先打开转换工具,找到并选择pdf图片获取选项,然后添加文件到转换工具。在文件后面的页码选择框里可以输入指定提取图片的页面范围。
      最后设置一下文档的保存位置,点开始转换就可以坐图片提取完成了,提取的图片会放在设定位置的一个新的文件夹中。
    展开全文
  • 有时为了方便我们一般会通过截图快速进行信息传送,但查看虽然方便但修改起来就比较复杂,比如有些图片中的内容是表格数据,如果用Excel汇总计算就比较快,那么如何将手机图片中的表格导出来呢?目前有一些工具可以...

    有时为了方便我们一般会通过截图快速进行信息传送,但查看虽然方便但修改起来就比较复杂,比如有些图片中的内容是表格数据,如果用Excel汇总计算就比较快,那么如何将手机图片中的表格导出来呢?

    目前有一些工具可以进行OCR文字识别,一般都是以Word或txt格式文档保存,所以如果我们需要将图片导出Excel格式不适用此方式,但是我们可以先将图片导成PDF后,再将PDF转Excel就是我们常用的文档转换操作了,那么手机端要如何操作呢?

    首先打开手机浏览器搜索speedpdf这个在线转换工具后,打开网页选择页面中的“JPG to PDF”进入转换页面;

    0351ec983b67fe3341a6ebcff86f4785.png

    接着点击上传文件区域并选择手机里所有需要识别的图片添加(这样可将所有图片表格识别后在同一个Excel文件中),并点击convert开始转换;

    53f1d867e39ae1861c5a0b85e949970b.png

    转换完成后点击下载PDF即可;接着再选择左侧工具栏中PDF to Excel进入转换;

    224da363dfd0470e73dee9a46583516b.png

    将上一步中下载的PDF上传并转换完成后,再次下载得到我们需要的Excel表格文件。

    a89ef600554da2ff515b7533b7bc8592.png
    展开全文
  • 写了几篇关于自然语言处理的文章后,一种呼声渐强:pdf中的文本内容,有没有什么方便的方法提取出来呢?我能体会到读者的心情。我展示的例子中,文本数据都是直接可以读入数据框工具做处理的。它们可能来自开放数据...

    本文为你展示,如何用Python把许多PDF文件的文本内容批量提取出来,并且整理存储到数据框中,以便于后续的数据分析。

    问题

    最近,读者们在后台的留言,愈发五花八门了。

    写了几篇关于自然语言处理的文章后,一种呼声渐强:

    pdf中的文本内容,有没有什么方便的方法提取出来呢?

    我能体会到读者的心情。

    我展示的例子中,文本数据都是直接可以读入数据框工具做处理的。它们可能来自开放数据集合、网站API,或者爬虫。

    但是,有的时候,你会遇到需要处理指定格式数据的问题。

    例如pdf。

    许多的学术论文、研究报告,甚至是资料分享,都采用这种格式发布。

    这时候,已经掌握了诸多自然语言分析工具的你,会颇有“拔剑四顾心茫然”的感觉——明明知道如何处理其中的文本信息,但就是隔着一个格式转换的问题,做不来。

    怎么办?

    办法自然是有的,例如专用工具、在线转换服务网站,甚至还可以手动复制粘贴嘛。

    但是,咱们是看重效率的,对不对?

    上述办法,有的需要在网上传输大量内容,花费时间较多,而且可能带来安全和隐私问题;有的需要专门花钱购买;有的干脆就不现实。

    怎么办?

    好消息是,Python就可以帮助你高效、快速地批量提取pdf文本内容,而且和数据整理分析工具无缝衔接,为你后续的分析处理做好基础服务工作。

    数据

    为了更好地说明流程,我为你准备好了一个压缩包。

    里面包括本教程的代码,以及我们要用到的数据。

    请你到 这个网址 下载本教程配套的压缩包。

    下载后解压,你会在生成的目录(下称“演示目录”)里面看到以下内容。

    演示目录里面包含:

    Pipfile: pipenv 配置文件,用来准备咱们变成需要用到的依赖包。后文会讲解使用方法;

    pdf_extractor.py: 利用pdfminer.six编写的辅助函数。有了它你就可以直接调用pdfminer提供的pdf文本内容抽取功能,而不必考虑一大堆恼人的参数;

    demo.ipynb: 已经为你写好的本教程 Python 源代码 (Jupyter Notebook格式)。

    另外,演示目录中还包括了2个文件夹。

    这两个文件夹里面,都是中文pdf文件,用来给你展示pdf内容抽取。

    pdf文件夹内容如下:

    newpdf文件夹内容如下:

    代码

    首先,我们读入一些模块,以进行文件操作。

    import glob

    import os

    前文提到过,演示目录下,有两个文件夹,分别是pdf和newpdf。

    我们指定 pdf 文件所在路径为其中的pdf文件夹。

    pdf_path = "pdf/"

    我们希望获得所有 pdf 文件的路径。用glob,一条命令就能完成这个功能。

    pdfs = glob.glob("{}/*.pdf".format(pdf_path))

    看看我们获得的 pdf 文件路径是否正确。

    pdfs

    ['pdf/复杂系统仿真的微博客虚假信息扩散模型研究.pdf',

    'pdf/面向影子分析的社交媒体竞争情报搜集.pdf',

    'pdf/面向人机协同的移动互联网政务门户探析.pdf']

    经验证。准确无误。

    下面我们利用 pdfminer 来从 pdf 文件中抽取内容。我们需要从辅助 Python 文件 pdf_extractor.py 中读入函数 extract_pdf_content。

    from pdf_extractor import extract_pdf_content

    用这个函数,我们尝试从 pdf 文件列表中的第一篇里,抽取内容,并且把文本保存在 content 变量里。

    content = extract_pdf_content(pdfs[0])

    我们看看 content 里都有什么:

    content

    显然,内容抽取并不完美,页眉页脚等信息都混了进来。

    不过,对于我们的许多文本分析用途来说,这无关紧要。

    你会看到 content 的内容里面有许多的 n,这是什么呢?

    我们用 print 函数,来显示 content 的内容。

    print(content)

    可以清楚看到,那些 n 是换行符。

    通过一个 pdf 文件的抽取测试,我们建立了信心。

    下面,我们该建立辞典,批量抽取和存储内容了。

    mydict = {}

    我们遍历 pdfs 列表,把文件名称(不包含目录)作为键值。这样,我们可以很容易看到,哪些pdf文件已经被抽取过了,哪些还没有抽取。

    为了让这个过程更为清晰,我们让Python输出正在抽取的 pdf 文件名。

    for pdf in pdfs:

    key = pdf.split('/')[-1]

    if not key in mydict:

    print("Extracting content from {} ...".format(pdf))

    mydict[key] = extract_pdf_content(pdf)

    抽取过程中,你会看到这些输出信息:

    Extracting content from pdf/复杂系统仿真的微博客虚假信息扩散模型研究.pdf ...

    Extracting content from pdf/面向影子分析的社交媒体竞争情报搜集.pdf ...

    Extracting content from pdf/面向人机协同的移动互联网政务门户探析.pdf ...

    看看此时字典中的键值都有哪些:

    mydict.keys()

    dict_keys(['复杂系统仿真的微博客虚假信息扩散模型研究.pdf', '面向影子分析的社交媒体竞争情报搜集.pdf', '面向人机协同的移动互联网政务门户探析.pdf'])

    一切正常。

    下面我们调用pandas,把字典变成数据框,以利于分析。

    import pandas as pd

    下面这条语句,就可以把字典转换成数据框了。注意后面的reset_index()把原先字典键值生成的索引也转换成了普通的列。

    df = pd.DataFrame.from_dict(mydict, orient='index').reset_index()

    然后我们重新命名列,以便于后续使用。

    df.columns = ["path", "content"]

    此时的数据框内容如下:

    df

    可以看到,我们的数据框拥有了pdf文件信息和全部文本内容。这样你就可以使用关键词抽取、情感分析、相似度计算等等诸多分析工具了。

    篇幅所限,我们这里只用一个字符数量统计的例子来展示基本分析功能。

    我们让 Python 帮我们统计抽取内容的长度。

    df["length"] = df.content.apply(lambda x: len(x))

    此时的数据框内容发生以下变化:

    df

    多出的一列,就是 pdf 文本内容的字符数量。

    为了在 Jupyter Notebook 里面正确展示绘图结果,我们需要使用以下语句:

    %matplotlib inline

    下面,我们让 Pandas 把字符长度一列的信息用柱状图标示出来。为了显示的美观,我们设置了图片的长宽比例,并且把对应的pdf文件名称以倾斜45度来展示。

    如果对Python编程、网络爬虫、机器学习、数据挖掘、web开发、人工智能、面试经验交流。感兴趣可以519970686,群内会有不定期的发放免费的资料链接,这些资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家。

    import matplotlib.pyplot as plt

    plt.figure(figsize=(14, 6))

    df.set_index('path').length.plot(kind='bar')

    plt.xticks(rotation=45)

    可视化分析完成。

    下面我们把刚才的分析流程整理成函数,以便于将来更方便地调用。

    我们先整合pdf内容提取到字典的模块:

    def get_mydict_from_pdf_path(mydict, pdf_path):

    pdfs = glob.glob("{}/*.pdf".format(pdf_path))

    for pdf in pdfs:

    key = pdf.split('/')[-1]

    if not key in mydict:

    print("Extracting content from {} ...".format(pdf))

    mydict[key] = extract_pdf_content(pdf)

    return mydict

    这里输入是已有词典和pdf文件夹路径。输出为新的词典。

    你可能会纳闷为何还要输入“已有词典”。别着急,一会儿我用实际例子展示给你看。

    下面这个函数非常直白——就是把词典转换成数据框。

    def make_df_from_mydict(mydict):

    df = pd.DataFrame.from_dict(mydict, orient='index').reset_index()

    df.columns = ["path", "content"]

    return df

    最后一个函数,用于绘制统计出来的字符数量。

    def draw_df(df):

    df["length"] = df.content.apply(lambda x: len(x))

    plt.figure(figsize=(14, 6))

    df.set_index('path').length.plot(kind='bar')

    plt.xticks(rotation=45)

    函数已经编好,下面我们来尝试一下。

    还记得演示目录下有个子目录,叫做newpdf对吧?

    我们把其中的2个pdf文件,移动到pdf目录下面。

    这样pdf目录下面,就有了5个文件:

    我们执行新整理出的3个函数。

    首先输入已有的词典(注意此时里面已有3条记录),pdf文件夹路径没变化。输出是新的词典。

    mydict = get_mydict_from_pdf_path(mydict, pdf_path)

    Extracting content from pdf/微博客 Twitter 的企业竞争情报搜集.pdf ...

    Extracting content from pdf/移动社交媒体用户隐私保护对策研究.pdf ...

    注意这里的提示,原先的3个pdf文件没有被再次抽取,只有2个新pdf文件被抽取。

    咱们这里一共只有5个文件,所以你直观上可能无法感受出显著的区别。

    但是,假设你原先已经用几个小时,抽取了成百上千个pdf文件信息,结果你的老板又丢给你3个新的pdf文件……

    如果你必须从头抽取信息,恐怕会很崩溃吧。

    这时候,使用咱们的函数,你可以在1分钟之内把新的文件内容追加进去。

    这差别,不小吧?

    下面我们用新的词典,构建数据框。

    df = make_df_from_mydict(mydict)

    我们绘制新的数据框里,pdf抽取文本字符数量。结果如下:

    draw_df(df)

    小结

    总结一下,本文为你介绍了以下知识点:

    如何用glob批量读取目录下指定格式的文件路径;

    如何用pdfminer从pdf文件中抽取文本信息;

    如何构建词典,存储与键值(本文中为文件名)对应的内容,并且避免重复处理数据;

    如何将词典数据结构轻松转换为Pandas数据框,以便于后续数据分析。

    如何用matplotlib和pandas自带的绘图函数轻松绘制柱状统计图形。

    讨论

    你之前做的数据分析工作中,遇到过需要从pdf文件抽取文本的任务吗?你是如何处理的?有没有更好的工具与方法?欢迎留言,把你的经验和思考分享给大家,我们一起交流讨论。

    展开全文
  • 本文为你展示,如何用Python许多PDF文件的文本内容批量提取出来,并且整理存储到数据框...pdf中的文本内容,有没有什么方便的方法提取出来呢? 我能体会到读者的心情。 我展示的例子中,文本数据都是直接可以读入...
  • 怎么把PDF中的表格转换成excel表格呢。 方法/步骤  pdf文件的格式是可以用PDF转换器转换的,同样可以用转换器将其他格式转换成pdf。打开pdf转换工具,在转换类型中找到pdf转excel。  把pdf文件...
  • 一、截图法1、打开为网页对于PDF文档来说,很多人都不知道怎么把里面的图片提取出来,我们可以右键点击PDF文件,选择打开方式——用浏览器打开,这样我们PDF文件的内容会在网页显示。2、截图这时候我...
  • 一、截图法1、打开为网页对于PDF文档来说,很多人都不知道怎么把里面的图片提取出来,我们可以右键点击PDF文件,选择打开方式——用浏览器打开,这样我们PDF文件的内容会在网页显示。2、截图这时候我...
  • ppt怎么转成pdf

    2019-09-24 22:59:29
    ppt怎么转成pdf如果您想将PPT文档里面的文字图片集成一本PDF文档,供自己欣赏,不用那么麻烦的转换成PDF你想要提取的内容的PPT文档添加到PPT转换成PDF转换器,直接点击“开始转换”就可以快速地复制出所有...
  • 今天我就分享2个简单高效技巧给你,看一次就能学会~1、直接复制PDF文件没办法像Word文档一样修改,但是把PDF文件里文字内容提取出来,不就行了!首先利用浏览器打开该PDF文件,不是直接打开哦,选中文字内容...
  • 今天我就分享2个简单高效技巧给你,看一次就能学会~1、直接复制PDF文件没办法像Word文档一样修改,但是把PDF文件里文字内容提取出来,不就行了!首先利用浏览器打开该PDF文件,不是直接打开哦,选中文字内容...
  • 3.18 需要根据条件一个复杂的表达式赋给两个变量中的一个。可以用下面这样的代码吗?((condition) ? a : b)= complicated_expression; 70 3.19 我有些代码包含这样的表达式。a ? b=c : d 有些编译器可以接受,...
  • 3.18 需要根据条件一个复杂的表达式赋给两个变量中的一个。可以用下面这样的代码吗?((condition) ? a : b)= complicated_expression; 70 3.19 我有些代码包含这样的表达式。a ? b=c : d 有些编译器可以接受,...
  • 如果基本内容看作一个主程序,那么这些高级内容部分就像子程序,随时可在需要处调用。 本书是一本篇幅较大书,从结构上看,有7章共27节。全书共有编了号图307个(其中10个为彩图)、表格25个、公式1892个。...
  • 请问怎么通过python爬虫获取网页中的pdf文件?首先链接URL爬取出来,然后get流下载pdf文件,再用pdf模块来读取它。如何学习爬虫技术抓取数据每个人写的程序用法都不一样,你自己再看下文档吧,里面应该有格式!别...
  • 我从readme.md跳转到quickstart.md,在readme.md中的内容这样写: [快速开始]($quickstart.md) 如果跳转到quickstart.md的某个锚点呢?那就像下面这样写: [快速开始-步骤三]($quickstart.md#step3) 好了,在发布文档...
  • 这是一本专门讲解Java并发的书,涉及到各种锁、常见安全的集合类,基本就是将 JUC(java.util.concurrent包的简称)里所有的内容覆盖了一遍,看完你一定有收获。强烈推荐! 上面推荐的几本书可能不太容易读懂,建议...
  • vc++ 开发实例源码包

    2014-12-16 11:25:17
    实现了 清楚internet临时文件、Cookie的清除、游览器地址栏历史地址的清除、清楚表单自动完成历史记录、清楚自动密码历史记录、清除收藏夹中的内容、清除RAS自动拨号历史记录、清除系统临时文件夹、清空回收站、清除...
  •  本书深入浅出地讲述Visual C++各种编程诀窍,以高屋建瓴的眼光看待MFC编程的技巧和思想,详尽分析了具体实现中的技术内幕。本书以其翔实知识面的覆盖、大量实用的示例和作者自身丰富的编程经验,阐述了从C语言编程...
  •  本书深入浅出地讲述Visual C++各种编程诀窍,以高屋建瓴的眼光看待MFC编程的技巧和思想,详尽分析了具体实现中的技术内幕。本书以其翔实知识面的覆盖、大量实用的示例和作者自身丰富的编程经验,阐述了从C语言编程...
  •  本书深入浅出地讲述Visual C++各种编程诀窍,以高屋建瓴的眼光看待MFC编程的技巧和思想,详尽分析了具体实现中的技术内幕。本书以其翔实知识面的覆盖、大量实用的示例和作者自身丰富的编程经验,阐述了从C语言编程...
  •  本书深入浅出地讲述Visual C++各种编程诀窍,以高屋建瓴的眼光看待MFC编程的技巧和思想,详尽分析了具体实现中的技术内幕。本书以其翔实知识面的覆盖、大量实用的示例和作者自身丰富的编程经验,阐述了从C语言编程...
  • vc++ 应用源码包_1

    热门讨论 2012-09-15 14:22:12
    实现了 清楚internet临时文件、Cookie的清除、游览器地址栏历史地址的清除、清楚表单自动完成历史记录、清楚自动密码历史记录、清除收藏夹中的内容、清除RAS自动拨号历史记录、清除系统临时文件夹、清空回收站、清除...
  • vc++ 应用源码包_6

    热门讨论 2012-09-15 14:59:46
    实现了 清楚internet临时文件、Cookie的清除、游览器地址栏历史地址的清除、清楚表单自动完成历史记录、清楚自动密码历史记录、清除收藏夹中的内容、清除RAS自动拨号历史记录、清除系统临时文件夹、清空回收站、清除...
  • vc++ 应用源码包_2

    热门讨论 2012-09-15 14:27:40
    实现了 清楚internet临时文件、Cookie的清除、游览器地址栏历史地址的清除、清楚表单自动完成历史记录、清楚自动密码历史记录、清除收藏夹中的内容、清除RAS自动拨号历史记录、清除系统临时文件夹、清空回收站、清除...
  • vc++ 应用源码包_5

    热门讨论 2012-09-15 14:45:16
    实现了 清楚internet临时文件、Cookie的清除、游览器地址栏历史地址的清除、清楚表单自动完成历史记录、清楚自动密码历史记录、清除收藏夹中的内容、清除RAS自动拨号历史记录、清除系统临时文件夹、清空回收站、清除...
  • vc++ 应用源码包_4

    热门讨论 2012-09-15 14:38:35
    实现了 清楚internet临时文件、Cookie的清除、游览器地址栏历史地址的清除、清楚表单自动完成历史记录、清楚自动密码历史记录、清除收藏夹中的内容、清除RAS自动拨号历史记录、清除系统临时文件夹、清空回收站、清除...
  • vc++ 应用源码包_3

    热门讨论 2012-09-15 14:33:15
    实现了 清楚internet临时文件、Cookie的清除、游览器地址栏历史地址的清除、清楚表单自动完成历史记录、清楚自动密码历史记录、清除收藏夹中的内容、清除RAS自动拨号历史记录、清除系统临时文件夹、清空回收站、清除...

空空如也

空空如也

1 2
收藏数 33
精华内容 13
关键字:

怎么把pdf中的内容提取出来