【发布时间】:2012-07-06 12:25:18
【问题描述】:
如何正确使用在 MIT 的 JWI(WordNet 的 Java API)中实现的stemmer method 来获取词干?我不确定如何初始化词干分析器并使用 findStems 方法。
【问题讨论】:
如何正确使用在 MIT 的 JWI(WordNet 的 Java API)中实现的stemmer method 来获取词干?我不确定如何初始化词干分析器并使用 findStems 方法。
【问题讨论】:
您不需要额外的库,但确实需要字典。您可以从普林斯顿下载一个: https://wordnet.princeton.edu/wordnet/download/current-version/
我建议只从“WordNet 3.1 DATABASE FILES ONLY”部分下载字典 提取存档。假设 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));
}
这个例子的输出是“foot”。
【讨论】:
这是对 sakthi 答案的评论:在调用 findStems 方法 (JWI v2.2.3) 时,您实际上必须准确说明您要查找的 POS(名词、形容词、动词等):
http://projects.csail.mit.edu/jwi/api/edu/mit/jwi/morph/IStemmer.html
【讨论】:
使用的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") );
【讨论】: