当涉及到PDF中的数据挖掘,PDFPlumber是您的得力助手

在这里插入图片描述

当涉及到处理PDF中的信息时,数据科学家们常常需要面临一项挑战。有些人可能会采用一种可怕的方法,即手动复制和粘贴所需的数据。这种方法不仅效率低下,而且对于长期工作来说是最慢和最低效的方式之一。此外,有些PDF文件可能不容易进行这种手动操作。

然而,有幸的是,有一种强大而简单的工具可以改善这个问题,那就是PDFPlumber,这是一个开源的Python包。它的出现使得从PDF中提取信息变得更加容易和高效。在下文中,我们将详细介绍如何使用PDFPlumber来处理PDF文件,以及示例PDF文件的用法。

通过使用PDFPlumber,数据科学家可以更轻松地解析PDF文件,提取所需的信息,从而提高工作效率并避免繁琐的手动操作。接下来将深入研究如何使用这个强大的工具。

在本教程中使用的工具是PDFPlumber,一个开源的python包,它很棒,简单而强大。使用的样例pdf如下:

在这里插入图片描述

安装并导入模块

pip install pdfplumber -q
import pdfplumber

现在来看看PDF Plumber的主要功能:

open函数

此函数将打开作为参数传递目录的文件,假设上述样例的文件名为file.pdf的变量,调用该函数后得到的返回结果命名为pdf, 包含文件目录

pdf = pdfplumber.open('/content/file.pdf')

pages[]

打开文件后,想选择要提取要查找的信息的页面,假设想要的信息在第一页,索引将为0:

page = pdf.pages[0]

想象正在阅读一本书,第一步是打开这本书,然后寻找想阅读的页面,然后阅读它(即从中提取信息),Python的工作方式相同。

extract_text()

现在已经打开了一个页面,需要从中提取文本:

text = page.extract_text()

print打印出变量text,将得到如下输出:

SIGMOIDAL 
   
Relatório Diário 
 
Data: 10/08/2020 
 
RECEITA: R$ 1.397,00 
DADOS ATUALIZADOS POR CARLOS MELO
 
 
Visitantes: 1367 
A quantidade de visitantes diz respeito a visitantes únicos visitando qualquer 
página do domínio ou subdomínio sigmoidal.ai. Compreende, então, cursos, 
blogs e landing pages. 
 Inscritos: 33 
É considerado aqui o número de leads gerados por meio de cadastro 
voluntário nos formulários do cabeçalho, rodapé ou materiais ricos (como 
eBook, infográficos, entre outros). 
 Assinantes: 6 
Clientes assinantes da Escola de Data Science, considerando-se o plano 
renovável de assinatura mensal. 

print函数将’\n’识别为换行符,'\t’识别为制表符,因此文本已经被格式化过的。顺便说一句,这是用来写这篇文章的提取文本,直接调用text的话,输出是不一样的:

SIGMOIDAL \n \nRelatório Diário \n \nData: 10/08/2020 \n \nRECEITA: R$ 1.397,00 \nDADOS ATUALIZADOS POR CARLOS MELO\n \n \n Visitantes: 1367 \nA quantidade de visitantes diz respeito a visitantes únicos visitando qualquer \npágina do domínio ou subdomínio sigmoidal.ai. Compreende, então, cursos, \nblogs e landing pages. \n Inscritos: 33 \nÉ considerado aqui o número de leads gerados por meio de cadastro \nvoluntário nos formulários do cabeçalho, rodapé ou materiais ricos (como \neBook, infográficos, entre outros). \n Assinantes: 6 \nClientes assinantes da Escola de Data Science, considerando-se o plano \nrenovável de assinatura mensal. \n \n \n

上述内容就是想要开始处理文本的最初的方式。现在假设想要提取这个文件中包含的利润值,即1397,00,必须进一步的对这个输出进行处理,直到得到“1397.00”作为字符串,然后将其转换为浮点数。提取代码如下:

float(text.split("\n")[5].replace("\t", "").split("R$")[1])

#1397.00

如果有很多遵循相同文本模式的文件,就可以写一个“for循环”,然后代码会遍历所有这些文件,并返回每个文件的利润值。

sum = 0

# making the function
for reports in week_files:
     report = pdfplumber.open(reports)
     page = report.pages[0]
     text = page.extract_text()  # extracting the text
     value = text.split("\n")[6].replace("\t", "").split("R$")[1]
     value = float(value)
     sum += value
print("{} ----> {}".format(reports, value))

参考

系统化地阐述了数据挖掘和知识发现技术的产生、发展、应用和相关概念、原理、算法。对数据挖掘的主要技术分支,包括关联规则、分类、聚类、序列、空间以及Web挖掘等进行了理论剖析和算法描述。本书的许多工作是作者们在攻读博士学位期间的工作总结,一方面,对于相关概念和技术的阐述尽量先从理论分析入手,在此基础上进行技术归纳。另一方面,为了保证技术的系统性,所有的挖掘模型和算法描述都在统一的技术归纳框架下进行。同时,为了避免抽象算法描述给读者带来的理解困难,本书的所有典型算法都通过具体跟踪执行实例来进一步说明。本书共分8章,各章相对独立成篇,以利于读者选择性学习。在每章后面都设置专门一节来对本章内容和文献引用情况进行归纳,它不仅可以帮助读者对相关内容进行整理,而且也起到对本内容相关文献的注释性索引功能。第1章是绪论,系统地介绍了数据挖掘产生的商业和技术背景,从不同侧面剖析了数据挖掘的概念和应用价值;第2章给出了知识发现的过程分析和应用体系结构设计;第3章对关联规则挖掘的原理和算法进行全面阐述;第4章给出分类的主要理论和算法描述;第5章讨论聚类的常用技术和算法;第6章对时间序列分析技术和序列挖掘算法进行论述;第7章系统地介绍了Web挖掘的主要研究领域和相关技术及算法;第8章是对空间数据挖掘技术和算法的分析和讲述。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

uncle_ll

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值