使用ELKI对字符串数据进行聚类

时间:2013-03-18 18:20:07

标签: string cluster-analysis edit-distance elki

我需要根据编辑距离/ Levenshtein距离使用ELKI聚类大量字符串。由于数据集太大,我想避免基于文件的预计算距离矩阵。我怎么能

(a)从文件中加载ELKI中的字符串数据(仅“标签”)?

(b)实现访问标签的距离函数(扩展AbstractDBIDDistanceFunction,但如何获取标签?)

某些代码段或示例输入文件会有所帮助。

1 个答案:

答案 0 :(得分:1)

实际上非常简单:

A )写一个足以 输入文件格式Parser(为什么要尝试重用一个为其编写的解析器?带有标签的数字向量?),可能是子类AbstractStreamingParser,产生了所需数据类型的关系(可能只需要使用String。如果你想要更一般TokenSequence可能对于这些距离来说,这是一个更合适的概念。字符串只是最简单的情况。

B )基于此向量类型而不是DBID实现DistanceFunction,即PrimitiveDistanceFunction<String>。同样,子类化AbstractPrimitiveDistanceFunction可能是最容易的事情。

出于性能原因,您可能还需要查看索引算法以检索例如最有效的k个最相似的字符串。我不确定字符串编辑距离和levenshtein距离存在哪种索引结构。

一位同事的学生显然有一些工作令牌编辑距离,但我还没有看到或审查过这些代码。在处理日志文件时,他可能会使用基于令牌的方法而不是字符。