一直以来,读透一篇英文文献并掌握其传递的核心思想一直是一件棘手的事情。相信饱受英文文献折磨的同学,也对于文献中出现的生僻词汇和专业词汇也十分困扰。本文从英文文献的词频的角度提供技术解决方案,主要包括三个主要的部分:
第一步,将英文文献由PDF格式转化成纯文本的格式; 第二步,对纯文本的英文文献进行清洗,并进行词频统计; 第三步,对统计的词频借助网络爬虫进行精准的翻译。 One: 英文文献PDF转成纯文本TXT格式前期准备
运行程序版本:Python 3.7
集成开发环境:Pycharm 2019.3 Pro
安装pdfminer模块:
另外,可以通过pip直接安装pdfminer3k
pip install pdfminer3k
模块导入
1.导入sys模块,为了读取本地硬盘中,英文文献文件夹中的多个文件名称
import sys
import importlib
importlib.reload(sys)
2.导入pdfminer3k核心模块
from pdfminer.pdfparser import PDFParser,PDFDocument
from pdfminer.pdfinterp import PDFResourceManager,PDFPageInterpreter
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LTTextBoxHorizontal,LAParams
from pdfminer.pdfinterp import PDFTextExtractionNotAllowed
3.构建解析函数parse()
def parse(text_path):
"""解析PDF文本,并保存到TXT文件中"""
fp = open(text_path,'rb') #'rb'表示解读为二进制数据
#用文件对象创建一个PDF文档分析器
parer = PDFParser(fp)
#创建一个PDF文档
doc = PDFDocument()
#连接分析器,与文档对象--也就说内容与载体连接
parer.set_document(doc)
doc.set_parser(parer)
#提供初始化密码,如果没有密码,就创建一个空的字符串
doc.initialize()
#检测文档是否提供txt格式转化,不提供就忽略
if not doc.is_extractable:
raise PDFTextExtractionNotAllowed
else:
#创建PDF,资源管理器,来共享资源
rsrcmgr = PDFResourceManager()
#创建一个PDF设备对象
laparams = LAParams()
device = PDFPageAggregator(rsrcmgr,laparams=laparams)
#创建一个PDF解释其对象
interpreter = PDFPageInterpreter(rsrcmgr,device)
#循环遍历列表,每次处理一个page内容
#doc.get_pages() 获取pages列表
for page in doc.get_pages():
interpreter.process_page(page)
#接受该页面的LTPage对象
layout = device.get_result()
#这里layout是一个LTpage对象,里面存放着这个page解析出的各种对象
#一般包括LTTextBox,LTFigure,LTImage,LTTextHorizontal等等
#想要获得文本就获得对象的text属性
for x in layout:
if(isinstance(x,LTTextBoxHorizontal)):
with open(r"prediction_text.txt",'a',encoding= 'utf-8') as f:
results = x.get_text()
# return results
f.write(results+'\n')
4.读取本地文件的所有英文文献的名称,并放在pdfs列表中
import glob
pdf_path = r'G:\pythonPjc\PDFminer3k_Project\document_translation'
pdfs = glob.glob("{}/*.pdf".format(pdf_path))
原创文章 1获赞 6访问量 159
关注
私信
展开阅读全文
作者:编程学习笔记