//Generates the distribution of strings for a particular character given a classification
private Dictionary <string, double> GenerateDistributionForChar(OptChar c, Classification classification)
{
var typo_dict = classification.GetTypoDict();
var kvps = typo_dict.Where(pair => {
if (OptChar.get_IsNone(pair.Key.Item1))
{
if (OptChar.get_IsNone(c))
{
return(true);
}
return(false);
}
else
{
return(pair.Key.Item1.Equals(c));
}
}).ToArray();
var sum = kvps.Select(pair => pair.Value).Sum();
var distribution = kvps.Select(pair => new KeyValuePair <string, double>(pair.Key.Item2, (double)pair.Value / sum));
return(distribution.ToDictionary(pair => pair.Key, pair => pair.Value));
}