R语言中怎么调用有道翻译,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
方法一:
url<-paste("http://fanyi.youdao.com/openapi.do?keyfrom=JustForTestYouDao&key=498375134&type=data&doctype=json&version=1.1&q=",word,sep="")
url<-youdaoUrl(word=word,api="498375134",keyfrom="JustForTestYouDao")
以上两句等价。
Res<-c()
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<-function(word){
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")
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。