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中输出ASCII大文字、艺术字、字符字小技巧
Apr 28 Python
python使用smtplib模块通过gmail实现邮件发送的方法
May 08 Python
Python新手们容易犯的几个错误总结
Apr 01 Python
python tornado微信开发入门代码
Aug 24 Python
Python3爬虫学习之应对网站反爬虫机制的方法分析
Dec 12 Python
利用Python实现微信找房机器人实例教程
Mar 10 Python
深度辨析Python的eval()与exec()的方法
Mar 26 Python
python在新的图片窗口显示图片(图像)的方法
Jul 11 Python
Python 内置函数globals()和locals()对比详解
Dec 23 Python
python图形开发GUI库wxpython使用方法详解
Feb 14 Python
python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例
Mar 06 Python
使用Python实现音频双通道分离
Dec 25 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
星际争霸中的热键
2020/03/04 星际争霸
php处理单文件、多文件上传代码分享
2016/08/24 PHP
JavaScript 未结束的字符串常量常见解决方法
2010/01/24 Javascript
javaScript checkbox 全选/反选及批量删除
2010/04/28 Javascript
在服务端(Page.Write)调用自定义的JS方法详解
2013/08/09 Javascript
jquery中常用的SET和GET$(”#msg”).html循环介绍
2013/10/09 Javascript
深入理解js generator数据类型
2016/08/16 Javascript
jQuery实现拖动剪裁图片作为头像
2016/12/28 Javascript
微信小程序 自定义Toast实例代码
2017/06/12 Javascript
ActiveX控件的使用-js实现打印超市小票功能代码详解
2017/11/22 Javascript
JS实现简易换图时钟功能分析
2018/01/04 Javascript
angularjs实现table增加tr的方法
2018/02/27 Javascript
详解ES6 Promise对象then方法链式调用
2018/10/20 Javascript
js+html实现周岁年龄计算器
2019/06/25 Javascript
详解Node.js使用token进行认证的简单示例
2020/05/25 Javascript
Python中3种内建数据结构:列表、元组和字典
2014/11/30 Python
Django框架下在视图中使用模版的方法
2015/07/16 Python
星球大战与Python之间的那些事
2016/01/07 Python
Python探索之创建二叉树
2017/10/25 Python
keras 读取多标签图像数据方式
2020/06/12 Python
.img/.hdr格式转.nii格式的操作
2020/07/01 Python
美国顶级水上运动专业店:Marine Products
2018/04/15 全球购物
丝芙兰墨西哥官网:Sephora墨西哥
2020/05/30 全球购物
介绍一下RMI的基本概念
2016/12/17 面试题
中科前程Java笔试题
2016/11/20 面试题
四年大学生活的个人自我评价
2013/12/11 职场文书
物流管理专业自荐信
2014/06/23 职场文书
预防艾滋病宣传活动总结
2015/05/09 职场文书
跑吧孩子观后感
2015/06/10 职场文书
公司致全体员工的感谢信
2019/06/24 职场文书
导游词之安徽巢湖
2019/12/26 职场文书
python实现简单区块链结构
2021/04/25 Python
Python实现DBSCAN聚类算法并样例测试
2021/06/22 Python
MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函数的使用详解
2021/06/26 MySQL
MySQL基于索引的压力测试的实现
2021/11/07 MySQL
Zabbix对Kafka topic积压数据监控的解决方案
2022/07/07 Servers