【问题标题】:Lucene: indexing documents based on dictionary terms/ implementing custom AnalyzerLucene:基于字典术语索引文档/实现自定义分析器
【发布时间】:2014-02-27 02:06:21
【问题描述】:

我有一个大学网页(文档)的转储,我的目标是使用维基百科的术语词典在给定文档中查找这些术语。最终,我应该计算每个维基百科术语的文档频率。 (不需要每个文档的词频)

维基百科(多词)词典条目如下所示 -

<t id="34780065">Years of the 20th century in Mauritania</t>
<t id="34780066">1960 International Gold Cup</t>
<t id="34780067">Roman Lob songs</t>

我正在尝试使用 Lucene 来实现这一点。

方法 1:使用 ShingleAnalyzer 从文档中索引 n-gram 标记。 n-grams,因为字典包含多词术语。然后循环遍历每个字典术语,从索引中找到它们的文档频率。

方法 2:使用建议的技术here,实现一个分析器,用于查找维基百科词典以进行索引。然后使用此分析器在文档中索引令牌流。

问题:两种方法中哪一种更有效? 如果我采用第二种方法,我该如何实现这个自定义分析器。我还没有找到任何好的资源来帮助解释这种实现。

【问题讨论】:

    标签: java lucene mediawiki text-mining analyzer


    【解决方案1】:

    我认为您想使用方法 1,因为方法 2 看起来您必须查找每个单词的 Wikipedia 词典,然后是每个 2 个单词,然后是每个 3 个单词,...(或以相反的顺序)每个n-gram。方法 1 中的 N-gram 索引,然后丢弃不在 Wikipedia 字典中的 n-gram,我认为当您查看每个 n-gram 一次时,您会更快地到达那里(O(n)* Wikipedia-dictionary-lookup 性能如果我正确理解问题)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-25
      • 1970-01-01
      • 2012-04-17
      • 2012-02-22
      • 2013-04-29
      • 1970-01-01
      相关资源
      最近更新 更多