当前位置: 首页 > 面试题库 >

是否有Porter2 stemmer的Java实现

章哲彦
2023-03-14
问题内容

您知道Porter2词干分析器的任何Java实现(或用Java编写的更好的词干分析器)吗?我知道这里有一个Java版本的Porter(不是Porter2):

http://tartarus.org/~martin/PorterStemmer/java.txt

但是在http://tartarus.org/~martin/PorterStemmer/上,作者提到Porter有点过时了,建议使用Porter2,网址为:

http://snowball.tartarus.org/algorithms/english/stemmer.html

但是,我的问题是此Porter2是用雪球编写的(我以前从未听说过,所以对此一无所知)。我正在寻找的是它的Java版本。

谢谢。您的帮助将受到他的高度赞赏。


问题答案:

Snowball算法可通过Java下载获得

从snowball.tartarus.org:

2002年2月-Java支持Richard修改了滚雪球代码生成器,以生成Java输出以及ANSI C输出。这意味着纯Java系统现在可以使用滚雪球茎。

这就是你想要的,对吗?

您可以这样创建它的实例:

  Class stemClass = Class.forName("org.tartarus.snowball.ext." + lang + "Stemmer");
  stemmer = (SnowballProgram) stemClass.newInstance();
  stemmer.setCurrent("your_word");
  stemmer.stem();
  String your_stemmed_word = stemmer.getCurrent();


 类似资料:
  • 问题内容: 我想用Java实现ActiveRecord的实现,在设计自己的Java之前,我想知道是否有开源的实现。 我知道其他成功的Java OR映射工具,例如Hibernate,Castor等…,那不是我想要的,我想要一个ActiveRecord像RoR: RoR ActiveRecord .NET城堡ActiveRecord 任何人? 问题答案: 在“谷歌搜索”一个答案之后,我找到了项目arj

  • 问题内容: Java中是否有Mutex对象或一种创建对象的方法?我问是因为用1许可初始化的Semaphore对象对我没有帮助。考虑这种情况: 如果在第一次获取时发生异常,则catch块中的释放将增加许可,并且该信号量不再是二进制信号量。 正确的方法是吗? 上面的代码是否可以确保信号量是二进制的? 问题答案: 看到此页面:http : //www.oracle.com/technetwork/art

  • 问题内容: 是否仍然有效?我想知道本书中描述的思想,概念和实现是否仍与最新的Java版本兼容。 我问是因为最新版本是2006年完成的。 问题答案: 是的,在我看来仍然有效。从6到7的变化不大。Fork- join是一项新功能,非常适合分治法式的问题。但是本书中所有现有的东西,例如同步,易失性,servlet,仍然非常有效。

  • 问题内容: 关闭。 此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow 的主题。 5年前关闭。 改善这个问题 我想用Java实现ActiveRecord的实现,在设计自己的Java之前,我想知道是否有开源的实现。 我知道其他成功的Java OR映射工具,例如Hibernate,Castor等…,那不是我想要的,我想要一个ActiveRe

  • 问题内容: 我知道有非标准框架,例如commons-validator和hibernate Validator。 我想知道是否有人知道官方标准的实施。 问题答案: Hibernate Validator是JSR-303 的参考实现

  • 问题内容: 我需要为正在使用的API 指定一个,但实际上不需要输出。Java是否具有等同于? 问题答案: 从Java 11开始,有一个静态工具可以完全满足您的需要,它是一个静态工厂方法: 返回一个丢弃所有字节的新OutputStream。返回的流最初是打开的。通过调用close()方法关闭流。随后对close()的调用无效。