Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.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
String 用ELKI聚类字符串数据_String_Cluster Analysis_Edit Distance_Elki - Fatal编程技术网

String 用ELKI聚类字符串数据

String 用ELKI聚类字符串数据,string,cluster-analysis,edit-distance,elki,String,Cluster Analysis,Edit Distance,Elki,我需要根据编辑距离/Levenshtein距离使用ELKI对大量字符串进行聚类。由于数据集太大,我希望避免基于文件的预计算距离矩阵。我怎么能 (a) 从文件(仅“标签”)加载ELKI中的字符串数据 (b) 实现一个访问标签的距离函数(扩展AbstractDBIDDistanceFunction,但是如何获取标签?) 一些代码片段或示例输入文件会很有帮助。实际上非常简单: A)编写一个适合输入文件格式的解析器(为什么要尝试重用为带标签的数字向量编写的解析器?),可能是子类化,生成所需数据类型的关系

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

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

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


一些代码片段或示例输入文件会很有帮助。

实际上非常简单:

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

B)基于此向量类型而不是DBID实现
距离函数
,即
基本距离函数
。再次强调,子类化可能是最简单的方法

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


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

感谢您的快速和有用的建议-现在可以了。我唯一更改的是扩展
AbstractParser
解析器
而不是
AbstractStreamingParser
(比如
BitVectorLabelParser
),因为我在生成带有
AbstractStreamingParser
子类的字符串时得到了[1]。我将研究索引算法,以备不时之需。[1]
NoSupportedDataTypeException:找不到满足以下条件的数据类型:字符串可用类型:DBID…
As for[1]您可能没有发布“代码>事件”。Meta Author“事件”。但除此之外,您是否考虑将代码贡献给ELKI,以便其他人也可以使用它?我确信您不是唯一感兴趣的LaveStin距离和字符串。