Не удается получить правильную кодировку символов с помощью rtweet и токенайзера RMeCab
Я пытаюсь написать свой японский твит и сталкиваюсь с, казалось бы, неразрешимыми проблемами с кодировкой символов.
После майнинга твитов и установки локали с Sys.setlocale("LC_ALL", "Japanese_Japan.932")
Я получаю фрейм данных, который выглядит как ожидалось:
Я хочу запустить эти твиты через токенизатор для японского языка, а именно RMeCab
на основе MeCab
( все доступно здесь). MeCab
может быть скомпилировано в UTF-8
, SHIFT-JIS
и несколько других, но перекомпиляция в другой кодировке не устраняет мою проблему и даже не меняет конечный результат.
Итак, после компиляции MeCab
и установка RMeCab
Я извлекаю первый твит и пытаюсь токенизировать его
tweet1 <- trump_ja[1,5]
x <- RMeCabC(str = tweet1)
Это дает следующий вывод:
К сожалению, это не правильные символы японского языка. Я пробовал следующие чередования между SHIFT-JIS
а также UTF-8
кодирование (и все комбинации этих изменений) для преодоления этой проблемы:
- Откройте скрипт R с другой кодировкой (имеет значение, но показывает только искаженные символы, поэтому я предполагаю, что искажение происходит в RMeCab)
- Переключить язык между
Sys.setlocale("LC_ALL", "English_United States.1252")
а такжеSys.setlocale("LC_ALL", "Japanese_Japan.932")
- Перекомпилируйте MeCab в другой кодировке
Сейчас я в конце очереди и хотел бы попросить о помощи.
РЕДАКТИРОВАТЬ: я теперь понял, что работает iconv (result, from = "UTF8", to = "UTF-8")
преобразование на символьной (и искаженной) строке символов показывает мне правильные японские символы для токенов. Это не имеет большого смысла, но делает свое дело. Однако я бы хотел избежать этого дополнительного шага, поскольку преобразование работает только со строками символов, а не со списками или векторами.