在 R 中写入 .csv 时如何更改 DTM 的行名称
How to change row names of a DTM when writing to .csv in R
我在一个文件夹中存储了大量文档。我使用这些文档进行文本挖掘,使用 tm 包。我一直在进行主题建模,并想将一些结果写入 csv 文件。但是,这样做时,文档的名称表示如下:character(0).
我想要文档的名称,因为它们存储在我的文件夹中。这是我使用的代码(仅显示相关步骤):
my_corpus <- VCorpus(DirSource(directory, pattern = ".pdf"),
readerControl = list(reader = readPDF, language = "dutch"))
dtm <- DocumentTermMatrix(my_corpus)
library(topicmodels)
ldaOut <- LDA(dtm, k, method = "Gibbs")
ldaOut.topics <- as.matrix(topics(ldaOut))
write.csv(ldaOut.topics, file = paste("LDAGibbs", k, "CorpusToTopics.csv"))
我似乎无法在任何地方找到答案。我假设这是我不知道的 R 中的基本代码。
很奇怪你如何丢失文档名称。我似乎无法重现此错误,而且我有很多带有 pdf 的不同文件夹和大量不同的命名约定。
在创建 dtm 时检查 dtm$dimnames$Docs
的结果。如果这导致 charactor(0)
,您可以执行以下操作以将文档名称放入文档术语矩阵中。
pdf_names <- list.files(directory, pattern = ".pdf")
dtm$dimnames$Docs <- pdf_names
我在一个文件夹中存储了大量文档。我使用这些文档进行文本挖掘,使用 tm 包。我一直在进行主题建模,并想将一些结果写入 csv 文件。但是,这样做时,文档的名称表示如下:character(0).
我想要文档的名称,因为它们存储在我的文件夹中。这是我使用的代码(仅显示相关步骤):
my_corpus <- VCorpus(DirSource(directory, pattern = ".pdf"),
readerControl = list(reader = readPDF, language = "dutch"))
dtm <- DocumentTermMatrix(my_corpus)
library(topicmodels)
ldaOut <- LDA(dtm, k, method = "Gibbs")
ldaOut.topics <- as.matrix(topics(ldaOut))
write.csv(ldaOut.topics, file = paste("LDAGibbs", k, "CorpusToTopics.csv"))
我似乎无法在任何地方找到答案。我假设这是我不知道的 R 中的基本代码。
很奇怪你如何丢失文档名称。我似乎无法重现此错误,而且我有很多带有 pdf 的不同文件夹和大量不同的命名约定。
在创建 dtm 时检查 dtm$dimnames$Docs
的结果。如果这导致 charactor(0)
,您可以执行以下操作以将文档名称放入文档术语矩阵中。
pdf_names <- list.files(directory, pattern = ".pdf")
dtm$dimnames$Docs <- pdf_names