从VCorpus导出文本文件,包括R中的原始文件名

时间:2018-04-09 18:44:05

标签: r export filenames tm corpus

我是R的新手,目前正致力于我的学习项目(可读性与年度报告的表现)。我真的已经筛选了数百个帖子,但找不到合适的解决方案。所以,我被困住了,需要你的帮助。

我的目标是大约1000个文本文档,将已编辑的文本从VCorpus导出到文件夹中,包括原始文件名

到目前为止,我设法导入&做(某些)文本挖掘:

### folder of txt files    

dest <- ("C:\\Xpdf_pdftotext\\TestCorpus")

### create a Corpus in R

docs <- VCorpus(DirSource(dest))

### do some text mining of the txt-documents

for (j in seq(docs)) {
  docs[[j]] <- gsub("\\d", "", docs[[j]])
  docs[[j]] <- gsub("\\b[A-z]\\b{3}", "", docs[[j]])
  docs[[j]] <- gsub("\\t", "", docs[[j]])
}

使用原始文件名导出语料库中的每个文件。 适用于1个文件,分配新名称时:

writeLines(as.character(docs[1]), con="text1.txt")

我在帖子中找到了元ID的命令,但我不知道如何将其包含在我的代码中

docs[[1]]$meta$id

如何有效地从VCorpus导出已编辑的文本文件,包括其原始文件名?

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

实际上它非常简单。

如果您按原样加载了语料库,则可以使用writeCorpus在一个命令中将整个语料库写入磁盘。需要填写元标记ID,但在您的情况下已经完成了加载数据的方式。

如果我们以crude数据集为例,则已包含id:

library(tm)
data("crude")
crude <- as.VCorpus(crude)
# bit of textcleaning
crude <- tm_map(crude, stripWhitespace)
crude <- tm_map(crude, removePunctuation)
crude <- tm_map(crude, content_transformer(tolower))
crude <- tm_map(crude, removeWords, stopwords("english"))

#write to disk in subfolder data
writeCorpus(crude, path = "data/")

# check files
dir("data/")
[1] "127.txt" "144.txt" "191.txt" "194.txt" "211.txt" "236.txt" "237.txt" "242.txt" "246.txt" "248.txt" "273.txt" "349.txt" "352.txt"
[14] "353.txt" "368.txt" "489.txt" "502.txt" "543.txt" "704.txt" "708.txt"

来自crude数据集的文件将写入磁盘,其id为文件名。