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);
}