python实现从pdf文件中提取文本,并自动翻译的方法


Posted in Python onNovember 28, 2018

针对Python 3.5.2 测试

首先安装两个包:

$ pip install googletrans

$ pip install pdfminer3k

googletrans会提供一个命令translate,这个命令会调用google translate api执行自动翻译:

python实现从pdf文件中提取文本,并自动翻译的方法

python实现从pdf文件中提取文本,并自动翻译的方法

python实现从pdf文件中提取文本,并自动翻译的方法

pdfminer3k会提供一个工具脚本pdf2txt.py:

$ pdf2txt.py xxx.pdf

从stackoverflow搜索到可以去除页眉和页脚的命令(强烈推荐):

使用Ubuntu提供的pdftotext工具:

$ pdftotext -y 50 -H 650 -W 1000 -nopgbrk sva.pdf

$ pdftotext -f 147 -l 166 -y 50 -H 650 -W 1000 -nopgbrk sva.pdf

谷歌翻译并不能识别段落或者整句,如果一个整句中出现换行符,会发现翻译就不完整了,以网页版谷歌翻译测试:

python实现从pdf文件中提取文本,并自动翻译的方法

因此需要将pdf转换好的文本文件进行拼接,借用linux args 命令,实现此功能,将整个文件的换行符全部去掉。

但是问题又出现了,整个文件变成一行,我们的段落结构都消失了,那么我们需要手动添加delimiter,设置为一个特殊字符@。

python实现从pdf文件中提取文本,并自动翻译的方法

执行如下命令:

cat trans_src.txt |xargs |xargs -0 -d '@' -i{} translate -d zh-cn {} |tee trans_dst.txt

cat sva_src_1to2.txt |xargs |xargs -0 -d '&' -i{} translate -d zh-cn {} |xargs -d'\n' -n4 | awk -F'zh-cn' '{print $2}' | awk -F'[][]' '{print $2}' | tee sva_dst_1to2.txt

将翻译后的文本重定向到一个文件,然后对文件进行简单的后处理,就可以了。

python实现从pdf文件中提取文本,并自动翻译的方法

以上这篇python实现从pdf文件中提取文本,并自动翻译的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现TCP/IP协议下的端口转发及重定向示例
Jun 14 Python
Python tkinter模块弹出窗口及传值回到主窗口操作详解
Jul 28 Python
关于Django显示时间你应该知道的一些问题
Dec 25 Python
python爬虫使用cookie登录详解
Dec 27 Python
python中使用PIL制作并验证图片验证码
Mar 15 Python
selenium+python实现自动登录脚本
Apr 22 Python
对python sklearn one-hot编码详解
Jul 10 Python
Django中信号signals的简单使用方法
Jul 04 Python
解决django model修改添加字段报错的问题
Nov 18 Python
Pyorch之numpy与torch之间相互转换方式
Dec 31 Python
浅谈Python中os模块及shutil模块的常规操作
Apr 03 Python
Django-celery-beat动态添加周期性任务实现过程解析
Nov 26 Python
10分钟教你用Python实现微信自动回复功能
Nov 28 #Python
Linux CentOS Python开发环境搭建教程
Nov 28 #Python
Python 获取中文字拼音首个字母的方法
Nov 28 #Python
Python3爬虫使用Fidder实现APP爬取示例
Nov 27 #Python
python如何查看微信消息撤回
Nov 27 #Python
python中退出多层循环的方法
Nov 27 #Python
为什么Python中没有"a++"这种写法
Nov 27 #Python
You might like
php旋转图片90度的方法
2013/11/07 PHP
php实现Session存储到Redis
2015/11/11 PHP
php获取flash尺寸详细数据的方法
2016/11/12 PHP
JavaScript 闭包深入理解(closure)
2009/05/27 Javascript
javascript 强制刷新页面的实现代码
2009/12/13 Javascript
基于MVC3方式实现下拉列表联动(JQuery)
2013/09/02 Javascript
JavaScript 语言基础知识点总结(思维导图)
2013/11/10 Javascript
jQuery实现平滑滚动到指定锚点的方法
2015/03/20 Javascript
JS实现Fisheye效果动感放大菜单代码
2015/10/21 Javascript
jQuery+CSS3实现3D立方体旋转效果
2015/11/10 Javascript
深入理解jquery自定义动画animate()
2016/05/24 Javascript
jquery插件格式实例分析
2016/06/16 Javascript
JS控制TreeView的结点选择
2016/11/11 Javascript
vue组件实例解析
2017/01/10 Javascript
canvas 绘制圆形时钟
2017/02/22 Javascript
详解微信小程序框架wepy踩坑记录(与vue对比)
2019/03/12 Javascript
JS使用iView的Dropdown实现一个右键菜单
2019/05/06 Javascript
Vue实现仿iPhone悬浮球的示例代码
2020/03/13 Javascript
bootstrap-table后端分页功能完整实例
2020/06/01 Javascript
jQuery 移除事件的方法
2020/06/20 jQuery
[01:15:18]2014 DOTA2国际邀请赛中国区预选赛 LGD VS Speed Gaming.cn
2014/05/22 DOTA
Python中的数据对象持久化存储模块pickle的使用示例
2016/03/03 Python
玩转python selenium鼠标键盘操作(ActionChains)
2020/04/12 Python
Python中pygal绘制雷达图代码分享
2017/12/07 Python
用python实现百度翻译的示例代码
2018/03/09 Python
解决torch.autograd.backward中的参数问题
2020/01/07 Python
python encrypt 实现AES加密的实例详解
2020/02/20 Python
Pandas中DataFrame基本函数整理(小结)
2020/07/20 Python
Paper Cape官网:美国婴儿和儿童服装品牌
2019/11/02 全球购物
员工培训心得体会
2013/12/30 职场文书
楼面部长岗位职责范本
2014/02/14 职场文书
求职意向书范本
2015/05/11 职场文书
工厂员工辞职信范文
2015/05/12 职场文书
深入理解go slice结构
2021/09/15 Golang
CKAD认证中部署k8s并配置Calico插件
2022/03/31 Servers
Java 中的 Lambda List 转 Map 的多种方法详解
2022/07/07 Java/Android