【问题标题】:Indonesian Stemmer Using Lucene使用 Lucene 的印度尼西亚词干分析器
【发布时间】:2015-04-05 04:36:07
【问题描述】:

这是来自Lucene library 的课程,我想利用(利用)...... 但我不知道如何在 Java 中使用/实现该库..

示例: 我有字符串数组 >> menjadikan、menjawab、penerbangan

你能帮我用 Java 创建这样一个数组吗?

【问题讨论】:

  • 我只知道.. 我很高兴你给了我一个警告并解决了这个问题。我会记住的。

标签: java lucene stemming


【解决方案1】:

这是一个示例代码 sn-p(基于 Lucene 测试代码),它使用印度尼西亚词干分析器创建 Lucene 分析器。

import java.io.IOException;
import java.io.Reader;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.Tokenizer;
import org.apache.lucene.analysis.core.KeywordTokenizer;


  ...
  Analyzer a = new Analyzer() {
    @Override
    public TokenStreamComponents createComponents(
               String fieldName, Reader reader) {
      Tokenizer tokenizer = new KeywordTokenizer(reader);
      return new TokenStreamComponents(tokenizer, 
                 new IndonesianStemFilter(tokenizer));
    }
  };

您也可以直接实例化IndonesianStemmer,并对单个单词调用stem 方法。例如;

  IndonesianStemmer stemmer = new IndonesianStemmer();
  ...
  char[] chars = "menjadikan".toCharArray();
  int len = stemmer.stem(chars, chars.length, false);
  String stem = new String(chars, 0, len);

警告:以上代码未经测试。

【讨论】:

  • 我没有投反对票,但是:您提供的 StemFilter 用法似乎很不寻常,除非在非常特殊的情况下,否则不是很有用。这个问题对我来说很不清楚,所以不确定它是否适合,真的。此外,根据问题中给出的示例词判断,您的stemmer.stem 调用可能应该将stemDerviational 设置为true。不过,不要认为其中任何一个值得反对。很可能他们只是因为回答了他们认为应该关闭的问题而投了反对票。
猜你喜欢
  • 2012-02-01
  • 1970-01-01
  • 2019-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-12
  • 2019-09-21
  • 2021-11-29
相关资源
最近更新 更多