ffr*_*end 11 lucene solr associations
关联挖掘似乎为在文本语料库中检索相关术语提供了良好的结果.关于这个主题有几个着作,包括众所周知的LSA方法.挖掘关联的最直接方法是建立共生矩阵docs X terms并找到最常出现在同一文档中的术语.在我之前的项目中,我通过对TermDocs的迭代直接在Lucene中实现它(我通过调用IndexReader.termDocs(Term)得到它).但我在Solr看不出任何类似的东西.
所以,我的需求是:
我会按以下方式评价答案:
由于我的问题仍然没有答案,我必须写下自己的想法并接受它。尽管如此,如果有人提出更好的解决方案,我会很乐意接受它而不是我的。
我将选择共现矩阵,因为它是关联挖掘的最重要部分。一般来说,Solr 提供了以某种方式构建此矩阵所需的所有函数,尽管它们不如直接使用 Lucene 访问那么高效。为了构建矩阵,我们需要:
使用标准 Solr 组件可以轻松完成这两项任务。
检索术语TermsComponent或分面搜索可以使用我们只能获取顶级术语(默认情况下)或所有术语(通过设置要采用的最大术语数,有关详细信息,请参阅特定功能的文档)。
获取包含相关术语的文档只需搜索该术语即可。这里的弱点是我们每个术语需要 1 个请求,并且可能有数千个术语。另一个弱点是简单搜索和分面搜索都不提供有关找到的文档中当前术语出现次数的信息。
有了这个,构建共现矩阵就很容易了。为了挖掘关联,可以使用其他软件(例如Weka)或编写自己的实现(例如Apriori 算法)。