Добавил про main
This commit is contained in:
@@ -523,6 +523,37 @@ dialogStep dict prevPhrase =
|
|||||||
in putStrLn ("(" ++ key ++ ") " ++ unwords p) >> return p
|
in putStrLn ("(" ++ key ++ ") " ++ unwords p) >> return p
|
||||||
\end{lstlisting}
|
\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
|
\newpage
|
||||||
|
|||||||
Reference in New Issue
Block a user