@Override public void observe(SRResultList sims, int rank, double y) { if (rank >= 0) { observe(sims.get(rank).getScore(), y); } else { observe(Double.NaN, y); } }
for (int j = 0; j < resultList.numDocs(); j++) { int rank = (int) ((j + 1) * k); SRResult result = resultList.get(j); unknownIds.remove(result.getId()); double value = c1 * result.getScore() + c2 * Math.log(rank);
rank = (int) (rank * k); SRResult result = resultList.get(j); unknownIds.remove(result.getId()); double value = c1 * result.getScore() + c2 * Math.log(rank);
public MostSimilarGuess(KnownMostSim known, SRResultList guess) { this.known = known; length = guess.numDocs(); minScore = guess.minScore(); maxScore = guess.maxScore(); TIntDoubleMap actual = new TIntDoubleHashMap(); for (KnownSim ks : known.getMostSimilar()) { actual.put(ks.wpId2, ks.similarity); } for (int i = 0; i < guess.numDocs(); i++) { SRResult sr = guess.get(i); if (actual.containsKey(sr.getId())) { observations.add(new Observation(i+1, sr.getId(), sr.getScore(), actual.get(sr.getId()))); } } }