Добавил про main
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user