找出我在这个问题上出错的地方真的很麻烦。在java中使用WEKA构建一个系统来研究关联,并尝试实现Apriori算法。目前这是代码:
package model;
import weka.associations.*;
import weka.core.Instances;
import weka.core.converters.ConverterUtils.DataSource;
public class Apriori {
public static void main(String args[]) throws Exception {
String dataset = "/Users/andrew/workspace/Movies/src/data/tagsfinal.arff";
DataSource dsource = new DataSource(dataset);
Instances dapriori = dsource.getDataSet();
Apriori apriori = new Apriori();
apriori.buildAssociations(dapriori);
System.out.println(apriori);
}
}
通过查看网络上的几个实现,这似乎是一种广泛接受的方法,但是我收到了关于" apriori.buildAssociations"线告诉我Apriori类型的方法是未定义的。此外,我用于关联的import语句仅用作包类型,并且在尝试将其扩展为:
时import weka.associations.Apriori;
这会抛出一条错误消息"导入weka.associations.Apriori与同一文件中定义的类型冲突"。我已经将StackOverflow与其他资源一起进行了搜索,并意识到存在许多类型未定义的问题,但是还没有找到解决这个问题的方法。任何帮助/指针将不胜感激。
答案 0 :(得分:2)
您的课程也被命名为Apriori
,因此您遇到了名称冲突。
您应该将自己班级的名称更改为其他名称(例如AprioriTest
)。在你不太可能需要将你的类命名为Apriori
的情况下,你必须通过它的全名来引用库的实现:
weka.associations.Apriori apriori = new weka.associations.Apriori();
apriori.buildAssociations(dapriori);