我需要一个用于文本流聚类的轻量级工具。轻量级,因为它没有内存,因此它可以记住以前的文本条目。这里的文本流意味着连续输入字母数字和半结构化的句子/短语,例如:任何应用程序的日志。基于相似性的聚类意味着算法应该将文本聚类在具有模式相似性的组中。例如:text1 ='aaababac'和text2 ='aaaaabac'应该组合在一起,因为它们之间只有一个字符不同。场景是:首先text1出现算法应该给它一个索引。然后text2出现,现在算法采用相同的方法给它一个索引。但条件是两个索引应该彼此接近,而在处理text2时,算法不知道早期文本中出现了什么。 它是一种基于模式相似性的散列。
现在我找不到任何有用的东西。我发现的最佳解决方案是simhash。 http://matpalm.com/resemblance/simhash/
答案 0 :(得分:2)
问题有点不明确。如果您记不起以前的条目,那么您将如何记住您所见过的群集? 特别是,一旦你看到相当多的"类似的"项目。没有至少一些"记忆"你不能做到这一点。什么是频繁的,什么是不是。因此,没有合理的聚类算法确实没有任何内存。它可能没有记住文字对象,但记忆摘要并没有那么不同。散列意味着记住至少部分先前看到的数据。但是,记住数据中具有统计意义的随机部分是否比记住它更有益?
发生的大部分事情都假装没有记忆,但实际上他们只是以不同的方式记忆数据。但只要它发布,它就被认为是成功的。即使它在实践中不起作用。
答案 1 :(得分:0)
我认为您所描述的内容称为incremental clustering或data stream clustering。