Python3自然语言处理(4)——处理原始文本
注:转载请联系博主,或关注微信公众号"引文空间",后台提出转载申请,等待回复。否则将举报抄袭!
文本的最重要来源无疑是网络。探索现成的文本集合很方便,但是每个人都有自己的文本来源,我们需要学习如何访问它们。
1.在Python中读取PDF文件
要从Python中访问PDF文件,首先需要安装PyPDF2库:
pip install pypdf2
创建一个新的Python文件,命名为pdf.py并添加以下代码:
from PyPDF2 import PdfFileReader
def getTextPDF(pdfFileName,password=''):
pdf_file=open(pdfFileName,'rb')
read_pdf=PdfFileReader(pdf_file)
if password!='':
read_pdf.decrypt(password)
text=[]
for i in range(0,read_pdf.getNumPages()-1):
text.append(read_pdf.getPage(i).extractText())
return '\n'.join(text)
第1代码会导入PyPDF2库中的PdfFileReader类。然后创建一个可以读取一个PDF文件并返回其全文的函数,该函数需要两个参数,一个是你要读取的PDF文件路径,一个是这个PDF文件的密码(如果有的话),password参数是可选的。第3行代码会以读取和反向查找模式打开文件,本质是一个Python文件打开命令/函数,仅能打开非文本的二进制文件。以反向查找模式打开文件很重要,因为当加载文件内容时,PyPDF2模块试图从尾部开始读取文件内容。第4行将打开的文件传递给PdfFileReader类,用于处理PDF文档。如果文件设置了密码保护,就要解密被密码保护的PDF文件,当然,如果在函数调用时设置了密码,那么我们在解密这个文件时也同样需要密码。从第7行开始从PDF文件中读取文本,创建一个字符串列表,并将每一页的文本都添加到这个列表中。第10行为返回最终的输出结果,将列表中所有的字符串都连接起来,并且在每个字符串之间都加一个换行符,返回连接后的单一字符串。
在pdf.py目录下创建另一个名为test.py的文件,在test.py中添加如下代码:
import pdf
pdfFile=r'C:\Users\Administrator\Desktop\examples\pdf2.pdf'
print('PDF1:\n',pdf.getTextPDF(pdfFile))
pdfFile的路径是我的文件存储路径,读者可以根据自己的情况调整。上面的例子中我们打印输出的是一个未加密的PDF文档,如果加密的话格式如下(假定密码为123456):
import pdf
pdfFile=r'C:\Users\Administrator\Desktop\examples\pdf2.pdf'
print('PDF1:\n'