我正在使用elki 0.7来聚类推文(文字,日期,作者......)。
在第一步中,我想整理推文文本。
我写了一个简单的距离函数,将来我想自定义它。
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);
}
}
相似度是一个计算推文标准化相似度的数组(使用tf-idf)。 现在我想运行群集但是SimpleTypeInformation函数有错误。
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<?>
有人有想法吗?
答案 0 :(得分:3)
https://elki-project.github.io/dev/typeinformation
类型信息是自动类型匹配所必需的。
VectorFieldTypeInformation
仅用 向量字段。现在,您声称您的String是一个二维向量字段,并且应该给出编译错误。
您的数据是字符串,而不是字符串的矢量字段;所以你需要为简单对象选择适当的TypeInformation子类:SimpleTypeInformation<String>
就是你想要的。
您的代码使用预先计算的距离矩阵。 ELKI中有类,为此用例更好地进行了优化。