Добавил текст задания
This commit is contained in:
3
coursework/part2/.gitignore
vendored
3
coursework/part2/.gitignore
vendored
@@ -1,2 +1,3 @@
|
|||||||
.stack-work/
|
.stack-work/
|
||||||
*~
|
*~
|
||||||
|
!task_part2.txt
|
||||||
56
coursework/part2/task_part2.txt
Normal file
56
coursework/part2/task_part2.txt
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
Часть 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-грамм созданных на двух разных
|
||||||
|
текстах. Тексты для второй модели выбрать самостоятельно. Пользователь
|
||||||
|
задает начальное слово (или пару) и глубину М сообщений, которыми
|
||||||
|
обмениваются модели. Ответ модели основывается на последнем слове из
|
||||||
|
предложения оппонента (если последнее слово отсутствует в словаре, то
|
||||||
|
предпоследнее и т.д. пока не будет найдено подходящее слово или не
|
||||||
|
закончится предложение оппонента)
|
||||||
|
|
||||||
|
Автор текстов:
|
||||||
|
Чехов, Антон Павлович
|
||||||
Reference in New Issue
Block a user