First thanks for putting this together and having it freely available!
I was just going to recommend that you put a check that the probability is not equal to NaN before logging it. Because sometime when running large amount of text through it can complicate things.
private void LogProbability(float prob)
I = I == 0 ? prob : I * prob;
invI = invI == 0 ? (1 - prob) : invI * (1 - prob);