Часть 2 Написать синтаксический анализатор разбирающий текст и генератор продолжения текста по введенному слову. Для этого выполнить следующие задачи: 1. Прочитать текст из файла, указываемого пользователем. Синтаксически проанализировать текст согласно правилам: слова состоят только из букв; предложения состоят только из слов и разделены символами: .!?;:(). Разбить текст на предложения. Удалить все символы пунктуации и цифры из слов и предложений. 2. Составить модель N-грамм. Использовать модель биграмм и триграмм. По списку предложений составить словарь. Ключами являются: одно слово, либо пара слов. Значениями в словаре является список всех уникальных возможных продолжений триграммы (т.е. список пар слов или одиночных слов). Словарь сохранить в файл .txt. Пример текста и словаря на его основе: Текст: [a b, c d e! b c d? e b c# a ^d. a f; f.] Словарь: [ "a": ["b", "d", "f", "b c"]; "b": ["c", "c d"]; "c": ["d", "a", "d e", "a d"]; "d": ["e"]; "e": ["b", "b c"]; "a b" : ["c"]; "b c" : ["d", "a"]; "c d": ["e"]; "e b" : ["c"]; "c a": ["d"]; "f": [] ] 3. Реализовать взаимодействие с пользователем. Пользователь вводит одно слово или пару слов. Программа возвращает строку случайной длины в диапазоне от 2 до 15 слов, если задаваемого пользователем слова нет в ключах словаря, выдавать соответствующее сообщение. Фраза составляется путем добавления случайного слова (или пары) из списка значений текущего слова-ключа (или пары-ключа), до тех пор, пока либо не будет сформировано предложение нужной длины, либо не будет достигнут ключ, у которого нет значений. 4. Организовать диалог двух моделей N-грамм созданных на двух разных текстах. Тексты для второй модели выбрать самостоятельно. Пользователь задает начальное слово (или пару) и глубину М сообщений, которыми обмениваются модели. Ответ модели основывается на последнем слове из предложения оппонента (если последнее слово отсутствует в словаре, то предпоследнее и т.д. пока не будет найдено подходящее слово или не закончится предложение оппонента) Автор текстов: Чехов, Антон Павлович