在 Mac 上将 Unicode 转换为 R 中的元音变音符号(Facebook 数据)
Posted
技术标签:
【中文标题】在 Mac 上将 Unicode 转换为 R 中的元音变音符号(Facebook 数据)【英文标题】:Turn Unicode into Umlaut in R on Mac (Facebook Data) 【发布时间】:2016-01-09 13:23:32 【问题描述】:我对此进行了大量研究,但仍然找不到解决方案。
我从一个德国 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 示例替代德语变音符号或其他语言特定符号(无论哪种语言)。
无论我是想进行情绪分析还是只制作一个 wordcloud,我有时都会遇到问题。在情绪的情况下,问题是训练数据不包含这些 Unicode,因此预测/分类出错。在其他基于文本的程序的情况下,像删除停用词这样的文本清理是一个问题,因为停用词列表也是“干净的”并且不包含这些代码。
有什么简单的方法可以摆脱这种情况,让 R 显示相应的符号而不是代码?
我尝试了很多。我最后的手段是 gsub 例程。但是我的数据框包含超过 100 万个 cmets。此外 gsub 会非常痛苦,因为似乎有太多的 Unicode(如果我们想到的语言比德语多)。
如果我做对了,我使用什么样的电脑也很重要。它是 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's \\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."
【讨论】:
非常感谢您的建议。我已经在考虑存在格式问题。我试过你的代码。但是,它会导致完全不同的结果,不幸的是还没有完全起作用。这是您的代码消息的结果(在应用您的代码之前):“wer kann kurzfristig fr uns einspringen?”应用代码后的消息 2:表达式('wer kann kurzfristig fr uns einspringen?' 那些只是中间值,你想要的是第三条语句的评估。我在 Windows 7 上尝试过,它工作正常,语言环境设置如下:> Sys.getlocale("LC_CTYPE") [1] "English_United States.1252"
再次感谢您的耐心和帮助。在我的情况下 Sys.getlocale() 返回 [1] "C" 我猜我的设置有问题,对吧?
参见cran.r-project.org/bin/macosx/…(第 7 项) - 在 OS X 上,您应该使用它来将 R 系统编码设置为 UTF-8,问题应该会得到解决。
谢谢你一百万次!这解决了所有问题!!!我希望有一天我能回报一个如此大的帮助和帮助!以上是关于在 Mac 上将 Unicode 转换为 R 中的元音变音符号(Facebook 数据)的主要内容,如果未能解决你的问题,请参考以下文章
使用 Aimersoft DVD Ripper 在 Mac 上将家庭 DVD 转换为视频/音频?如何编辑 DVD 电影?
如何使用Aimersoft Video Suite在 Mac 上将视频转换为任何格式