Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 使用elasticsearch进行文档聚类的便捷方法是什么?_Algorithm_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Cluster Analysis - Fatal编程技术网 elasticsearch,cluster-analysis,Algorithm,elasticsearch,Cluster Analysis" /> elasticsearch,cluster-analysis,Algorithm,elasticsearch,Cluster Analysis" />

Algorithm 使用elasticsearch进行文档聚类的便捷方法是什么?

Algorithm 使用elasticsearch进行文档聚类的便捷方法是什么?,algorithm,elasticsearch,cluster-analysis,Algorithm,elasticsearch,Cluster Analysis,我在elasticsearch索引中存储了许多来自不同来源的RSS源的新闻文章。当我进行搜索查询时,它会在一个查询中返回大量类似的新闻文章,因为相同的新闻主题会被许多RSS源覆盖 相反,我想做的是在同一主题的一组文章中只返回一篇新闻文章。因此,我需要识别哪些文章是关于同一主题的,对这些文档进行分类,并只返回此类分类中的“最佳”文章 解决这个问题最方便的方法是什么? 我是否可以更像这个API一样使用elasticsearch?或者插件是未来的发展方向?或者根本没有方便的方法,我必须以某种方式实现我

我在elasticsearch索引中存储了许多来自不同来源的RSS源的新闻文章。当我进行搜索查询时,它会在一个查询中返回大量类似的新闻文章,因为相同的新闻主题会被许多RSS源覆盖

相反,我想做的是在同一主题的一组文章中只返回一篇新闻文章。因此,我需要识别哪些文章是关于同一主题的,对这些文档进行分类,并只返回此类分类中的“最佳”文章

解决这个问题最方便的方法是什么?
我是否可以更像这个API一样使用elasticsearch?或者插件是未来的发展方向?或者根本没有方便的方法,我必须以某种方式实现我自己的版本或对我的文档进行集群?

我认为您无法从Elasticsearch中充分进行集群。但是您可以在ES查询中使用聚类结果

如果我要这样做,我会使用您拥有的数据作为集群算法的输入,可能是在ApacheSpark中实现的。我已经写了一些关于一起使用ES和Spark的博客文章(这里有一篇:)。具体如何做到这一点可能超出了StackOverflow答案的范围,但有很多方法可以做到。当然,您当然不必使用Spark(我只是喜欢它)。选择您最喜欢的编程范例来实现集群,甚至使用第三方库。外面有很多

一旦我对聚类结果满意,我就会将聚类元数据作为数据集保存回ES。因此,每个项目都有一个父文档,表示项目所属的集群。然后可以使用此关系(可能与查询或其他内容一起)返回所需的结果

  • ES对于集群不是特别有用。大多数聚类算法都需要成对距离计算,如果你能将所有数据放入一个巨大的矩阵中(然后将其因子化),这是最简单的 因此,在ES之外工作可能更容易(更快)

  • 这些方法的效果都不及广告宣传的一半。参见例如“阅读茶叶”。构造这样一个算法的每个人都乐于得到任何信息,并且会调整和修改参数并重新运行,直到结果看起来不错为止。技术术语是樱桃采摘。评估是令人难以置信的草率,如果你仔细观察结果,它们并不比随机选择一个关键词(比如汽车)并进行文本搜索好多少。比那些在实践中没有人能破译的话题模型所发现的“话题”更有意义。所以祝你好运

  • 张,J.,格里什,S.,王,C.,博伊德·格拉伯,J.L.,和布莱,D.M.(2009)。阅读茶叶:人类如何解读主题模型。神经信息处理系统的进展(第288-296页)


    Carrot(如问题中所述)非常适合对查询结果进行聚类-它只能扩展到100或1000个文档,但这可能就足够了。如果您需要更大的尺度,那么像局部敏感哈希这样的方法就避免了计算所有成对距离的需要。使用ES的“更像这样”可以作为散列的快速而肮脏的替代方案,但可能需要一些后处理。

    但是你会说谷歌新闻中的聚类算法也没有比选择随机关键字更好吗?(另请参见,)。与其说是聚类,不如说是一种近乎重复的检测。特别是,您不会注意到错误,例如文档丢失。