/// <summary>
        /// Выделение предложений из текста параграфа
        /// </summary>
        /// <param name="text">текст параграфа</param>
        /// <param name="isBlogText">флаг, что парсится блоговский текст</param>
        /// <returns>список предложений</returns>
        public List <Sentence> Select(string paragraph, bool isBlogText)
        {
            var paragraphMap = new ParagraphMap(_tokenSelector, paragraph, PotencialSentenceEnd.Select(paragraph));

            Filter(paragraphMap);
            var sentenceEnds = paragraphMap.SentenceEndPositions().ToList();

            if (isBlogText)
            {
                sentenceEnds = sentenceEnds
                               .Union(_tokenSelector.SelectTokens(paragraph, TokenType.Smile).Select(_ => new PotencialSentenceEnd(_.Index, _.Index + _.Length)))
                               .OrderBy(_ => _.Index)
                               .ToList();
            }
            return(CreateSentences(paragraphMap.Text, sentenceEnds));
        }
Esempio n. 2
0
 /// <summary>
 /// Проверка, что параграф заканчивается на потенциальный конец предложения
 /// </summary>
 /// <param name="paragraph">параграф</param>
 /// <returns>результат проверки</returns>
 private bool IsPotencialParagraphEnd(Paragraph paragraph)
 {
     return(PotencialSentenceEnd.Select(paragraph.Text.Trim().LastOrDefault().ToString()).Any());
 }