Lucene:基于字典术语/实现自定义分析器索引文档

时间:2014-02-03 14:26:42

标签: java lucene mediawiki text-mining analyzer

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

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

<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-gram,因为字典包含多字词。然后遍历每个字典术语,从索引中查找文档频率。

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

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

1 个答案:

答案 0 :(得分:1)

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