/** * Sets the ID, score, and explanations of the SRResult at the index. * @param i * @param id * @param score * @param explanationList */ public void set(int i, int id, double score, List<Explanation> explanationList){ set(i, new SRResult(id, score, explanationList)); }
@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 SRResultList getTop() { SRResultList scores = new SRResultList(size); for (int i = 1; i <= size; i++) { scores.set(i - 1, keys[i], values[i]); } scores.sortDescending(); return scores; }
/** * 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; }
@Override public SRResultList predictMostSimilar(List<SRResultList> scores, int maxResults, TIntSet validIds) { int numMetrics = scores.size(); TIntDoubleHashMap scoreMap = new TIntDoubleHashMap(); for (SRResultList resultList : scores){ for (SRResult result : resultList){ double value = result.getScore()/numMetrics; scoreMap.adjustOrPutValue(result.getId(),value,value); } } List<SRResult> resultList = new ArrayList<SRResult>(); for (int id : scoreMap.keys()){ resultList.add(new SRResult(id,scoreMap.get(id))); } Collections.sort(resultList); Collections.reverse(resultList); SRResultList result = new SRResultList(maxResults); for (int i=0; i<maxResults&&i<resultList.size();i++){ result.set(i,resultList.get(i)); } return result; }
@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; }
@Override public SRResultList mostSimilar(String phrase, int maxResults) throws DaoException { LocalId similar = disambiguator.disambiguateTop(new LocalString(getLanguage(), phrase), null); if (similar==null){ SRResultList resultList = new SRResultList(1); resultList.set(0, new SRResult()); return resultList; } return mostSimilar(similar.getId(), maxResults); }
@Override public SRResultList mostSimilar(String phrase, int maxResults, TIntSet validIds) throws DaoException{ LocalId similar = disambiguator.disambiguateTop(new LocalString(getLanguage(), phrase), null); if (similar==null){ SRResultList resultList = new SRResultList(1); resultList.set(0, new SRResult()); return resultList; } return mostSimilar(similar.getId(), maxResults,validIds); }
SRResultList result = new SRResultList(size); for (i=0; i<size;i++){ result.set(i,resultList.get(i));
SRResultList result = new SRResultList(size); for (i=0; i<size;i++){ result.set(i,resultList.get(i));
result = new SRResultList(nhood.size()); for (int i = 0; i < nhood.size(); i++) { result.set(i, nhood.getId(i), nhood.getScore(i));
@Override public SRResultList mostSimilar(int pageId, int maxResults, TIntSet validIds) throws DaoException { if (!mostSimilarIsTrained()) { return new SRResultList(0); } SRResultList results = getCachedMostSimilar(pageId, maxResults, validIds); if (results != null) { return results; } CategoryBfs bfs = new CategoryBfs(graph,pageId,getLanguage(), maxResults, validIds, catHelper); while (bfs.hasMoreResults()) { bfs.step(); } results = new SRResultList(bfs.getPageDistances().size()); int i = 0; for (int pageId2: bfs.getPageDistances().keys()) { results.set(i++, pageId2, distanceToScore(bfs.getPageDistances().get(pageId2))); } results.sortDescending(); return normalize(results); }