Поверните Unicode в Umlaut в R на Mac (данные в Facebook)
Я сделал много исследований по этому вопросу, и я до сих пор не могу найти решение этого.
Я извлек данные из немецкой группы Facebook, которая выглядит как
from_ID from_name message created_time
12334543 Max Muster Dies war auch eine sehr sch<U+00F6>ne Bucht 2016-01-08T19:00:54+0000
Я понимаю, что <U+00F6>
означает немецкий Umlat ö. Есть много других примеров Unicode, заменяющих немецкие символы Umlaute или других языков (независимо от того, на каком языке).
Независимо от того, хочу ли я сделать анализ настроений или просто создать wordcloud, у меня иногда возникают проблемы с этим. В случае настроения проблема заключается в том, что данные обучения не содержат эти Юникоды, и, следовательно, предсказание/классификация идет не так. В случае других текстовых процедур очистка текста, например удаление стоп-слова, является проблемой, поскольку стоп-слова также являются "чистыми" и не содержат эти коды.
Есть ли простой способ избавиться от этого и сделать R отображать соответствующий знак вместо кода?
Я много пробовал. Моим последним прибежищем была бы процедура gsub. Однако в моем кадре данных содержится более 1 миллиона комментариев. Кроме того, gsub был бы очень болезненным, поскольку, похоже, слишком много Unicodes (если мы думаем о более языках, чем о нем).
Если я правильно понял, важно также, какой компьютер я использую. Это MacBook Pro.
Любая помощь здесь действительно очень ценится!!
Большое спасибо за ваше время и помощь!
Ответы
Ответ 1
Это немного мистифицирует, но это сделает это:
message <- c("Dies war auch eine sehr sch<U+00F6>ne Bucht",
"Schlo<U+00DF> Sch<U+00F6>nbrunn.")
# convert the <U+00xx> format to R \\u00xx format for escaped Unicode
message2 <- stringi::stri_replace_all_fixed(message, c("<U+", ">"), c("\\u", ""), vectorize_all = FALSE)
# convert to native through parsing and coercing
as.character(parse(text = shQuote(message2)))
## [1] "Dies war auch eine sehr schöne Bucht" "Schloß Schönbrunn."