作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我只是想从俄语、UTF-8 编码的文本创建一个语料库。问题是,来自 tm
的语料库方法包未正确编码字符串。
这是我的问题的可重现示例:
载入俄文:
> data <- c("Renault Logan, 2005","Складское помещение, 345 м²",
"Су-шеф","3-к квартира, 64 м², 3/5 эт.","Samsung galaxy S4 mini GT-I9190 (чёрный)")
> vs <- VectorSource(data)
> vs # outputs correctly
> corp <- Corpus(vs)
> inspect(corp) # output is not encoded properly
> inspect(corp)
<<VCorpus (documents: 5, metadata (corpus/indexed): 0/0)>>
[[1]]
<<PlainTextDocument (metadata: 7)>>
Renault Logan, 2005
[[2]]
<<PlainTextDocument (metadata: 7)>>
Ñêëàäñêîå ïîìåùåíèå, 345 ì<U+00B2>
[[3]]
<<PlainTextDocument (metadata: 7)>>
Ñó-øåô
[[4]]
<<PlainTextDocument (metadata: 7)>>
3-ê êâàðòèðà, 64 ì<U+00B2>, 3/5 ýò.
[[5]]
<<PlainTextDocument (metadata: 7)>>
Samsung galaxy S4 mini GT-I9190 (÷¸ðíûé)
> title_corpus <- tm_map(title_corpus, enc2utf8)
Error in FUN(X[[1L]], ...) : argumemt is not a character vector
最佳答案
好吧,似乎有好消息和坏消息。
好消息是,即使 inspect()
显示不正确,数据看起来也不错。 .试试看
content(corp[[2]])
# [1] "Складское помещение, 345 м²"
inspect()
是因为作者改变了方式
print.PlainTextDocument
功能有效。以前会
cat
要筛选的值。然而,现在他们通过
writeLines()
提供数据.此函数使用系统的语言环境来格式化文档中的字符/字节。 (这可以通过
Sys.getlocale()
查看)。事实证明,Linux 和 OS X 具有正确的“UTF-8”编码,但 Windows 使用特定于语言的代码页。因此,如果字符不在代码页中,它们会被转义或转换为有趣的字符。这意味着这在 Mac 上应该可以正常工作,但不能在 PC 上工作。
dtm <- DocumentTermMatrix(corp)
Terms(dtm)
stdout()
在 Windows 上。我不知道为什么包维护者改变了打印方法,但人们可能会要求或提交一个功能请求来改变它。
关于R 语料库弄乱了我的 UTF-8 编码文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24920396/
我是一名优秀的程序员,十分优秀!