分词器,停止词删除,Java中的词干

2022-09-02 10:44:43

我正在寻找一个类或方法,该类或方法需要一长串许多100个单词并进行标记化,删除非索引词和词干以在IR系统中使用。

例如:

“大肥猫,对袋鼠说'你认识的最有趣的家伙'......”

分词器将删除标点符号并返回单词ArrayList

停止词删除器将删除诸如“the”,“to”等单词

词干分析器会减少每个单词的“根”,例如“最有趣”会变得有趣

提前非常感谢。


答案 1

AFAIK Lucene可以做你想做的事。与和你可以到停止词删除。结合(包括来自 Snowball 的工作)项目,您也可以执行词干提取。StandardAnalyzerStopAnalyzerLucene contrib-snowball

但对于词干提取,也要考虑这个答案:产生真实单词的词干算法


答案 2

这些是自然语言处理中的标准要求,所以我会查看这样的工具包。由于你需要Java,我会从OpenNLP开始:http://opennlp.sourceforge.net/

如果你能看看其他语言,还有NLTK(Python)

请注意,“你最有趣的家伙”不是标准的语法,这使得它比“你是我认识的最有趣的家伙”更难处理。不是不可能,但更难。我不知道有任何系统可以将“你的”等同于“你是”。


推荐