python做为一种具备比较简易英语的语法的高級表述语言表达,即便针对一些沒有java开发工作经验的人而言,Python也是很简单易操控的。强劲的Python库使你事半功倍。在解决文字信息内容时,一般我们都*须 从word,PDF文档中获取出信息内容,而PDF是最重要和最普遍采用的用于展现和交换文件的数字媒体技术*
。PDF包括有效的信息内容,连接和按键,表格域,声频,视頻和领域模型。python库非常好地集成化并给予解决非非结构化数据源。应用python能够轻轻松松从PDF中获取有用的信息内容后,您能够简单地将该数据信息用以一切深度学习或自然语言理解解决实体模型。
普遍的Python库
低于是可用解决PDF文档的一些Python库
PDFMiner :一个从PDF文档中获取信息内容的专用工具。与别的PDF有关专用工具不一样,它彻底致力于获得和剖析文字数据信息。
PyPDF2 :一个纯python PDF库,可以切分,合拼,剪裁和变换PDF文档的网页页面。它可以向PDF文档加上自定义数组,查询选择项和登陆密码。它能够从PDF中查找文字和数据库,及其将全部文件合并在一起。
Tabula-py:一个 tabula-java的简易Python包裝器,它能够载入PDF表。您能够从PDF载入报表并更换为pandas的DataFrame。tabula-py还准许您将PDF文档转换为CSV / TSV / JSON文档。
Slate:PDFMiner的包裝器完成
PDFQuery:pdfminer,lxml和pyquery的轻量包裝器。它致力于应用更加方便的编码靠谱地从PDF结合中取出数据信息。
xpdf :xpdf的 Python包裝器(现阶段仅仅“pdftotext”应用工具)
从pdf中获取文字
应用PyPDF2从pdf中获取简易文字,实例编码如下所示:
import PyPDF2 # pdf file object # you can find find the pdf file with complete code in belowpdf FileObj = open('example.pdf', 'rb') # pdf reader objectpdfReader = PyPDF2.Pdf FileReader(pdfFileObj )# number of pages in pdfprint(pdfReader.numPages) # a page objectpageObj = pdfReader.getPage(0) # extracting text from page. # this will print the text you can also save that into String print(pageObj.extractText())
从pdf中载入表格数据
应用Pdf中的Table数据信息,我们可以应用Tabula-py,实例编码如下所示:
import tabula # readinf the PDF file that contain Table Data # you can find find the pdf file with complete code in below # read_pdf will save the pdf table into Pandas Dataframe df = tabula.read_pdf("offense.pdf") # in order to print first 5 lines of Table df.head()
假如您的Pdf文件包含好几个表,能够实现以下设定:
df = tabula.read_pdf(“crime.pdf”,multiple_tables = True)
还能够从一切特殊PDF网页页面的指定一部分获取信息内容
tabula.read_pdf(“crime.pdf”,area =(126,149,212,462),pages = 1)
设定载入輸出为JSON文件格式
tabula.read_pdf(“crime.pdf”,output_format =“json”)
将Pdf导出来到Excel
应用下面的编码将PDF数据交换为Excel或CSV
tabula.convert_into(“crime.pdf”,“crime_testing.xlsx”,output_format =“xlsx”)