我有很多文件要作为R语料库在R中读取。所有文件都是pdf,但最近我意识到其中一些将是txt。
在拥有文本文件之前,我只是简单地创建目录中的pdf文件列表,然后使用带有readerControl的Corpus函数读取它们:
getwd()
files <- list.files(pattern = "pdf$")
corp <- Corpus(URISource(files),
readerControl = list(reader = readPDF))
我尝试创建pdf和txt的组合列表,但是我找不到找到将readerContrl用于pdf或txt的方法:
files1 <- list.files(pattern = "pdf$")
files2 <- list.files(pattern = "txt$")
files<-c(files1,files2)
corp <- Corpus(URISource(files),
readerControl = list(reader = c(readPDF,readPlain)))
关于如何解决此问题的任何想法? 我考虑过合并两个Copuses元素,一个是reader = readPDF,另一个是reader = readPlain。但是由于我是文本挖掘的新手,所以我不确定这样做的最佳实践是什么。
答案 0 :(得分:1)
使用 readtext 软件包来简化操作。如果您将.txt和.pdf文件混合在一起放在同一子目录中,请调用此path_to_your_files/
,然后您可以全部读取它们,然后使用{{1将它们放入 tm 语料库}}。此函数自动识别不同的输入文件类型,并将它们转换为UTF-8文本,以在R中进行文本分析。(此处创建的readtext()
对象是一种特殊的data.frame类型,包括文档标识符列和称为rtext
包含输入文档中转换后的文本内容。)
text
如果您想尝试替代 tm , readtext 对象也可以直接与quanteda package一起用作rtext <- readtext::readtext("path_to_your_files/*")
tm::Corpus(VectorSource(rtext[["text"]]))
的输入。< / p>