internal void CountProbability(bool check) { var sum = NgramVariants.Sum(item => item.Ngram.Value); for (var i = 0; i < NgramVariants.Count; i++) { if (sum == 0) { if (check) { NgramVariants[i] = new NGramVariant { Ngram = NgramVariants[i].Ngram, Probability = 0 } } ; else { NgramVariants[i] = new NGramVariant { Ngram = NgramVariants[i].Ngram, Probability = 1 } }; continue; } NgramVariants[i] = new NGramVariant { Ngram = NgramVariants[i].Ngram, Probability = (double)NgramVariants[i].Ngram.Value / sum }; } }
/// <summary> /// Updates the NgramVariants based on the Ngrams list. /// </summary> /// <param name="goodNGrams">List with correct Ngrams.</param> internal void UpdateNGramsVariants(List <NGram> goodNGrams) { for (var i = 0; i < NgramVariants.Count; i++) { foreach (var goodNGram in goodNGrams) { if (goodNGram.WordsList.SequenceEqual(NgramVariants[i].Ngram.WordsList)) { NgramVariants[i] = new NGramVariant { Ngram = new NGram(goodNGram), Probability = 0 }; } } } }