R语言调用翻译API的踩坑实践
上一期,文中最后简单提到把pubmed上爬取到信息翻译成中文,便于查看。那是否通过R语言实现文档翻译的功能?要实现这一点,最起码要先找到有关于翻译的R包。那如何找到有关翻译的R包呢?首先进入https://mirrors.tuna.tsinghua.edu.cn/CRAN/,点击的Packages,然后再点击Table of available packages, sorted by name,
进入如下R包汇总界面,Ctrl+F快捷键组合打开页面检索搜索框,在搜索框内输入 translate,
得到多个R包,通过R包功能描述,约有5个能发挥我们想要的中英翻译功能,它们基本上都是依赖有道翻译、Yandex翻译和google翻译的API接口。
entcn:Translate English Words into Chinese Words(在RYoudaoTranslate基础上做改进的R包)
RYandexTranslate:R Interface to Yandex Translate API
RYoudaoTranslate:R package provide functions to translate English words into Chinese
translate:Bindings for the Google Translate API v2
translateR:Bindings for the Google and Microsoft Translation APIs
entcn和RYoudaoTranslate是基于有道翻译API;RYandexTranslate是基于Yandex翻译API;translate和translateR是基于google翻译API。其中,google翻译API和Yandex翻译API都是要收费使用的,有道是可以免费使用的,但翻译字符量有限制,可免费翻译1000个字符。但没办法,它是上述5个包中唯一的选择,但经过实际操作,发现这款包的翻译功能也是相当鸡肋,对于长句,段落文档基本上无用。至此,R语言调用翻译API实现长句段落的翻译宣告失败!
目前能提供最多免费字符(200万字符)的API是百度翻译,可惜目前还没有基于百度翻译API的R包。其实,百度翻译API本身已经可以支持多种语言,如果有其它语言基础的话,比如Python,就可以基于python调用百度翻译API进行大量字符的免费翻译。
注册百度翻译、获取API
进入https://fanyi-api.baidu.com/网站,登录(注册参考https://fanyi-api.baidu.com/),然后点击通用翻译API,
点击立即使用,申请ID和SECRECT KEY,后面就可以通过ID和密钥调用API接口实现翻译功能。
Cpoy大神的Python调用百度翻译的代码,实践后翻译效果还是不错的,这里就不展示了,毕竟也不是自己写的。从网络检索来看,调用翻译API的语言很多,Python相关的教程尤其多。有兴趣的小伙伴,可以尝试接触Python,完成翻译工作。