/**
         * <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();
        }
Exemple #2
0
 /**
  * <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));
 }