弄清楚我在这方面出了什么问题时遇到了麻烦。使用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和其他资源,并意识到那里有很多类型未定义的问题,但是还没有找到解决该问题的方法。任何帮助/指针将不胜感激。

最佳答案

您的班级也被命名为Apriori,因此您遇到名称冲突。

您应该将自己的类的名称更改为其他名称(例如AprioriTest)。在不太可能的情况下,您确实需要将类命名为Apriori,那么您就必须使用全名来引用该库的实现:

weka.associations.Apriori apriori = new weka.associations.Apriori();
apriori.buildAssociations(dapriori);

10-05 22:40