【问题标题】:Get most frequent words from Lucene 4.0 index从 Lucene 4.0 索引中获取最常用的词
【发布时间】:2012-11-15 08:05:28
【问题描述】:

我对 Lucene 很陌生。我有一个 Lucene 4.0 索引,我想计算第 n 个最常用的词来创建一个停用词列表。我在先前版本的 Lucene 中发现了处理这个问题的帖子,例如 Get highest frequency terms from Lucene index 但似乎 reader.terms() 在 4.0 中已被弃用。

如何使用 Lucene 4.0 实现这一点?

谢谢!

【问题讨论】:

  • 实际上 Luke 4.0 确实符合我的目的。无论如何,编程方法会更好:)

标签: lucene


【解决方案1】:

您可能需要查看由 Lucene 贡献者之一 Mike McCandless 撰写的 New index statistics in Lucene 4.0 article。你要找的可能是TermsEnum.totalTermFreq()

【讨论】:

    【解决方案2】:

    这是使用 lucene-misc 包中的HighFreqTerms 的示例。

    请注意,如果您想按词频排名,您可以使用HighFreqTerms.TotalTermFreqComparator

    DocFreqComparator cmp = new HighFreqTerms.DocFreqComparator();
    TermStats[] highFreqTerms = HighFreqTerms.getHighFreqTerms(reader, n, "text", cmp);
    
    List<String> terms = new ArrayList<>(highFreqTerms.length);
    for (TermStats ts : highFreqTerms) {
        terms.add(ts.termtext.utf8ToString());
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-18
      • 2021-08-06
      • 2014-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多