Example #1
0
        public ContentIndex Build(string paragraph)
        {
            if (string.IsNullOrWhiteSpace(paragraph))
            {
                return(null);
            }

            var result = new ContentIndex
            {
                Content  = paragraph,
                Lines    = new List <LineIndex>(),
                AllWords = new List <WordFrequency>()
            };

            var lines = StringProcessor.GetSentences(paragraph);

            var lineIndex = 0;

            foreach (var line in lines)
            {
                var words = StringProcessor.GetWordsLower(line);
                result.Lines.Add(new LineIndex
                {
                    Id        = ++lineIndex,
                    Line      = line,
                    WordIndex = GetWordFrequency(words).ToList()
                });
            }

            var allWordCombinationsInAllLines = result.Lines.Select(l => l.WordIndex);

            result.AllWords = GetCombinedWordFrequency(allWordCombinationsInAllLines)
                              .ToList();

            return(result);
        }