public List<TextUnitScore> GetImportantTextUnits(List<Sentence> Sentences)
        {
            var textUnitFrequencyGrader = new Dictionary<TextUnit, long>();
            foreach (var tu in Sentences.SelectMany(s => s.TextUnits))
            {
                if (m_Rules.UnimportantWords.Contains(tu.FormattedValue))
                {
                    continue;
                }

                if (textUnitFrequencyGrader.ContainsKey(tu))
                {
                    textUnitFrequencyGrader[tu]++;
                }
                else
                {
                    textUnitFrequencyGrader.Add(tu, 1);
                }
            }

            return
                textUnitFrequencyGrader.OrderByDescending(kvp => kvp.Value)
                    .Select(kvp => new TextUnitScore {ScoredTextUnit = kvp.Key, Score = kvp.Value})
                    .ToList();
        }
 private static Dictionary<string, string> LoadKeyValueRule(XElement doc, string section, string container)
 {
     var dictionary = new Dictionary<string, string>();
     var step1Pre = doc.Elements(section).Elements(container);
     foreach (
         var keyvalue in
             step1Pre.Elements()
                 .Select(x => x.Value)
                 .Select(rule => rule.Split('|'))
                 .Where(keyvalue => !dictionary.ContainsKey(keyvalue[0])))
     {
         dictionary.Add(keyvalue[0], keyvalue[1]);
     }
     return dictionary;
 }