使用r tm包时出现stemCompletion错误

时间:2016-05-16 09:55:16

标签: r tm

我在r中使用tm包。一切正常,直到我包括stemCompletion。我收到以下错误:

Error in grep(sprintf("^%s", w), dictionary, value = TRUE) : 
  invalid regular expression 

我的代码如下:

path = '~/Interviews/Transcripts/'
file.names <- dir(path, pattern = '.txt')

corpus = lapply(seq_along(file.names), function(index) {
    fileName = file.names[index]
    filePath = paste(path, fileName, sep = '')
    transcript = readChar(filePath, file.info(filePath)$size)
    transcript <- gsub("[’‘^]", '', transcript)

    corpusName = paste('transcript', index, sep = "_")

    c <- Corpus(VectorSource(transcript))
    DublinCore(c[[1]], 'Identifier') <- paste(index, fileName, sep ='_')
    meta(c, type = 'corpus')

    c <- tm_map(c, stripWhitespace)
    c <- tm_map(c, content_transformer(tolower))
    c <- tm_map(c, removeWords, c(stopwords("english"), 'yeah', 'yep'))
    c <- tm_map(c, removePunctuation)
    c <- tm_map(c, stemDocument)
    c <- tm_map(c, stemCompletion, c)
    c <- tm_map(c, PlainTextDocument)
    c
})

1 个答案:

答案 0 :(得分:1)

首先,从理论上讲,您可能希望使用tm_map(c, content_transformer(stemCompletion), c),因为tm_map(c, stemCompletion, c)PlainTextDocument传递给x的参数stemCompletion,尽管它预计一个字符向量(见?stemCompletion)。其次,没有干标记来完成干,因为你没有进行任何标记化(例如?termDocumentMatrix),并且你的字典语料库已经被删除了,所以你正在尝试的方法可能无论如何都不会这样。

(第三,我是第二个@RomanLuštrik:请编辑你的帖子并将其作为一个可重复性最小的例子。这样,见证这个错误的读者和其他人可以轻松地跟随。)

以下是一个例子:

content(tm_map(Corpus(VectorSource("stem completion has advantages")), stemDocument)[[1]])
# [1] "stem complet has advantag"

stemCompletion(c("complet", "advantag"), Corpus(VectorSource("stem completion has advantages")))
#      complet     advantag 
# "completion" "advantages"