@Override public void observe(SRResultList list, int index, double y) { if (index >= 0) { double score = list.getScore(index); if (!Double.isNaN(score) && !Double.isInfinite(score)) { synchronized (ranks) { ranks.add(index); scores.add(score); ys.add(y); } } } super.observe(list, index, y); }
if (sr != null && sr.numDocs() > 0) { for (int j = 0; j < numPerCand && j < sr.numDocs(); j++) { expanded.put(new LocalId(language, sr.getId(j)), (float)(sr.getScore(j) * candidates.get(id1)));
@Override public SRResultList normalize(SRResultList list) { SRResultList normalized = new SRResultList(list.numDocs()); normalized.setMissingScore(missingMean); for (int i = 0; i < list.numDocs(); i++) { double s = logIfNecessary(list.getScore(i)); double score = intercept + rankCoeff * Math.log(i + 1) + scoreCoeff * s; normalized.set(i, list.getId(i), score); } return normalized; }
public EnsembleSim call(KnownSim ks) throws DaoException { List<LocalString> localStrings = Arrays.asList( new LocalString(ks.language, ks.phrase1), new LocalString(ks.language, ks.phrase2) ); List<LocalId> ids = getDisambiguator().disambiguateTop(localStrings, null); if (ids.isEmpty() || ids.get(0).getId() <= 0) { return null; } int pageId = ids.get(0).getId(); EnsembleSim es = new EnsembleSim(ks); for (SRMetric metric : metrics) { double score = Double.NaN; int rank = -1; try { SRResultList dsl = metric.mostSimilar(pageId, getMaxResults(numResults), validIds); if (dsl != null && dsl.getIndexForId(ids.get(1).getId()) >= 0) { score = dsl.getScore(dsl.getIndexForId(ids.get(1).getId())); rank = dsl.getIndexForId(ids.get(1).getId()); } } catch (Exception e) { LOG.warn("Local sr metric " + metric.getName() + " failed for " + pageId, e); } finally { es.add(score, rank); } } return es; } }, 100);
@Override public SRResultList normalize(SRResultList list) { SRResultList normalized = new SRResultList(list.numDocs()); for (int i = 0; i < list.numDocs(); i++) { normalized.set(i, list.getId(i), normalize(list.getScore(i))); } return normalized; }
/** * A basic implementation of normalize. * @param list */ @Override public SRResultList normalize(SRResultList list) { SRResultList dsl = new SRResultList(list.numDocs()); list.setMissingScore(missingMean); for (int i = 0; i < list.numDocs(); i++) { dsl.set(i, list.getId(i), normalize(list.getScore(i))); } return dsl; }
if (rl != null && rl.numDocs() > 0) { TIntFloatMap subscores = rl.asTroveMap(); double minScore = rl.getScore(rl.numDocs() - 1) * 0.99; for (int id : subscores.keys()) { double s = minScore;
if (l1 != null) { for (int i = 0; i < l1.numDocs(); i++) { double s = l1.getScore(i); if (!Double.isInfinite(s) && !Double.isNaN(s)) { scores.adjustOrPutValue(l1.getId(i), 0.5 * s, 0.5 * s); if (l2 != null) { for (int i = 0; i < l2.numDocs(); i++) { double s = l2.getScore(i); if (!Double.isInfinite(s) && !Double.isNaN(s)) { scores.adjustOrPutValue(l2.getId(i), 0.5 * s, 0.5 * s);