使用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”或任何其他编码以避免奇怪的符号?
此致
答案 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)
现在编码是正确的。