从字符向量回到 VCorpus

From character vector back to VCorpus

我有一个VCorpus,是这样提取的:

corp <- VCorpus(DirSource("//Filepath"))

然后我想从我的语料库中的文件中删除包含特定单词的特定行。为此,我将语料库转换为 as.character:

corp <- sapply(corp, as.character)

然后删除所有行,包括单词 FILE:

for(j in seq(corp)) {
  corp[[j]] <- corp[[j]][!grepl("FILE", corp[[j]], ignore.case = FALSE)]
}

现在我想回到 class "VCorpus" 使用 tm_map 执行 Corpus 清理任务,例如:

corp <- tm_map(corp, content_transformer(tolower))
corp <- tm_map(corp, removeWords, stopwords("english"))
corp <- tm_map(corp, removePunctuation)
corp <- tm_map(corp, removeNumbers)

但我收到以下错误消息:

Error in UseMethod("tm_map", x) : no applicable method for 'tm_map' applied to an object of class "list"

我尝试了几种方法,但收到如下错误消息:

Error in UseMethod("as.VCorpus") : no applicable method for 'as.VCorpus' applied to an object of class "character"

关于如何转换回 VCorpus 并执行 tm_map 任务有什么想法吗?

我认为您不应该将语料库设置为 as.character,因为它会破坏使其成为语料库的元数据。对于语料库的元素 i,文本已经包含在 corp[[i]]$content 中,因此您最好直接使用它。

适合我的工作流程是...

corp <- VCorpus(DirSource("//Filepath"))

for(j in seq(corp)) {
    corp[[j]]$content <- corp[[j]]$content[!grepl("FILE", corp[[j]]$content,ignore.case = FALSE)]
}

corp <- tm_map(corp, content_transformer(tolower))
...etc