public static double getMI(String w1, String r, String w2) { GR gr = new GR(); gr.setW1(w1); gr.setW2(w2); gr.setGR(r); return Math.log10( (getCount(gr) * getCountGR(r)) / (getCountLeft(w1, r) * getCountRight(w2, r))); }
public static int getCount(GR gr) { int c = 0; Iterator<GR> iterator = memmodel.iterator(); int i = 0; while (iterator.hasNext()) { if (iterator.next().isEqual(gr.getLeft(), gr.getGr(), gr.getRight())) c++; } return c; }
public static Set<String> getLeftList(String w2, String gr) { Set<String> s = new TreeSet<String>(); Iterator<GR> iterator = memmodel.iterator(); while (iterator.hasNext()) { GR g = (GR) iterator.next(); if (g.isRightEqual("online") && g.isGrEqual("dobj")) s.add(g.getLeft()); } return s; }
public static int getCountRight(String w2, String gr) { int c = 0; Iterator<GR> iterator = memmodel.iterator(); int i = 0; while (iterator.hasNext()) { GR g = (GR) iterator.next(); if (g.isRightEqual(w2) && g.isGrEqual(gr)) c++; } return c; }
public static void main(String[] args) throws NullPointerException { VocabularyAnalyser va = new VocabularyAnalyser(); String root = "/Users/kapila/Documents/repository/"; memmodel = va.buildMemModel(root + "parsed"); Iterator<GR> iterator = memmodel.iterator(); int i = 0; while (iterator.hasNext()) { try { i++; // GR g= (GR) iterator.next(); // System.out.print(i); // System.out.print(" "); // System.out.println( iterator.next().getLeft()); GR g = (GR) iterator.next(); if (g.isRightEqual("online") && g.isGrEqual("dobj")) System.out.println(g.toString()); } catch (NullPointerException e) { System.out.println(e.getMessage()); } } // // GR g=new GR(); // g.setW1("purchase"); // g.setGR("dobj"); // g.setW2("online"); // System.out.println(getCount(g)); // System.out.println(getCountGR("dobj")); // System.out.println(getCountLeft("purchase","dobj")); // System.out.println(getCountLeft("online","dobj")); // System.out.println(getMI("purchase","dobj","online")); // GR g2 = new GR(); g2.setW1("buy"); g2.setGR("dobj"); g2.setW2("online"); System.out.println(getCount(g2)); System.out.println(getCountGR("dobj")); System.out.println(getCountLeft("buy", "dobj")); System.out.println(getCountLeft("online", "dobj")); System.out.println(getMI("buy", "dobj", "online")); Set left = getLeftList("online", "dobj"); Iterator<String> it = left.iterator(); while (it.hasNext()) { String s = it.next(); System.out.println(s + "=" + getMI(s, "dobj", "online")); } // Model rdfmodel=va.buildRdfModel(root+"rdfs"); // rdfmodel.write(System.out); // // queryRdf q=new queryRdf(rdfmodel); // <http://rasp/rule:dobj> // q.getTotal("?s","?p","?o"); // System.out.println("total-dobj"); // q.query("?s","gr:ncmod","?o"); // System.out.println("***"); // System.out.println("***"); // System.out.println(q.getTotal("?s","?p","?o")); // System.out.println(q.getTotal("c:buy","gr:dobj","?o")); // System.out.println(q.getTotal("c:purchase","gr:dobj","?o")); // System.out.println(q.getTotal("?s","gr:dobj","c:online")); // System.out.println(q.getTotal("c:buy","gr:dobj","c:online")); // System.out.println(q.getTotal("c:purchase","gr:dobj","c:online")); }