/*
         * Функция нахождения совпадений введенного текста со всеми экстремисткими текстами.
         * vocabulary - словарь экстремистских текстов.
         * availabilities - список результатов совпадений. Состоит из элементов класса AvailabilityExtremistTextResult.
         */
        public List <AvailabilityExtremistTextResult> AvailabilityExtremistText(ExtremistTextVocabulary vocabulary)
        {
            string[] enterTextWords = enterText.TextWords();
            List <AvailabilityExtremistTextResult> availabilities = new List <AvailabilityExtremistTextResult>();

            foreach (ExtremistText extremistText in vocabulary.texts)
            {
                string[]              extremistTextWords = extremistText.TextWords();
                List <int>            countSpacesOfStartPhrases;
                List <int>            startPhrasesLocation         = new List <int>();
                List <int>            lastPhrasesLocation          = new List <int>();
                List <List <string> > availabilityExtremistPhrases =
                    TextWordsOfAvailabilityExtremistText(enterTextWords, extremistTextWords, out countSpacesOfStartPhrases);
                double probability = ProbabilityAvailabilityExtremistText(extremistText.TextWords(), availabilityExtremistPhrases);
                if (probability > 0)
                {
                    int indexPhrases = 0;
                    foreach (int countStartSpace in countSpacesOfStartPhrases)
                    {
                        int startIndex = enterText.SpaceElementLocationTextIndex(countStartSpace);
                        startPhrasesLocation.Add(startIndex);
                        int endIndex = enterText.SpaceElementLocationTextIndex(countStartSpace + availabilityExtremistPhrases[indexPhrases].Count);
                        lastPhrasesLocation.Add(endIndex);
                        indexPhrases++;
                    }
                    availabilities.Add(new AvailabilityExtremistTextResult(probability, extremistText,
                                                                           startPhrasesLocation, lastPhrasesLocation));
                }
            }
            return(availabilities);
        }
 public FormAnalizeText()
 {
     InitializeComponent();
     textVocabulary   = new ExtremistTextVocabulary();
     phraseVocabulary = new ExtremistPhraseVocabulary();
 }