public override float getProbability(WordSequence wordSequence) { Word[] array = new Word[wordSequence.size()]; float num = 0f; for (int i = 0; i < array.Length; i++) { Word word = wordSequence.getWord(i); ClassProbability classProbability = this.classMap.getClassProbability(word.getSpelling()); array[i] = ((classProbability != null) ? this.classMap.getClassAsWord(classProbability.getClassName()) : word); if (i == array.Length - 1 && classProbability != null) { num = classProbability.getLogProbability(); } } float probability = this.classLM.getProbability(new WordSequence(array)); return(probability + num); }
private void checkClasses() { HashMap hashMap = new HashMap(); Iterator iterator = this.wordToClassProbabilities.values().iterator(); while (iterator.hasNext()) { ClassProbability classProbability = (ClassProbability)iterator.next(); Float @float = (Float)hashMap.get(classProbability.getClassName()); if (@float == null) { hashMap.put(classProbability.getClassName(), Float.valueOf(0f)); } else { hashMap.put(classProbability.getClassName(), Float.valueOf((float)this.logMath.logToLinear(classProbability.getLogProbability()) + @float.floatValue())); } } iterator = hashMap.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry entry = (Map.Entry)iterator.next(); if (Math.abs((double)1f - (double)((Float)entry.getValue()).floatValue()) > 0.001) { this.logger.warning(new StringBuilder().append("Word probabilities for class ").append((string)entry.getKey()).append(" sum to ").append(entry.getValue()).toString()); } } }