我应该使用哪种词干算法?

时间:2014-03-15 07:57:01

标签: nlp porter-stemmer

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

Porter Stemmer错误地转换了例如。

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

那么有人可以建议我们应该使用哪种算法吗?

2 个答案:

答案 0 :(得分:0)

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

  1. 抓取页面并通过Porter Stemmer运行其内容以存储根词。
  2. 获取用户输入并通过Porter Stemmer运行它以获取用户输入的根。
  3. 将已抓取的根词与用户输入的根词进行比较(在我的情况下,使用不包括停用词的词典)
  4. 生成显示的结果页面并通过表示层运行它,该表示层将用户查询中具有匹配根词的所有单词加粗。
  5. 看起来你大部分都在那里 - 它只是需要一些额外工作的演示位。

    更新:只是为了澄清我的意思,想象一下Porter stemmer没有产生可读的词干,而是产生数字词干ID(例如Goes - > 3749)。该算法仍然有效,但您仍然需要将根词重新映射为完整的单词以进行演示。

答案 1 :(得分:0)

你不需要一个Stemmer,你需要一个Lemmatizer Morpha是一个非常好的引理器 Stanford CoreNLP工具带有一个morpha的java端口,如果你更容易使用它。