Я просто пытаюсь создать корпус из русского текста в кодировке UTF-8. Проблема в том, что метод Corpus из пакета tm
неправильно кодирует строки.
Вот воспроизводимый пример моей проблемы:
Загрузить на русском языке:
> data <- c("Renault Logan, 2005","Складское помещение, 345 м²",
"Су-шеф","3-к квартира, 64 м², 3/5 эт.","Samsung galaxy S4 mini GT-I9190 (чёрный)")
Создайте векторный источник:
> vs <- VectorSource(data)
> vs # outputs correctly
Затем создайте корпус:
> corp <- Corpus(vs)
> inspect(corp) # output is not encoded properly
Результат, который я получаю:
> inspect(corp)
<<VCorpus (documents: 5, metadata (corpus/indexed): 0/0)>>
[[1]]
<<PlainTextDocument (metadata: 7)>>
Renault Logan, 2005
[[2]]
<<PlainTextDocument (metadata: 7)>>
Ñêëàäñêîå ïîìåùåíèå, 345 ì<U+00B2>
[[3]]
<<PlainTextDocument (metadata: 7)>>
Ñó-øåô
[[4]]
<<PlainTextDocument (metadata: 7)>>
3-ê êâàðòèðà, 64 ì<U+00B2>, 3/5 ýò.
[[5]]
<<PlainTextDocument (metadata: 7)>>
Samsung galaxy S4 mini GT-I9190 (÷¸ðíûé)
Почему он выводит неправильно? Кажется, нет возможности установить кодировку для метода Корпуса. Есть ли способ установить его постфактум? Я пробовал это:
> title_corpus <- tm_map(title_corpus, enc2utf8)
Error in FUN(X[[1L]], ...) : argumemt is not a character vector
Но это ошибки, как показано.
inspect
, он выглядит так же, как и вdata
. Какую версиюtm
и R вы используете (sessionInfo()
должен сказать вам обе). - person MrFlick   schedule 24.07.2014R version 3.1.0 (2014-04-10) Platform: x86_64-w64-mingw32/x64 (64-bit)
иtm_0.6
. Я на Windows. - person user1477388   schedule 24.07.2014tm
. Но у Корпуса нет параметра кодирования, а у VectorSource должен быть. Что происходит сVectorSource(data, encoding="UTF-8")
. Что-то другое? - person MrFlick   schedule 24.07.2014Error in VectorSource(raw_test$title, encoding = "UTF-8") : unused argument (encoding = "UTF-8")
- person user1477388   schedule 24.07.2014tm
. Последний выстрел,VectorSource(enc2utf8(data))
. Может быть, я могу попробовать на своем другом компьютере, если это не сработает. - person MrFlick   schedule 24.07.2014