R 中的词干

Word stemming in R

我正在从事一个文本挖掘项目并尝试清理文本 - singular/plural 形式的单词、不同时态的动词和拼写错误的单词。我的示例如下所示:

test <- c("apple","apples","wife","wives","win","won","winning","winner","orange","oranges","orenge")

我尝试使用 SnowballC 包中的 wordStem 函数。然而结果是错误的:

"appl"   "appl"   "wife"   "wive"   "win"    "won"    "win"    "winner" "orang"  "orang"  "oreng" 

我想看的是:

"apple"   "apple"   "wife"   "wife"   "win"    "win"    "win"    "winner" "orange"  "orange"  "orange"

这就是 Porter Stemmer 的工作原理。这样做的原因是它允许相当简单的规则来创建词干,而无需存储大量英语词汇。例如,我认为您不希望 changechanging 都转到 chang。它们都应该归于 change 似乎更自然。那么你会制定一个规则,如果你从一个词的末尾去掉 ing,你应该加回 e 以获得词干吗?那么 clangclanging 会发生什么? Porter Stemmer 给出 clang。添加 e 将得到非单词 clange。您要么使用有时会创建不是单词的词干的简单处理规则,要么 您必须包含大量词汇并具有更复杂的规则,这些规则取决于单词是什么。 Porter Stemmer 使用简单规则方法。