bool Forest:: init_io(RuleSet& ruleSet) { clock_t sec=clock(); for(int i=0;(size_t)i<_sentence.size();i++) { Node& node=(*this)[i][i]; string wrd=_sentence[i]; pair<RuleSet::RSIter,RuleSet::RSIter> iterPair=ruleSet.query(wrd); for(RuleSet::RSIter iter=iterPair.first;iter!=iterPair.second;iter++) { double ruleScore=iter->second.prob; //when io, we use the original prob, not log Label label; label.init(iter->second.left,i,i,wrd); //label.word()=wrd; //jout<<wrd<<endl; label.addPreTermScore_io(ruleScore); if(node.find(label.nt())==node.end()) node[label.nt()]=label; } genUnaryNode_io(ruleSet,(*this)[i][i]); } initime+=clock()-sec; //exit(1); return true; }