另一種是對該包封裝的函數源碼進行了稍許調整,使得輸出更加和諧一些。
圖片
http://fanyi.youdao.com/openapi?path=data-mode
鑒於在線調用有道翻譯服務需要自己現在有道詞典的開放平臺免費注冊開發者服務並獲取有限量調用服務的API賬號密碼,逐日限調用6000次。
圖片
這裡結果摒棄for輪回,使用內置的apply組函數sapply,懂行的都知道為什麼!
sapply(word,youdaoTranslate,simplify=TRUE)
以上構造了兩個函數,一個提供單詞的URL地址匹配,一個提供查詢結果。
感覺這種性格,跟我超級像哈哈,可是我目前還沒有那種說乾就乾底氣,達不到開發包的水平,以後要是學會了,一定要多貢獻一些偷懶神器!
圖片
最近剛發現了個有趣的包,一個R語言發熱友開發了R語言與有道在線翻譯的接口,可能這位大神也是一個受夠了天天打開網頁狂敲鍵盤查詞的罪,索性自己動手,從此豐衣足食。
以上經由我的進一步篩選,結果更加簡潔,實用。而且使用比較簡朴。注冊地址如下:
library("RYoudaoTranslate")
以下是代碼思路,這裡我提供兩種方法,一種是集合包內翻譯函數和for輪回,算是笨方法。
。
本小編已經測試過了翻譯結果,中英文互譯效果相稱棒,但是限制是:
圖片
實在微軟的excel更新至13版以後,也提供了調用有道在線翻譯的服務。
圖片
以上使用for輪回,結合包內的查詢函數,可獲取查詢結果向量。(本例中位於中間位置的A2,記得用的時候是相對引用,否則填充後只能翻譯首個單元格內容)。
url<-youdaoUrl(word=word,api="498375134",keyfrom="JustForTestYouDao")
url<-paste("http://fanyi.youdao.com/openapi.do?keyfrom=JustForTestYouDao&key=498375134&type=data&doctype=json&version=1.1&q=",word,sep="")
方法一:
word<-c("weather","father","apple","like","hate")
隨機天生了五個單詞:
keyfrom = "JustForTestYouDao"
apikey = "498375134"
以下是該包官方文檔提供的免費賬號密碼,試了一下還能用,感覺大神仍是很夠意思的,提供了好用的產品不說,還自己分享了免費賬號。
後面還有好戲呢!
你認為到這裡就結束了嗎? NO!
假如是碰到大批量的翻譯需求,這種方式仍是很能進步效率的,不外我還沒有測試中文單詞的翻譯效果,有愛好的大家可以自己玩。
=FILTERXML(WEBSERVICE("http://fanyi.youdao.com/translate?&i="&A2&"&doctype=xml&version"),"//translation")
單詞翻譯效果好,句子不行,水平還不如小編我,即便是那種帶空格的短句、地名、人名也夠嗆。以下是函數語句,不要被冗長的各種參數嚇到了,你需要改的只是其中的單元格引用。
}
return(result)
result=paste0(obj$web[[1]]$value,collapse=";")
obj = fromJSON(url)
url = getURL(youdaoUrl(word))
youdaoTranslate<-function(word){
}
youdaoUrl = function(word){
方法二:
實在我是覺得這樣的不加篩選的輸出不夠友好,看了下源碼裡面的封裝函數,輕微做了些改動,以下是方法二。
}
Res[i] = youdaoLookUp(i,api="282671603",keyfrom="fy1991--421fy")
for( i in word){
Res<-c()
以上兩句等價。