最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python如何提取英語(yǔ)pdf內(nèi)容并翻譯

 更新時(shí)間:2020年03月03日 10:31:35   作者:Zuolyme  
這篇文章主要為大家詳細(xì)介紹了python如何提取英語(yǔ)pdf內(nèi)容并翻譯,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了python提取英語(yǔ)pdf內(nèi)容并翻譯的具體代碼,供大家參考,具體內(nèi)容如下

前期準(zhǔn)備工作:

翻譯接口: 調(diào)用的是百度翻譯的api (注冊(cè)后,每個(gè)月有2百萬(wàn)的免費(fèi)翻譯字符數(shù)。)

pdfminer3k: pdfminer3k是pdfminer的Python 3端口。 PDFMiner是一種從PDF文檔中提取信息的工具。 與其他PDF相關(guān)工具不同,它完全專注于獲取和分析文本數(shù)據(jù)。 PDFMiner允許獲取頁(yè)面中文本的確切位置,以及字體或線條等其他信息。 它包括一個(gè)PDF轉(zhuǎn)換器,可以將PDF文件轉(zhuǎn)換為其他文本格式(如HTML)。 它有一個(gè)可擴(kuò)展的PDF解析器,可用于其他目的而不是文本分析。

要解析PDF至少需要兩個(gè)類:PDFParser PDFDocument,PDFParser 從文件中提取數(shù)據(jù),PDFDocument保存數(shù)據(jù)。另外還需要PDFPageInterpreter去處理頁(yè)面內(nèi)容,PDFDevice將其轉(zhuǎn)換為我們所需要的。PDFResourceManager用于保存共享內(nèi)容例如字體或圖片。

安裝:pip install pdfminer3k

前期工作準(zhǔn)備好后,即可開始代碼編寫。

# -*- coding: utf-8 -*-
import sys
import io

"""
Created on Sun Mar 3 12:22:49 2019

@author: Ben
"""

import importlib
importlib.reload(sys)

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

#from PyPDF2.pdf import PdfFileReader, PdfFileWriter, ContentStream


import requests
import string
import time
import hashlib
import json


##初始化

api_url = "http://api.fanyi.baidu.com/api/trans/vip/translate"
api_id = "" ##申請(qǐng)的百度翻譯接口的id
cyber = "" ##申請(qǐng)的百度翻譯接口的password

pdffile = "multinet.pdf" ##處理的pdf
ENtextfile = "ENmultinet.txt" ##存儲(chǔ)提取的txt
CNtextfile = "CNmultinet.txt" ##存儲(chǔ)翻譯的結(jié)果
isTranslate = False ##是否將提取的英文翻譯為中文
## 處理PDF
## 讀取PDF的內(nèi)容 filename是待處理的PDF的名字

###使用PDFminer讀取
def getDataUsingPyPDF(filename):
 parser = PDFParser(open(pdffile,'rb')) #以二進(jìn)制打開文件 ,并創(chuàng)建一個(gè)pdf文檔分析器
 doc = PDFDocument() ##創(chuàng)建一個(gè)pdf文檔
 #將文檔對(duì)象和連接分析器連接起來(lái)
 parser.set_document(doc) 
 doc.set_parser(parser)
 doc.initialize()
 
 
 #判斷該pdf是否支持txt轉(zhuǎn)換
 
 if doc.is_extractable:
 #創(chuàng)建一個(gè)PDF設(shè)備對(duì)象
 rsrcmgr = PDFResourceManager()
 #創(chuàng)建一個(gè)pdf設(shè)備對(duì)象
 laparamas = LAParams()
 device = PDFPageAggregator(rsrcmgr, laparams=laparamas)
 #創(chuàng)建一個(gè)PDF解釋器對(duì)象
 interpreter = PDFPageInterpreter(rsrcmgr, device)
 contents = "" #保存讀取的text
 
 #依次讀取每個(gè)page的內(nèi)容
 
 for page in doc.get_pages():
 interpreter.process_page(page)
 layout = device.get_result() # 這里layout是一個(gè)LTPage對(duì)象 里面存放著 這個(gè)page解析出的各種對(duì)象 一般包括LTTextBox, LTFigure, LTImage, LTTextBoxHorizontal 等等 想要獲取文本就獲得對(duì)象的text屬性,
 #在windows下,新文件的默認(rèn)編碼是gbk編碼,所以我們?cè)趯懭胛募臅r(shí)候需要設(shè)置一個(gè)編碼格式,如下:
 for x in layout:
 if(isinstance(x,LTTextBoxHorizontal)):
  results = x.get_text()
  results = results.replace("\n","") #去掉換行符 因?yàn)榕虐鎲栴} 有的換行導(dǎo)致句子中斷
  contents += (results)
 ##為了看著舒服,每一句為一行
 saveText(contents.replace(".",".\n"),ENtextfile)
 return contents
## 將讀取的content以txt格式存放到本地
def saveText(content,Textfile):
 with open(Textfile,"w",encoding='utf-8') as f:
 f.write(content)


## 翻譯從pdf提取的content
def translate(content):
 salt = str(time.time())[:10]
 final_sign = str(api_id) + content + salt+ cyber
 final_sign = hashlib.md5(final_sign.encode("utf-8")).hexdigest()
 # from to 代表翻譯的語(yǔ)言 
 paramas = {
 'q':content,
 'from':'en',
 'to':'zh',
 'appid':'%s'%api_id,
 'salt':'%s'%salt,
 'sign':'%s'%final_sign 
 }
 my_url = api_url+'?appid='+str(api_id)+'&q='+content+'&from='+'zh'+'&to='+'en'+'&salt='+salt+'&sign='+final_sign
 response = requests.get(api_url,params = paramas).content
 content = str(response,encoding = "utf-8")
 json_reads = json.loads(content)
 return json_reads['trans_result'][0]['dst']+" " 
###

content = getDataUsingPyPDF(pdffile)
print("讀取pdf成功,將其保存為txt格式")

if(isTranslate):
 clist = content.split(".") #split() 通過指定.將英文分成多個(gè)句子
 i = 0
 chinese = ""
 print("一共有"+str(clist.__len__())+"行需要翻譯")
 print("開始翻譯...請(qǐng)耐心等待")

 while(i<clist.__len__()):
 chinese += (translate(clist[i]).replace("\n","。"))
 #chinese += '\n'
 i+=1
 saveText(chinese,CNtextfile)
 print("翻譯結(jié)束,ok")

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python實(shí)現(xiàn)矩陣運(yùn)算的方法代碼實(shí)例

    Python實(shí)現(xiàn)矩陣運(yùn)算的方法代碼實(shí)例

    這篇文章主要介紹了Python實(shí)現(xiàn)矩陣運(yùn)算的方法代碼實(shí)例,想用python實(shí)現(xiàn)一個(gè)矩陣類,它可以像matlab或者numpy中的矩陣一樣進(jìn)行運(yùn)算,生成一個(gè)矩陣類Matrix之后,他接收一個(gè)二維列表作為輸入,然后將對(duì)應(yīng)的值寫到矩陣對(duì)應(yīng)的位置,需要的朋友可以參考下
    2023-08-08
  • Python實(shí)現(xiàn)視頻字幕時(shí)間軸格式轉(zhuǎn)換的示例

    Python實(shí)現(xiàn)視頻字幕時(shí)間軸格式轉(zhuǎn)換的示例

    本文主要介紹了Python實(shí)現(xiàn)視頻字幕時(shí)間軸格式轉(zhuǎn)換的示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-11-11
  • Python數(shù)據(jù)分析之?Pandas?Dataframe應(yīng)用自定義

    Python數(shù)據(jù)分析之?Pandas?Dataframe應(yīng)用自定義

    這篇文章主要介紹了Python數(shù)據(jù)分析之?Pandas?Dataframe應(yīng)用自定義,文章基于python的相關(guān)資料展開?Pandas?Dataframe應(yīng)用自定義的詳細(xì)內(nèi)容,需要的小伙伴可以參考一下
    2022-05-05
  • Python閉包實(shí)現(xiàn)計(jì)數(shù)器的方法

    Python閉包實(shí)現(xiàn)計(jì)數(shù)器的方法

    這篇文章主要介紹了Python閉包實(shí)現(xiàn)計(jì)數(shù)器的方法,分析了閉包的概念及實(shí)現(xiàn)計(jì)數(shù)器的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • Python將多個(gè)excel表格合并為一個(gè)表格

    Python將多個(gè)excel表格合并為一個(gè)表格

    這篇文章主要為大家詳細(xì)介紹了Python將多個(gè)excel表格合并為一個(gè)表格的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • 用python實(shí)現(xiàn)一個(gè)讓人戒不掉的百變款消消樂

    用python實(shí)現(xiàn)一個(gè)讓人戒不掉的百變款消消樂

    消消樂的熱門程度幾乎趕上王者榮耀,你是否也有收到過好友邀請(qǐng)你幫解鎖關(guān)卡的時(shí)候,今天小編帶你用python編寫一個(gè)自己的消消樂升級(jí)版,同學(xué)請(qǐng)往下看
    2021-09-09
  • Python使用python-docx讀寫word文檔

    Python使用python-docx讀寫word文檔

    這篇文章主要為大家詳細(xì)介紹了Python使用python-docx讀寫word文檔,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • 使用Python Fast API發(fā)布API服務(wù)的過程詳解

    使用Python Fast API發(fā)布API服務(wù)的過程詳解

    這篇文章主要介紹了使用Python Fast API發(fā)布API服務(wù),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • Python3新增的Byte類型解讀

    Python3新增的Byte類型解讀

    這篇文章主要介紹了Python3新增的Byte類型,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • python設(shè)計(jì)tcp數(shù)據(jù)包協(xié)議類的例子

    python設(shè)計(jì)tcp數(shù)據(jù)包協(xié)議類的例子

    今天小編就為大家分享一篇python設(shè)計(jì)tcp數(shù)據(jù)包協(xié)議類的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2019-07-07

最新評(píng)論

游戏| 斗六市| 平度市| 茌平县| 松阳县| 舟山市| 临朐县| 乌海市| 蒲江县| 朝阳市| 淄博市| 和林格尔县| 通海县| 定南县| 克拉玛依市| 阳东县| 井陉县| 武强县| 桓台县| 平邑县| 通山县| 西充县| 个旧市| 静海县| 凌云县| 齐齐哈尔市| 安泽县| 深州市| 潜江市| 洛浦县| 隆子县| 双柏县| 桃园市| 灌云县| 泗水县| 中江县| 扎兰屯市| 漠河县| 扶沟县| 成武县| 白河县|