Введение 4
1. Цель работы 6
2. Обзор существующих решений 7
2.1. Использование наиболее употребляемых слов 7
2.2. Language Detection Library 7
2.3. Language Detection with Infinity Gram 9
3. Подготовка данных 11
4. Оценка работы моделей 13
5. Эксперименты на пользовательском контенте 16
5.1. Обработка исходных данных 16
5.2. Результаты на пользовательском контенте 17
Заключение 20
Список литературы 21
Возможность публикации собственного контента пользователями повлекла колоссальный рост данных с постоянно увеличивающейся скоростью. Зачастую такие данные являются неструктурированными, а их обработка должна происходить оперативно. Стало необходимым изобретение новых подходов, методов и инструментов для осуществления более эффективной обработки информации.
С другой стороны исследователей давно волновали вопросы, связанные с обработкой естественного языка, для организации более удобного взаимодействия между человеком и компьютером. Однако решение большинства задач данной области до определенного момента являлось затруднительным из-за недостаточного количества исходных данных.
Таким образом с прошествием времени, ввиду накопления необходимого количества информации и наличия исследовательского интереса, возник запрос на анализ имеющихся данных с целью выделения новых признаков для дальнейших разработок. Это позволило компаниям усовершенствовать свои сервисы для улучшения качества предоставляемых пользователям услуг. Стало возможным на основе предыдущего пользовательского опыта осуществлять рекоменданции потенциально интересного контента. Качество же подобных рекоменданций все больше возрастает по мере развития методов машинного обучения.
В данной работе рассмотрена задача определения языка в коротких текстах. Подобная задача является одним из необходимых первых шагов для построения более сложных систем. Если имеется сервис, в котором пользователи могут публиковать свои сообщения на многих языках, то для рекомендации нового контента или формирования пользовательской новостной ленты в первую очередь следует определить языки сообщений, которые могут быть интересны пользователю. Ввиду отсутствия метаданных о тексте, касающихся содержащегося языка, эта задача представляет интерес.
Тривиальный подход подразумевает проверку входящих в сообщения слов на наличие в словарях конкретного языка. Однако такой подход нецелесообразен с практической точки зрения. Для работы подобного метода требуется большое количество вычислительных мощностей и времени, но в реальных задачах необходимо осуществлять моментальную проверку языка и тратить на это как можно меньше ресурсов. Поэтому наилучшим образом себя зарекомендовал подход, основанный на построении вероятностной модели с помощью N-грамм символов [1]. Такой способ позволяет определять язык с весьма высокой точностью и достигнуть оптимальных показателей из соотношения затрат ресурсов и полученного качества, однако имеет некоторые недостатки.
Построение вероятностной модели на основе N-грамм не позволяет выделить достаточного количества признаков из коротких текстов, имеющих длину в несколько слов. Сообщения подобной длины зачастую встречаются в социальных сетях и сервисах микроблогов. Поэтому распознавание языка в текстах подобной длины представляет некоторые затруднения. Однако был предложен новый подход на основе использования всех содержащихся подстрок [5]. Такой способ был реализован в библиотеке ldig (Language Detection with Infinity Gram) [8]. В ней осуществляется поддержка 19 языков, основанных на латинском алфавите.
Таким образом представляет интерес разработка инструмента, поддерживающего расширенный набор языков. При этом необходимо учитывать специфику конкретных языков и их машинного представления, а также проводить предварительную нормализацию, для устранения зашумлённости и элементов, имеющих малый содержательный потенциал в отношении данной задачи.
В данной работе были рассмотрены основные методы определения языка в коротких текстах. Были получены следующие результаты:
• подготовлен корпус языков ближнего зарубежья для построения языковых профилей
• построены языковые профили на основе N-грамм и то-грамм
• проведен сравнительный анализ подходов на подготовленном корпусе и реальном пользовательском контенте Odnoklassniki Likes Dataset [4]
Сравнительный анализ показал преимущество подхода с использованием N-грамм над подходом, основывающемся на использовании то-грамм, а также выявил необходимость добавления дополнительных языковых профилей для повышения качества результатов.
Полученные в ходе работы корпусы и языковые профили выложены в открытый доступ. 1
[1] Cavnar William B, Trenkle John M et al. N-gram-based text categorization // Ann Arbor MI. — 1994. — Vol. 48113, no. 2. — P. 161— 175.
[2] Grefenstette Gregory. Comparing two language identification schemes // 3rd International conference on Statistical Analysis of Textual Data. — 1995.
[3] Natural language identification using corpus-based models / Clive Souter, Gavin Churcher, Judith Hayes et al. // Hermes journal of linguistics. — 1994. — Vol. 13, no. S 183. — P. 203.
[4] Odnoklassniki Likes Dataset.— URL: http://likesdataset.sh2014. org/.
[5] Okanohara Daisuke, Tsujii Jun’ichi. Text Categorization with All Substring Features. // SDM. — 2009. — P. 838-846.
[6] Prager John M. Linguini: Language identification for multilingual documents // Journal of Management Information Systems.— 1999.— Vol. 16, no. 3. —P. 71-101.
[7] Shuyo Nakatani. Language Detection Library for Java. — 2010. — URL: https://github.com/shuyo/language-detection.
[8] Shuyo Nakatani. Short text language detection with infinity-gram. -2012. — URL: https://github.com/shuyo/ldig.