学习R语言,以及看英文文献,最头疼的是看不懂英文单词,总是碰到生词就卡壳了,然后去查有道、谷歌、微软等在线翻译,但是这样一来思路老是被打断,为了沉浸在R和Rmarkdown的世界里,安心工作和写论文,有一个朴素的想法是R既然这么强大,能否用R写一个程序实现英译汉呢?搜索知乎,还真有人这么干,详见教你如何优雅的用R语言调用有道翻译。经过本人改良,自编了一个translate函数,使用友好多了,生成的结果也更加清晰简洁,这里拿来分享诸君。

代码实现

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
library(bitops)
library(RCurl)
library(rjson)
library(stringr)
library(RYoudaoTranslate)
translate = function(word){
  apikey = "498375134"
  keyfrom = "JustForTestYouDao"
  result=youdaoLookUp(word,api=apikey,keyfrom=keyfrom)[[1]]
  result=str_split(result,";")[[1]][1]
  return(result)
}

只需要将上述代码放入.R文件里即可,文件名建议改为translate,这样每次使用前只需要执行source("translate.r")即可愉快的使用translate函数了。或者更彻底一点,直接将上述代码添加到R的安装目录下的etc文件夹下的Rprofile文件里即可。

功能测试

1
2
source("~/translate.r")
translate("English")
1
## [1] "English,英语语言英文"

功能很简单,但却很实用。目前暂不支持句子的翻译和汉译英,后续改进完善。