@Override public String getInfo() { StringBuilder s = new StringBuilder(); for(WeightingModel w : parents) { s.append(w.getInfo()); s.append(","); } s.setLength(s.length() -1); return s.toString(); }
@Override public void prepare() { for(WeightingModel w : parents) { w.prepare(); } }
@Override public double score(Posting p) { double score = 0; for(WeightingModel w : parents) { score += w.score(p); } return score; }
@Override public void prepare() { super.prepare(); basicModel.setKeyFrequency(super.keyFrequency); basicModel.prepare(); }
for (WeightingModel w : wmodels) w.setEntryStatistics(entryStats); w.setKeyFrequency(qtp.weight); w.setCollectionStatistics(collectionStatistics); IndexUtil.configure(index, w); w.prepare();
this.wm.setParameter(Double.parseDouble(c)); for(int ti=0;ti<numTerms;ti++) if (! okToScore[ti]) System.err.println("Term: "+fInputRS.getQueryTerms()[ti]+" not scored for wm " + wm.getInfo()); continue; System.err.println("Term: " + fInputRS.getQueryTerms()[ti] + " qtw="+keyFreqs[ti] + " es="+entryStats[ti] + " scored for wm " + wm.getInfo()); wms[ti] = (WeightingModel) wm.clone(); else wms[ti] = (WeightingModel) queryTerms.defaultWeightingModel.clone(); wms[ti].setEntryStatistics(entryStats[ti]); wms[ti].setCollectionStatistics(collStats); wms[ti].setKeyFrequency(keyFreqs[ti]); wms[ti].prepare(); assert postings[di][ti].getFrequency() > 0; final WritablePosting p = postings[di][ti]; final double s = wms[ti].score(p); System.err.println(wms[ti].getInfo() + " was "+s+": posting=(" + p.toString() + ") for term " + ti + " ks=" + keyFreqs[ti] + " es="+ entryStats[ti] + " l=" + p.getDocumentLength()); if (p instanceof FieldPosting) System.err.println("lf="+ Arrays.toString(((FieldPosting)p).getFieldLengths())); logger.info("Rescoring found " + gt0 + " docs with +ve score using " + wm.getInfo());
@Override public void setEntryStatistics(EntryStatistics _es) { for(WeightingModel w : parents) { w.setEntryStatistics(_es); } }
@Override public void setCollectionStatistics(CollectionStatistics _cs) { for(WeightingModel w : parents) { w.setCollectionStatistics(_cs); } }
@Override public void setParameter(double _c) { for(WeightingModel w : parents) { w.setParameter(_c); } }
@Override public void setKeyFrequency(double keyFreq) { for(WeightingModel w : parents) { w.setKeyFrequency(keyFreq); } }
/** * prepare */ public void prepare() { averageDocumentLength = cs.getAverageDocumentLength(); numberOfDocuments = (double)cs.getNumberOfDocuments(); i.setNumberOfDocuments(numberOfDocuments); numberOfTokens = (double)cs.getNumberOfTokens(); numberOfUniqueTerms = (double)cs.getNumberOfUniqueTerms(); numberOfPointers = (double)cs.getNumberOfPointers(); documentFrequency = (double)getOverflowed(es.getDocumentFrequency()); termFrequency = (double)getOverflowed(es.getFrequency()); }
for (WeightingModel w : wmodels) w.setEntryStatistics(entryStats); w.setKeyFrequency(qtp.weight); w.setCollectionStatistics(collectionStatistics); IndexUtil.configure(index, w); w.prepare();
this.wm.setParameter(Double.parseDouble(c)); for(int ti=0;ti<numTerms;ti++) if (! okToScore[ti]) System.err.println("Term: "+fInputRS.getQueryTerms()[ti]+" not scored for wm " + wm.getInfo()); continue; System.err.println("Term: " + fInputRS.getQueryTerms()[ti] + " qtw="+keyFreqs[ti] + " es="+entryStats[ti] + " scored for wm " + wm.getInfo()); wms[ti] = (WeightingModel) wm.clone(); else wms[ti] = (WeightingModel) queryTerms.defaultWeightingModel.clone(); wms[ti].setEntryStatistics(entryStats[ti]); wms[ti].setCollectionStatistics(collStats); wms[ti].setKeyFrequency(keyFreqs[ti]); wms[ti].prepare(); assert postings[di][ti].getFrequency() > 0; final WritablePosting p = postings[di][ti]; final double s = wms[ti].score(p); System.err.println(wms[ti].getInfo() + " was "+s+": posting=(" + p.toString() + ") for term " + ti + " ks=" + keyFreqs[ti] + " es="+ entryStats[ti] + " l=" + p.getDocumentLength()); if (p instanceof FieldPosting) System.err.println("lf="+ Arrays.toString(((FieldPosting)p).getFieldLengths())); logger.info("Rescoring found " + gt0 + " docs with +ve score using " + wm.getInfo());
@Override public void setEntryStatistics(EntryStatistics _es) { for(WeightingModel w : parents) { w.setEntryStatistics(_es); } }
@Override public void setCollectionStatistics(CollectionStatistics _cs) { for(WeightingModel w : parents) { w.setCollectionStatistics(_cs); } }
@Override public void prepare() { super.prepare(); basicModel.setKeyFrequency(super.keyFrequency); basicModel.prepare(); }
@Override public void setParameter(double c) { super.setParameter(c); basicModel.setParameter(c); }
@Override public void setKeyFrequency(double keyFreq) { for(WeightingModel w : parents) { w.setKeyFrequency(keyFreq); } }