/// <summary>
 /// Фильтрация схемы параграфа
 /// </summary>
 private void Filter(ParagraphMap paragraphMap)
 {
     paragraphMap.FilterPositionsByTokens(TokenType.Email);
     paragraphMap.FilterPositionsByTokens(TokenType.URL);
     paragraphMap.FilterPositionsByTokens(TokenType.NumberSeparator);
     paragraphMap.FilterPositionsByMeasure();
     paragraphMap.FilterPositionsByDomen();
     //paragraphMap.FilterPositionsInQuotes();
     paragraphMap.FilterPositionsBySuspensionPoints();
     paragraphMap.FilterPositionsByInitials();
     paragraphMap.FilterPositionsByReductions();
     paragraphMap.FilterPositionsByYandexServices();
     paragraphMap.FilterPositionsInSuccesion();
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Проверка, что параграф заканчивается на конец предложения
        /// </summary>
        /// <param name="paragraph">проверяемый параграф</param>
        /// <param name="nextParagraph">параграф, следующий за проверяемым</param>
        /// <returns>результат проверки</returns>
        private bool IsParagraphEndWithSentenceEnd(Paragraph paragraph, Paragraph nextParagraph)
        {
            var match = _numbering.Match(nextParagraph.Text);

            if (match.Success && (match.Index == 0))
            {
                return(true);
            }

            List <PotencialSentenceEnd> endPosition = new List <PotencialSentenceEnd>(1);
            string trimedText = paragraph.Text.TrimEnd();

            endPosition.Add(new PotencialSentenceEnd(trimedText.Length - 1, trimedText.Length));
            ParagraphMap map = new ParagraphMap(_tokenSelector, paragraph.Text + nextParagraph.Text, endPosition);
            var          tokenBeforeNoProper = _tokenSelector.SelectTokenFromTextEnd(trimedText, DictionaryType.BeforeNoProper);

            map.FilterPositionsByReductions(ToArray(null), ToArray(tokenBeforeNoProper));
            return(map.SentenceEndPositions().Any());
        }