【问题标题】:Getting word stems with JWI and Wordnet使用 JWI 和 Wordnet 获取词干
【发布时间】:2012-07-06 12:25:18
【问题描述】:

如何正确使用在 MIT 的 JWI(WordNet 的 Java API)中实现的stemmer method 来获取词干?我不确定如何初始化词干分析器并使用 findStems 方法。

【问题讨论】:

    标签: java wordnet jwi


    【解决方案1】:

    您不需要额外的库,但确实需要字典。您可以从普林斯顿下载一个: 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”。

    【讨论】:

      【解决方案2】:

      这是对 sakthi 答案的评论:在调用 findStems 方法 (JWI v2.2.3) 时,您实际上必须准确说明您要查找的 POS(名词、形容词、动词等): http://projects.csail.mit.edu/jwi/api/edu/mit/jwi/morph/IStemmer.html

      【讨论】:

      • 抱歉,如果迟到了评论。但如果没有定义 pos,findStems 会查找所有可能的值。
      • 你是对的,如果指定的POS为null,那么都考虑了,我的错!
      【解决方案3】:

      使用的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") );
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-23
        • 1970-01-01
        • 1970-01-01
        • 2017-01-11
        相关资源
        最近更新 更多