您好,登錄后才能下訂單哦!
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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。