从 java 个对象中获取 WEKA 实例

Get WEKA Instances from java objects

我的 java 代码中有一个 Set<User> 对象。这是用户 class:

的来源
public class User {
  private String id;
  private String bDate;
  private String name;
  private String sName;
  private String description;
  private String city;

  ... getters/setters
}

你能举个例子吗,我如何在 WEKA 的 Clusterer 中使用它?

首先,您必须从此处将 opencsv 包含到您的项目中:http://opencsv.sourceforge.net/ 以便以 csv 格式打印您的数据。

我用一个writer写csv数据,另一个写arff格式。

        writer = new CSVWriter(new OutputStreamWriter(new FileOutputStream(pathtoyourfile+".arff",true), "utf-8"));
        writer2 =  new PrintWriter(pathtoyourfile+".arff", "UTF-8");
        writer2.println("@Relation Users");
        writer2.println("");
        writer2.println("@attribute id string");
        writer2.println("@attribute bDate string");
        writer2.println("@attribute name string");
        writer2.println("@attribute sName string");
        writer2.println("@attribute description string");
        writer2.println("@attribute city string");          
        writer2.println("");
        writer2.println("@data");
        writer2.close();

        String[] entries =  new String[6];
        //lets say you have a list with users
        List<User>  users = .....

        for(int i=0;i<users.size();i++){
             entries[0]= users.get(i).getId();
             entries[1]= users.get(i).getbDate();
             .....
             entries[5]= users.get(i).getCity();
             writer.writeNext(entries);
        }
        writer.close();