打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
教你如何优雅的用R语言调用有道翻译

教你如何优雅的用R语言调用有道翻译

2017-03-10 数据玩家
数据玩家

fbigdata

大数据时代,做数据的玩家!

来源:数据小魔方(微信id:datamofang)



最近刚发现了个有趣的包,一个R语言发烧友开发了R语言与有道在线翻译的接口,可能这位大神也是一个受够了每天打开网页狂敲键盘查词的罪,索性自己动手,从此丰衣足食。


感觉这种性格,跟我超级像哈哈,可是我目前还没有那种说干就干底气,达不到开发包的水平,以后要是学会了,一定要多贡献一些偷懒神器!


以下是代码思路,这里我提供两种方法,一种是集合包内翻译函数和for循环,算是笨方法。另一种是对该包封装的函数源码进行了稍许调整,使得输出更加和谐一些。


library('RYoudaoTranslate')


鉴于在线调用有道翻译服务需要自己现在有道词典的开放平台免费注册开发者服务并获取有限量调用服务的API账号密码,每日限调用6000次。注册地址如下:


http://fanyi.youdao.com/openapi?path=data-mode


以下是该包官方文档提供的免费账号密码,试了一下还能用,感觉大神还是很够意思的,提供了好用的产品不说,还自己分享了免费账号。


apikey = '498375134'

keyfrom = 'JustForTestYouDao'


随机生成了五个单词:


word<>


方法一:

url<-paste('http: fanyi.youdao.com/openapi.do?keyfrom="">

url<>

以上两句等价。

Res<>

for( i in word){

     Res[i] = youdaoLookUp(i,api='282671603',keyfrom='fy1991--421fy')

    }

以上使用for循环,结合包内的查询函数,可获取查询结果向量。



其实我是觉得这样的不加筛选的输出不够友好,看了下源码里面的封装函数,稍微做了些改动,以下是方法二。


方法二:


youdaoUrl = function(word){

paste('http://fanyi.youdao.com/openapi.do?keyfrom=fy1991--421fy&key=282671603&type=data&doctype=json&version=1.1&q=',word,sep='')

}

youdaoTranslate<>

  url = getURL(youdaoUrl(word))

  obj = fromJSON(url) 

  result=paste0(obj$web[[1]]$value,collapse=';')

  return(result)

}


以上构造了两个函数,一个提供单词的URL地址匹配,一个提供查询结果。


sapply(word,youdaoTranslate,simplify=TRUE)


这里结果摒弃for循环,使用内置的apply组函数sapply,懂行的都知道为什么!



以上经过我的进一步筛选,结果更加简洁,实用。


如果是遇到大批量的翻译需求,这种方式还是很能提高效率的,不过我还没有测试中文单词的翻译效果,有兴趣的大家可以自己玩。


你以为到这里就结束了吗? NO!


后面还有好戏呢!


其实微软的excel更新至13版以后,也提供了调用有道在线翻译的服务。而且使用比较简单。以下是函数语句,不要被冗长的各种参数吓到了,你需要改的只是其中的单元格引用。(本例中位于中间位置的A2,记得用的时候是相对引用,否则填充后只能翻译首个单元格内容)。


本小编已经测试过了翻译结果,中英文互译效果相当棒,但是限制是:

单词翻译效果好,句子不行,水平还不如小编我,即便是那种带空格的短句、地名、人名也够呛。


=FILTERXML(WEBSERVICE('http://fanyi.youdao.com/translate?&i='&A2&'&doctype=xml&version'),'//translation') 





阅读

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
微信公众平台开发(六) 翻译功能开发
Excel中进行中英文翻译
Excel里内嵌在线翻译
python爬虫反反爬 | 像有道词典这样的 JS 混淆加密应该怎么破
【青少年编程】黄羽恒:翻译小工具 -- 利用有道翻译
【Excel数据获取】你会用函数实现网页数据抓取吗?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服