python实现从pdf文件中提取文本,并自动翻译的方法
作者:PlPyRbC 发布时间:2021-06-08 18:55:56
标签:python,pdf,翻译
针对Python 3.5.2 测试
首先安装两个包:
$ pip install googletrans
$ pip install pdfminer3k
googletrans会提供一个命令translate,这个命令会调用google translate api执行自动翻译:
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
谷歌翻译并不能识别段落或者整句,如果一个整句中出现换行符,会发现翻译就不完整了,以网页版谷歌翻译测试:
因此需要将pdf转换好的文本文件进行拼接,借用linux args 命令,实现此功能,将整个文件的换行符全部去掉。
但是问题又出现了,整个文件变成一行,我们的段落结构都消失了,那么我们需要手动添加delimiter,设置为一个特殊字符@。
执行如下命令:
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
将翻译后的文本重定向到一个文件,然后对文件进行简单的后处理,就可以了。
来源:https://blog.csdn.net/zhajio/article/details/79990140


猜你喜欢
- 原数据lambda函数处理我之前写了各种if substr函数,各种报错正确到热泪盈眶的函数data['Followers/Fans
- 实例如下所示:# -*- coding: utf-8 -*-#to find where use the table on xxxxx xx
- 1、封装的理解封装(Encapsulation):属性和方法的抽象属性的抽象:对类的属性(变量)进行定义、隔离和保护分为私有属性和公开属性:
- 前言SQL Server开发过程中,为了传入数据集类型的变量(比如接受C#中的DataTable类型变量),需要定义“用户自定义表类型”,通
- 测试题defer有一些规则,如果不了解,代码实现的最终结果会与预期不一致。对于这些规则,你了解吗?这是关于defer使用的代码,可以先考虑一
- 先来看一个简单的利用python调用sqlplus来输出结果的例子:import osimport sysfrom subprocess i
- 背景:线上机器,需要过滤access日志,发送给另外一个api期初是单进程,效率太低,改为多进程发送后,查看日志中偶尔会出现异常错误(忘记截
- 本文简单的分析了Python中常用的内置函数的用法,分享给大家供大家参考之用。具体分析如下:一般来说,在Python中内置了很多有用的函数,
- 为什么我也要说SQL Server的并行:这几天园子里写关于SQL Server并行的文章很多,不管怎么样,都让人对并行操作有了更深刻的认识
- 我就废话不多说了,大家还是直接看代码吧~#!/usr/bin/env python# -*- coding: utf-8 -*-import
- 问题场景:vue页面初始化展示请求后台返回的数据失败,没有报错<el-form-item label="有效日期"
- 花式打印9*9乘法表#第一个计数器i = 1while i < 10: #第二个计数器 j = 1  
- 本文目的是创建一个MySQL的image,并且在新创建出来的容器里自动启动MySQL服务接受外部连接步骤:1. 首先创建一个目录并在目录下创
- 可匹配结构:今天~前天, 几天前, 分钟秒前等 | 2017-1-4 12:10 | 2017/1/4 12:10 | 2018年4月2日
- 本文实例讲述了Flask框架请求钩子与request请求对象。分享给大家供大家参考,具体如下:请求钩子在客户端和服务器交互的过程中,有些准备
- 目标在本章中,将学习"Harris Corner Detection”背后的思想函数:cv2.cornerHa
- 这是不久前写的一个分页存储过程,可应用于SQL Server 2005上面: if object_ID('[proc_SelectF
- 1.多边形的绘制案例# 多边形的绘制案例import turtledef main():turtle.color("green&q
- 标记路径演示效果:实例代码import matplotlib.pyplot as pltimport matplotlib.path as
- 背景今天在工作中,同事遇到一个上传图片的问题:系统要求的图片大小不能超过512KB。但是同事又有很多照片。这要是每一个照片都用ps压缩的话,