我是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导出已编辑的文本文件,包括其原始文件名?
感谢您的帮助
答案 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为文件名。