Я пытаюсь извлечь твиты из json файлов и сохранить их как RData в Windows 10, используя RStudio версии 1.2.5033 и streamR . Однако Windows (и впоследствии RStudio и streamR) предполагают, что входное значение равно Windows -1252, хотя это UTF-8, что приводит к серьезным проблемам кодирования .
Чтобы воспроизвести проблему, используйте этот json файл с двумя поддельными твитами, поскольку я не смог воспроизвести структуру исходных файлов json в R. Но эта структура приводит к проблемы с единственным решением, которое я нашел для проблемы кодирования (см. ниже).
Код , который я использовал , следующий:
df <- streamR::parseTweets("test.json")
Выход Я получаю с df $ text: '[1] "RT @bkabka: Eikö tämä" "RT @bkabka: Espaà ± a"'.
Вывод должен be : '[1] "RT @bkabka: Eikö tämä" "RT @bkabka: España"'.
Поэтому мой вопрос: (Как) я могу сказать R и streamR интерпретировать текст как кодированный с использованием UTF-8, а не Windows -1252?
Поскольку все это происходит из-за того, что функция ошибочно предполагает, что текст закодирован с помощью Windows -1252, , одним решением будет go через весь корпус и замена всех этих неправильно интерпретированных специальных символов на правильный, например, используя таблицу, которую я нашел здесь . В моем случае, однако, корпус очень очень большой, что делает это очень неоптимальным решением в долгосрочной перспективе. Кроме того, у меня не было бы возможности проверить, действительно ли он правильно заменил все специальные символы.
Некоторая дополнительная информация :
Использование r json и следующий код каким-то образом заставляет R правильно интерпретировать кодировку, но имеет проблемы со структурой файлов json, поскольку он извлекает только первую строку:
lt <- rjson::fromJSON(file="test.json")
Я полагаю, он не может извлечь следующую строку, потому что он не распознает разрыв строки, который является фактическим разрывом строки, а не \ n или любой другой комбинацией символов. К сожалению, у меня нет возможности изменить файлы json.
Файлы json были созданы другим пользователем под macOS с использованием streamR - если я не ошибаюсь.
Та же проблема возникает при использовании простого R вместо RStudio. Проблема не появляется на macOS.
Проблема еще более серьезна при использовании tweet2r, единственный известный мне пакет, который позволяет извлекать твиты из json файлов с помощью R. Tweet2r удаляет указанные c специальные символы, такие как «¶» и, таким образом, неправильно интерпретированные специальные символы больше не могут быть заменены правильными.