【问题标题】:Which stemming algorithm should I use?我应该使用哪种词干算法?
【发布时间】:2014-04-20 16:48:02
【问题描述】:

我们正在开发一个垂直搜索引擎作为我们的 BTech 项目。我们想使用词干分析器将网页上的单词转换为它们的词根。我们尝试使用 Porter Stemmer,但它没有给出预期的结果。

Porter Stemmer 错误地转换例如

1. goes -> goe
2. ponies -> poni
3. happily -> happili

那么任何人都可以建议我们应该使用哪种算法?

【问题讨论】:

    标签: nlp porter-stemmer


    【解决方案1】:

    我过去做过类似的事情。 Porter Stemmer 在允许单词比较方面做得很好,但它不能用于显示。我的基本算法是:

    1. 抓取页面并通过 Porter Stemmer 运行其内容以存储词根。
    2. 获取用户输入并通过 Porter Stemmer 运行以获取用户输入的根。
    3. 比较抓取的词根和用户输入的词根(在我的例子中,排除了停用词字典)
    4. 生成结果页面以供显示并通过表示层运行,该表示层将在用户查询中具有匹配根词的所有词加粗。

    看起来您已经完成了大部分工作 - 只是演示部分需要一些额外的工作。

    更新: 只是为了澄清我在这里的意思,假设 Porter 词干分析器没有产生可读的词干,而是产生了数字词干 ID(例如 Goes -> 3749)。该算法仍然有效,但您仍然必须将根词重新映射为完整词以进行演示。

    【讨论】:

      【解决方案2】:

      您不需要 Stemmer,您需要 Lemmatizer
      Morpha 是一个非常好的词形还原器。
      Stanford CoreNLP 工具带有 morpha 的 java 端口,如果您更容易使用的话。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-10-25
        • 2013-06-14
        • 2022-11-28
        相关资源
        最近更新 更多