TermDocumentMatrix不适用于语料库

TermDocumentMatrix不适用于语料库,r,term-document-matrix,R,Term Document Matrix,尝试加载许多电子邮件文件,让R了解什么是垃圾邮件或火腿。首先,我创建了一个语料库,我想创建一个术语文档,我收到了一个错误。如何修复它 email_corpus <- Corpus(VectorSource(NA)) setwd("C:/ham_spam/") library(tm) library(stringr) email_corpus <- Corpus(VectorSource(NA)) folders <- c("easy_ham/", "spam_2/")

尝试加载许多电子邮件文件,让R了解什么是垃圾邮件或火腿。首先,我创建了一个语料库,我想创建一个术语文档,我收到了一个错误。如何修复它

email_corpus <- Corpus(VectorSource(NA))

setwd("C:/ham_spam/")

library(tm)
library(stringr)

email_corpus <- Corpus(VectorSource(NA))

folders <- c("easy_ham/", "spam_2/")

for(n in 1:2){
  folder <- folders[n]
  for(i in 1:length(list.files(folder))){
    email <- list.files(folder)[i]
    tmp <- readLines(str_c(folder, email))
    tmp <- str_c(tmp, collapse = "")
    tmp_corpus <- Corpus(VectorSource(tmp))
    email_corpus <- c(email_corpus, tmp_corpus)
  }
}

dtm_email <- DocumentTermMatrix(email_corpus)

email\u corpus将两个语料库与
c()
组合,通过将其转换为一个简单的
列表
来删除
语料库
类型

另一方面,使用
VCorpus
c()
将保留
VCorpus
类型


VCorpus
替换所有
Corpus
函数,问题应该得到解决。

将两个语料库与
c()
组合,将
语料库
类型转换为一个简单的
列表
来删除它

另一方面,使用
VCorpus
c()
将保留
VCorpus
类型


VCorpus
替换所有
Corpus
函数,问题应该得到解决。

您可以尝试以下方法:

将工作目录设置为包含ham和垃圾邮件文件夹的文件夹:

setwd('/path/to/dir/that/contains/folders/')

folders <- c("easy_ham/", "spam_2/")
然后可以使用
lappy()
读取文件:

email_txt <- lapply(emails, function(x) {
  tmp <- readLines(x)
  tmp <- str_c(tmp, collapse = "")
  return(tmp)
})

您可以尝试以下方法:

将工作目录设置为包含ham和垃圾邮件文件夹的文件夹:

setwd('/path/to/dir/that/contains/folders/')

folders <- c("easy_ham/", "spam_2/")
然后可以使用
lappy()
读取文件:

email_txt <- lapply(emails, function(x) {
  tmp <- readLines(x)
  tmp <- str_c(tmp, collapse = "")
  return(tmp)
})
email_corpus <- VCorpus(VectorSource(email_txt))
dtm_email <- DocumentTermMatrix(email_corpus)