1

我正在尝试给我的日语推文发短信,并且遇到了看似无法解决的字符编码问题。

在挖掘推文并设置语言环境后,Sys.setlocale("LC_ALL", "Japanese_Japan.932")我得到了一个看起来符合预期的数据框:

在此处输入图像描述

我想通过日语的 Tokenizer 运行这些推文,即RMeCab基于MeCab全部可用here)。MeCab可以在和其他一些中编译UTF-8SHIFT-JIS但是以另一种编码重新编译不会使我的问题消失甚至改变最终结果。

因此,在编译MeCab和安装之后RMeCab,我提取了第一条推文并尝试使用

tweet1 <- trump_ja[1,5]
x <- RMeCabC(str = tweet1)

这会产生以下输出:

在此处输入图像描述

不幸的是,这些不是正确的日文字符。我尝试了以下交替SHIFT-JISUTF-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")在标记化(和乱码)字符串上运行转换会显示标记的正确日文字符。这看起来没有多大意义,但它确实有效。但是,我想避免这个额外的步骤,因为转换仅适用于字符串,而不适用于列表或向量。

4

0 回答 0