public List<SentenceScore> ScoreSentences(List<Sentence> Sentences, List<TextUnitScore> importantTextUnits) { var stemList = importantTextUnits.Select(tus => tus.ScoredTextUnit.Stem).Distinct().ToList(); var listSentenceScorer = new List<SentenceScore>(); foreach (var s in Sentences.Where(s => s.TextUnits.Count > 2)) { var newSentenceScorer = new SentenceScore {ScoredSentence = s}; newSentenceScorer.Score = newSentenceScorer.ScoredSentence.TextUnits.Count(tu => stemList.Contains(tu.Stem)); if (s.TextUnits[0].RawValue.Contains("\n") && s.TextUnits[1].RawValue.Contains("\n")) { newSentenceScorer.Score *= 1.6; } listSentenceScorer.Add(newSentenceScorer); } // additional scoring if (listSentenceScorer.Any()) { listSentenceScorer.First().Score *= 2; } return listSentenceScorer.OrderByDescending(ss => ss.Score).ToList(); }
public List <SentenceScore> ScoreSentences(List <Sentence> Sentences, List <TextUnitScore> importantTextUnits) { var stemList = importantTextUnits.Select(tus => tus.ScoredTextUnit.Stem).Distinct().ToList(); var listSentenceScorer = new List <SentenceScore>(); foreach (var s in Sentences.Where(s => s.TextUnits.Count > 2)) { var newSentenceScorer = new SentenceScore(); newSentenceScorer.ScoredSentence = s; newSentenceScorer.Score = newSentenceScorer.ScoredSentence.TextUnits.Count(tu => stemList.Contains(tu.Stem)); if (s.TextUnits[0].RawValue.Contains("\n") && s.TextUnits[1].RawValue.Contains("\n")) { newSentenceScorer.Score *= 1.6; } listSentenceScorer.Add(newSentenceScorer); } // additional scoring if (listSentenceScorer.Any()) { listSentenceScorer.First().Score *= 2; } return(listSentenceScorer.OrderByDescending(ss => ss.Score).ToList()); }