R語言中怎么調(diào)用有道翻譯,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
目前創(chuàng)新互聯(lián)公司已為成百上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機、綿陽服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計、安徽網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
方法一:
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循環(huán),結(jié)合包內(nèi)的查詢函數(shù),可獲取查詢結(jié)果向量。
其實我是覺得這樣的不加篩選的輸出不夠友好,看了下源碼里面的封裝函數(shù),稍微做了些改動,以下是方法二。
方法二:
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)
}
以上構(gòu)造了兩個函數(shù),一個提供單詞的URL地址匹配,一個提供查詢結(jié)果。
sapply(word,youdaoTranslate,simplify=TRUE)
這里結(jié)果摒棄for循環(huán),使用內(nèi)置的apply組函數(shù)sapply,懂行的都知道為什么!
以上經(jīng)過我的進一步篩選,結(jié)果更加簡潔,實用。
如果是遇到大批量的翻譯需求,這種方式還是很能提高效率的,不過我還沒有測試中文單詞的翻譯效果,有興趣的大家可以自己玩。
你以為到這里就結(jié)束了嗎? NO!
后面還有好戲呢!
其實微軟的excel更新至13版以后,也提供了調(diào)用有道在線翻譯的服務(wù)。而且使用比較簡單。以下是函數(shù)語句,不要被冗長的各種參數(shù)嚇到了,你需要改的只是其中的單元格引用。(本例中位于中間位置的A2,記得用的時候是相對引用,否則填充后只能翻譯首個單元格內(nèi)容)。
本小編已經(jīng)測試過了翻譯結(jié)果,中英文互譯效果相當棒,但是限制是:
單詞翻譯效果好,句子不行,水平還不如小編我,即便是那種帶空格的短句、地名、人名也夠嗆。
=FILTERXML(WEBSERVICE("http://fanyi.youdao.com/translate?&i="&A2&"&doctype=xml&version"),"http://translation")
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。