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

用Lucene阻止英语单词

邬安邦
2023-03-14
问题内容

我正在Java应用程序中处理一些英文文本,因此需要阻止它们。例如,从文本“ amenities / amenity”中,我需要获取“ amenit”。

该函数如下所示:

String stemTerm(String term){
   ...
}

我已经找到了Lucene Analyzer,但是对于我所需要的来说,它看起来太复杂了。
http://lucene.apache.org/java/2_2_0/api/org/apache/lucene/analysis/PorterStemFilter.html

有没有一种方法可以在不构建分析器的情况下使用它来阻止单词?我不了解分析仪的所有业务…

编辑 :我实际上需要一个词干+词形化。Lucene可以这样做吗?


问题答案:
import org.apache.lucene.analysis.PorterStemmer;
...
String stemTerm (String term) {
    PorterStemmer stemmer = new PorterStemmer();
    return stemmer.stem(term);
}

有关更多详细信息,请参见此处。如果只想阻止,那么应该使用它代替Lucene。

编辑: 您应该term先将小写字母传递给stem()



 类似资料:
  • 问题内容: 在这里,我想问些奇怪的事情。 我想问问有什么方法/逻辑可以将整数值转换成包含数字英文单词的字符串值? 例如,用户输入22并获得输出22或2。 谢谢 问题答案: 看看这段代码,它可能就是您想要的。例如,在main方法内部,如果有: 输出: 编辑 我复制了下面的代码,清理了一下格式(主方法在底部):

  • 问题内容: 我对Go如何处理非阻塞IO感到困惑。API在我看来基本上是同步的,并且在Go上观看演示时,听到诸如“和调用块”之类的注释并不罕见。 从文件或网络读取时,Go是否使用阻塞IO?还是当在Go Routine中使用某种魔术来重写代码? 来自C#背景,这感觉非常不直观,在C#中,当使用异步API时我们使用了关键字。这清楚地表明,API可以产生当前线程,并在以后的延续中继续。 因此,TLDR;当

  • 问题内容: 我只是写了这个漂亮的小函数,它可以在表单本身上工作… 按照我的逻辑,我想在输入textarea期间接受回车。同样,将输入字段的回车键行为替换为跳到下一个输入字段的行为(就像按下Tab键一样)将是额外的好处。有谁知道使用事件传播模型正确触发适当元素上的回车键,但阻止表单在其按下时提交的方法吗? 问题答案: 这是我功能的修改版本。它执行以下操作: 防止Enter键在除textarea,bu

  • 问题内容: 这应该真的很容易。我使用的是在Apache Tomcat 6.0.18下运行的Quartz,我有一个jobs.xml文件,该文件设置了每分钟运行的计划作业。 我想做的是,如果下一个触发时间到来时该作业仍在运行,则我不想启动新作业,因此可以让旧实例完成。 有没有办法在Jobs.xml中指定此设置(防止并发实例)? 如果不是,是否可以共享我的应用程序Job实现中对内存中单例的访问(这是通过

  • 问题内容: 我有多个包含要发送的消息的BlockingQueues。消费者数量可能少于队列数量吗?我不想遍历队列并继续轮询它们(忙于等待),并且我不想为每个队列都分配一个线程。相反,当任何队列中都有消息可用时,我想唤醒一个线程。 问题答案: 您可以做的一个技巧是让队列排队。因此,您要做的是只有一个阻塞队列,所有线程都订阅该队列。然后,当您将某些内容排队到其中一个BlockingQueues中时,您

  • 问题内容: 是否有任何Java API(S),将提供(如英语单词的复数形式的)? 问题答案: Wolfram | Alpha返回给定单词的变形形式列表。 参见以下示例: http://www.wolframalpha.com/input/?i=word+cactus+inflected+forms 这是他们的API: http://products.wolframalpha.com/api/