测试一些利用PYTHON完成中英文翻译的效果
简 介: 测试了一些在线翻译工具的效果,利用有道翻译 可以方便对常见到的生词进行确认。对于 TEASOFT软件PYTHON功能进行改建,给出了 ?>的翻译模式功能。
关键词
: 在线翻译,中英文翻译
Contents
§01 中英文翻译
在平时工作中经常会应用到中英文翻译。利用很多基于互联网的英语词典软件(比如 YouDao) 虽然可用,但有时还是希望能够机制在TEASOFT软件环境中完成单词的翻译,或者很多单词的批量翻译。下面测试一些基于PYTHON环境的中英文翻译的软件。
下面的方法是来自于 CSDN 博文 PYTHON 实现中英文自动翻译 中整理的方案,下面进行初步测试一下。
1.1 有道翻译
参考链接:https://segmentfault.com/a/1190000015643320
1.1.1 代码实现
from headm import * # =import json
import requestsdef translate(word):url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null'key = {'type': "AUTO",'i': word,"doctype": "json","version": "2.1","keyfrom": "fanyi.web","ue": "UTF-8","action": "FY_BY_CLICKBUTTON","typoResult": "true"}response = requests.post(url, data=key)if response.status_code == 200:return response.textelse:print("有道词典调用失败")return Nonedef get_reuslt(repsonse):result = json.loads(repsonse)printf ("输入的词为:%s" % result['translateResult'][0][0]['src'])printf ("翻译结果为:%s" % result['translateResult'][0][0]['tgt'])def main():word = 'distortion'list_trans = translate(word)get_reuslt(list_trans)if __name__ == '__main__':main()
1.1.2 测试结果
测试输出结果:
输入的词为:distortion
翻译结果为:失真
1.1.3 使用限制
每小时1000次访问限制,超过就会被禁封!!!!
1.1.4 封装为函数
"""有道翻译API的调用函数(封装为一个函数使用)"""
import json
import requests
import redef translator(str):"""input : str 需要翻译的字符串output:translation 翻译后的字符串"""# APIurl = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=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 这个字典为发送给有道词典服务器的内容response = requests.post(url, data=key)# 判断服务器是否相应成功if response.status_code == 200:# 通过 json.loads 把返回的结果加载成 json 格式result = json.loads(response.text)
# print ("输入的词为:%s" % result['translateResult'][0][0]['src'])
# print ("翻译结果为:%s" % result['translateResult'][0][0]['tgt'])translation = result['translateResult'][0][0]['tgt']return translationelse:print("有道词典调用失败")# 相应失败就返回空return None"""有道翻译函数 DONE!"""
1.2 百度翻译
参考文献:https://blog.csdn.net/baidu_33718858/article/details/83306851
最新百度翻译API收费标准:最近流水记录若当月翻译字符数≤2百万,当月免费;若超过2百万字符,按照49元/百万字符支付当月超出部分费用。
1.2.1 测试代码
"""官方Python接入百度翻译API测试Demo(有所改动,官方DEMO有些过时,Python包有些变化)"""
import httplib2
import urllib
import random
import json
from hashlib import md5appid = '*********' #你的appid
secretKey = '********' #你的密钥httpClient = None
myurl = 'http://api.fanyi.baidu.com/api/trans/vip/translate'
q = 'apple' # 要翻译的词
fromLang = 'en' # 翻译源语言
toLang = 'zh' # 译文语言
salt = random.randint(32768, 65536)# 签名
sign = appid+q+str(salt)+secretKey
m1 = md5()
m1.update(sign.encode(encoding = 'utf-8'))
sign = m1.hexdigest()
# myurl = myurl+'?appid='+appid+'&q='+urllib.parse.quote(q)+'&from='+fromLang+'&to='+toLang+'&salt='+str(salt)+'&sign='+sign
myurl = myurl+'?q='+urllib.parse.quote(q)+'&from='+fromLang+'&to='+toLang+'&appid='+appid+'&salt='+str(salt)+'&sign='+sign
try:h = httplib2.Http('.cache')response, content = h.request(myurl)if response.status == 200:print(content.decode('utf-8'))print(type(content))response = json.loads(content.decode('utf-8')) # loads将json数据加载为dict格式print(type(response))print(response["trans_result"][0]['dst'])
except httplib2.ServerNotFoundError:print("Site is Down!")
1.2.2 测试结果
运行之后,始终出现如下错误:
{"error_code":"52003","error_msg":"UNAUTHORIZED USER"}
<class 'bytes'>
<class 'dict'>
Traceback (most recent call last):File "D:\Temp\TEMP0001\test2.PY", line 45, in <module>print(response["trans_result"][0]['dst'])
KeyError: 'trans_result'
这里唯一的疑问:就是其中的 appid、secretkey 究竟需要填写什么? 是需要进行申请相应的应用账号吗? 我使用自己百度的账号,测试还是不行。
1.3 谷歌在线翻译
Reference: https://github.com/terryyin/translate-python
每天有1000个单词的翻译限制,不适合大量单词翻译
1.3.1 测试代码
from translate import Translator
translator= Translator(to_lang="zh")
translation = translator.translate("Steelmaking")
print(translation)
1.3.2 运行结果
炼钢
1.3.3 存在问题
这个翻译过程虽然比较简洁,但是在从汉语翻译成英语的时候,出错的概率很大。
from translate import Translator
translator= Translator(to_lang="english")
translation = translator.translate("数据")
print(translation)
输出的结果还是“数据”
1.4 有道在线翻译
Reference: https://pypi.org/project/pytranslator/
1.4.1 安装软件包
首先需要安装相应的软件包: pytranslator
pythom -m pip install pytranslator
▲ 图1.4.1 pytranslator
1.4.2 测试代码
import pytranslator
youdao = pytranslator.youdao('YOUR_KEY','YOU_KEY_FROM')
youdao.trans('help')
但是,运行出现错误:
Traceback (most recent call last):File "D:\Temp\TEMP0001\test4.PY", line 12, in <module>youdao = pytranslator.youdao('YOUR_KEY','YOU_KEY_FROM')
AttributeError: module 'pytranslator' has no attribute 'youdao'
1.4.3 使用说明
项目名称 :
  pytranslator
示例 :
  import pytranslator  youdao = pytranslator.youdao("YOUR_KEY","YOU_KEY_FROM")
  youdao.trans("Help")
更新日志 :
  ==============
  时间 : 2017/02/20
  作者 : 王一航
  描述 : 开源到 pypi
  版本 : 1.3.6
  ==============
原理说明 :
  利用有道翻译开放API进行中英互译
  将有道服务器返回的 JSON 数据解析后包装成函数以供调用
环境要求 :
  python 2.x
  requests
下载安装 :
1. install with pip
  sudo pip install pytranslator
2. install with source code
  git clone https://git.coding,net/yihangwang/PyTranslator.git
  cd ./PyTranslator
  sudo python setup.py install
使用方法 :
  1. [申请有道翻译Key](http://fanyi.youdao.com/openapi?path=data-mode)
  需要填写一下邮箱和应用名称 , 然后邮箱中会收到 KEY 和 KEY_FROM
  2. 引入包 pytranslator
  3. 根据第 1 步邮件中收到的 KEY 和 KEY_FROM 调用 youdao 类的构造函数
  4. 调用成功后 , 就可以调 youdao 类的函数 trans 来进行返回
  入口参数为需要被翻译的字符串 , 会自动识别中英文
TODO :
  1. 开放更多的接口(更加接近有道API提供的各种功能)
  2. 将结果保存在本地 , 当用户多次查找的时候减轻服务器的压力
  3. 汉译英功能
  4. 自动补全功能
  5. 短语查询功能
  6. 整句翻译功能
1.4.4 申请KEY
可以看到,前面使用过程中,所填写的KEY,KEY_FROM没有进行申请。需要通过 申请有道翻译Key 获得对应的KEY,KEY_FROM。
不过在后面的网页登录以及申请账号的过程中适中遇到麻烦。暂时先放弃。
▲ 图1.4.2 有道翻译对应的API说明界面
§02 翻译助手
通过前面的测试,可以看到使用有道翻译的效果还是不错的。下面对于cdtm 进行改造,形成翻译快捷助手。
2.1 修改方法
2.1.1 使用语法
利用:
?>word1 单词2
完成对word1、单词2的查询。
2.1.2 实现方式
(1)命令解析部分
elif sys.argv[1][0] == '>' or sys.argv[1][0] == '》':strall = sys.argv[1:]strall[0] = strall[0][1:]for word in strall:list_trans = translate(word)get_reuslt(list_trans)exit()
(2)增加相应函数
import json
import requestsdef translate(word):url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null'key = {'type': "AUTO",'i': word,"doctype": "json","version": "2.1","keyfrom": "fanyi.web","ue": "UTF-8","action": "FY_BY_CLICKBUTTON","typoResult": "true"}response = requests.post(url, data=key)if response.status_code == 200:return response.textelse:return Nonedef get_reuslt(repsonse):result = json.loads(repsonse)printf ("%s --> %s" %(result['translateResult'][0][0]['src'], result['translateResult'][0][0]['tgt']))
2.2 使用效果
?可能性 中国
可能性 --> possibility
中国 --> Chinapython --> python
beauty --> 美
command --> 命令
数据接口 --> Data interface
※ 测试总结 ※
测试了一些在线翻译工具的效果,利用有道翻译 可以方便对常见到的生词进行确认。对于 TEASOFT软件PYTHON功能进行改建,给出了 ?>的翻译模式功能。
■ 相关文献链接:
- PYTHON 实现中英文自动翻译
● 相关图表链接:
- 图1.4.1 pytranslator
- 图1.4.2 有道翻译对应的API说明界面
测试一些利用PYTHON完成中英文翻译的效果相关推荐
- Python实现中英文翻译脚本
Python实现中英文翻译脚本 安装依赖包 pip install translate,安装如果慢看前面文章加 -i 换源 """ @Author : 康帅 @Time ...
- 使用计算机来进行翻译是,利用计算机进行中英文翻译的探讨
- 229 - 校园英语 / 翻译研究 利用计算机进行中英文翻译的探讨 宁夏大学外国语学院/来友昊 [摘要]随着近年来科技的快速发展,针对于传统的人工翻 译方式,相关的研究人员已经可以使用计算机的相关 ...
- 利用Python爬取翻译网站的翻译功能
现在我想分享一个利用Python技术,爬取一个翻译网站的翻译功能的小代码. 首先隆重介绍我们今天将要爬取的网站:http://fy.iciba.com/ 咱们用Python中的urllib模块的功能进 ...
- python爬取外文文献翻译_利用Python爬取翻译网站的翻译功能
现在我想分享一个利用Python技术,爬取一个翻译网站的翻译功能的小代码. 首先隆重介绍我们今天将要爬取的网站:http://fy.iciba.com/ 咱们用Python中的urllib模块的功能进 ...
- 看不懂英文文档不要慌,利用Python轻松实现翻译小软件
前言 现在关于Python文档很多都是英文版本的,但是有很多学习Python的小伙伴的英语水平并不高,导致很多优质的文档看不懂,这样对于咱们学习Python也会造成很大的阻碍,但是咱们会Python呀 ...
- 利用python实现百度竞价自动化效果监控
百度竞价效果监控 很多客户朋友做了百度推广,全国或者多地区推广,很多时候监控不到本地以外城市的推广情况,不方便推广的调整. 问题 百度推广可以选择不同地区不同出价策略和不同的创意等,但是监控不到数据的 ...
- 转:利用python调用谷歌翻译API
废话少说 从速卖通抓取了一些评论想进行一些简单的文本分析,但是因为速卖通是一个跨境电商平台,上边的评论基本都是小语种,对,小语种,俄语,法语...英语还可以勉强应付一下,但是其他真的是一个字母都不认识 ...
- 使用python进行渗透测试_利用Python进行Web渗透测试(五):剖析HTTP请求
本篇概要URL的结构 HTTP头域 HTTP状态码 一个完整的HTTPget请求 在上一篇我们简单介绍了HTTP协议的概念和知识,本篇我们来详细剖析一下HTTP的请求,将这两篇综合起来,我们就对HTT ...
- 使用计算机翻译的是,利用计算机进行中英文翻译的探讨
[摘要]随着近年来科技的快速发展,针对于传统的人工翻译方式,相关的研究人员已经可以使用计算机的相关翻译软件来对相关文字进行翻译,真是因为计算机翻译技术的提升,使得整体翻译水平正在进行一个高科技带动下的 ...
最新文章
- 在Centos6.5下安装AR8161网卡驱动
- redis mysql主从同步_手撕Redis,主从同步
- 一些常用的dos命令
- python【蓝桥杯vip练习题库】ALGO-66字符串编辑
- 【SharePoint 2010】SharePoint 2010开发方面的课堂中整理有关问题
- 后盾网lavarel视频项目---自定义验证和自定义验证规则
- LeetCode 145. Binary Tree Postorder Traversal
- 剧本杀,继狼人杀之后的下一个风口
- canvas笔记-globalAlpha和globaleCompositeOperation的使用
- 数据结构之查找算法:分块查找
- 基于canvas的原生JS时钟效果
- 2999元起!苹果悄然发布两款iPad新品 升级至A12处理器
- Android常见问题剖析
- 给大家推荐个vs里面的小插件,自动对齐代码
- 如何在中实现++中的splitterwnd的四分裂视图功能
- linux下ab压力测试工具
- [原创] 阿里巴巴平台型产品经理 实习生面试经历
- python里面的pip是什么意思_python中pip是什么
- 百度SEM/SEO关键词批量自动分词工具
- word在另外计算机格式不对,为什么同一个word文档在两台电脑上打开里面的格式不一样...