提问者:小点点

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


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

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

<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元语法标记进行索引。n-grams,因为字典包含多词术语。然后遍历每个字典术语,从索引中找到它们的文档频率。

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

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


共1个答案

匿名用户

我认为你应该使用方法1,因为方法2看起来像是你必须查找维基百科字典中的每个单词,然后是每两个单词,然后是每三个单词,...(或以相反的顺序)用于每个n元语法。方法1中的N-gram索引,然后丢弃不在维基百科字典中的n-gram,我认为这将使您更快地到达那里,因为您只需查看每个n-gram一次(O(n) *维基百科字典查找性能,如果我正确理解问题的话)。