Создание онлайн-платформы для изучения иностранных языков

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

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

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

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

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

Оглавление

Введение

1. Теоретические основы

1.1 Применение систем искусственного интеллекта в программных продуктах, предназначенных для изучения иностранных языков

1.2 Методики изучения иностранных языков и инструменты для изучения

2. Анализ существующих технических решений

2.1 Исследование веб-платформ для изучения иностранных языков

3. Обоснование предложенных решений

3.1 Предложения по построению образовательного процесса

3.2 Требования к реализуемому функционалу

3.3 Предложения по архитектуре программного продукта

4. Обоснование выбора технологического стека для реализации онлайн-платформы

4.1 Обоснование выбора технологического стека для реализации серверного приложения

4.2 Обоснование выбора технологического стека для реализации клиентского приложения

5. Описание полученных результатов

5.1 Архитектура реализованного проекта

5.2 Описание реализованного функционала

6. Технико-экономическое обоснование

6.1 Обоснование необходимости релиза на рынок

6.2 Стоимость выпуска, внедрения, дистрибуция

6.3 Предполагаемая модель монетизации

Заключение

Краткий глоссарий

Перечень сокращений, условных обозначений, символов и терминов

Список использованных источников

Введение

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

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

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

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

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

Непосредственная реализация социальной сети разделена между исполнителями на две части: разработка сервера и клиентов под мобильную платформу iOS.

1. Теоретические основы

1.1 Применение систем искусственного интеллекта в программных продуктах, предназначенных для изучения иностранных языков

Обработка естественных языков

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

Так, некоторые из описанных проблем возможно частично или полностью разрешить с применением инструментов для обработки естественных языков при разработке нового программного продукта. Несмотря на несовершенство существующих средств, которое выражается, например, в необходимости искусственного ограничения количества вариантов вероятного пользовательского ввода ввиду отсутствия возможности корректной обработки спонтанного ввода, сейчас существуют развитые инструменты для лемматизации [1], извлечения коллокаций [2] и синтаксического анализа [3], на основе которых возможно построение продвинутых пользовательских приложений. Тем не менее, существуют некоторые ограничения на применение методов обработки естественных языков в данном контексте.

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

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

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

Машинное обучение

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

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

Определение тональности, представленное в [7] также может позволить оценивать отношение пользователей к различному контенту для создания рекомендательных систем.

Кроме того, одной из популярных задач машинного обучения является задача распознавания образов [8], решаемая технологиями Deep Learning [9]. Поскольку сопоставление слов и изображений при изучении иностранного языка считается распространенной практикой, представляется возможным применить машинное обучение, например, для распознавания предметов на фотографиях или в видеопотоке с переводом на изучаемый язык. Подобный функционал повышает интерактивность продукта и позволяет использовать систему Лейтнера [10].

1.2 Методики изучения иностранных языков и инструменты для изучения

Традиционные формы, CALL, MALL

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

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

CALL [11] (англ. computer-assisted language learning) представляет форму изучения языков, в которой обучение происходит с помощью компьютера и информационных технологий. Например, к форме изучения языков CALL можно отнести занятия с репетитором в онлайн классах, что намного повышает доступность и удобство обучения. Одной из ключевых особенностей CALL является поддержка самостоятельного обучения, путем использования обучающих материалов и упражнений, а также, например, платформ и средств для коллаборативного изучения. Поскольку для использования подобной формы обучения необходимо лишь наличие компьютера и доступа в сеть Интернет, популярность и удобство изучения иностранных языков значительно возрастает, по сравнению с традиционными методами.

MALL [12] (англ. mobile-assisted language learning) - форма изучения иностранных языков с помощью мобильных устройств. Возможность заниматься языком в любом месте и в любое время позволяет пользователям продолжать обучение более независимо от окружающих обстоятельств. Незначительным ограничением может являться небольшой размер дисплея по сравнению со стационарными компьютерами. Большое количество обучающих приложений реализуют игровые механики, делая процесс изучения языка менее формальным и более интересным для пользователя.

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

2. Анализ существующих технических решений

2.1 Исследование веб-платформ для изучения иностранных языков

1. Lingualeo [13]. Данный продукт развивается с 2009 года и представляет из себя образовательную платформу для изучения и практики иностранных языков, главная особенность которого - это наличие в его основе игровой механики. За активность различного рода пользователь накапливает игровую «валюту», которую впоследствии может тратить на добавление новых слов в свой словарь. На данный момент платформа предлагает изучение только одного языка - английского. При регистрации аккаунта пользователю предлагается тест, чтобы определить уровень владения языком пользователя, а также его интересы. Обучение предлагается на основе открытых или загруженных другими участниками материалов разного вида и является персонализированным с учетом интересов пользователя. Платформа позволяет создавать закрытые курсы и делиться ими с другими участниками. Доступен журнал, в котором отмечается процесс обучения и демонстрируется статистика улучшения различных навыков пользователя.

К январю 2018 года проект Lingualeo имеет аудиторию 17,5 миллионов пользователей. Продукт доступен на таких платформах, как Android, iOS, Windows Phone, а также имеет веб-версию для использования из браузера. Платформа постоянно развивается, включая добавление новых видов тренировок и локализаций для пользователей из других регионов. Однако, Lingualeo не реализует инструменты для прямого взаимодействия пользователей.

2. Busuu [14]. Данная разработка представляет собой интерактивный обучающий сервис, существующий с 2008 года и предоставляющий возможность изучать 12 различных языков: английский, французский, испанский, немецкий, итальянский, португальский, русский, польский, турецкий, арабский, японский и китайский. В первую очередь, Busuu является платформой для курсов, в которой предлагается выполнение разнообразных упражнений, таких как: лексические, грамматические, упражнения на аудирование, а также запись голоса с помощью микрофона для проверки произношения. Хотя платформа ориентирована на самостоятельное изучение языка, пользователи могут исправлять ошибки друг друга, что и является основным видом их взаимодействия. Данный продукт также предоставляет упражнения по грамматике и словарный тренажер. Ресурс Busuu активно развивается, используя современные UI/UX-практики, но какие-либо специальные инструменты, предназначенные для упрощения использования иностранных языков, отсутствуют.

3. SkyEng [15]. Данный ресурс был разработан в 2012 году и является крупнейшей в России онлайн-школой английского языка. Формат изучения языка следующий: сначала определяются уровень знаний, цели и интересы пользователя, на основе которых система подбирает наиболее подходящего преподавателя. Далее занятия проходят на виртуальной платформе Vimbox, через которую происходит общение ученика с преподавателем, ведется выдача и контроль выполнения заданий. Во время занятий пополняется личный словарь ученика, который синхронизируется со словарем на мобильном приложении. SkyEng не предоставляет никаких других способов изучения языка, кроме как платных занятий с репетитором, что является существенным недостатком в сравнении с другими платформами.

4. Interpals [16]. В отличие от остальных рассматриваемых продуктов, ресурс Interpals ориентирован непосредственно на общение с носителями различных языков. В данном продукте реализован продвинутый поиск собеседника на основе различных критериев, таких как страна происхождения, уровень владения различными языками и т.д. Поскольку Interpals позиционируется как социальная сеть, в ней отсутствуют языковые курсы, упражнения, учебные материалы. В Interpals предполагаются различные способы взаимодействия пользователей: общение множества людей на форуме и обмен медиа-контентом друг с другом. Тем не менее, не предоставляются какие-либо специализированные средства, с помощью которых упростилось бы использование иностранных языков в текстовых сообщениях, а также продукт обладает крайне устаревшим пользовательским интерфейсом. Кроме того, Interpals абсолютно не предназначен для использования на мобильных платформах. В настоящее время ресурс практически не развивается и слабо соответствует современным требованиям пользователей социальных сетей.

5. Duolingo [17]. Данная платформа предоставляет курсы английского, немецкого, французского и испанского языков для русскоязычной аудитории. Ключевая отличительная особенность сервиса - это реализация краудсорсинговых переводов, т.е. в процессе обучения пользователи Duolingo помогают переводить веб-страницы, документы и статьи. В целом, в ресурс фокусируется на развитии письменных навыков, уделяя меньше внимания разговорным. В Duolingo также присутствует геймификация процесса: за прохождение уроков выдается игровая «валюта», за которую приобретаются тесты на знание языка. Примечательно, что в платформе Duolingo используются технологии машинного обучения, основанные на статистическом анализе совершенных пользователями ошибок. В статье [18] проведен анализ Duolingo в соответствие с требованиями Chapelle, в результате чего был сделан вывод, что одним из самых серьезных недостатков ресурса Duolingo является недостаточное количество упражнений на генерацию контента на изучаемом пользователем языке: для разговорной речи реализована запись предлагаемых фраз с помощью микрофона, а для письменной - перевод с английского языка на изучаемый.

6. Lingvist [19]. Данная платформа доступна с 2014 года и включает курсы английского, эстонского, французского, немецкого и русского языков. Обучение разделено на 3 модуля: заучивание с помощью карточек, упражнения на чтение и упражнения на аудирование. Главная особенность Lingvist - это использование анализа большого количества текстовых данных для выявления наиболее употребляемых слов в разных языках для дальнейшего использования самых популярных слов в обучении пользователей. В системе также применяется персонализированный подход к обучению: отслеживается статистика выполнения упражнений, что является основой для создания новых заданий для конкретного пользователя. Такой подход помогает включать слова, которые чаще всего забываются пользователем, в большее количество упражнений. Приложение Lingvist сфокусировано на расширении словарного запаса, однако не предусматривает практики в виде общения с другими пользователями с использованием изученных слов.

7. ELSA Speak [20]. Данное приложение предназначено для тренировки американского произношения, разработанное для мобильных платформ. Отличительной особенностью ELSA Speak является использование искусственного интеллекта в роли преподавателя, который способен распознавать и указывать на ошибки в произношении, а также предлагать упражнения для исправления часто встречающихся проблем. Как таковое взаимодействие пользователей друг с другом отсутствует. Предлагается словарь c переводами и определениями.

8. Drops [21]. Drops является мобильным приложением, ориентированным на заучивание иностранных слов 29 языков, используя игровую механику. В отличие от аналогов, в данном продукте не предусмотрены упражнения на чтение, аудирование или грамматику. Все доступные для заучивания слова поделены на тематические группы. Приложение предлагает упражнения в виде сопоставления изучаемого слова с подходящим изображением, восстановление порядка букв в слове и некоторые другие. Выполнение простых движений пользователем в процессе игры привлекает и удерживает его внимание на игре, за счет чего возрастает популярность продукта и его аудитория. Но при этом данный продукт не является полноценной системой обучения и может использоваться только в качестве дополнения для запоминания слов.

9. Tandem [22]. Данная платформа предоставляет клиентское мобильное приложение, которое предлагает пользователю изучение языка во время общения с другими пользователями, доступное на системах iOS и Android. Платформа Tandem обладает продвинутой системой поиска собеседника по множеству критериев, подбирая оптимальные соответствия по изучаемым языкам. В целом, приложение имеет лаконичный и понятный дизайн, в чате присутствуют функции отправки голосовых сообщений, звонков, а также реализована возможность исправления ошибок собеседника. Однако, в приложении нет встроенного переводчика и словаря для хранения слов, что может являться причиной для переключения на сторонние приложения во время использования Tandem. Также, в продукте реализована система поиска платных репетиторов, обладающих квалификацией в преподавании иностранного языка.

10. HelloTalk [23]. Данный продукт представляет из себя приложение для языкового обмена, позволяющее общаться с носителями изучаемого языка посредством текстовых и аудио сообщений. В приложении присутствует поиск собеседника по различным критериям, а также есть голосовые звонки и некоторые инструменты, упрощающие использование чата: встроенный переводчик, транслитерация и возможность коррекции сообщений собеседника. Исправленные собеседником сообщения сохраняются в специальном разделе, упрощая последующий доступ к ним. Несмотря на это, в приложении отсутствуют упражнения и тесты, инструменты для запоминания изученных слов по системе Лейтнера [10]. В продукте не используются технологии машинного обучения.

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

1. Продукты, ориентированные на изучение языка по существующим материалам. К ним относятся Lingualeo [13], Busuu [14], Duolingo [17], Lingvist [19], ELSA Speak [20], Drops [21]. Изучение языка по образовательным материалам может оказаться продуктивным для начинающих пользователей, но, как правило, недостаточным для развития навыков обучающихся с продвинутым уровнем владения языком.

2. Продукты, сфокусированные на изучении языков в процессе языкового обмена. К данному типу можно отнести такие рассмотренные приложения, как SkyEng [15], Interpals [16], Tandem [22], HelloTalk [23]. Данные продукты способны предложить языковой обмен, который, по всей видимости, оказывает положительное влияние на аудиторию пользователей, желающих совершенствовать свой уровень языка в процессе общения с носителями. Выбор коллаборативного изучения языков подробнее обоснован в следующей главе. На основе анализа существующих решений возможно сделать несколько выводов, способствующих выбору разрабатываемого функционала новой платформы:

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

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

3. Многие решения не реализованы на мобильных платформах, популярность которых стремительно возрастает.

4. Многие решения используют устаревшие UX/UI практики, снижая удобство работы с ними.

5. Многие решения не используют современные технологии машинного обучения, которые способны улучшить процесс обучения.

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

3. Обоснование предложенных решений

3.1 Предложения по построению образовательного процесса

Обоснование выбора коллаборативного изучения иностранных языков

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

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

3.2 Требования к реализуемому функционалу

Обоснование необходимости реализации инструментов для быстрого доступа к языковым ресурсам

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

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

Обоснование необходимости реализации инструментов для эффективного расширения словарного запаса

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

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

Так, на основе описанного выше функционала, нами предлагается реализовать тестовую систему в форме диалога с интерактивным ассистентом следующим образом:

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

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

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

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

3.3 Предложения по архитектуре программного продукта

Обоснование необходимости реализации клиент-серверной архитектуры

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

На данный момент технические характеристики современных устройств и сетей позволяют иметь стабильное подключение к сети Интернет. Данное обстоятельство позволяет распространять образовательные приложения через платформы дистрибуции такие как AppStore [24] и Google Play [25], которые предоставляют возможность периодического обновления приложений на пользовательских устройствах. Часть функционала программного комплекса может быть перенесена на серверные приложения с целью достижения лучшей производительности при выполнении больших объемов вычислений и обеспечения централизованного хранения пользовательских данных, что позволяет использование программного продукта с различных устройств.

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

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

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

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

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

4. Обоснование выбора технологического стека для реализации онлайн-платформы

4.1 Обоснование выбора технологического стека для реализации серверного приложения

Spring (Java)

Выбор языка для разработки проводился с учетом опыта современных платформ, подразумевающих активное взаимодействие пользователей друг с другом, таких как социальные сети VK и Facebook. Java [26] - это объектно-ориентированный язык программирования, разработанный в 1995 году компанией Sun Microsystems и являющийся одним из самых популярных языков программирования на сегодняшний день, а также стандартом крупных интернет-приложений. По сравнению с аналогами, язык Java обладает следующими преимуществами:

1. Возможность запуска программ на любых платформах с установленной java-машиной обеспечивает независимость от платформ.

2. Повышенная продуктивность процесса разработки обусловлена тем, что объектно-ориентированная парадигма обеспечивает повторное использование кода.

3. Хорошая масштабируемость и встроенная поддержка многопоточности.

4. Развитые средства безопасности делают Java удачным выбором для реализации приложений, работающих в сети Интернет.

5. Качественные средства разработки, такие как Intellij Idea [27] и обширное сообщество разработчиков также положительно влияют на скорость процесса разработки.

В качестве основного фреймворка для разработки серверного приложения было решено использовать Spring [28] - универсальный многофункциональный фреймворк для платформы Java, используемый при создании крупнейших распределенных современных веб-приложений. Важнейшее преимущество данной технологии - возможность создания крупного приложения как набора из слабо связанных небольших компонентов, каждый из которых реализует отдельную часть функционала всего приложения. Эта особенность позволяет проще имплементировать новый функционал и поддерживать старый. Благодаря тому, что Spring широко распространен, возможна интеграция большого количества технологий с данным фреймворком. Также для данной технологии существует исчерпывающая документация, что ускоряет и облегчает процесс разработки, позволяет эффективно использовать готовые решения и модули.

Neo4j

Neo4j [29], разрабатываемая с 2003 года, является самой популярной в мире графовой системой управления базами данных, реализованной на Java. Данные хранятся в специальном собственном формате, приспособленном для графовой информации. Neo4j поддерживает принцип ACID, гарантирующий надежную и предсказуемую работу СУБД, а также Java Transaction API, обеспечивая интеграцию с внешними Java-приложениями. Neo4j является полностью NoSQL базой данных. Помимо СУБД, Neo4j также включает встроенный инструмент визуализации данных. Для выполнения запросов был разработан специальный язык Cypher.

Рассмотрим основные сущности графовой модели, используемой в базе данных Neo4j:

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

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

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

4. Ярлыки (лейблы) используются для группировки узлов в множества. У одного узла может быть несколько ярлыков, т.е. он может относится к нескольким множествам одновременно. На основе ярлыков происходит оптимизированное индексирование, чтобы ускорить процесс поиска узлов в графе.

В настоящее время наибольшей популярностью все еще обладают реляционные базы данных. В таблице 1 представлено сравнение реляционных баз данных и Neo4j по ряду критериев.

Табл. 1 Сравнение реляционных СУБД и Neo4j

Критерий

Реляционные СУБД

Графовая СУБД Neo4J

Организация хранения данных

Хранение данных в заранее созданных таблицах. Часто связанные данные хранятся в разных таблицах что усложняет написание запросов.

Данные хранятся в структуре графа, связанные отношениями узлы физически «указывают» друг на друга в базе данных, ускоряя выполнение запросов.

Простота модификации модели данных

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

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

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

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

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

Используемый язык запросов

SQL: сложность запросов увеличивается с количеством использованных JOIN-запросов и подзапросов.

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

Поддержка транзакций

Поддержка принципа ACID, обеспечивающего консистентность и сохранность данных.

Поддержка принципа ACID, обеспечивающего консистентность и сохранность данных.

Поскольку в предлагаемом решении основное внимание уделяется коллаборативной составляющей при изучении языка, предполагается, что сущности в базе данных будут связаны большим количеством отношений со свойствами. Таким образом, было принято решение использовать Neo4j как основную СУБД для разрабатываемого продукта.

OAuth 2.0

В качестве основного протокола для таких действий, как аутентификация и авторизация, был выбран OAuth 2.0.

OAuth также предоставляет возможность передать одному приложению права на использование ресурсов пользователя на стороннем сервисе.

В OAuth присутствуют следующие роли:

1) владелец ресурса;

2) клиент;

3) сервер ресурсов;

4) сервер авторизации.

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

Рис. 1. Схема получения защищенного ресурса.

На рисунке 1 представлена схема получения доступа к защищенному ресурсу по протоколу OAuth 2.0. Этот процесс состоит из шести последовательных этапов, определяемых протоколом:

1. У пользователя запрашивается авторизация на доступ к ресурсам клиентским приложением.

2. Пользователь отправляет необходимые данные для доступа (authorization grant).

3. Клиентское приложение запрашивает токен доступа, отправляя серверу авторизации authorization grant, ранее предоставленный пользователем.

4. Если отправленные на сервер данные корректны, авторизация отсылает токен доступа на клиентское приложение.

5. Клиентское приложение запрашивает защищенный ресурс, передавая полученный ранее токен доступа на сервер ресурсов.

6. Сервер ресурсов проверяет токен на корректность и отправляет защищенный ресурс на клиентское приложение при условии корректности токена доступа.

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

4.2 Обоснование выбора технологического стека для реализации клиентского приложения

Обоснование выбора iOS-платформы для реализации клиентского приложения

Многие существующие программные продукты для изучения иностранных языков изначально разрабатывали клиентские приложения для их отображения в браузерах на настольных компьютерах. Данный подход востребован до сих пор и также имеет ряд преимуществ: необходимость разработки и поддержки исключительно кроссплатформенных веб-приложений позволяет содержать относительно небольшой штат инженеров и парк устройств, что приводит к существенному снижению стоимости технического проекта, сокращению времени для внедрения нового функционала, а также к уменьшению возможных рисков и издержек, связанных с поддержкой нескольких платформ и операционных систем. Ключевой особенностью данного подхода являются возможность оперативного обновления клиентских приложений, что гарантирует актуальность состояния отображаемых данных. Таким образом, пользователь веб-приложения для изучения иностранного языка может быть уверен в том, что он сможет продолжить процесс изучения на любом настольном компьютере независимо от установленной на нем операционной системы. Тем не менее, серьезные неудобства для пользователей может доставлять требование стабильного подключения к сети Интернет в течение всего сеанса работы с приложением. И наконец, главным недостатком веб-приложений является ограниченный доступ к системным ресурсам на клиентском устройстве, что может привести к пониженной производительности.

За последнее десятилетие произошло масштабное распространение мобильных устройств, оснащенных большим количеством различных сенсоров и продвинутыми операционными системами - iOS [30] и Android [31], которые представили новые способы взаимодействия с программными продуктами. Кроме того, данные системы ввели новые стандарты разработки мобильных приложений: разработчик обязан принимать во внимание обширное разнообразие устройств, работающих под управлением различных версий отдельно взятой ОС, но при этом, в целях уменьшения стоимости разработки, периодически отказываться от поддержки устаревших версий, чему также активно содействует разработчик самой платформы. Данный фактор приводит к тому, что приложения реализуются с использованием актуальных системных API и современных фреймворков, а пользователи оказываются вынужденными переходить на новые устройства. Таким образом, если смириться с необходимостью поддержки двух платформ и, соответственно, расширения штата сотрудников и парка устройств, рынок мобильных приложений оказывается в выигрышном положении, потому что с очередным обновлением платформ образуется возможность как внедрения дополнительного функционала в существующие продукты, так и создания совершенно новых технических решений, имплементация которых ранее считалась крайне затратной или неосуществимой.

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

Данные обстоятельства привели к тому, что многие современные приложения для изучения иностранных языков, впервые запущенные в течение последних нескольких лет, были изначально разработаны под мобильные платформы, а некоторые до сих пор не предоставляют возможности использования сервисов при помощи браузеров на настольных компьютерах. Однако необходимо учитывать, что зачастую подобные приложения выводятся на рынок усилиями небольших команд разработки, которые не могут себе позволить одновременно вести работу над поддержкой обеих мобильных платформ в целях экономии ограниченных ресурсов. Кроме того, для имплементации многих популярных приложений в данной категории также не используются инструменты для кроссплатформенной разработки, например, Cordova или Xamarin, которые позволяют генерировать нативные приложения на основе единой кодовой базы, написанной на JavaScript или C# [32]. Очевидно, что данным подходом нередко пренебрегают из соображений производительности и безопасности, несмотря на существенную экономию трудовых ресурсов. Таким образом, чтобы успешно реализовать технический проект в отведенные сроки, разработчики вынуждены останавливать выбор на одной мобильной платформе (с перспективой поддержки второй в ближайшие возможные сроки). искусственный интеллект серверный приложение

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

Наконец, в рамках данной работы ввиду ограниченности ресурсов не представляется возможным поддержка более одной мобильной платформы. Принимая во внимание экспрессивность языка программирования Swift [33] и высокую производительность интегрированной среды разработки Xcode [34], было принято решение начать разработку нового приложения для изучения иностранных языков, в первую очередь, на платформе iOS. Более того, необходимо отметить, что в среднем для реализации приложения под iOS требуется до 40% меньше кода по сравнению с Android, следовательно, данная разница в продуктивности является крайне значимой для успешного выполнения проекта. К данному пункту можно отнести и уровень абстракции компонентов iOS SDK, что выражается в значительно меньшем количестве операций, требуемых со стороны разработчика, необходимых для организации передачи данных между компонентами приложения и управления их состояниями.

Также выбранная платформа дополнительно обладает существенным преимуществом: по данным AppStore на январь 2018, более 65% устройств от производителя Apple работают под управлением последней версии iOS 11.0 и выше [35], в то время как в феврале 2018, согласно Google Play Store, лишь 1.1% Android-устройств работают под управлением последней версии операционной системы Android Oreo, а на 28.5% устройств установлена предпоследняя версия Android Nougat [36]. На практике данный факт означает, что, в отличие от разработчиков под Android, разработчики под iOS не только не вынуждены расходовать дополнительные ресурсы на поддержку устаревших версий ОС, но и также имеют возможность использования новейших программных технологий от производителя операционной системы для реализации функционала приложения в ближайших релизных циклах. В некоторых случаях, это может крайне позитивно сказаться на сложности и стоимости технического проекта, что будет подробно рассмотрено в следующем разделе.

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

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

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

Таким образом, для реализации функционала продукта с применением методов машинного обучения и обработки естественных языков разработчик должен глубоко понимать, какие аппаратные ресурсы требуется задействовать для эффективного решения той или иной задачи. Данный факт, очевидно, влияет как на функциональные возможности современных программных продуктов, так и на итоговую стоимость технического проекта. Потому в 2017 году компанией Apple был представлен фреймворк CoreML [37], который возможно использовать в приложениях под iOS для упрощенной интеграции прогнозирующих моделей. Данный программный компонент является высокоуровневой абстракцией над низкоуровневыми библиотеками Accelerate [38] и Metal Performance Shaders [39], необходимыми для эффективной работы с ресурсами центрального процессора и графического ускорителя соответственно. Таким образом, CoreML автоматически определяет целесообразность использования тех или иных аппаратных ресурсов и оптимизирует их расход для конкретного типа задач. Следовательно, применение данного фреймворка для реализации части функционала существенно сокращает трудовые затраты на выполнение проекта и повышает эффективность работы приложения.

Также в 2017 году были существенно расширены функциональные возможности библиотеки NSLinguisticTagger [40], предназначенной для обработки естественных языков, а именно: распознавания частей речи и именованных сущностей, лемматизации и определения языка. Стоит отметить, что производительность компонентов также была увеличена. Так, распознавание частей речи производится со скоростью 80000 токенов/сек, а именованных сущностей - 65000 токенов/сек, потому использование данного компонента в приложении позволило в короткие сроки реализовать часть функционала на пользовательском устройстве без необходимости обращения к Интернет-сервисам. Тем не менее, в будущем для выполнения более сложных операций анализа текстов потребуется обращение к серверному приложению и сторонним сервисам. Также с целью сокращения трудовых затрат и ускорения сроков реализации технического проекта были использованы следующие библиотеки с открытым исходным кодом:

1) Alamofire [41], предназначенная для передачи данных между клиентским приложением и ресурсами, расположенными в сети Интернет, в том числе с серверным приложением, и представляющая собой высокоуровневую абстракцию над стандартными компонентами iOS для работы с сетью;

2) Библиотека p2/OAuth 2.0 [42], необходимая для поддержки протокола авторизации OAuth 2.0, используемого на серверной стороне программного комплекса, и автоматического получения, хранения и обновления токенов авторизации.

Таким образом, для реализации серверного приложения были выбраны язык программирования Java и фреймворк для разработки веб-приложений Spring из-за их хорошей масштабируемости и удобства разработки. Поскольку предполагается активное взаимодействие пользователей друг с другом, был сделан выбор в пользу популярной графовой базы данных Neo4j. В качестве протокола авторизации был выбран OAuth 2.0.

Реализация мобильного приложения выполнена под платформу iOS на языке Swift. Для оптимизации производительности и уменьшения затрат ресурсов мобильной платформы был использован фреймворк CoreML. Для выполнения обработки естественного языка на клиентском приложении была использована библиотека NSLinguisticTagger. Связь с Интернет-ресурсами и серверным приложением обеспечивается с помощью библиотеки Alamofire.

...

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

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

    дипломная работа [1,6 M], добавлен 20.08.2017

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

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

  • Общее определение JavaScript-библиотеки, виды библиотек. Создание клиентского приложения с использованием одного из существующий JS-фреймворков. Значение, виды и выбор фреймворка. Выбор приложения и его тематики. Написание программного кода, итоги работы.

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

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

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

  • Инструментальные средства проектирования интеллектуальных систем. Анализ традиционных языков программирования и представления знаний. Использование интегрированной инструментальной среды G2 для создания интеллектуальных систем реального времени.

    контрольная работа [548,3 K], добавлен 18.05.2019

  • Общее определение и история создания JavaScript библиотек, их назначение и использование. Виды и особенности JS фреймворков. Создание клиентского приложения (каталога комплектующих компьютера), написание кода страницы с использованием фреймворка Jquery.

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

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

    презентация [3,0 M], добавлен 28.05.2015

  • История возникновения чата. Виды программной реализации чатов. Описание приложения TCP/IP, построенного на клиент-серверной архитектуре. Особенности создания многопользовательского чата (Multy-user on-line). Листинг программного продукта онлайн общения.

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

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

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

  • Проектирование физической и логической моделей удаленной базы данных для АЗС. Разработка базы данных в СУБД Firebird с помощью утилиты IBExpert. Создание клиентского приложения для Windows с использованием клиент-серверной технологии в среде C++ Builder.

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

  • Эволюция систем искусственного интеллекта. Направления развития систем искусственного интеллекта. Представление знаний - основная проблема систем искусственного интеллекта. Что такое функция принадлежности и где она используется?

    реферат [49,0 K], добавлен 19.05.2006

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

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

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

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

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

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

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

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

  • Характеристика языков программирования: краткая история, хронология. Основные виды языков программирования: ассемблер; бейсик. Создание и использование формул в Excel. Применение операторов в формулах. Использование функций в Excel. Сайт дома отдыха.

    отчет по практике [139,1 K], добавлен 03.06.2011

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

    реферат [24,7 K], добавлен 05.01.2010

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

    курсовая работа [5,9 M], добавлен 30.01.2014

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

    дипломная работа [3,1 M], добавлен 18.11.2017

  • Применение правил грамматики. Синтаксический анализатор, нис- и восходящий разбор, полный перебор правил подстановки. Классификация грамматик по Хомскому. Определение языков с помощью автоматов. Форма Бекуса-Наура описания синтаксиса формальных языков.

    лекция [270,1 K], добавлен 19.10.2014

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