@Override public SRResult predictSimilarity(List<SRResult> scores) { double result=0.0; List<Explanation> explanationList = new ArrayList<Explanation>(); for (SRResult score : scores){ result+=score.getScore(); if (score.getExplanations()!=null&&!score.getExplanations().isEmpty()){ explanationList.addAll(score.getExplanations()); } } result/=scores.size(); return new SRResult(-2,result,explanationList); }
@Override public SRResult similarity(int pageId1, int pageId2, boolean explanations) throws DaoException { SRResult r1 = inlink.similarity(pageId1, pageId2, explanations); SRResult r2 = outlink.similarity(pageId1, pageId2, explanations); if (r1 == null || r2 == null || !r1.isValid() || !r2.isValid()) { return new SRResult(Double.NaN); } else { SRResult finalResult=new SRResult(0.5 * r1.getScore() + 0.5 * r2.getScore()); if (explanations) { List<Explanation> explanationList = new ArrayList<Explanation>(); explanationList.addAll(r1.getExplanations()); explanationList.addAll(r2.getExplanations()); finalResult.setExplanations(explanationList); } return normalize(finalResult); } }
public static void main(String args[]) throws ConfigurationException, DaoException { // Initialize the WikiBrain environment and get the local page dao Env env = EnvBuilder.envFromArgs(args); Configurator conf = env.getConfigurator(); LocalPageDao lpDao = conf.get(LocalPageDao.class); // Retrieve the "ensemble" sr metric for simple english SRMetric sr = conf.get( SRMetric.class, "milnewitten", "language", env.getDefaultLanguage().getLangCode()); //Similarity between strings String pairs[][] = new String[][] { { "cat", "kitty" }, { "Obama", "president" }, { "tires", "car" }, { "java", "computer" }, { "dog", "computer" }, }; ExplanationFormatter formatter= new ExplanationFormatter(lpDao); for (String pair[] : pairs) { SRResult s = sr.similarity(pair[0], pair[1], true); System.out.println(s.getScore() + ": '" + pair[0] + "', '" + pair[1] + "'"); for (Explanation e:s.getExplanations()) { // System.out.println(formatter.formatExplanation(e)); } } } }
public static void main(String args[]) throws ConfigurationException, DaoException { // Initialize the WikiBrain environment and get the local page dao Env env = EnvBuilder.envFromArgs(args); Configurator conf = env.getConfigurator(); LocalPageDao lpDao = conf.get(LocalPageDao.class); // Retrieve the "ensemble" sr metric for simple english SRMetric sr = conf.get( SRMetric.class, "milnewitten", "language", env.getDefaultLanguage().getLangCode()); //Similarity between strings String pairs[][] = new String[][] { { "cat", "kitty" }, { "Obama", "president" }, { "tires", "car" }, { "java", "computer" }, { "dog", "computer" }, }; ExplanationFormatter formatter= new ExplanationFormatter(lpDao); for (String pair[] : pairs) { SRResult s = sr.similarity(pair[0], pair[1], true); System.out.println(s.getScore() + ": '" + pair[0] + "', '" + pair[1] + "'"); for (Explanation e:s.getExplanations()) { // System.out.println(formatter.formatExplanation(e)); } } } }