当前位置: 首页 > 知识库问答 >
问题:

如何在Lucene(5.2.1)中结合分析器实例来删除停止词和词干?

杜昆琦
2023-03-14

我使用的是Lucene最新版本5.2.1。在索引文档时,我希望停止词被删除,之后所有的词都应该保留到它的根词。

有EnglishAnalyzer可用,但词干设置不准确。还有StopAnalyzer可以删除停止字。

Lucene有什么分析器可以同时做这两件事吗?

并且我编写了一个自定义分析器,用于使用KSTEMFilter进行词干处理。如何在自定义分析器中使用现有的StopAnalyzer

共有1个答案

劳宇
2023-03-14

是的,将Lucene中的不同分析器组合在一起是可能的。

您应该使用类似这样的内容:

StringReader reader = new StringReader(text);
Tokenizer whitespaceTokenizer = new WhitespaceTokenizer();
whitespaceTokenizer.setReader(reader);
TokenStream tokenStream = new StopFilter(whitespaceTokenizer, StopAnalyzer.ENGLISH_STOP_WORDS_SET);
tokenStream = new PorterStemFilter(tokenStream);

其中text是一个变量,包含要分析的内容。在这里,我结合了空白标记化(可能您可以用更复杂的StandardAnalyzer替换它),然后我用StopFilter删除停止字,稍后在analyzer链中使用PorterStemFilter(它也比简单的EnglishStemmer更好,您也可以用任何您喜欢的TokenFilter替换它)。

完整的示例可在此获得-https://raw.githubusercontent.com/missionrise/information-retrieval-adventure/master/lucene4/src/main/java/org/mystic/stopwordsstemminganalyzer.java

 类似资料:
  • 问题内容: 我正在寻找一个类或方法,该类或方法需要一个长字符串(包含数百个单词),并进行标记化,删除停用词和词干,以用于IR系统。 例如: “大肥猫,对袋鼠说’我认识的最有趣的家伙’。” 分词器将删除标点符号并返回一个单词 停用词删除器会删除“ the”,“ to”等词 词干会减少每个单词的“词根”,例如“最有趣”会变得很有趣 提前谢谢了。 问题答案: AFAIK Lucene可以做您想要的。用和

  • 我一直在用spaCy查找最常用的名词和noun_phrases 在寻找单个名词时,我可以成功地去掉标点符号并停止单词 然而,使用noun_chunks来确定短语会导致属性错误 spacy.tokens.span.Span对象没有属性 我理解的性质的消息但我不能为我的生活得到语法正确的地方存在的停止字在一个emmatiated字符串将排除从被附加到noun_phrases列表 不删除停止字的输出 [

  • 本文向大家介绍在Python中使用NLTK删除停用词,包括了在Python中使用NLTK删除停用词的使用技巧和注意事项,需要的朋友参考一下 当计算机处理自然语言时,某些极端通用的单词似乎在帮助选择符合用户需求的文档方面几乎没有值,因此完全从词汇表中排除了。这些单词称为停用词。 例如,如果您输入的句子为- 停止单词删除后,您将获得输出- NLTK收集了这些停用词,我们可以将其从任何给定的句子中删除。

  • 我使用Lucene.net3.0.3,我不明白停止词应该如何在查询中工作。 我将此文本作为输入: 我使用StandardAnalyzer(Version.LUCENE_30)进行索引和查询。索引有一个字段 该字段设置为存储和分析。我也玩过不同的TermVector。对于查询解析,我使用简单的QueryParser。解析和 这就是问题所在: 查询返回文档-这很好 对的查询不会返回文档-我期待它,因为

  • 问题内容: 在建立的索引中,我有兴趣运行查询,然后(使用构面)返回该查询的带状疱疹。这是我在文字上使用的分析仪: 主要问题在于,对于Lucene 4.4,停止过滤器不再支持消除包含停止词的带状疱疹的参数。相反,我会得到类似的结果。 “红色和黄色” 自然,这极大地扭曲了返回的带状疱疹的数量。有没有一种方法可以在不进行结果后处理的情况下进行Lucene 4.4后的管理? 问题答案: 可能不是最理想的解

  • 我有以下问题:有几个文本文档需要解析和创建索引,但没有停止词和词干。我可以手动操作,但我从一位同事那里听说Lucene可以自动操作。我在网上搜索了很多我尝试过的例子,但是每个例子都使用了不同版本的lucene和不同的方法,没有一个例子是完整的。在这个过程结束时,我需要计算集合中每个术语的tf/idf。 更新:我现在已经用一个文档创建了一个索引。doc没有停止词,并且有词干。如何使用lucenc计算