Weka:匹配的属性名称

时间:2013-02-27 13:27:24

标签: machine-learning weka

我有两个weka Instances类。我试图识别一个与另一个属性同名的属性。但是,使用:

if (testing.attribute(i).name() == training.attribute(j).name())

为每个属性引发False。以下是每个文件的arff文件。如您所见,两者都包含attr1attr2attr3

@relation SampleTrain3Attributes
@attribute attr1 numeric
@attribute attr2 {a,b,c}
@attribute attr3 numeric
@data
1,a,2
3,b,4
5,c,6
7,a,8

@relation SampleTest5Attributes
@attribute attr1 numeric
@attribute attr2 {a,b,c}
@attribute attr3 numeric
@attribute attr4 {d,e,f}
@attribute attr5 numeric
@data
1,a,2,d,3
3,b,4,f,4
5,c,6,e,8
7,a,8,d,9

任何见解都将受到赞赏。谢谢!

2 个答案:

答案 0 :(得分:1)

您需要比较字符串本身,而不是对它们的引用 -

if (testing.attribute(i).name().equals(training.attribute(j).name()))

答案 1 :(得分:1)

Attribute.name()返回String。使用String比较==时,您需要比较引用。通常,如果引用相同,即仅指向完全相同的对象,则仅产生真。如果要检查它们是否具有相同的内容,请使用String.equals(),即

if (testing.attribute(i).name().equals(training.attribute(j).name()))