Java 如何在elki中为字符串定义自定义距离函数?
我正在使用elki 0.7对推文(文本、日期、作者等)进行聚类 在第一步中,我想对tweet的文本进行聚类 我写了一个简单的距离函数,将来我想定制它Java 如何在elki中为字符串定义自定义距离函数?,java,cluster-analysis,distance,elki,Java,Cluster Analysis,Distance,Elki,我正在使用elki 0.7对推文(文本、日期、作者等)进行聚类 在第一步中,我想对tweet的文本进行聚类 我写了一个简单的距离函数,将来我想定制它 public class Distance extends AbstractPrimitiveDistanceFunction<String> { @Override public double distance(String str1, String str2) { int row1 = rowNumber.g
public class Distance extends AbstractPrimitiveDistanceFunction<String> {
@Override
public double distance(String str1, String str2) {
int row1 = rowNumber.get(str1),
row2 = rowNumber.get(str2);
return 1 - similarity[row1][row2];
}
@Override
public SimpleTypeInformation<? super String> getInputTypeRestriction() {
return VectorFieldTypeInformation.typeRequest(String.class, 2, 2);
}
}
公共类距离扩展了AbstractPrimitiveDistanceFunction{
@凌驾
公共双距离(字符串str1、字符串str2){
int row1=rowNumber.get(str1),
row2=rowNumber.get(str2);
返回1-相似性[row1][row2];
}
@凌驾
在方法typeRequest(类
自动类型匹配需要类型信息
VectorFieldTypeInformation
仅用于向量字段。现在,您声称您的字符串是二维向量字段,这可能会导致编译错误
您的数据是字符串,而不是字符串的向量场;因此您需要为简单对象选择适当的TypeInformation子类:SimpleTypeInformation
是您想要的
您的代码使用了一个预计算的距离矩阵。ELKI中有一些用于此的类,它们针对此用例进行了更好的优化。
自动类型匹配需要类型信息
VectorFieldTypeInformation
仅用于向量字段。现在,您声称您的字符串是二维向量字段,这可能会导致编译错误
您的数据是字符串,而不是字符串的向量场;因此您需要为简单对象选择适当的TypeInformation子类:SimpleTypeInformation
是您想要的
您的代码使用了一个预计算的距离矩阵。ELKI中有一些用于此目的的类,它们针对此用例进行了更好的优化。您可能没有向量场,但有一个字符串?请参阅以获取字符串距离函数。您可能没有向量场,但有一个字符串?请参阅以获取字符串距离函数。ELKI中有哪些类对于预计算的距离矩阵?请参阅入门指南:是的,我读过,但我不能在java或ElkiMiniGUI中使用它。您有任何示例吗?我手头没有手动调用示例-我尽可能避免使用全距离矩阵。但是您有源代码,可以根据需要修改它。ELKI中有哪些类用于预计算距离矩阵?请参阅入门指南:是的,我读过,但我不能在java或ElkiMiniGUI中使用它。您有任何示例吗?我手头没有手动调用示例-我尽可能避免使用全距离矩阵。但是您有源代码,可以根据需要修改它。
The type of <V>typeRequest(Class<? super V>,int,int) is erroneous
where V is a type-variable:
V extends FeatureVector<?> declared in method <V>typeRequest(Class<? super V>,int,int)
incompatible types: inferred type does not conform to upper bound(s)
inferred: String
upper bound(s): String,FeatureVector<?>