From 4b3baff74fe352992881676c5d79f9dae606098b Mon Sep 17 00:00:00 2001 From: Arity-T Date: Tue, 10 Dec 2024 12:19:02 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=BF=D1=80=D0=BE=20main?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- coursework/report/report.tex | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/coursework/report/report.tex b/coursework/report/report.tex index e61ea52..1e831cb 100644 --- a/coursework/report/report.tex +++ b/coursework/report/report.tex @@ -523,6 +523,37 @@ dialogStep dict prevPhrase = in putStrLn ("(" ++ key ++ ") " ++ unwords p) >> return p \end{lstlisting} +\subsubsection{Функция Main} +Код функции \texttt{main} представлен в листинге~\ref{lst:main2}. +Функция \texttt{main} обрабатывает пользовательский ввод и с помощью функций \texttt{splitText} и \texttt{buildDictionary} строит две модели N-грамм на файлах указанных пользователем. Предлагает пользователю ввести слово или пару слов, на которые потом генерируется ответ с помощью функции \texttt{processInput}. Также запускает диалог между созданными моделями N-грамм с помощью функции \texttt{twoModelsDialog}. Словари с N-граммами моделей сохраняются в файлы \texttt{dict.txt} и \texttt{dict2.txt} с помощью функции \texttt{saveDictionary}. + +\begin{lstlisting}[caption={Код функции main}, label={lst:main2}] +main :: IO () +main = + putStrLn "Введите имя файла:" >> + getLine >>= \fileName -> + readFile fileName >>= \content -> + let sentences = splitText content in + let dict = buildDictionary sentences in + saveDictionary "dict.txt" dict >> + putStrLn "Введите слово или пару слов для генерации фразы:" >> + getLine >>= \input -> + processInput dict input >> + + putStrLn "Введите имя второго файла:" >> + getLine >>= \fileName2 -> + readFile fileName2 >>= \content2 -> + let dict2 = buildDictionary (splitText content2) in + saveDictionary "dict2.txt" dict2 >> + putStrLn "Введите начальное слово или пару слов для старта диалога:" >> + getLine >>= \input2 -> + putStrLn "Введите количество сообщений от каждой модели:" >> + getLine >>= \ms -> + let m = read ms :: Int in + twoModelsDialog dict dict2 input2 m +\end{lstlisting} + + \newpage