【问题标题】:Word stemming in RR中的词干
【发布时间】:2017-03-20 16:17:31
【问题描述】:

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

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"

【问题讨论】:

  • 您可能想查看 tm 包中的 stemCompletion 函数。
  • 您希望对结果做什么?对于文本分析的许多应用,两个不同形式的单词映射到同一个词干就足够了,而该词干不需要是实际的英语词根。特别是,您调用的函数使用了 Martin Porter 博士流行的词干算法的一个版本,它不会尝试找到实际的英语词根。结果并没有“错误”——它正在做它设计的事情,而不是你所期望的。

标签: r text-mining stemming


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2011-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多