将文本文件的编码设置为tm Corpora

时间:2016-05-17 14:00:36

标签: text encoding text-mining tm corpus

使用tm语料库加载一堆文件我需要指定编码。

所有文件均采用UTF-8编码。如果openend通过文本编辑器内容是可以的,但语料库内容充满了奇怪的符号(indicioâ,'sœs....) 源文本是西班牙语。 ES_es

library(tm)
cname <- file.path("C:", "Users", "john", "Documents", "texts")
docs <- Corpus(DirSource(cname), encoding ="UTF-8")

> Error in Corpus(DirSource(cname), encoding = "UTF-8") : 
  unused argument (encoding = "UTF-8")

编辑:

从语料库中获取str(文档[1])我注意到了:

.. .. $ language:chr“en”

如何指定,例如“UTF-8”,“Latin1”或任何其他编码以避免奇怪的符号?

此致

2 个答案:

答案 0 :(得分:0)

从“C:”中可以清楚地看到,您使用的是Windows,它采用Windows-1252编码(在大多数系统上)而不是UTF-8。您可以尝试以字符形式阅读文件,然后设置Encoding(myCharVector) <- "UTF-8"。如果输入编码为UTF-8,则应使系统正确识别并显示UTF-8字符。

或者这可行,但它也会使 tm 变得不必要:

require(quanteda)
docs <- corpus(textfile("C:/Users/john/Documents/texts/*.txt", encoding = "UTF-8"))

然后您可以使用例如:

查看文本
cat(texts(docs)[1:2])

他们应该设置编码位并正确显示。然后,如果您愿意,可以使用以下方法将这些内容输入 tm

docsTM <- Corpus(VectorSource(texts(docs)))

答案 1 :(得分:0)

似乎没有必要使用quanteda包(除了在转换为TM VCorpora时丢失文件名的一些奇怪行为)

files <- DirSource(directory = "C:/Users/john/Documents/",encoding ="UTF-8" )
mycorpus<- VCorpus(x=files)

现在编码是正确的。