在R中出现的词

时间:2017-03-20 16:17:31

标签: r text-mining stemming

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

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"

1 个答案:

答案 0 :(得分:3)

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