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