作为词干补全步骤的一个例子,假设我想在c('universidad', 'university', 'university')字典中找到与'univers'匹配的最频繁(流行)的单词。根据stemCompletion()函数的帮助页:
type = '盛行'(默认)将最频繁的匹配作为完成。
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"
我得到了错误的答案!
感谢任何帮助!
在包源tm/src/complete.R
中,似乎如果将Corpus
作为dictionary
参数传递给stemComplete,则在词干补全分析之前删除该字典。
你的版本的相关行是8-9:
if (inherits(dictionary, "Corpus"))
dictionary <- unique(unlist(lapply(dictionary, words)))
为什么相同的逻辑不应用于向量字典是一个问题,但似乎观察到的行为是有意的。