vlambda博客
学习文章列表

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语言调用翻译API的踩坑实践

得到多个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,

R语言调用翻译API的踩坑实践

点击立即使用,申请ID和SECRECT KEY,后面就可以通过ID和密钥调用API接口实现翻译功能。


Cpoy大神的Python调用百度翻译的代码,实践后翻译效果还是不错的,这里就不展示了,毕竟也不是自己写的。从网络检索来看,调用翻译API的语言很多,Python相关的教程尤其多。有兴趣的小伙伴,可以尝试接触Python,完成翻译工作。



往期回顾