String 用ELKI聚类字符串数据
我需要根据编辑距离/Levenshtein距离使用ELKI对大量字符串进行聚类。由于数据集太大,我希望避免基于文件的预计算距离矩阵。我怎么能 (a) 从文件(仅“标签”)加载ELKI中的字符串数据 (b) 实现一个访问标签的距离函数(扩展AbstractDBIDDistanceFunction,但是如何获取标签?)String 用ELKI聚类字符串数据,string,cluster-analysis,edit-distance,elki,String,Cluster Analysis,Edit Distance,Elki,我需要根据编辑距离/Levenshtein距离使用ELKI对大量字符串进行聚类。由于数据集太大,我希望避免基于文件的预计算距离矩阵。我怎么能 (a) 从文件(仅“标签”)加载ELKI中的字符串数据 (b) 实现一个访问标签的距离函数(扩展AbstractDBIDDistanceFunction,但是如何获取标签?) 一些代码片段或示例输入文件会很有帮助。实际上非常简单: A)编写一个适合输入文件格式的解析器(为什么要尝试重用为带标签的数字向量编写的解析器?),可能是子类化,生成所需数据类型的关系
一些代码片段或示例输入文件会很有帮助。实际上非常简单: A)编写一个适合输入文件格式的
解析器(为什么要尝试重用为带标签的数字向量编写的解析器?),可能是子类化,生成所需数据类型的关系(可能您可以使用String
。如果您想更一般一点,那么TokenSequence
对于这些距离可能是一个更合适的概念。字符串只是最简单的情况
B)基于此向量类型而不是DBID实现距离函数
,即基本距离函数
。再次强调,子类化可能是最简单的方法
出于性能原因,您可能还需要研究索引算法,以高效检索k个最相似的字符串。我不确定字符串编辑距离和levenshtein距离存在哪些索引结构
一位同事的一个学生显然有一些工作令牌编辑距离,但我还没有看到或查看代码。由于他正在处理日志文件,他可能会使用基于令牌的方法,而不是字符。感谢您的快速和有用的建议-现在可以了。我唯一更改的是扩展AbstractParser
和解析器
而不是AbstractStreamingParser
(比如BitVectorLabelParser
),因为我在生成带有AbstractStreamingParser
子类的字符串时得到了[1]。我将研究索引算法,以备不时之需。[1]NoSupportedDataTypeException:找不到满足以下条件的数据类型:字符串可用类型:DBID…
As for[1]您可能没有发布“代码>事件”。Meta Author“事件”。但除此之外,您是否考虑将代码贡献给ELKI,以便其他人也可以使用它?我确信您不是唯一感兴趣的LaveStin距离和字符串。