使用R的文本挖掘包保留土耳其语字符

时间:2017-12-22 16:08:12

标签: r encoding utf-8 tm

让我先说这个我还是R的初学者。 目前,我正在尝试使用tm包的土耳其语文本的基本文本挖掘技术。 但是,我在R中显示土耳其字符时遇到了问题。

这就是我的所作所为:

docs <- VCorpus(DirSource("DIRECTORY", encoding = "UTF-8"), readerControl = list(language = "tur"))
writeLines(as.character(docs), con="documents.txt")

我的想法是,将语言设置为土耳其语并将编码设置为UTF-8(这是文本文件的原始编码)应该显示土耳其字符İ,ı,ğ,Ğ,ş和Ş可能。相反,输出将这些字符分别转换为I,i,g,G,s和S,并将其保存为ANSI-Encoding,它不能显示这些字符。

writeLines(as.character(docs), con="documents.txt", Encoding("UTF-8"))

也会保存文件而不包含ANSI编码的字符。

这似乎不仅仅是输出文件的问题。

writeLines(as.character(docs[[1]])
例如,

会产生一条应该为“Okulvecamiçılışlarıumutlarıartırdı”的行,而是读取“Okul vecamiaçilislariumutlariartirdi”

阅读本文后:UTF-8 file output in R 我还尝试了以下代码:

writeLines(as.character(docs), con="documents.txt", Encoding("UTF-8"), useBytes=T)

没有改变结果。

所有这些都在Windows 7上,包含最新版本的R和RStudio。

有没有办法解决这个问题?我可能错过了一些明显的东西,但任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

这是保持土耳其语字符完整的方法:

  1. 在RStudio中打开一个新的.Rmd文件。 (RStudio->文件->新文件-> R Markdown)
  2. 复制并粘贴包含土耳其语字符的文本。
  3. 使用编码保存.Rmd文件。 (RStudio->文件-> 编码保存。-> UTF-8)
  4. 您的文档<-readLines(“ yourdocument.Rmd”, encoding =“ UTF-8”
  5. 您的文档<-paste(您的文档,合拢=“”)
  6. 完成此步骤后,您可以创建您的语料库
  7. 例如从tm包中的VectorSource()开始。
  8. 土耳其语字符将按原样显示。