Python实现中英⽂翻译⽅法总结
Table of Contents
PYTHON 实现中英⽂⾃动翻译
代码下⽅有运⾏结果的是⾃⼰运⾏使⽤过了,其他的为参考链接内的源代码,备忘总结⽽已。如有需要,请⼤家按⽬录查阅,以免浪费时间。
有道翻译API,实现中英⽂翻译
每⼩时1000次访问限制,超过就会被禁封
import json
import requests
# 翻译函数,word 需要翻译的内容
def translate(word):
# 有道词典 api
url ='/translate?smartresult=dict&smartresult=rule&smartresult=ugc&ssionFrom=null'
# 传输的参数,其中 i 为需要翻译的内容
key ={
'type':"AUTO",
'i': word,
"doctype":"json",
"version":"2.1",
"keyfrom":"fanyi.web",
"ue":"UTF-8",
"action":"FY_BY_CLICKBUTTON",
"typoResult":"true"
}
# key 这个字典为发送给有道词典服务器的内容
respon = requests.post(url, data=key)one take
# 判断服务器是否相应成功
if respon.status_code ==200:
# 然后相应的结果
el:
print("有道词典调⽤失败")
# 相应失败就返回空
return None
def get_reuslt(repson):
# 通过 json.loads 把返回的结果加载成 json 格式
result = json.loads(repson)
print("输⼊的词为:%s"% result['translateResult'][0][0]['src'])
print("翻译结果为:%s"% result['translateResult'][0][0]['tgt'])
def main():
print("本程序调⽤有道词典的API进⾏翻译,可达到以下效果:")
print("外⽂-->中⽂")印日拟联手探月
print("中⽂-->英⽂")
word =input('请输⼊你想要翻译的词或句:')
list_trans = translate(word)
get_reuslt(list_trans)
if __name__ =='__main__':
main()
本程序调⽤有道词典的API进⾏翻译,可达到以下效果:
外⽂-->中⽂
中⽂-->英⽂
请输⼊你想要翻译的词或句:Apple
输⼊的词为:Apple
翻译结果为:苹果
"""有道翻译API的调⽤函数(封装为⼀个函数使⽤)"""
import json
import requests
import re
def translator(str):
"""
input : str 需要翻译的字符串
output:translation 翻译后的字符串
"""
# API
url ='/translate?smartresult=dict&smartresult=rule&smartresult=ugc&ssionFrom=null'
# 传输的参数, i为要翻译的内容
key ={
'type':"AUTO",
'i':str,
"doctype":"json",
"version":"2.1",
"keyfrom":"fanyi.web",
"ue":"UTF-8",
"action":"FY_BY_CLICKBUTTON",
"typoResult":"true"
}
# key 这个字典为发送给有道词典服务器的内容
respon = requests.post(url, data=key)
# 判断服务器是否相应成功
if respon.status_code ==200:
# 通过 json.loads 把返回的结果加载成 json 格式
result = json.)
# print ("输⼊的词为:%s" % result['translateResult'][0][0]['src'])
# print ("翻译结果为:%s" % result['translateResult'][0][0]['tgt'])
translation = result['translateResult'][0][0]['tgt']
return translation
el:
print("有道词典调⽤失败")
# 相应失败就返回空
return None
"""有道翻译函数 DONE!"""
'有道翻译函数 DONE!'
百度翻译API, 实现⽂献翻译及⽇常单词翻译
最新百度翻译API收费标准:最近流⽔记录若当⽉翻译字符数≤2百万,当⽉免费;若超过2百万字符,按照49元/百万字符⽀付当⽉超出部分费⽤。
"""官⽅Python接⼊百度翻译API测试Demo(有所改动,官⽅DEMO有些过时,Python包有些变化)"""
import httplib2
import urllib
first name
import random
import json
from hashlib import md5
appid ='*********'#你的appid
cretKey ='********'#你的密钥
httpClient =None
myurl ='api./api/trans/vip/translate'
q ='apple'# 要翻译的词
fromLang ='en'# 翻译源语⾔
toLang ='zh'# 译⽂语⾔
salt = random.randint(32768,65536)
# 签名
sign = appid+q+str(salt)+cretKey
m1 = md5()
m1.de(encoding ='utf-8'))
sign = m1.hexdigest()
# myurl = myurl+'?appid='+appid+'&q='+urllib.par.quote(q)+'&from='+fromLang+'&to='+toLang+'&salt='+str(salt)+'&sign='+sign myurl = myurl+'?q='+urllib.par.quote(q)+'&from='+fromLang+'&to='+toLang+'&appid='+appid+'&salt='+str(salt)+'&sign='+sign try:
h = httplib2.Http('.cache')
respon, content = h.request(myurl)
if respon.status ==200:
print(content.decode('utf-8'))
print(type(content))
哈尔滨新东方学校
respon = json.loads(content.decode('utf-8'))# loads将json数据加载为dict格式
print(type(respon))
print(respon["trans_result"][0]['dst'])
except httplib2.ServerNotFoundError:
print("Site is Down!")
{"from":"en","to":"zh","trans_result":[{"src":"apple","dst":"\u82f9\u679c"}]}
<class 'bytes'>
<class 'dict'>
苹果
# -*- coding: utf-8 -*-
"""
百度翻译api,先读⼊pdf的内容,再调⽤百度翻译的api来得到翻译后的内容
"""
from pdfminer.pdfparr import PDFParr
from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdfpage import PDFPage
from pdfminer.pdfpage import PDFTextExtractionNotAllowed
from pdfminer.pdfinterp import PDFResourceManager
from pdfminer.pdfinterp import PDFPageInterpreter
from pdfminer.pdfdevice import PDFDevice
from pdfminer.layout import*
verter import PDFPageAggregator
import os
import httplib
import md5
import urllib
import random
import json
import re
import sys
import sys
reload(sys)
sys.tdefaultencoding('utf8')
def translate_txt(paper):
appid ='*********'# 你的appid
cretKey ='*********'# 你的密钥
httpClient =None
myurl ='/api/trans/vip/translate'
q = paper
# q = 'apple'
fromLang ='en'
toLang ='zh'
salt = random.randint(32768,65536)
sign = appid + q +str(salt)+ cretKey
m1 = w()
m1.update(sign)
sign = m1.hexdigest()
myurl = myurl +'?appid='+ appid +'&q='+ urllib.quote(q)+'&from='+ fromLang +'&to='+ toLang +'&salt='+str( salt)+'&sign='+ sign
try:
httpClient = httplib.HTTPConnection('api.')
# respon是HTTPRespon对象
respon = spon()
web_code = ad()
param = json.loads(web_code, encoding='utf-8')
print param['trans_result'][0]['dst']
return param['trans_result'][0]['dst']
except Exception, e:
print e
finally:
if httpClient:
httpClient.clo()
def readpdf2txt(fp):
# 来创建⼀个pdf⽂档分析器
parr = PDFParr(fp)
# 创建⼀个PDF⽂档对象存储⽂档结构
document = PDFDocument(parr)
# 检查⽂件是否允许⽂本提取
if not document.is_extractable:
rai PDFTextExtractionNotAllowed
el:
# 创建⼀个PDF资源管理器对象来存储共赏资源
rsrcmgr = PDFResourceManager()
接电话英语# 设定参数进⾏分析
laparams = LAParams()
# 创建⼀个PDF设备对象
# device=PDFDevice(rsrcmgr)
device = PDFPageAggregator(rsrcmgr, laparams=laparams)
# 创建⼀个PDF解释器对象
interpreter = PDFPageInterpreter(rsrcmgr, device)
# 处理每⼀页
for page ate_pages(document):
interpreter.process_page(page)
# 接受该页⾯的LTPage对象
layout = _result()
for x in layout:
for x in layout:
if(isinstance(x, LTTextBoxHorizontal)):
with open('','a')as f:
f._text())
# raw_paper = x.get_text()
# rel = translate_txt(raw_paper)
# f.write(str(rel) + '\n')落伍的英文怎么写
print'lalala'
if __name__ =='__main__':
'''''
解析pdf ⽂本,保存到txt⽂件中
'''
print'start'
path ='xx'# ⽂档的位置全美超模大赛 谢霆锋
pdfFile =open(path,'rb')
readpdf2txt(pdfFile)
print'done'
pdfFile.clo()
⾕歌在线翻译模块:Google translate python
每天有1000个单词的翻译限制,不适合⼤量单词翻译
from translate import Translator
translator= Translator(to_lang="zh")trueblue
confirmed
translation = anslate("Steelmaking")
print(translation)
炼钢
有道在线翻译模块:基于有道云翻译API的Python英汉互译模块
import pytranslator
youdao = udao('YOUR_KEY','YOU_KEY_FROM')
captain什么意思ans('help')