docs: private boolean computeScore(Sentence sentence, SmartForest<Double> forest, boolean offset) {
  		SmartGetWord<Double> sgw = new SmartGetWord<Double>(forest, sentence.value.toLowerCase());
  		String name = null;
  		boolean flag = false;
  		while ((name = sgw.getFrontWords()) != null) {
  			flag = true;
  			sentence.updateScore(name, sgw.getParam());
  			if (offset) {
  				Triplet<Integer, Integer, Double> triplet = new Triplet<Integer, Integer, Double>(sgw.offe, sgw.offe+name.length(), sgw.getParam());
  				sentence.offset.add(triplet);
  			}
  		}
  		if (sentence.score == 0) {
  			sentence.score = sentence.value.length() * -0.005;
  		} else {
  			sentence.score /= Math.log(sentence.value.length() + 3);
  		}
  
  		return flag;
  	}