分词器,停止词删除,Java中的词干
2022-09-02 10:44:43
我正在寻找一个类或方法,该类或方法需要一长串许多100个单词并进行标记化,删除非索引词和词干以在IR系统中使用。
例如:
“大肥猫,对袋鼠说'你认识的最有趣的家伙'......”
分词器将删除标点符号并返回单词ArrayList
停止词删除器将删除诸如“the”,“to”等单词
词干分析器会减少每个单词的“根”,例如“最有趣”会变得有趣
提前非常感谢。
我正在寻找一个类或方法,该类或方法需要一长串许多100个单词并进行标记化,删除非索引词和词干以在IR系统中使用。
例如:
“大肥猫,对袋鼠说'你认识的最有趣的家伙'......”
分词器将删除标点符号并返回单词ArrayList
停止词删除器将删除诸如“the”,“to”等单词
词干分析器会减少每个单词的“根”,例如“最有趣”会变得有趣
提前非常感谢。
AFAIK Lucene可以做你想做的事。与和你可以到停止词删除。结合(包括来自 Snowball 的工作)项目,您也可以执行词干提取。StandardAnalyzer
StopAnalyzer
Lucene contrib-snowball
但对于词干提取,也要考虑这个答案:产生真实单词的词干算法
这些是自然语言处理中的标准要求,所以我会查看这样的工具包。由于你需要Java,我会从OpenNLP开始:http://opennlp.sourceforge.net/
如果你能看看其他语言,还有NLTK(Python)
请注意,“你最有趣的家伙”不是标准的语法,这使得它比“你是我认识的最有趣的家伙”更难处理。不是不可能,但更难。我不知道有任何系统可以将“你的”等同于“你是”。