iOS приложение РуСленг - Словарь Русского сленга

Описание создания современного словаря русского сленга, а также создание многофункционального iOS приложения РуСленг – Словарь Русского Сленга. Характеристика существующих ресурсов с определениями русского сленга и сервисов для просмотра определений.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 04.12.2019
Размер файла 2,5 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Федеральное государственное автономное образовательное

учреждение высшего образования

«Национальный исследовательский университет

«Высшая школа экономики»

Факультет компьютерных наук

Основная образовательная программа

Прикладная математика и информатика

ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА

на тему

iOS приложение РуСленг - Словарь Русского сленга

Выполнил студент группы 155, 4 курса,

Лотфуллин Камиль Равилевич

Москва 2019

Аннотация

сленг русский словарь ios

Сленг является важным инструментом общения социальных групп, а с развитием интернета и социальных сетей, распространение новых слов происходит практически моментально. Задача поиска определения сленговых слов требует присутствия двух факторов: полноценного и актуального словаря, а также удобного сервиса для взаимодействия с определениями с мобильного устройства.

В этой работе описано создание масштабного и современного словаря русского сленга, а также создание многофункционального iOS приложения РуСленг - Словарь Русского Сленга.

В работе рассмотрены и проанализированы существующие ресурсы с определениями русского сленга и сервисы для просмотра определений слов с мобильного устройства. Также сформированы основные требования к словарю и приложению русского сленга, описаны технологии и инструменты, приведена реализация.

Данные для словаря собраны с из открытых источников с помощью современных фреймворков и содержат более 32000 слов с определениями. Приложение РуСленг реализовано на языке Swift 4.2, серверная часть реализована на сервисе Google FireBase. Приложение доступно по ссылке https://itunes.apple.com/ru/app/русленг/id1280469135.

Работа содержит 42 страницы, 4 главы, 25 рисунков, 30 источников.

Ключевые слова -- iOS разработка, Сленг, Веб-парсинг

Abstract

Slang is an important communication tool for social groups, and with the development of the Internet and social networks, the spread of new slang words is almost instantaneous. The task of searching for the definition of slang words requires two factors: a full-fledged and up-to-date dictionary, as well as a convenient service for interaction with definitions from a mobile device.

This work describes the creation of large and modern Russian slang dictionary, as well as the creation of a multifunctional iOS application RuSlang - Russian Slang Dictionary.

This paper considers and analyzes the existing resources with definitions of Russian slang and services for viewing the definitions of words from a mobile device. The requirements to the dictionary and Russian slang application are also formed, technologies and tools are described, and implementation is given.

Dictionary data collected from open sources using modern frameworks and contains more than 32000 words with definitions. The RuSlang application is implemented in Swift 4.2, the server part is implemented using Google FireBase service. The application is available at https://itunes.apple.com/us/app/russian-slang-dictionary/id1280469135.

The work contains 42 pages, 4 chapters, 25 drawings, 30 sources.

Keywords - iOS development, Slang, Web-parsing, Web-scrapping

Введение

Сленг, или по-другому жаргон, это социальная разновидность речи, которая используется определённым кругом носителей языка, объединенных общностью интересов, занятий, положением в обществе [1]. Сленг активно развивается и его употребление стало повсеместным. Радио, телевидение, газеты, журналы -- везде можно заметить употребление нестандартной лексики.

В настоящее время сленг представляет большой интерес в задачах анализа естественного языка (NLP). С развитием социальных сетей новые тренды почти моментально подхватываются интернет-сообществом и ещё некоторое время назад никому не известные неформальные фразы становятся очень популярны [2]. Поэтому вырос спрос на поиск определения для таких слов, и многие люди хотели бы иметь возможность удобного поиска этих определений.

Возможным решением является использование веб-ресурсов или печатных изданий, но это не оптимально, потому что для русского языка не существует сервисов, предоставляющих полноценный словарь сленга с удобным интерфейсом, а все бумажные издания являются неактуальными, либо недостаточно объемными.

В современном мире большинство людей имеют смартфоны, которые позволяют иметь все необходимые сервисы под рукой [3]. Мобильное приложение удобнее в использовании, так как пользователям достаточно просто и легко разобраться в работе приложения, чем в работе сайта, особенно со сложной структурой. Ведь у каждой платформы есть свои стандартные действия (например, перемещение между экранами приложения, вызова меню и т.д.). Так же, приложение даёт возможность работы без использования интернета. Пользователь всегда сможет воспользоваться приложением, в отличие от веб-сайта. Ну и наконец, приложение даёт возможность более близкого взаимодействия с пользователем благодаря встроенным возможностям мобильных платформ, таких как уведомления и прочие.

Целью данной работы является разработка мобильного приложения для просмотра определений сленговых слов русского языка и создание словаря сленговых слов для использования в приложении.

РуСленг - это iOS приложение, которое позволяет пользователю выполнять поиск по ключевым словам, добавлять слова в избранное, просматривать список наиболее трендовых слов, а так же вносить правки в существующие слова и создавать новые.

У сервиса, описанного в данной работе, есть некоторое количество альтернатив, однако по совокупности характеристик, таких как возможность работы без доступа к сети интернет, функции добавления в избранное, и прочих, РуСленг не имеет прямых аналогов.

Помимо основной задачи поиска определений сленговых слов, собранный специально для приложения словарь сленговых слов будет полезен лингвистам, социологам и другим категориям людей, заинтересованным в работе со сленговыми словами русского языка.

Словарь, созданный для приложения РуСленг является самым большим и актуальным словарём русского сленга на момент публикации этой работы.

В рамках данной выпускной квалификационной работы были поставлены 2 цели:

Собрать самый большой и актуальный словарь сленговых слов и выражений на данный момент из открытых источников.

Разработать iOS приложение для поиска и просмотра определений сленговых выражений без подключения к интернету, с возможностью коррекции и дополнения существующих и создания новых слов, выделения слов в избранное, просмотр самого трендового сленга на текущий момент

Для достижения первой цели необходимо выполнить следующие задачи:

Изучить аналоги: словари и сервисы, предоставляющие возможность просмотра определений сленговых выражений. Определить преимущества по сравнению с аналогами.

Разработать требования к словарю.

Изучить и выбрать источники данных для словаря.

Определить методы и технологии, необходимые для скачивания и обработки данных для создания словаря.

Скачать данные, обработать их и объединить в словарь.

Для достижения второй цели необходимо выполнить следующие задачи:

Изучить аналоги: приложения и сервисы, реализующие возможность просмотра определений слов. Определить преимущества программы по сравнению с аналогами.

Разработать функциональные требования к приложению.

Определить методы и технологии, необходимые для реализации приложения.

Разработать описание приложения с точки зрения пользователя

Реализовать приложение и сервер.

Запустить приложение в открытый доступ.

Работа структурирована следующим образом:

В первой главе проведен анализ существующих словарей сленговых слов в современном мире для русского языка, сформулированы основные требования к содержанию словаря, и выбраны источники данных для его создания.

Во второй главе проведен анализ существующих сервисов и приложений, которые реализуют возможность просмотра определений слов, сформулированы основные требования к приложению, выбраны программные методы и средства для реализации приложения.

В третьей главе описываются методы, инструменты и реализация сбора данных и приведение в конечный формат словаря сленговых слов для использования в приложении РуСленг.

В четвертой главе будут выбраны методы и средства реализации приложения, составлено описание системы со стороны пользователя, описана модель хранения данных, работа ключевых модулей и реализация сервера и мобильного приложения РуСленг. Также будет описан процесс запуска и публикации приложения в открытый доступ сети интернет.

Анализ существующих словарей сленговых слов

В данной главе будет проведен анализ существующих словарей сленговых слов в современном мире для русского языка, сформулированы основные требования к содержанию словаря, и выбраны источники данных для его создания.

Существующие словари сленга в современном мире для русского языка

«Толковый словарь молодежного сленга» Никитина Т.Г.

Это толковый словарь русского сленга, созданный в 2003 году научным и студенческим коллективом Псковского государственного университета [4]. Авторы утверждают, что включили в словарь все слова и выражения, использовавшиеся молодёжью во всех сферах жизни в конце XX - начал XXI веков, а также около 3000 слов, появившихся уже в новом тысячелетии. У каждого слова в данном словаре есть толкование, грамматические и прочие языковые характеристики. Кроме того, присутствуют примеры из фрагментов литературных текстов и записей живой речи.

Словарь имеет только бумажную версию. Отсутствие электронного формата делает его непригодным для использования в задачах анализа данных. К тому последняя редакция была сделана в 2009 году, что исключает актуальность данных, приведённых в словаре.

Wiktionary.org

Викисловарь существует с 2004 года и с тех пор это один из самых обширных словарей и тезаурусов русского и других языков мира, пополнением которого может заниматься любой человек [5]. Сейчас в нём содержится более 400 000 статей о словах в категории «Русский язык» и благодаря активному сообществу это число с каждым годом растёт.

Русский Викисловарь является качественным словарным источником для работы с литературным русским языком, но на данный момент количество сленговых выражений относительно мало.

Teenslang.su

Сайт Teenslang.su, созданный в 2012 году группой школьников компьютерного клуба «Смайлик», постепенно превратился в самый масштабный источник определений сленговых слов, с хорошей формализованной структурой, удобным поиском и более чем 26 000 слов, среди которых только неформальная речь [6]. Несмотря на слабое участие основателей сайта в его обновлении, сайт поддерживается в актуальном виде и содержит большинство современных сленговых слов, начиная от очень популярных, заканчивая такими редкими категориями, как «ЧГКшники» и «Граффити». Это происходит за счёт добровольного участия пользователей.

Vsekidki.ru

Слова на сайте Vsekidki.ru создаются силами нескольких редакторов с 2014 года [7]. Хотя общее число слов на ресурсе мало, все слова являются популярными и актуальными. Кроме того, к каждому сленговому выражению прикрепляется одно или несколько изображений, иллюстрирующих значение слова.

Модные-слова.рф

Сайт молодёжного сленга, где свыше 3600 слов, которые представляют одну или несколько из всевозможных категорий русского сленга от тюремного арго до «Аниме» [8]. Каждое слово представлено статьёй в публицистическом стиле, дополнено иллюстрациями на тему выражения.

Другие

Так же в интернете представлены несколько других сайтов-словарей сленга, но они либо давно заброшены, как slanger.ru, либо однозначно проигрывают по содержанию и качеству перечисленным выше ресурсам, как например slang.site.

Среди научных работ также следует отметить Словарь Молодёжного Сленга (на материале лексикона студентов Томского Государственного университета) Л.?А. Захаровой, А.?В. Шуваевой [9]. Он был опубликован в 2014 году и содержит около 2500 слов со структурированной семантической, грамматической и стилистической информацией.

Также выделяется работа Т.Г. Никитиной, Е.И. Рогалёвой «Актуальный Молодежный Лексикон: Псков - 2015-2016», в которой представлены более 1000 сленговых выражений, используемых современной молодёжью Псковского региона [10].

Значительная часть представленных слов в этих двух работах являются регионализмами, употребляемыми исключительно в городах сбора данных.

Однако, как уже было отмечено ранее, словари молодёжного сленга требуют активного обновления данных, так как новый сленг очень быстро занимает место в лексиконе молодёжи, на что веб-ресурсы способны быстро реагировать силами активного сообщества, а научные работы нет.

Сравнение

Таблица 1.1 Сравнение словарей русских сленговых слов

Ресурс

Словарь Никитиной Т.Г. 2009

Wiktionary

Teenslang

Vsekidki

Модные-слова

Кол-во слов

~ 20000

~ 1000 (?)

26231

1869

3651

% наличия соврем. слов*

5

60

70

85

70

Веб-сайт

-

+

+

+

+

Возможность прямого скачивания

-

-

-

-

-

Единый формат

+

+

+

-

-

Морфологич. Характер-ки

+

+

+

-

-

Примеры

+

+

+

+

+

Синонимы

-

+

+/-

-

+/-

*Процент наличия современных слов определяется следующим образом. Была сформирована случайная выборка из 20 популярных в 2019 году сленговых слов: "барбершоп", "вишлист", "дауншифтер", "зашквар", "инвайт", "ньюфаг", "оверсайз", "хайп", "ксан", "олды", "дока", "скибиди", "ти да", "эщкере", "тян", "флекс", "бадибэг", "кун", "кек", "лойс". В каждом из анализируемых словарей был произведен поиск определения для каждого слова из выборки. Доля найденных определений демонстрирует примерную оценку актуальности для каждого из словарей.

Основные требования к содержанию создаваемого словаря

Словарь молодежного сленга в первую очередь должен быть максимально актуальным и современным. В наше время, в связи с активным развитием интернет сообществ, новые сленговые слова получают широкую известность за считанные дни. Соответственно использование старых ресурсов, не получающих быстрое обновление, является плохим подходом.

Словарь должен иметь чёткую формальную структуру, формат описания слова. Это необходимо для возможности анализа и поиска по отдельным характеристикам слова.

Слова и их определения не должны включать в себя рекламу, грубые ошибки, артефакты, полученные из-за неверного форматирования и обработки данных.

Выбор источников данных

В качестве источников данных для словаря русского сленга РуСленг было решено использовать сайты Teenslang.su, Vsekidki.ru, Модные-слова.рф, так как в приоритете для словаря сленга, в первую очередь, актуальность данных. Качество определений, строгий формат отходят на второй план в сравнении с необходимостью предоставления наиболее свежих определений.

Анализ сервисов и приложений для просмотра определений слов

В данной главе будет проведен анализ существующих сервисов и приложений, которые реализуют возможность просмотра определений слов, сформулированы основные требования к приложению, выбраны программные методы и средства для реализации приложения.

Анализ существующих сервисов для просмотра определений слов

Существует множество вариантов просмотра определений слов, реализованных в виде интернет ресурсов и приложений. Мы рассмотрим самые популярные и функциональные из них, далее сравним преимущества и недостатки и сделаем выводы.

Google/Яндекс

Первое, что приходит в голову при желании найти определение какому-то слову - это поисковые сервисы. В наше время Google или Яндекс анализируют информацию при индексации сайтов, распознают вопрос «что такое X?» и предлагают небольшое окошко с предполагаемым ответом на вопрос, с прикреплённой ссылкой на источник ответа. Такой подход позволяет быстро узнать значение популярного слова. Однако такой подход не даёт подробное определение слова сразу же, требуется переход по ссылке. А также предлагаемая информация не структурирована. Также есть вероятность того, что достаточно известное выражение останется без предполагаемого определения при индексации и не будет предложено поисковиком. Удобство пользования поисковиком при поиске определений слова на среднем уровне, так как с мобильного устройства это доступно в один-два клика.

Wiktionary

Поисковые сервисы часто берут определение для слов из Wiktionary. В целом, это достаточно удобный сайт, однако у них нет официального приложения на мобильные устройства, а значит для поиска слова придется сначала открыть этот ресурс.

Urban Dictionary

Urban Dictionary [11] обладает наибольшей известностью и масштабу среди ресурсов для просмотра определений английского сленга [12]. В добавок к полнофункциональному веб-интерфейсу, существует официальное мобильное приложение, работающее по интернету и включающее основной функционал сайта. Одной из важных ключевых особенностей платформы Urban Dictionary является возможность голосования за конкретный вариант определения, что позволяет на основе большинства голосов сопоставлять слову наиболее популярное и корректное значение.

Teenslang.su

Teenslang.su обладает достаточной функциональностью для просмотра определений через браузер, включая расширенный поиск, однако в мобильных устройствах сайт отображается некорректно, с ним невозможно взаимодействовать используя смартфон. Кроме того, этот ресурс не обладает функцией добавления слов в избранное.

ABBYY Lingvo

ABBYY Lingvo [13] - образцовое мобильное приложение-словарь, реализующее весь необходимый функционал, включая поиск по различным словарям, добавление в избранное, а так же встроенное распознавание текста с изображений, режим изучения слов по карточкам и много другого. К сожалению, это приложение является платным, а словари приобретаются по-отдельности.

Сравнение приложений и веб ресурсов, предоставляющих возможность просмотра определений слов

Ни один из существующих российских ресурсов сленговых слов не представлен в виде мобильного приложения. Дизайн наибольшего ресурса, Teenslang.su, не изменялся с 2012 года, его текущая версия отображается в браузере мобильного устройства некорректно.

Таблица 2.1 Сравнение ресурсов для просмотра определений слов

Ресурс

Google/

Yandex

Wiktionary

Urban Dictionary

Teen

Slang

ABBYY Lingvo

РуСленг

Добавление слов в избранное

-

+

+

-

+

+

Несколько определений

-

+

+

+

+

+

Русский язык

+

+

-

+

+

+

Может работать без интернета

-

-

-

-

+

+

Просмотр на смартфоне

+

-

+

-

+

+

Бесплатно

+

+

+

+

-

+

Сленг слова

+

+

+

+

-

+

Создание

Новых слов

-

+

+

+

-

+

Правка слов

-

+

+

+

-

+

В результате сравнения видно, что вариантов просмотра определений слов множество, у каждого свои преимущества. Многие варианты обладают своими уникальными преимуществами и заслуживают пристального внимания. Однако, как мы видим, среди рассмотренных сервисов и приложений нет оптимальных по всем параметрам. Основной недостаток большинства из них в том, что они не работают без доступа к интернету. Но если даже исключить это условие из требований, по-прежнему нет оптимальных приложений без недостатков. Следовательно, разрабатываемое приложение РуСленг следует проектировать с учётом покрытия всех условий. Следует заметить, что приложение ABBYY Lingvo является отличным продуктом и покрывает большинство основных требований. К сожалению, оно не является бесплатным, а также не содержит словаря русского сленга, к созданию которого мы и будем стремиться.

Основные функциональные требования к приложению

В результате анализа и сравнения существующих вариантов просмотра определений слов, сформируем следующие требования к приложению:

- Русский язык интерфейса

- Функция добавления слов в избранное

- Просмотр нескольких различных определений для одного слова

- Возможность работы без интернета

- Бесплатное

- Просмотр определений для сленговых слов

- Добавление и изменение слов (локально на устройстве)

Кроме перечисленных выше конкурентных особенностей, было решено реализовать следующие функции:

- Возможность просмотра списка слов по алфавиту и в случайном порядке

- Возможность поиска слов в конкретном словаре, если их будет несколько

В сравнении с приложением Urban Dictionary [14], РуСленг будет иметь те же возможности поиска и просмотра слов. Основная разница и конкурентное преимущество в том, что РуСленг будет поддерживать офлайн режим и может работать независимо от интернет-соединения. Наилучшим аналогом подобного словаря является платное приложение ABBYY Lingvo [15]. Это приложение реализует функционал офлайн словарей различного содержания на разных языках мира. Для русского языка в приложении можно приобрести множество словарей перевода на популярные языки мира и толковый словарь русского языка на 130 000 слов. Кстати, там также доступен словарь неформального английского языка с переводом значений на русский.

Сбор данных и создание словаря сленговых слов

В этой главе описываются методы, инструменты и реализация сбора данных с сайтов Teenslang.su, Vsekidki.ru и Модные-слова.рф, приведение данных в конечный формат словаря сленговых слов. Цель для каждого ресурса - загрузить всю информацию о всех словах, представленных на ресурсе. Обработать, привести к единому формату и объединить в едином словаре сленга. Словарь РуСленг соберёт в себе всю информацию, находящуюся на существующих русских сленг ресурсах, а значит станет самым масштабный русским словарём среди существующих в настоящий момент.

Основные инструменты и методы сбора данных

Задача сбора данных состоит из трёх подзадач:

Загрузка веб страницы.

Парсинг документа с целью получения данных.

Обработка и приведение данных к единому формату.

У каждой из этих задач есть своя специфика и популярные инструменты для их реализации. Рассмотрим реализацию каждой из подзадач на примере каждого из выбранных веб-ресурсов сленговых слов.

Основой для всех взаимодействий является Jupyter Notebook [16] -- командная оболочка для интерактивных вычислений

Загрузка веб страниц

Загрузка статичных веб-страниц выполнялась с помощью aria2 - свободная кроссплатформенная консольная программа для загрузки файлов по сети. Она обладает простым интерфейсом и предельной производительностью.

Teenslang.su

Структура сайта простая, html код страницы статичен, и для просмотра отдельных статей и общего списка, содержащего 19954 слов, требуется просто загрузить код страниц. Однако для того, чтобы открыть список из 26429 слов, в которые входят ещё и закрытые по разным причинам слова, требуется полноценный браузер, поскольку для этого на странице расширенного поиска требуется активировать галочку просмотра закрытых слов и нажать кнопку «Искать». Тогда в этом окне браузера будет доступен полный список слов, разделенный на 661 страницу по 40 слов на каждой, доступ к которым возможен только с помощью JS-команды `openpage(n)`.

Для осуществления этих взаимодействий было решено применить Puppeteer [17] - библиотека для Node.js, которая позволяет управлять браузером Chromium без пользовательского интерфейса.

Был написан метод `puppeteerSession`, который запускает Chromium в режиме headless и выполняет описанные выше действия для доступа ко всем словам. Для эффективного взаимодействия метод `puppeteerSession` запускается параллельно в 5-ти процессах, что позволяет загрузить 661 страницу за несколько минут.

let puppeteerSession = () => {

puppeteer

.launch({

headless: true

})

.then(async browser => {

let page = await browser.newPage()

console.log('await page.goto(url)')

await page.goto(url, {waitUntil: 'networkidle2', timeout: 60000})

await page.click('#in_full')

console.log(`await page.click('.adv_submit')`)

await page.click('.adv_submit')

await awaitPageOpening(page, 1)

while (current_page < last_page) {

let num = current_page++

console.log(num)

if (!fs.existsSync(`adv_pages/adv_${num}.html`)) {

await openPage(page, num)

await awaitPageOpening(page, num)

await downloadHTML(page, num)

}

}

})

.catch(console.error)

Рисунок 3.2.1 Загрузка страниц сайта Teenslang.su

Vsekidki.ru

На сайте Vsekidki есть единый список статей, который состоит из 82 страниц со 20 статьями на каждой. Каждая статья является отдельной статичной страницей, которая содержит подробное описание слова.

Загрузка страницы каждого слова становится возможна при наличии ссылки на эту страницу. Для получения ссылки воспользуемся python-библиотекой BeautifulSoup4, о которой будет подробнее рассказано в части 3.3.

Кроме записи ссылок на страницы слов также сохраняем категории, к которым относятся слова, такие как «Аниме», «Геймеры» и т.д.:

vsekidki_url = "http://vsekidki.ru/page/"

for i in range(1, num_of_slang_words_pages):

print(i, end=' ')

r = requests.get(vsekidki_url + str(i) + '/')

data = r.text

soup = BeautifulSoup(data, "lxml")

divs = soup.find_all('div', id="wid_m_bc")

for div in divs:

link = div.find('a')['href']

cats = div.find('div', id='wid_m_cat').text

link_to_cats[link] = cats

cat_to_links[cat].append(link)

with open ('words', 'w') as links_file:

links_file.write('\n'.join(link_to_cats.keys()))

!aria2c -i {'words'} -d words_pages

Рисунок 3.2.2. Загрузка страниц сайта Vsekidki.ru

Модные-слова.рф

Сайт Модные-слова не даёт единого списка всех слов, статьи распределены на категории, которых в общей сложности 27. Для каждой категории можно просмотреть список статей, по 6 на каждой странице. Всего на этом сайте 3651 статей.

!wget модные-слова.рф

with open ('index.html', 'r', encoding = "ISO-8859-1") as main_html_file:

main_html = main_html_file.read()

main_soup = BeautifulSoup(main_html)

main_soup.find_all('ul > li')

for ultag in main_soup.find_all('ul', {'class': 'lmenu reset'}):

for a in ultag.find_all('a'):

theme_links[mainLink + a['href']] = a.text.encode('ISO-8859-1')

.decode('WINDOWS-1251')

Рисунок 3.2.3. Получение ссылок на темы сайта Модные-слова.рф

with open ('theme_links', 'w') as links_file:

for link, name in theme_links.items():

links_file.write('{}\n out={}\n'.format(link, name))

!aria2c -i theme_links -d theme_pages --continue=true

Рисунок 3.2.4. Загрузка страниц каждой темы

for theme, link in theme_to_link.items():

for i in range(1, theme_pages_count[theme] + 1):

aria2c_input_file += '{}/page/{}\n dir=themes/{}\n out={}{}\n'.format(link, i, theme, theme, i)

with open ('theme_pages_links', 'w') as links_file:

links_file.write(aria2c_input_file)

!aria2c -i theme_pages_links --continue=true

Рисунок 3.2.5. Получение ссылок на страницы слов внутри каждой темы и их загрузка

Парсинг документа с целью получения данных

Парсинг данных со скачанных с помощью aria2 [18] html страниц выполняется с помощью python библиотеки BeautifulSoup4 [19], которая является самым популярным и качественным инструментом веб-парсинга с широким функционалом и большим сообществом пользователей.

Скачанные данные html страниц открываются с помощью python и обрабатываются фреймворком BeautifulSoup4. Данные инструменты были выбраны исходя из их популярности, развитого сообщества и удобных методах, позволяющих сконцентрироваться непосредственно на задаче парсинга веб страниц.

Teenslang.su

Каждое слово в Teenslang имеет чёткую структуру, размеченную html классами. Поэтому парсинг всех характеристик здесь достаточно ёмкий и простой:

for page in os.listdir(pages_dir):

with open(pages_dir + page, 'r') as word_page_file:

word_page = word_page_file.read()

soup = BeautifulSoup(word_page, "lxml")

table = soup.find('div', class_='visible-xs visible-md visible-sm visible-lg col-lg-6')

words = table.find_all('div', class_='issueword1')

for word in words:

words_dict.append({

'name': brush(word.find('span', class_='cap').text),

'definition': word.find('span', class_='mea').text,

'type': word.find('span', class_='sta').text,

'group': word.find('span', class_='sph').text.strip('()'),

'examples': word.find('span', class_='text').text,

'origin': word.find_all('div', class_='category').text,

'hashtags': word.find('span', class_='src').text,

'synonyms': word.find('span', class_='syn').text,

'link': 'teenslang.su/' + word.find('a', target="_blank", class_="btn btn-default btn-circle")['href']

})

Рисунок 3.3.1. Парсинг страниц сайта Teenslang.su

Vsekidki.ru

Статьи о словах на сайте Vsekidki не имеют чёткой структуры и, как правило, ограничиваются одним определением. Поэтому парсинг ограничен выделением названия слова и его определения:

def find_definition(soup):

text = []

for x in soup.find('div', itemprop="text").contents:

x = BeautifulSoup(str(x).replace('<br/>', '\n')).text

x = x.replace('(adsbygoogle = window.adsbygoogle || []).push({});', '')

x = x.strip(' \n')

text.append(x)

text = list(filter(lambda x: x, text))

return '\n'.join(text)

for i, word_page in enumerate(os.listdir('words_pages')):

with open(word_page, 'r') as word_page_file:

word_page = word_page_file.read()

soup = BeautifulSoup(word_page, "lxml")

name = definition = find_definition1(soup)

words.append({

"name": soup .find('h1').b.text.replace('Что такое ', '').rstrip('?'),

"definition": find_definition(soup)

})

Рисунок 3.3.2. Парсинг страниц сайта Vsekidki.ru

Модные-слова.рф

Статьи на сайте Модные-слова достаточно объемные, содержат картинки и видео, рекламу и текст, не относящийся к определению. Кроме того, текст определения слов практически не структурирован в html коде. Поэтому обработка слов этого ресурса заняла относительно много усилий:

Сайт имеет нестандартную кодировку cp1252, а не Unicode, как стандартно бывает. Функция ru_text декодирует русские буквы.

Название статьи не стандартизировано и не равно названию слова. Состоит из предложения, вида «СЛОВО - что значит?», «Что означает СЛОВО?» и таких префиксов и суффиксов более 90 видов. Функция clean_name парсит из этого предложения название слова.

Текст содержит рекламу. Функция clean_google_ad очищает определение от рекламы.

Главное определение слова лежит в div теге с классом “info”. Функция up_info поднимает главное определение в начало.

Из-за некорректной разметки, в тексте определения образуется множество артефактов. С помощью метода sent_tokenize лингвистической библиотеки nltk текст разделяется на предложения, фильтруется на предмет соответствия описанию слова и собирается обратно в функции clean_sentences.

def ru_text(text):

return text.encode('cp1252').decode('WINDOWS-1251')

def clean_name(name):

for word in endings_stop_list:

if name.endswith(word):

name = name.replace(word, '')

for word in beginnings_stop_list:

if name.startswith(word):

name = name.replace(word, '')

return name.strip(' \n?')

def clean_google_ad(text):

for ad in google_ads:

text = text.replace(ad, '')

return text

def up_info(soup, text):

info = soup.find('div', class_="info")

if info:

info = ru_text(info.text)

text = info + '\n' + text.replace(info, '')

return text

def clean_sentences(text):

from nltk import sent_tokenize

paragraphs = text.split('\n')

for i in range(len(paragraphs)):

para = paragraphs[i]

sentences = sent_tokenize(para)

clean_sentences = []

for sentence in sentences:

if not all([sentence.find(stop_word) == -1 for stop_word in stop_list]):

break

clean_sentences.append(sentence)

paragraphs[i] = ' '.join(clean_sentences)

text = '\n'.join(paragraphs).strip()

text = text.replace('\n(\n', ' ').replace('\nп\n', ' ').replace(u'\xa0', u' ')

return text

def parse_word_page(page, content, name):

word = dict()

word['link'] = page[:page.rfind('/')].replace('https://', '').encode('utf-8').decode('idna') + page[page.rfind('/'):]

word['name'] = clean_name(name)

word['definition'] = ru_text(content.text)

word['definition'] = clean_highslide_caption(soup, word['definition'])

word['definition'] = clean_google_ad(word['definition'])

word['definition'] = up_info(soup, word['definition'])

word['definition'] = clean_sentences(word['definition'])

if content.find('iframe'):

word['video'] = content.find('iframe')['src']

return word

for page in os.listdir(pages_dir):

with open(pages_dir + page, 'r', encoding = "cp1252") as word_page_file:

word_page = word_page_file.read()

soup = BeautifulSoup(word_page, "lxml")

content = soup.find('div', class_="maincont")

for span in content.find_all(['td', 'style', 'script', 'table']):

span.decompose()

name = soup.find('h1', class_="btl").text

word = parse_word_page(page, soup, content)

words_dict.append(word)

Рисунок 3.3.3. Парсинг страниц сайта Модные-слова

Объединение данных в единый словарь

В результате скачивания и обработки данных для каждого слова были получены такие характеристики, как название, определение, группа использования и ссылка на источник. Слова с сайта Teenslang отдельно имеют происхождение, примеры, часть речи. Слова с сайта Модные-слова могут иметь ссылку на прикреплённое к статье видео. Слова со всех ресурсов обрабатываются и объединяются с помощью python-библиотеки pandas, которая оптимально подходит для обработки табличных данных. Данные сохраняются в формате csv - текстовый формат, который является простым и оптимальным для представления табличных данных:

teenslang = pd.read_csv('teenslang.csv')

vsekidki = pd.read_csv('vsekidki.csv')

modnyeslova = pd.read_csv('modnyeslova.csv')

teenslang['dict_id'] = 1

vsekidki['dict_id'] = 2

modnyeslova['dict_id'] = 3

full = teenslang.append(vsekidki, sort=False).append(modnyeslova, sort=False)

full.reset_index(inplace=True, drop=True).replace(' ', float('nan'))

full.name = full.name.apply(lambda n: n[0].upper() + n[1:])

Рисунок 3.4.1. Объединение слов из трёх словарей в один CSV файл

Итоговый csv файл имеет следующий вид:

name,definition,type,group,examples,origin,hashtags,synonyms,link,dict_id,video

Ап,см. афтерпати.,аббрев. ,флэшмоб, , ,#Флэшмоб , ,teenslang.su/id/5367,1,

Апартунист,"искажение, типичная ошибка, правильно -- оппортунист.", , , , ,#Общие , ,teenslang.su/id/1078,1,

Рисунок 3.4.2. Пример строк CSV файла

Реализация мобильного приложения

В данной главе будет выбраны методы и средства реализации приложения, составлено описание системы со стороны пользователя, описана модель хранения данных, работа ключевых модулей и реализация сервера и мобильного приложения РуСленг. Также будет описан процесс запуска и публикации приложения в открытый доступ сети интернет.

Для создания мобильного приложения РуСленг необходимо:

Определить методы и технологии, необходимые для реализации приложения.

Описать модули и экраны приложения, реализующие функциональные требования к приложению.

Реализовать модули и экраны приложения.

Выбор методов и средств реализации приложения

Для разработки iOS приложения использовался язык программирования Swift 4.2 [20], так как он является самым актуальным языком разработки приложений для платформы iOS. Кроме того, Swift обладает более быстрой скоростью сборки и компиляции и поддерживается разработчиками Apple как стандарт разработки. Swift имеет огромные сообщество, информационные ресурсы и современные примеры кода, что сильно упрощает процесс создания приложения.

Разработка велась в двух средах разработки. Основная часть программного кода, разработка экранов интерфейса, их взаимодействие и настройка приложения к запуску в App Store велась в Xcode - основная [21] среда разработки от Apple, в которой ведётся разработка всех iOS приложений. Также часть программного кода была написана в среде разработки AppCode от JetBrains [22], так как она обладает гибким функционалом и более удобной работой непосредственно с кодом.

Приложение поддерживает iOS версии 10 и выше, что соответствует стандартам Apple по поддержке работоспособности приложений на трёх последних глобальных обновлениях системы.

Приложение поддерживает установку как на iPhone, так и на iPad.

Описание системы с точки зрения пользователя

Окно запуска приложения

Запуск приложения начинается с заставки загрузки. При первом запуске требуется порядка 20 секунд на установку словаря слов в формат данных CoreData для дальнейшего использования. Экран запуска содержит слово РуСленг и оповещает о том, что происходит установка слов.

Основное окно приложения

Далее, открывается основной экран приложения с 4 вкладками в нижней панели, каждая из которых открывает определенный экран.

Список слов и поиск по названию и словарю

Первая вкладка, открытая по умолчанию -- это экран поиска сленга в списке по алфавиту или по ключевым словам в строке поиска.

Одна ячейка списка слов выглядит следующим образом: в её левой верхней части представлено название сленгового выражение. В левой нижней части расположены три строки из его определения. В правом верхнем углу расположена звезда, по умолчанию без цветной заливки. При нажатии на эту звёздочку слово добавляется в Избранное, а она приобретает сплошной цвет. В правом нижнем углу расположена хорошо известная пользователям кнопка «поделиться», которая собирает всю информацию о слове в формат строки и предлагает сохранить в заметки или отправить в соц. сети.

При выборе одной из клеток конкретного слова открывается внутреннее окно приложения, с детальным описанием этого слова, о котором мы расскажем ниже.

Список слов имеет два режима просмотра: в алфавитном и случайном порядке. Кнопка в левом верхнем углу позволяет переключать сортировку списка.

В правом верхнем углу есть кнопка добавления нового слова «+», которая открывает экран добавления нового слова.

При нажатии на заглавие экрана поиска появляется возможность выбора одного конкретного словаря из всех доступных. Это позволяет искать определение популярных слов на отдельном ресурсе. Кроме того, при поиске в заглавии пишется количество найденных по ключевым словам слов в словаре.

Любое слово в списке можно локально удалить стандартным жестом - «свайпом» влево.

Трендовые слова

Второе окно приложения - это экран списка 10 наиболее трендовых и актуальных на текущий момент выражений.

Избранное

Третье окно приложения - это Избранное, куда сохраняются слова с экрана поиска. Функциональность здесь аналогична экрану поиска, при нажатии на сплошную звезду, слово из этого списка пропадёт

Информация

Четвёртый экран главного окна приложения открывает таблицу, с которой можно перейти на экраны просмотра краткой информации о приложении, о разработчике и отправки отзыва о приложении.

Детальное описание слова

При нажатии на ячейку в списке слов приложение перейдёт к экрану детального описание слова, которое выглядит следующим образом. В зависимости от доступной информации, каждая конкретная характеристика слова, будь то название, определение или примеры использования слова - эти характеристики выделены шрифтом определенного размера и цвета для быстрой навигации и удобства восприятия.

Также на этом экране детального просмотра можно локально изменить любые характеристики слова, нажав на кнопку в правом верхнем углу. предложенные изменения будут отправлены на сервер Google FireBase и будут рассмотрены при обновлениях словарной базы.

Создание / изменение слов

При создании или изменении слова открывается экран, в котором представлены поля ввода текста для всех возможных характеристик слов. Данные будут отправлены Google FireBase и будут рассмотрены при обновлениях словарной базы.

Модель хранения данных

Слова в приложении представлены в виде объектов класса `Word` в CoreData [23]. CoreData - фреймворк Apple для хранения данных. Существует также несколько альтернатив, например Realm [24], однако было решено использовать CoreData, так как он является стандартным подходом и имеет удобный редактор со встроенным кодогенератором.

Рисунок 4.3.1. Модель класса Word в CoreData

При первом запуске для каждого слова в csv файле словаря создаётся сущность класса Word и сохраняется в CoreData для дальнейшего использования. (рис. 4.3.2)

func preloadDataFromCSVFile() {

if let contentsOfURL = Bundle.main.url(forResource: dictionaryFile, withExtension: "csv"),

let content = try? String(contentsOf: contentsOfURL, encoding: String.Encoding.utf8) {

let items_arrays = content.csvRows(firstRowIgnored: true)

print("items_arrays.count:", items_arrays.count)

for item_array in items_arrays {

let values = item_array.map { str -> String? in

return (str == "") ? nil : str

}

let word = NSEntityDescription.insertNewObject(forEntityName: "Word", into: managedObjectContext) as! Word

word.name = values[0]!

word.definition = values[1] == nil ? "Нет определения" : values[1]!

word.link = values[2]

word.wordId = values[3]!

word.group = values[4]

word.examples = values[5]

word.hashtags = values[6]

word.origin = values[7]

word.synonyms = values[8]

word.type = values[9]

word.dictionaryId = Int(item_array[10])!

word.video = values.count == 12 ? values[11] : nil }

}

saveData()

}

Рисунок 4.3.2. Создание объектов класса Word из CSV файла

Сервер Google FireBase

Google предоставляет на бесплатной основе сервис FireBase [25] - серверную базу данных с очень удобным и простым API и хорошей функциональностью. При бесплатном использовании на “Spark Plan” доступно 100 одновременных соединений, хранение 1 Гб данных и 10 Гб загрузок в месяц. Этого достаточно для запуска приложения РуСленг.

Рисунок 4.4.1. Структура хранения данных на сервере Google FireBase

Трендовые слова

При переходе на окно «Тренды», пользовательское устройство совершает запрос к коллекции «trend words». Эта коллекция содержит 10 объектов, пронумерованных по возрастанию по популярности. Каждый объект - конкретное сленговое слово со всеми его характеристиками для совместимости с начальной версией приложения РуСленг, в которой не использовались значения `wordId`, а также для того, чтобы выводить в тренды новые слова, не существующие в словаре.

Добавление слов в тренды в текущей реализации происходит вручную с помощью дополнительного окна выбора позиции в трендах для любого слова, доступного в специальной версии приложения.

func observeTrends() {

ref.child("trend words").observeSingleEvent(of: .value, with: { (snapshot) in

self.trendWords = [Word]()

for child in snapshot.children {

if let snap = child as? DataSnapshot,

let dict = snap.value as? [String: String] {

let word = self.word(fromDict: dict)

self.trendWords.append(word)

}

}

DispatchQueue.main.async(execute: {

self.tableView.reloadData()

})

})

Рисунок 4.4.1. Загрузка трендовых слов с сервера Google FireBase

Создание и изменение слов

При создании или изменении слов, информация о них загружается в Google FireBase коллекцию «new words» и становится доступна для обновления слов в обновлениях приложения.

func addNewWord(_ word: Word) {

ref.child("new words").childByAutoId().setValue([

"name": word.name,

"definition": word.definition,

"origin": word.origin,

"group": word.group,

"examples": word.examples,

"synonyms": word.synonyms,

"type": word.type,

"hashtags": word.hashtags,

"wordId": word.wordId])

}

Рисунок 4.4.1. Запись нового определения слова на сервер Google FireBase

Отправка отзыва

Написанный отзыв сохраняется в Google FireBase коллекцию «feedback» и становится доступна для просмотра в веб-консоли сервиса.

func sendFeedback(_ controller: FeedbackVC, _ feedback: Feedback) {

ref.child("feedbacks").childByAutoId().setValue([

"contacts": feedback.contacts,

"feedback": feedback.feedback,

"rating": feedback.rating])

}

Рисунок 4.4.1. Запись отзыва о приложении на сервер Google FireBase

Реализация приложения

Иерархия работы приложения

Рисунок 4.4.1. Иерархия работы приложения. Файл Main.storyboard

Общие параметры

Все переходы между экранами приложения выполнены с помощью `segue` --самый популярный и стандартный способ смены экранов в iOS.

Взаимодействие между экранами реализовано с помощью протокол-ориентированного подхода, так как apple позиционирует этот паттерн как основной в swift [26].

Стандартный цвет всех элементов и шрифтов приложения определяется константным значением переменное `appColor` в классе `AppDelegate`.

Окно запуска приложения

Приложение РуСленг запускается порядка 30 секунд при первом запуске, и около 3 секунд при повторном. Первое окно, которое встречает пользователя - это `AppLaunchingInitialVC`. Всё то время, пока вращается индикатор `UIActivityIndicatorView`, происходит описанное выше сохранение слов из CSV файла в CoreData.

Основное окно приложения

Основной экран приложения `UITabBarController` с 4 вкладками в нижней панели по умолчанию открывает свою первую вкладку, где расположен `WordsTableVC`.

Иконки подобраны в соответствии со стандартами Apple, названия вкладок локализованы на русский язык.

Список слов и поиск по названию и словарю

`WordsTableVC` -- это ` UITableViewController`, который хранит основную информацию о словах. Именно в классе `WordsTableVC` происходит `firstFetching` -- первоначальный запрос к базе данных CoreData с целью загрузки всех сленговых слов в оперативную память для быстрого дальнейшего взаимодействия. Назовём полученный в результате массив всех слов из всех словарей -- words.

Взаимодействие со словами на окне поиска слов могут быть следующие:

Изменение словаря для поиска и просмотра

Поиск по ключевым словам

Перемешивание списка слов

Взаимодействие со словом в списке

Далее рассмотрим, как реализовано каждое из действий.

Изменение словаря для поиска и просмотра

Если пользователь нажимает на заголовок списка слов и выбирает конкретный словарь из списка, words фильтруется по значению `dictionaryId`, который соответствует значению выбранного словаря. В случае, если пользователь выбирает в списке «Словарь сленга» - words не фильтруется по значению `dictionaryId` и в список выводятся слова из всех доступных словарей.

Поиск по ключевым словам

Когда пользователь вводит строку X в окно поиска, words фильтруется следующим образом. Слова в words, которые начинаются на X - высвечиваются в порядке алфавита. Однако, чтобы улучшить поиск, в словах, не прошедших фильтр, производится поиск строки X в любой части названия. Такие слова добавляются в конец отфильтрованного списка, который демонстрируется пользователю.

Перемешивание списка слов

По умолчанию и при каждом выборе словаря генерируется массив случайных индексов `shuffledIndexes`, который содержит числа от 0 до количества слов в текущем списке. Это позволяет быстро выводить случайные слова если пользователь нажимает на кнопку «Случайно», потому что достаточно в функции `cellForRowAt` подставить значения, соответствующие значениям индекса в `shuffledIndexes`, без необходимости перемешивать массив words, который таким образом всегда находится в алфавитном порядке.

Взаимодействие со словом в списке

Одна ячейка списка слов реализована с помощью отдельного `XIB` файла `WordTableViewCell.xib` и класса `WordTableViewCell`, что позволяет реализовать динамически изменяемое содержание клетки при нажатии на звёздочку добавления в избранное.

При нажатии на ячейку, происходит переход к окну детального просмотра определения.

Скриншоты 4.5.3., 4.5.4, 4.5.5: Окно запуска приложения; Список слов; Поиск по словарю

Трендовые слова

Экран трендовых слов реализован с помощью класса `TrendsTableVC`, который реализует все методы взаимодействия с Google FireBase, описанные в разделе 4.4.

Избранное

Окно «Избранное» реализовано в классе `FavoritesTableVC` и использует те же ячейки класса `WordTableViewCell`, что позволяет переиспользовать функциональность основного экрана поиска слов.

Скриншоты 4.5.6., 4.5.7: Трендовые слова; Избранное.

Информация

Окно “Информация” - это простой `TableViewController`, реализованный в классе `MoreVC`, тремя ячейками которого являются краткая информация о приложении, о разработчике и возможность отправки отзыва о приложении соответственно. Первые два экрана строго информативные, а экран создания отзыва о приложении реализован в классе `FeedbackVC`. После успешного ввода текста отзыва, данные загружаются на Google Firebase и становятся доступны для просмотра из консоли веб сервера.

Детальное описание слова

Экран детального описания слова реализован в классе `WordDetailVC` и использует в своей основе ячейку класса `WordDetailTableViewCell`. С помощью объектов класса `NSAttributedString` [27] в одном текстовом окне удаётся совместить характеристики слова, имеющие строки различных шрифта, цвета, размера и свойств.

Например, с помощью атрибута `NSAttributedString.Key.link` удаётся сделать ссылки кликабельными, а синонимы доступными к поиску в словаре.

Создание / изменение слов

Создание и изменение слов реализовано в классе `CreateEditWordVC`, который с помощью протоколов получает данные о слове и посылает результат ввода пользователя.

Скриншоты 4.5.9., 4.5.10.: Детальное описание слова; Изменение слова; Создание слова

Сборка и публикация приложения в открытый доступ

Для публикации приложения в открытый доступ необходимо создать аккаунт разработчика Apple и приобрести участие в Apple Developers Program. Стоимость однолетней подписки составляет 99$. [28]

После получения статуса разработчика, необходимо:

Подготовить маркетинговые материалы (иконка, скриншоты, текст, видео для предпросмотра приложения);

Приложить к сборке сертификат цифровой подписи;

Отправить сборку в App Store.

Маркетинговые материалы

Логотип и стиль приложения был продуман в соответствии со стандартными подходами Apple к оформлению приложений [29].

Иконки приложения были созданы эксклюзивно для РуСленг художником Дамиром Бозиком [30]. Благодаря им, приложение приобрело аутентичный вид.

Демонстрация приложения в работе.

В текущий момент приложение опубликовано в App Store - официальном магазине приложений для iOS устройств.

Ссылка на приложение: itunes.apple.com/ru/app/русленг/id1280469135

Ссылка на код разработки: https://github.com/Lotfull/RuSlangApp

Заключение

Сленг занимает важную роль в социальном общении, особенно с развитием интернет технологий, благодаря которым новые сленговые слова почти мгновенно приобретают большую популярность и активно используются среди молодёжи. Поиск определения таких слов является важной потребностью людей, сталкивающихся со сленгом в своей жизни и деятельности.

В результате анализа всех существующих ресурсов с определениями сленговых слов русского языка было выявлено, что для русского сленга не существует полноценного словаря сленговых слов в удобном формате. Были собраны и обработаны данные с различных открытых источников сленговых слов, отобранных по полноте и актуальности информации. Данные были объединены в самый большой словарь русского сленга на текущий момент.

Сбор данных реализован с помощью современных методов и инструментов, в числе которых консольная утилита Aria2, Python-библиотеки BeautifulSoup4 и Pandas, Node-JS фреймворк Puppeteer. В результате был сформирован табличный документ, содержащий более 32000 слов и значений.

Все поставленные цели по созданию словаря сленговых слов для русского языка были успешно выполнены. В будущем словарь сленговых слов будет итеративно расширяться и объединять всё больше источников данных, планируется реализация автоматического обновления словарной базы с использованием сервера. Кроме того, планируется обработка неструктурированных определений с целью выделения различных характеристик слова в отдельные поля.

...

Подобные документы

  • Создание электронного филологического словаря. Использование не реляционной базы данных. Средства JavaScript для создания интерактивности на странице. Серверный язык программирования PHP. Специфика словарной статьи. Взаимодействие с базой данных.

    курсовая работа [689,9 K], добавлен 26.02.2015

  • Необходимость создания словаря по технологии для школьников. Основные этапы, требования и особенности создания электронного словаря. Использование морфологического анализа для оформления и дизайна. Принципы создания веб-страниц в Microsoft Publisher.

    творческая работа [2,0 M], добавлен 17.11.2009

  • Характеристика Русского Учебного Корпуса. Типы ошибок в русском учебном корпусе, совместная встречаемость тегов, алгоритм классификации. Проблема несбалансированности выборки. Результаты классификации, вклад признаков в различные классификаторы.

    курсовая работа [51,5 K], добавлен 30.06.2017

  • Разработка программы на языке программирования C++ с функциями считывания словаря в начале работы программы из текстового файла и записи словаря в файл перед завершением работы. Основные элементы программного продукта: данные абонента телефонной сети.

    контрольная работа [12,9 K], добавлен 07.04.2015

  • Словарь — книга, содержащая собрание слов, расположенных по определённому принципу. Электронный словарь – компьютерная база данных, содержащая особым образом закодированный словарные статьи. Возможности электронных словарей, достоинства и недостатки.

    статья [178,0 K], добавлен 11.11.2010

  • Мониторинг сервисов веб-приложения. Проблема отслеживания большого количества сервисов, поддерживающих работу веб-приложения, ее решение с помощью "Service discovery"-инструментов. Применение программного инструмента Consul как клиент-серверной системы.

    статья [184,4 K], добавлен 10.12.2016

  • Разработка словаря, содержащего термины по патентоведению, в виде базы данных. Систематизация данных путем разделения текста на отдельные файлы по буквам алфавита. Создание файла "Содержание" с гиперссылками для обеспечения быстрого доступа к информации.

    презентация [278,1 K], добавлен 16.10.2013

  • Описание технологии ASP.NET исполняемой на платформе Net FrameWork, ее преимущества. Возможности применения коллекции ViewState. Примеры использования шаблонов. Основные контролы Web приложений. Разработка программы-словаря с использованием ASP.NET.

    курсовая работа [1,2 M], добавлен 13.09.2012

  • Создание многоуровневого приложения с Web-интерфейсом выставления оценки фильму и просмотра оценок других пользователей. Клиентская часть приложения. Разработка многопользовательского веб-приложения на ASP.NET MVC 3 с разграничением доступа к данным.

    курсовая работа [949,7 K], добавлен 22.02.2015

  • Первые системы синтеза речи. Расстановка ударений в неизвестных словах и занесение слов в словарь. Библиотека классов и пространства имен. Общеязыковая среда исполнения. Автоматическое управление памятью. Формирование эталонного ритмического рисунка.

    дипломная работа [920,2 K], добавлен 29.03.2015

  • Требования к программе или программному изделию, к информационной и программной совместимости. Проектирование программного продукта. Процедура установки и удаления. Описание интерфейса, главное окно приложения. Основные возможности пользователя.

    курсовая работа [678,1 K], добавлен 15.02.2016

  • Создание клиент-серверного приложения "Чат" с помощью среды визуальной разработки приложений Borland C++ Builder версии 6. Описание функциональности приложения: наличие клиент-серверной архитектуры, обмен короткими сообщениями, а также передача файлов.

    курсовая работа [302,0 K], добавлен 30.01.2012

  • Создание приложения для Android на языке Java. Переключатель языка и варианты перевода, которые появляются, когда пользователь вводит текст в поле. Возможность просмотра истории переводов. Разработка и подготовка вида экранов тестового приложения.

    курсовая работа [114,8 K], добавлен 03.08.2017

  • Необходимость разработки технологий для оптимального использования компьютерных возможностей. Эффективность гипертекста в экономике на примере словаря экономических терминов, возможности Excel, ознакомление с языком программирования Visual Basic.

    курсовая работа [391,3 K], добавлен 14.01.2009

  • Возможности интерфейса программирования приложений ARI крупных картографических веб-сервисов в процессе создания двух картографических веб-сервисов. Анализ существующих веб-сервисов. Карты Яндекса и Google, пользовательские карты. Выбор среды разработки.

    дипломная работа [4,5 M], добавлен 24.09.2012

  • Описание использованных структур данных, характеристика процедур и функций. Структура приложения и интерфейс пользователя. Системные требования и имеющиеся ограничения. Тестирование приложения. Анализ временных характеристик и выводы по эффективности.

    курсовая работа [3,3 M], добавлен 23.07.2012

  • Анализ систем для создания сайта "Интеллектика". Архитектура и структура сайта; технические требования. Выбор базы данных. Процесс разработки приложения авторизации для просмотра закрытых научных проектов. Техническая документация для администратора.

    дипломная работа [2,0 M], добавлен 19.01.2017

  • Определение ресурсов до начала работы программы, их добавление в исполняемый файл. Возможность использования атрибутов в качестве ресурсов, их создание программистом в программе. Применение символьных строк в приложениях. Основные виды меню приложения.

    реферат [32,2 K], добавлен 03.10.2010

  • Анализ создания виртуального окружения для разработки. Установка фреймворка Flask. Особенность настройки аутентификации и привилегий. Создание Python-файла и написание в нем простого веб-приложения. Запуск и проверка работоспособности приложения.

    лабораторная работа [2,1 M], добавлен 28.11.2021

  • Описание предметной области. Алгоритм разработки приложения для создания, управления и просмотра базы данных библиотечной литературы. Построение схемы классов для графического отображения функций программы и анализа взаимосвязей между различными классами.

    курсовая работа [2,0 M], добавлен 14.12.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.