saveDictionary в особенностях реализации
This commit is contained in:
@@ -415,6 +415,30 @@ buildDictionary sentences =
|
|||||||
in Map.map nub combined
|
in Map.map nub combined
|
||||||
\end{lstlisting}
|
\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}
|
\subsubsection{Функция generatePhrase}
|
||||||
|
|
||||||
@@ -497,7 +521,7 @@ twoModelsDialog dict1 dict2 start m =
|
|||||||
|
|
||||||
\vspace{-1.5cm}
|
\vspace{-1.5cm}
|
||||||
\begin{thebibliography}{0}
|
\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.
|
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{thebibliography}
|
||||||
\end{document}
|
\end{document}
|
||||||
Reference in New Issue
Block a user