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