From ca62ba2dc3a1347feaa92a52417d47080a59a3b9 Mon Sep 17 00:00:00 2001 From: Arity-T Date: Tue, 10 Dec 2024 11:23:20 +0300 Subject: [PATCH] =?UTF-8?q?saveDictionary=20=D0=B2=20=D0=BE=D1=81=D0=BE?= =?UTF-8?q?=D0=B1=D0=B5=D0=BD=D0=BD=D0=BE=D1=81=D1=82=D1=8F=D1=85=20=D1=80?= =?UTF-8?q?=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- coursework/report/report.tex | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/coursework/report/report.tex b/coursework/report/report.tex index f0bf2db..9e1608d 100644 --- a/coursework/report/report.tex +++ b/coursework/report/report.tex @@ -415,6 +415,30 @@ buildDictionary sentences = in Map.map nub combined \end{lstlisting} +\subsection{Функция saveDictionary} +Функция \texttt{saveDictionary}, код которой представлен в листинге~\ref{lst:saveDictionary}, сохраняет словарь с N-граммами в текстовый файл. Она принимает на вход путь до файла и сам словарь, явно ничего не возвращает, но перезаписывает содержимое файла. Для получения текстового представления списков вместо стандартной функции \texttt{show}, используется \texttt{ushow} из библиотеки \texttt{unescaping-print}~\cite{unescaping-print}. \texttt{ushow} отображает кириллицу напрямую, без экранирования, в отличии от стандартной функции \texttt{show}. + +\begin{lstlisting}[caption={Функция saveDictionary для сохранения словаря N-грамм в файл.}, label={lst:saveDictionary}] +saveDictionary :: FilePath -> Map String [String] -> IO () +saveDictionary filePath dict = withFile filePath WriteMode $ \h -> + mapM_ (\(k,v) -> hPutStrLn h $ ushow k ++ ": " ++ ushow v) (Map.toList dict) +\end{lstlisting} + +Пример первых десяти строк содержимого итогового файла представлен ниже: + +\begin{verbatim} +"а тебе": ["мы"] +"а только": ["опьянела"] +"а третировала": ["его"] +"а тут": ["еще"] +"а ты": ["хорошая","рыжик","каштанка"] +"а учитель": ["удивлялся"] +"а хавронья": ["ивановна"] +"а хозяин": ["становился"] +"а чемодан": ["покачивался"] +"а через": ["месяц"] +"а ято": ["мечтал"] +\end{verbatim} \subsubsection{Функция generatePhrase} @@ -497,7 +521,7 @@ twoModelsDialog dict1 dict2 start m = \vspace{-1.5cm} \begin{thebibliography}{0} - \bibitem{JuicyPixels} + \bibitem{unescaping-print} Hackage -- unescaping-print: Tiny package providing unescaping versions of show and print, URL: \url{https://hackage.haskell.org/package/unescaping-print}, Дата обращения: 09.12.2024. \end{thebibliography} \end{document} \ No newline at end of file