Я пытаюсь перевести несколько строк символов с местного языка ("тамильский") на английский. Я использовал пример кода из Stackoverflow и изменил скрипт:
library(RCurl)
library(XML)
library(Unicode)
getParam = read.csv("file.csv", header=T, encoding = "UTF-8")
get<-u_to_lower_case(getParam$text)
get1<-matrix(1:6,nrow = 6, ncol = 1)
get1<-(as.vector(get))
data2<-matrix(1:6,nrow=6, ncol = 1)
translateFrom = "ta"
translateTo = "en"
for (i in 1:length(get1))
{
URL <- paste("https://translate.google.pl?
hl=",translateTo,"&sl=",translateFrom,"&tl=",translateTo,"&ie=UTF-
8&prev=_m&q=",get1[i],sep="")
print(URL)
page <- getURL(URL)
tree <-htmlTreeParse(page)
body <- tree$children$html$children$body
body_text <- body$children[[5]]$children[[1]]
print(body_text)
data1[i]<-body_text
if(nrow(data1) == 0)
{data1[1,] <- "N/A"
}
data2<-rbind(data2,data1)
}
Без цикла я могу перевести его. Но с циклом я получаю сообщение об ошибке, подобное этому:
In structure(x$children, class = "XMLNodeList") :
Calling 'structure(NULL, *)' is deprecated, as NULL cannot have
attributes.
Consider 'structure(list(), *)' instead.
Может кто-нибудь исправить мой код или предложить лучший?
Примечание: было несколько модификаций, чтобы избежать ошибки Unicode. Но, наконец, преодолел это.
Кроме того, я не хочу использовать платный API перевода Google.