我有一个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任务吗?
答案 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