Advertisement
iskhakovt

Презентация

Aug 20th, 2015
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Latex 9.29 KB | None | 0 0
  1. \documentclass[14pt]{beamer}
  2. \usepackage[T2A]{fontenc}
  3. \usepackage[utf8]{inputenc}
  4. \usepackage[english,russian]{babel}
  5. \usepackage{amssymb,amsfonts,amsmath,mathtext}
  6. \usepackage{cite,enumerate,float,indentfirst}
  7. \usepackage{listings}
  8. \usepackage{color}
  9. \usepackage{relsize}
  10. \usepackage{ulem}
  11.  
  12. \definecolor{gray}{rgb}{0.4,0.4,0.4}
  13. \definecolor{darkblue}{rgb}{0.0,0.0,0.6}
  14. \definecolor{cyan}{rgb}{0.0,0.6,0.6}
  15. \definecolor{maroon}{rgb}{0.5,0,0}
  16. \definecolor{darkgreen}{rgb}{0,0.5,0}
  17.  
  18. \newcommand\CC{C\nolinebreak[4]\hspace{-.05em}\raisebox{.4ex}{\relsize{-3}{\textbf{++}}}}
  19.  
  20. \graphicspath{{images/}}
  21.  
  22. \usetheme{Madrid}
  23. \usecolortheme{beaver}
  24. \setbeamertemplate{itemize items}[circle]
  25.  
  26. \title[profanity-filter]
  27. {profanity-filter}
  28. \subtitle{Очистка текста от обсценной лексики}
  29. \author[Тимур~Исхаков]{Тимур~Исхаков}
  30. \institute[ФКН ВШЭ]{Факультет компьютерных наук\\Высшая школа экономики}
  31.  
  32. \begin{document}
  33. \lstset{
  34.  basicstyle=\ttfamily,
  35.  columns=fullflexible,
  36.  showstringspaces=false,
  37.  commentstyle=\color{gray}\upshape
  38. }
  39.  
  40. \lstdefinelanguage{XML}{
  41.  basicstyle=\ttfamily,
  42.  morestring=[s]{"}{"},
  43.  morecomment=[s]{?}{?},
  44.  morecomment=[s]{!--}{--},
  45.  commentstyle=\color{darkgreen},
  46.  moredelim=[s][\color{black}]{>}{<},
  47.  moredelim=[s][\color{red}]{\ }{=},
  48.  stringstyle=\color{blue},
  49.  identifierstyle=\color{maroon}
  50. }
  51.  
  52. \lstdefinelanguage{XML}
  53.  
  54. \frame{\titlepage}
  55.  
  56. \begin{frame}{Задачи}
  57.  
  58. \begin{itemize}
  59.  \item<2-> Очистить корпус ruTenTen.
  60.  \item<3-> Очистить произвольный текст.
  61. \end{itemize}
  62.  
  63. \pause\pause\pause
  64. \vspace{20pt}
  65. Очистить~--- удалить предложения, содержащие обсценную лексику.
  66.  
  67. В качестве словаря матерных слов используется список запрещённых для регистрации доменных имён в зоне .рф (около $4\, 000$ слов).
  68.  
  69. \end{frame}
  70.  
  71. \begin{frame}{Корпус ruTenTen}
  72. Большой ($54$~ГБ), но {\it лемматизированный} текст.
  73.  
  74. \vspace{10pt}
  75. Текст уже разбит на предложения, для каждого слова найдена {\it нормальная форма}.
  76.  
  77. \end{frame}
  78.  
  79. \begin{frame}[fragile]{Структура корпуса ruTenTen}
  80.  
  81. {\small
  82. \begin{lstlisting}[language=XML]
  83. <doc>
  84. <p heading="0">
  85. <s>
  86. \end{lstlisting}
  87.  
  88. \begin{tabular}{lllll}
  89. \small Преимущества & \footnotesize Ncnpnn- & \footnotesize Ncnpan & \footnotesize преимущество-n & \footnotesize преимущество\\
  90. \small деревянных & \footnotesize Afpmpgf & \footnotesize Afp-pgf & \footnotesize деревянный-a & \footnotesize деревянный\\
  91. \small винных & \footnotesize Afpmpgf & \footnotesize Afp-pgf & \footnotesize винный-a & \footnotesize винный\\
  92. \small погребов & \footnotesize Ncmpgn- & \footnotesize Ncmpgn & \footnotesize погреб-n & \footnotesize погреб\\
  93. \end{tabular}
  94. \begin{lstlisting}[language=XML]
  95. <g/>
  96. :   -   -   :--
  97. </s>
  98. </p>
  99. </doc>
  100. \end{lstlisting}
  101. }
  102.  
  103. \end{frame}
  104.  
  105. \begin{frame}{Boost.Python}
  106. \only<1>{
  107. \begin{figure}
  108.    \centering
  109.    \includegraphics[width=0.6\linewidth]{python.png}
  110.    \label{fig:cpp_python}
  111. \end{figure}
  112. }
  113.  
  114. \only<2>{
  115.    Обработка корпуса целиком написана на \CC.
  116.    
  117.    \pause
  118.    \vspace{30pt}
  119.    
  120.    $1$~ГБ часть корпуса (MacBook Air, Intel Core i5 $1,3$~ГГц):
  121.    
  122.    \vspace{10pt}
  123.    \begin{center}
  124.    \begin{tabular}{c|c|c|c}
  125.    CPython & PyPy & \CC & cp \\
  126.    \hline
  127.    4m~28.525s & 1m~54.515s & 0m~15.135s & 0m~5.043s\\
  128.    \end{tabular}
  129.    \end{center}
  130.    }
  131. \end{frame}
  132.  
  133. \begin{frame}{Бор}
  134. \only<1>{
  135.    \begin{figure}
  136.        \includegraphics[width=\linewidth]{trie/first.eps}
  137.    \end{figure}
  138. }
  139. \only<2>{
  140.    \frametitle{Ахо--Корасик}
  141.    \begin{figure}
  142.        \includegraphics[width=\linewidth]{trie/second.eps}
  143.    \end{figure}
  144. }
  145. \end{frame}
  146.  
  147. \begin{frame}{ruTenTen}
  148.    Обработка корпуса Sketch Engine~--- ruTenTen (54~ГБ, $69\, 672\, 587$ предложений, около $1,5$ миллиардов слов).
  149.    
  150.    \pause
  151.    \vspace{30pt}
  152.    Найдено около $180\, 000$ предложений, содержащих обсценную лексику.
  153. \end{frame}
  154.  
  155. \begin{frame}{Произвольный текст}
  156. Текст имеет куда меньшие размеры, но в нём нет чёткой структуры.
  157.  
  158. \pause
  159. \vspace{20pt}
  160. Проблемы:
  161. \begin{itemize}
  162. \item<3-> Разделение на предложения.
  163. \item<4-> Неточный {\it лемматизатор}.
  164. \item<5-> Ошибки и опечатки.
  165. \end{itemize}
  166. \end{frame}
  167.  
  168. \begin{frame}{Разделение на предложения}
  169.  
  170. \begin{itemize}
  171. \item<1-> Прямая речь.
  172.  
  173. \pause
  174. \vspace{10pt}
  175. Волк закричал: <<Ну, погоди!>>
  176.  
  177. --- Кто там? --- спросил дядя Фёдор. --- Это я!
  178.  
  179. Он сказал: <<Я учусь в школе <<Интеллектуал>>.
  180.  
  181. \vspace{20pt}
  182.  
  183. \item<3-> Сокращения и точки.
  184.  
  185. \pause\pause
  186. \vspace{10pt}
  187. Мой день рождения~--- 19.06.1996.
  188.  
  189. Я встретил Вас. Иванова в офисе.
  190.  
  191. \pause
  192. \vspace{10pt}
  193. %Я встретил Вас. Иванова в офисе.
  194. %
  195. Я встретил Вас\sout{илия} Иванова в офисе.
  196. \end{itemize}
  197.  
  198. \end{frame}
  199.  
  200. \begin{frame}{Неточный лемматизатор}
  201.  
  202. Лемматизатор {\it pymorphy2} использует словари {\it OpenCorpora}.
  203.  
  204. \pause
  205. \vspace{10pt}
  206. Некоторые слова в них отсутствуют. Можно попробовать исправить словари, можно смириться.
  207.  
  208. \end{frame}
  209.  
  210. \begin{frame}{Опечатки и ошибки}
  211. \begin{itemize}
  212. \item <2-> Проверка {\bf всех нормальных форм}, полученных лемматизатором.
  213. %\item <3-> Сравнение суффиксных деревьев.
  214. \item <3-> Расстояние Левенштейна по типичным ошибкам и опечаткам.
  215. \end{itemize}
  216. \end{frame}
  217.  
  218. \begin{frame}{Типичные ошибки}
  219.  
  220. \begin{center}
  221. \begin{tabular}{ccc}
  222.    а $\leftrightarrow$ о &
  223.    е $\leftrightarrow$ и $\leftrightarrow$ я \\
  224.    е $\leftrightarrow$ ы $\leftrightarrow$ э &
  225.    e $\leftrightarrow$ ё \\
  226.    & \\
  227.    и $\leftrightarrow$ ы &
  228.    а $\leftrightarrow$ я \\
  229.    у $\leftrightarrow$ ю & \\
  230.    & \\
  231.    к $\leftrightarrow$ г &
  232.    ш $\leftrightarrow$ ж \\
  233.    з $\leftrightarrow$ с &
  234.    ф $\leftrightarrow$ в \\
  235.    п $\leftrightarrow$ б &
  236.    д $\leftrightarrow$ т \\
  237. \end{tabular}
  238. \end{center}
  239.  
  240. \end{frame}
  241.  
  242. \begin{frame}{Типичные опечатки}
  243. \only<2>{
  244.    \begin{itemize}
  245.    \item Замена букв на соседние.
  246.    \item<3-> Схлопывание одинаковых букв, идущих подряд:
  247.    
  248.    <<привеееееееееееет>> $\rightarrow$ <<привет>>.
  249.    \item<3-> Перестановка двух соседних букв.
  250.    \item<3-> Добавление и удаление буквы.
  251.    \end{itemize}
  252. }
  253.  
  254. \only<3>{
  255. \begin{figure}
  256.    \centering
  257.    \includegraphics[trim={0 0 31.8cm 0},clip,width=\linewidth]{keyboard/none.eps}
  258.    \label{fig:keyboard}
  259. \end{figure}
  260. }
  261.  
  262. \only<4>{
  263. \begin{figure}
  264.    \centering
  265.    \includegraphics[trim={0 0 31.8cm 0},clip,width=\linewidth]{keyboard/pressed.eps}
  266.    \label{fig:keyboard}
  267. \end{figure}
  268. }
  269.  
  270. \only<5>{
  271. \begin{figure}
  272.    \centering
  273.    \includegraphics[trim={0 0 31.8cm 0},clip,width=\linewidth]{keyboard/around.eps}
  274.    \label{fig:keyboard}
  275. \end{figure}
  276. }
  277.  
  278. \only<6->{
  279.    \begin{itemize}
  280.    \item<6-> Замена букв на соседние.
  281.    \item<7-> Схлопывание одинаковых букв, идущих подряд:
  282.    
  283.    <<привеееееееееееет>> $\rightarrow$ <<привет>>.
  284.    \item<8-> Перестановка двух соседних букв.
  285.    \item<9-> Добавление и удаление буквы.
  286.    \end{itemize}
  287. }
  288.  
  289. \end{frame}
  290.  
  291. \begin{frame}[fragile]{Использование программы}
  292. Утилита будет добавлена в PyPI.
  293.  
  294. \vspace{20pt}
  295. Запуск:
  296. \begin{lstlisting}[language=bash]
  297. profanity-filter corpus.vert clean.vert
  298. \end{lstlisting}
  299.  
  300. \vspace{10pt}
  301. Также возможно использование собственного словаря.
  302.  
  303. \vspace{20pt}
  304. Программа показывает прогресс обработки.
  305. \end{frame}
  306.  
  307. \begin{frame}{Пример работы}
  308. \begin{figure}
  309.    \centering
  310.    \includegraphics[width=0.9\linewidth]{screenshot.jpg}
  311.    \label{fig:screenshot}
  312. \end{figure}
  313. \end{frame}
  314.  
  315. \begin{frame}
  316. \begin{figure}
  317.    \centering
  318.    \includegraphics[trim={2mm 6cm 2mm 2mm},clip,width=0.6\linewidth]{lebedev.png}
  319.    \label{fig:lebedev}
  320. \end{figure}
  321. \end{frame}
  322.  
  323. \end{document}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement