List<Integer> sortedIndices = new ArrayList<Integer>();
HMapIF index2ProbMap = new HMapIF();
float sumOfProbs = 0.0f; //only extract the top K<15 if the mass prob. exceeds MAX_probThreshold
while(!topTrans.isEmpty() && sumOfProbs < cumProbThreshold){
PairOfFloatString e = topTrans.pollLast();
String term = e.getRightElement();
float pr = e.getLeftElement()/cumProb; // normalize
logger.debug(term+"-->"+pr);
int trgIndex = trgVocab.addOrGet(term);
sumOfProbs += e.getLeftElement(); // keep track of unnormalized cumulative prob for determining cutoff
sortedIndices.add(trgIndex);
index2ProbMap.put(trgIndex, pr);
}
// to enable faster access with binary search, we sort entries by vocabulary index.