如何正确使用MIT的JWI(WordNet的Java API)中实现的stemmer method以获得单词的词干?我不确定如何初始化一个词干分析器并使用findStems方法。
答案 0 :(得分:5)
您不需要额外的库,但您确实需要字典。您可以从普林斯顿下载一个: https://wordnet.princeton.edu/wordnet/download/current-version/
我建议仅从#34;仅限WordNet 3.1数据库文件"部分下载字典。 提取存档。假设PATH / dict是输出的位置,您可以使用以下代码:
Dictionary dict = new Dictionary(new File("PATH/dict"));
dict.open();
WordnetStemmer stemmer = new WordnetStemmer(dict);
List<String> test = stemmer.findStems("feet", POS.NOUN);
for (int i = 0; i < test.size(); i++) {
System.out.println(test.get(i));
}
此示例的输出为&#34; foot&#34;。
答案 1 :(得分:1)
这是对sakthi答案的评论:在调用findStems
方法时,你实际上必须精确地找到你正在寻找的POS(名词,形容词,动词等)(JWI v2.2.3) :
http://projects.csail.mit.edu/jwi/api/edu/mit/jwi/morph/IStemmer.html
答案 2 :(得分:0)
使用的jar文件是edu.mit.jwi_2.1.4.jar和edu.sussex.nlp.jws.beta.11.jar
JWS ws = new JWS("C:/Program Files/WordNet","2.1");
WordnetStemmer stem = new WordnetStemmer(ws.getDictionary());
System.out.println("test" + stem.findStems("reading") );