从角色向量回到VCorpus

时间:2017-05-23 14:48:00

标签: r tm corpus

我有一个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)]
}

现在我想回到“VCorpus”类,使用tm_map执行语料库清理任务,如:

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

但是我收到以下错误消息:

  

UseMethod(“tm_map”,x)中的错误:'tm_map'没有适用的方法   应用于“list”类的对象

我尝试了几件事,但收到的错误消息如下:

  

UseMethod(“as.VCorpus”)中的错误:没有适用的方法   'as.VCorpus'应用于类“character”的对象

我有什么想法可以转换回VCorpus并执行tm_map任务吗?

1 个答案:

答案 0 :(得分:0)

我认为您不应该将语料库设置为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