/** * <summary>Gets bigram probability of given symbols w1 and w2</summary> * * <param name="w1">first gram of bigram.</param> * <param name="w2">second gram of bigram.</param> * <returns>probability of given bigram</returns> */ public double GetBiGramProbability(TSymbol w1, TSymbol w2) { if (_children.ContainsKey(w1)) { var child = _children[w1]; return(child.GetUniGramProbability(w2)); } if (_unknown != null) { return(_unknown.GetUniGramProbability(w2)); } throw new UnseenCase(); }
/** * <summary>Gets unigram probability of given symbol.</summary> * <param name="w1">a unigram symbol.</param> * <returns>probability of given unigram.</returns> */ private double GetUniGramProbability(TSymbol w1) { return(rootNode.GetUniGramProbability(w1)); }