Beispiel #1
0
  public static void main(String[] args) throws Exception {

    ARClassifier tc = new ARClassifier();
    tc.train();
    Linear cl = Linear.loadFrom(modelFile);
    int i = 0;
    int j = 0;
    double ij = 0.0;
    int kk = 0;
    int jj = 0;
    int nn = 0;
    int n = 0;
    InstanceSet test = new InstanceSet(cl.getPipe(), cl.getAlphabetFactory());
    SimpleFileReader sfr = new SimpleFileReader("../tmp/ar-train.txt", true);

    ArrayList<Instance> list1 = new ArrayList<Instance>();
    while (sfr.hasNext()) {
      list1.add(sfr.next());
    }
    List<String>[] str1 = new List[list1.size()];
    String[] str2 = new String[list1.size()];
    Iterator it = list1.iterator();
    while (it.hasNext()) {
      Instance in = (Instance) it.next();
      str1[i] = (List<String>) in.getData();
      str2[i] = (String) in.getTarget();
      i++;
    }
    for (int k = 0; k < str2.length; k++) {
      if (str2[k].equals("1")) kk++;
    }
    String ss = null;
    test.loadThruPipes(new ListReader(str1));

    for (int ii = 0; ii < str1.length; ii++) {
      ss = cl.getStringLabel(test.getInstance(ii));
      if (ss.equals("1")) j++;

      if (ss.equals("1") && ss.equals(str2[ii])) jj++;
      if (ss.equals("0") && ss.equals(str2[ii])) n++;
      if (ss.equals(str2[ii])) nn++;
    }

    ij = (nn + 0.0) / str2.length;
    System.out.print("整体正确率:" + ij);
    System.out.print('\n');
    ij = (jj + 0.0) / kk;
    System.out.print("判断为指代关系的正确率:" + ij);
    System.out.print('\n');
    ij = (n + 0.0) / (str2.length - kk);
    System.out.print("判断为非指代关系的正确率:" + ij);
    System.out.print('\n');

    System.gc();
  }