问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Python有哪些好用的语言翻译方法

发布网友 发布时间:2022-04-23 05:13

我来回答

4个回答

懂视网 时间:2022-05-11 00:27

本文实例讲述了python自动翻译实现方法。分享给大家供大家参考,具体如下:

以前学过python的基础,一般也没用过。后来有一个参数表需要中英文。想了一下,还是用python做吧。调用的百度翻译接口,经历了乱码、模块不全等问题。一般google,一边做的。分享一下。

#encoding=utf-8
## eagle_91@sina.com
## created 2014-07-22
import urllib
import urllib2
import MySQLdb
import json
import gc
import time
url = 'http://openapi.baidu.com/public/2.0/bmt/translate'
_sleepTime = 0.5
_limit = 1000
## 链接mysql
conn = MySQLdb.connect(host='localhost',user='root',passwd='',charset='utf8')
curs = conn.cursor()
conn.select_db('test')
## 搜索要操作的表
count=curs.execute("""SELECT * FROM sb_parameters WHERE ISNULL(en_name) ORDER BY id ASC""")
## print curs.fetchall()
## print count
results = curs.fetchmany(_limit)
for r in results:
 gc.collect()
 chin = unicode(r[3]).encode('utf-8')
 ## print chin
 values = {'client_id':'PWrGllvVAIFcD0sYqaipwkAV','q':chin,'from':'zh','to':'en'}
 data = urllib.urlencode(values)
 req = urllib2.Request(url, data)
 response = urllib2.urlopen(req)
 the_page = response.read()
 returnData = json.loads(the_page)
 ## print returnData
 if returnData.has_key("error_code"):
 continue;
 inputData = returnData["trans_result"][0]["dst"]
 try:
 sql = "UPDATE `sb_parameters` SET `en_name`='%s' WHERE `id` = %d" % (MySQLdb.escape_string(unicode(inputData).encode('utf-8')),r[0])
 print sql
 curs.execute(sql)
 conn.commit()
 time.sleep(_sleepTime)
 except EOFError:
 sql = "UPDATE `sb_parameters` SET `en_name`='%s' WHERE `id` = %d" % ('',r[0])
 print sql
 curs.execute(sql)
 conn.commit()
 continue
conn.commit()
## 关闭链接
curs.close()
## 关闭数据库
conn.close()


更多python自动翻译实现相关文章请关注PHP中文网!

热心网友 时间:2022-05-10 21:35

1 import re
2 import urllib.parse, urllib.request
3 import hashlib
4 import urllib
5 import random
6 import json
7 import time
8 from translate import Translator

非python自带的库,如python google translator,需要手动安装,命令pip install mole_name。

1. 百度翻译

1 appid = 'your_appid'
2 secretKey = 'your_secretKey'
3 url_ = 'http://api.fanyi.baidu.com/api/trans/vip/translate'
4
5 def translateBai(text, f='ja', t='zh'):
6 salt = random.randint(32768, 65536)
7 sign = appid + text + str(salt) + secretKey
8 sign = hashlib.md5(sign.encode()).hexdigest()
9 url = url_ + '?appid=' + appid + '&q=' + urllib.parse.quote(text) + '&from=' + f + '&to=' + t + \
10 '&salt=' + str(salt) + '&sign=' + sign
11 response = urllib.request.urlopen(url)
12 content = response.read().decode('utf-8')
13 data = json.loads(content)
14 result = str(data['trans_result'][0]['dst'])
15 print(result)

参数:text--待翻文本,f--初始语言,t--目标语言,后面方法类似。

2. 有道翻译

1 url_you = 'http://fanyi.you.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=' \
2 'http://www.you.com/'
3 dict = {}
4 dict['type'] = 'AUTO'
5 dict['doctype'] = 'json'
6 dict['xmlVersion'] = '1.8'
7 dict['keyfrom'] = 'fanyi.web'
8 dict['ue'] = 'UTF-8'
9 dict['action'] = 'FY_BY_CLICKBUTTON'
10 dict['typoResult'] = 'true'
11
12 def translateYou(text):
13 global dict
14 dict['i'] = text
15 data = urllib.parse.urlencode(dict).encode('utf-8')
16 response = urllib.request.urlopen(url_you, data)
17 content = response.read().decode('utf-8')
18 data = json.loads(content)
19 result = data['translateResult'][0][0]['tgt']
20 print(result)

参数主要由字典dict指定,发现没有地方可以指定语言(可能是我没找到),测试结果是不管输入什么语言的文本,输出均是中文。

3. 谷歌翻译

1 url_google = 'http://translate.google.cn'
2 reg_text = re.compile(r'(?<=TRANSLATED_TEXT=).*?;')
3 user_agent = r'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) ' \
4 r'Chrome/44.0.2403.157 Safari/537.36'
5
6 def translateGoogle(text, f='ja', t='zh-cn'):
7 values = {'hl': 'zh-cn', 'ie': 'utf-8', 'text': text, 'langpair': '%s|%s' % (f, t)}
8 value = urllib.parse.urlencode(values)
9 req = urllib.request.Request(url_google + '?' + value)
10 req.add_header('User-Agent', user_agent)
11 response = urllib.request.urlopen(req)
12 content = response.read().decode('utf-8')
13 data = reg_text.search(content)
14 result = data.group(0).strip(';').strip('\'')
15 print(result)

和上面两种方法一样,采用的是访问网页的形式来进行翻译。
还有一种是利用python谷歌翻译模块Translator:
1 def translateGoogle2(text):
2 result = translator.translate(text)
3 print(result)

4. 测试代码
测试过程:
翻译5个字串为一个小的单位,输出消耗时间;
循环10次为一个大的单位,输出消耗时间;
对不同的语言字串和循环次数做过多次测试,发现情况基本类似,所以这里选择了10次。

1 text_list = ['こんにちは', 'こんばんは', 'おはようございます', 'お休(やす)みなさい', 'お元気(げんき)ですか']
2
3 time_ = 0
4 time_you = 0
5 time_google = 0
6 time_google2 = 0
7
8 for i in list(range(1, 11)):
9 time1 = time.time()
10 for text in text_list:
11 translateBai(text)
12 time2 = time.time()
13 print('百度翻译第%s次时间:%s' % (i, time2 - time1))
14 time_ += (time2 - time1)
15
16 time1 = time.time()
17 for text in text_list:
18 translateYou(text)
19 time2 = time.time()
20 print('有道翻译第%s次时间:%s' % (i, time2 - time1))
21 time_you += (time2 - time1)
22
23 time1 = time.time()
24 for text in text_list:
25 translateGoogle(text)
26 time2 = time.time()
27 print('谷歌翻译第%s次时间:%s' % (i, time2 - time1))
28 time_google += (time2 - time1)
29
30 time1 = time.time()
31 for text in text_list:
32 translateGoogle2(text)
33 time2 = time.time()
34 print('谷歌2翻译第%s次时间:%s' % (i, time2 - time1))
35 time_google2 += (time2 - time1)
36
37
38 print('百度翻译时间:%s' % (time_ / 10))
39 print('有道翻译时间:%s' % (time_you / 10))
40 print('谷歌翻译时间:%s' % (time_google / 10))
41 print('谷歌2翻译时间:%s' % (time_google2 / 10))

热心网友 时间:2022-05-10 22:53

掌握多门语言,如今已是一个程序员的必备技能之一。但是对于一个入门级的开发者来说,那就不是一个很容易的选择。在大学,学过C、C++、C#、VB、Java,可到最后,真正领悟的又有多少。很多人说通一就能通百,但对我个人而言,正因为学了这么多语言,更让我对编程语言一头雾水,每一门语言都有自身的机制和特点,并不是一个学期下来就能完完全全掌握,最后,我选择了Java,也决定把之前C、C++放下,没有放弃,也绝对不会有收获,也正因如此,我决定潜心去学习Java,从JavaSE到JavaEE,再到Java Web,逐层逐层的去深入,等到真正掌握这门语言的时候,再重新拾回当初放下的那些语言。

热心网友 时间:2022-05-11 00:27

输入法就有哦比如百度输入法
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
美国的联邦储备体系采用的中央银行制度是 什么是联储 打四合扣表面不能起印 四合扣四合扣安装工具 中国旅行社协会协会的主要任务 办公室的女同志都在议论ihush俏物悄语,ihush俏物悄语是什么啊? 老听有人说Ihush 俏物悄语,这个网站是干嘛的啊? ihush项链什么牌子-ihush项链掉色怎么办 姓李的要起名.用“米"或“豆字加偏旁有那些字 美国联邦储备委员会美国联邦储备委员会简介 草字头加个再是什么字 草字头加两个口 草字头加是什么字 草字头加加读什么 草字头加念什么念 一个草字头加下面一个妻念什么字 草字头加怎么读 草字头加个念什么 草字头加读什么 草字头加个加念什么 一个草字头一个加 草字头加的念什么 草字头加念什么 草字头加个字念什么 一个草字头下面 一个加 怎么读 一个草字头一个加念什么 草字头下面一个加念什么 炸酥肉为什么要用啤酒 怎么自制酱肉好吃? 啤酒酱牛肉怎么做最正宗 啤酒酱牛肉怎么做最好吃 用ps编辑图片可以同时编入文章吗?怎样在ps上写文章? python语言翻译的过程是 Python是什么、 怎么读 出国留学PS文书如何写? ps中如何更改插入文字的格式? 如何利用python实现机器翻译 在ps中如何做书法字体? 怎么用ps在图片上写字? Python编程-翻译密码? 美国留学文书ps怎么写 求帮忙把python翻译成c语言 怎样清洗饮水机内胆 用photoshop在图片上写文章,可是怎么保存? PS 应该怎么写 饮水机内胆怎么清洗? 美国留学文书写作,PS怎么写啊,有哪位高人指导一下? 如何清洗饮水机内胆图 美国留学文书写作,PS怎么写啊,有哪位高人指导一下 饮水机里面怎样清洗? 怎么提高工行信用卡额度