【发布时间】:2018-01-03 15:29:25
【问题描述】:
我正在做一些涉及葡萄牙语文本的文本挖掘。我的一些自定义文本挖掘函数中还包含其他特殊字符。
我不是这方面的专家。当我的很多字符开始显示不正确时,我认为我需要更改文件编码。我试过了
- ISO-8858-1
- ISO-8858-7
- UTF-8
- WINDOWS-1252
它们都没有改善字符的显示。我需要不同的编码还是我做错了?
例如,当我尝试从 GitHub 读取此停用词列表时:
stop_words <- read.table("https://gist.githubusercontent.com/alopes/5358189/raw/2107d809cca6b83ce3d8e04dbd9463283025284f/stopwords.txt")
他们是这样出来的:
tail(stop_words, 17)
206 tivéramos 207 tenha 208 tenhamos 209 tenham 210 tivesse 211 tivéssemos 212 tivessem 213 tiver 214 tivermos 215 tiverem 216 terei 217 terá 218 teremos 219 terão 220 teria 221 terÃamos 222 teriam
我也试过stringsAsFactors = F。
我不会说葡萄牙语,但我的直觉告诉我欧元和版权符号不在它们的字母表中。此外,它似乎正在将一些重音小写 e 更改为大写不同重音 A。
如果有帮助:
Sys.getlocale()
[1] "LC_COLLATE=English_United States.1252;LC_CTYPE=English_United States.1252;LC_MONETARY=English_United States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252"
我还尝试更改语言环境stri_encode(stop_words$V1, "", "UTF-8") 和tail(enc2native(as.vector(stop_words[,1])),17)。
【问题讨论】:
-
我认为问题不在于葡萄牙语字母表。当我使用上面的代码从 GitHub 获取 stop_words 时,我可以看到字符格式正确。您如何更改文件编码?
-
@OriolMirosa 在更改系统默认编码(即 ISO-8859-1)之前,我遇到了问题。我尝试使用 RStudio(使用编码重新打开)更改它,然后重新提取数据。我还尝试使用
stringi包更改它。我认为下面的答案是正确的,它以某种方式被双重编码,但我不知道为什么或如何解决它。 -
你试过
enc2utf8(as.vector(stop_words[,1]))或enc2native(as.vector(stop_words[,1])) -
@OriolMirosa 我没有尝试过,谢谢。看了你的评论,我才试了下,问题依旧。
-
嗯...你在什么系统?你使用 RStudio 吗?您的 R 终端使用什么字体?您能在终端中看到波浪号和其他拉丁字符吗? (如果您的键盘是英文的,请按 alt+e,然后按 e 获得 'é')
标签: r text encoding character-encoding