【问题标题】:porter stemming algorithm implementation question?波特词干算法实现问题?
【发布时间】:2010-12-24 05:53:34
【问题描述】:

我正在尝试实现搬运工词干算法,但我被困在这一点上:

步骤 1b

(m>0) EED -> EE                    feed      ->  feed
                                   agreed    ->  agree
(*v*) ED  ->                       plastered ->  plaster
                                   bled      ->  bled
(*v*) ING ->                       motoring  ->  motor
                                   sing      ->  sing

feed 的 m 不是等于 1 吗?饲料 >> [c]vvc[] >>[c]vc[].

如果是这样,他为什么不将 Feed 转换为费用 我知道这是错误的,有没有人能解释一下?

你可以在这里查看原始算法http://tartarus.org/~martin/PorterStemmer/def.txt

谢谢

【问题讨论】:

  • FWIW,Porter 算法已经在 C 中作为“雪球”库的一部分实现:snowball.tartarus.org/download.php
  • 我知道,但我实现它是为了好玩,再次感谢

标签: c++ algorithm porter-stemmer


【解决方案1】:

'feed' 的 m 确实是 1。但是,您需要重新仔细阅读文档。条件中的m指的是词干的度量,即需要在替换后计算。在您检查 feed -> fee 是否有效的情况下,您计算 m(fee) = 0,因此您不进行替换。

也感谢算法!很有趣!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-08
    • 2010-09-16
    • 1970-01-01
    相关资源
    最近更新 更多