【问题标题】:Italian stemming library in javajava中的意大利语词干库
【发布时间】:2012-11-14 14:45:49
【问题描述】:

我正在搜索一个 java 库或一些可以对意大利语字符串进行词干提取的东西。

目标是比较意大利语单词。此时,“attacco”、“attacchi”、“attaccare”等词被认为是不同的,我想返回一个真实的比较。

我发现了类似 Lucene、snowball.tartarus.org 等的东西。 还有其他有用的东西吗,或者我如何在java中使用它们?

感谢您的回答。

【问题讨论】:

  • 语言学家的堆栈交换可能会给您带来更好的运气。一群语言学家现在是“计算语言学家”,并且对语言学家图书馆的东西有很好的了解。消息来源:我与一群计算语言学家一起工作。

标签: java nlp stemming snowball


【解决方案1】:

下载Snowball 用于Java here。

它包含一个名为org.tartarus.snowball.ext.italianStemmer 的类,它扩展了SnowballStemmer。

要使用SnowballStemmer,请查看以下动词attaccare现在时的测试代码:

import org.junit.Test;
import org.tartarus.snowball.SnowballStemmer;
import org.tartarus.snowball.ext.italianStemmer;

public class SnowballItalianStemmerTest {

    @Test
    public void testSnowballItalianStemmerAttaccare() {

        SnowballStemmer stemmer = (SnowballStemmer) new italianStemmer();

        String[] tokens = "attacco attacchi attacca attacchiamo attaccate attaccano".split(" ");    
        for (String string : tokens) {
            stemmer.setCurrent(string);
            stemmer.stem();
            String stemmed = stemmer.getCurrent();
            Assert.assertEquals("attacc", stemmed);
            System.out.println(stemmed);
        }

    }

}

输出:

attacc
attacc
attacc
attacc
attacc
attacc

有关另一个使用示例,请参阅同一 tgz 文件中包含的TestApp.java。

用 Java 编写的 Lucene 使用 Snowball 进行词干提取,例如在 SnowballFilter 中作为过滤器。

【讨论】:

  • 有没有办法提供很长的词干列表(例如字典)来比较单词?例如:for(String string : AssertList){Assert.assertEquals(string,stemmed)}
  • 您是否正在寻找测试词干分析器的策略?
  • 不,没关系。问题是我以前不知道每个数组中有哪些单词。相反,我做了我试图用这段代码做的事情,没有断言:'private String[] stemmed(String[] x){ SnowballStemmer stemmer = (SnowballStemmer) new italianStemmer();字符串[] s= 新字符串[x.length]; for (int i=0;i
  • 看起来不错。 Assert 仅用于测试驱动词干分析器类,并显示其行为。
猜你喜欢
  • 1970-01-01
  • 2021-11-01
  • 1970-01-01
  • 2012-09-27
  • 1970-01-01
  • 1970-01-01
  • 2020-06-12
  • 2022-10-26
  • 2018-12-08
相关资源
最近更新 更多