千家信息网

R语言中怎么调用有道翻译

发表于:2024-11-14 作者:千家信息网编辑
千家信息网最后更新 2024年11月14日,R语言中怎么调用有道翻译,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。方法一:url<-paste("http://fa
千家信息网最后更新 2024年11月14日R语言中怎么调用有道翻译

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")

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

0