我们正在开发一个垂直搜索引擎作为我们的 BTech 项目。我们想使用词干分析器将网页上的单词转换为它们的词根。我们尝试使用 Porter Stemmer,但它没有给出预期的结果。
Porter Stemmer 错误地转换了例如
1. goes -> goe
2. ponies -> poni
3. happily -> happili
那么有人可以建议我们应该使用哪种算法吗?
我们正在开发一个垂直搜索引擎作为我们的 BTech 项目。我们想使用词干分析器将网页上的单词转换为它们的词根。我们尝试使用 Porter Stemmer,但它没有给出预期的结果。
Porter Stemmer 错误地转换了例如
1. goes -> goe
2. ponies -> poni
3. happily -> happili
那么有人可以建议我们应该使用哪种算法吗?
我过去做过这样的事情。Porter Stemmer 在允许单词比较方面做得很好,但它不能用于显示。我的基本算法是:
看起来您已经完成了大部分工作 - 只是演示部分需要一些额外的工作。
更新:为了澄清我在这里的意思,想象一下 Porter stemmer 没有产生可读的词干,而是产生了数字词干 ID(例如 Goes -> 3749)。该算法仍然有效,但您仍然必须将根词重新映射为完整词以进行演示。
您不需要 Stemmer,您需要Lemmatizer。
Morpha是一个非常好的词形还原器。如果您更容易使用,Stanford CoreNLP 工具附带了一个 morpha 的 Java
端口。