使用语料库作为字典时,stemCompletion()函数输出错误

时间:2016-11-07 08:32:29

标签: r tm

作为干完成步骤的一个例子,假设我想在c('universidad','university','university')字典中找到与'univers'匹配的最常见(普遍)单词。根据stemCompletion()函数的帮助页面:

  

type ='prevalent'(默认)将最常见的匹配作为完成。

library(tm) # 0.6.2

如果我将字典作为向量插入:

stemCompletion('univers', dictionary=c('universidad', 'university', 'university'))
     univers 
"university" 

我得到了正确的答案。 但是,如果我将字典作为语料库提供:

my.dictionary <- Corpus(VectorSource(c('universidad', 'university', 'university')))
stemCompletion('univers', dictionary=my.dictionary)
      univers 
"universidad"

我得到了错误的答案!

任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:0)

在包源tm/src/complete.R中,似乎如果将Corpus作为dictionary参数传递给stemComplete,那么在词干完成分析之前会删除该词典。

您的版本的相关行是8-9:

if (inherits(dictionary, "Corpus"))
    dictionary <- unique(unlist(lapply(dictionary, words)))

为什么相同的逻辑没有应用于矢量字典是打包维护者的问题,但似乎观察到的行为是故意的。