Lucene 在Solr中实现术语关联挖掘的最简单方法是什么?
关联挖掘在文本语料库中检索相关术语时似乎取得了很好的效果。在这个主题上有几项工作,包括著名的方法。挖掘关联最直接的方法是建立Lucene 在Solr中实现术语关联挖掘的最简单方法是什么?,lucene,solr,associations,Lucene,Solr,Associations,关联挖掘在文本语料库中检索相关术语时似乎取得了很好的效果。在这个主题上有几项工作,包括著名的方法。挖掘关联最直接的方法是建立docs X terms的共现矩阵,并查找最常出现在相同文档中的术语。在我以前的项目中,我通过TermDocs上的迭代直接在Lucene中实现了它(我通过调用来实现)。但我在索尔看不到任何类似的东西 因此,我的需要是: 检索特定字段中最相关的术语 检索特定字段中最接近指定项的项 我将按照以下方式对答案进行评分: 理想情况下,我希望找到Solr的组件,它可以直接满足特定的需求
docs X terms
的共现矩阵,并查找最常出现在相同文档中的术语。在我以前的项目中,我通过TermDocs上的迭代直接在Lucene中实现了它(我通过调用来实现)。但我在索尔看不到任何类似的东西
因此,我的需要是:
我不知道Solr的任何LSA组件。因为我的问题仍然没有答案,我必须写下我自己的想法并接受它。尽管如此,如果有人提出更好的解决方案,我会欣然接受,而不是我的 我将使用共生矩阵,因为它是关联挖掘最主要的部分。总的来说,Solr以某种方式提供了构建该矩阵所需的所有功能,尽管它们不如Lucene的直接访问效率高。要构建矩阵,我们需要:
有了这一点,就很容易建立共生矩阵。要挖掘关联,可以使用其他软件,例如,或编写自己的实现 您可以在以下查询中获得找到的文档中当前术语的出现次数:
http://ip:port/solr/someinstance/select?defType=func&fl=termfreq(field,xxx),*&fq={!frange l=1}termfreq(field,xxx)&indent=on&q=termfreq(field,xxx)&sort=termfreq(field,xxx) desc&wt=json
我用谷歌搜索了这个话题,我自己也在等待答案。顺便说一句,Solr的集群功能被描述为“将语义相关的结果/文档组合在一起的一种方式”。距离不够近,对吧?集群有点不同。首先,它适用于文档,而不是术语,所以您不能对术语进行集群(至少我看不出术语集群的任何意义,也不知道使用Solr进行集群的简单方法)。尽管看起来可能会出现相反的情况:您可以使用术语关联挖掘对文档执行聚类。谢谢您的回答,但实际上我不需要LSA-我提到它是为了证明这个主题非常流行,奇怪的是Solr仍然不支持此类任务。正如我提到的,我已经有了直接与Lucene检索关联的代码,所以我对如何使用Solr进行检索感兴趣。@ffriend:我不知道你在问什么。Solr与Lucene具有相同的索引格式,因此任何适用于Lucene的代码都适用于Solr。当然,我知道Solr在内部使用Lucene,我可以编写单独的工具从Lucene访问相同的索引,并获得我想要的。但这是不方便的:我将有两个独立的程序-Solr和我的工具,以不同的方式安装它们,以不同的方式调用它们,等等。我想要的是一个Solr命令或类似的东西来查找相关的术语。当然,我可以创建自定义RequestHandler并获得我所需要的(实际上,如果没有更好的选择,我将这样做),但首先我想知道是否已经有了用于此任务的内容。@ffriend:啊,我明白了。我的猜测是,编写自己的RequestHandler将是最简单的,但可能其他人知道的比我多。Solr的最新版本是否允许实现其他选项?