Статья опубликована в рамках: XXXVI Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 24 ноября 2015 г.)
Наука: Информационные технологии
Скачать книгу(-и): Сборник статей конференции
дипломов
РАЗРАБОТКА КЛИЕНТСКОГО ПРИЛОЖЕНИЯ ПОСЛОВНОГО ПЕРЕВОДА ТЕКСТА С ИСПОЛЬЗОВАНИЕМ БАЗЫ ДАННЫХ SQLITE И АВТОРСКОГО АЛГОРИТМА ШИФРОВАНИЯ ПОЛЬЗОВАТЕЛЬСКИХ И СОХРАНЕННЫХ ДАННЫХ
Панькин Андрей Витальевич
студент 2-го курса, факультет оптико-информационных систем и технологий, МИИГАиК,
РФ, г. Москва
Е-mail: Dlyavyza@yandex.com
В настоящее время, с развитием сетей и коммуникаций, когда мир все больше подвергается глобализации, а границы в коммуникабельности людей размываются, общение и обмен информацией давно приняли интернациональный характер. В таком обществе возникает потребность владеть другими иностранными языками, в частности, общепринятым английским языком. На сегодняшний день перевод информации с какого-либо иностранного языка осуществляется в несколько кликов мышки или касаний по экрану смартфона, появились приложения, способные перехватывать текст с камеры мобильного телефона и обрабатывать его в реальном режиме времени. Существуют также популярные онлайн сервисы, имеющие сопутствующее ПО, от таких компаний как “Google”, «Яндекс» и др., которые предлагают машинный перевод текста, прослушивание его правильного произношения и транскрипцию слов.
Но зачастую все эти приложения и сервисы переводят большие группы слов не должным образом – с искажением смысла. Приходится поступать одним из двух способов. Не принимать дословный перевод и догадываться о его переносном значении. Если первый вариант становиться тупиковым, то сокращать объем предложения вплоть до словосочетания или слова в отдельности, чтобы на основе его наиболее употребляемого значения или синонимов самому составить согласованный перевод предложения. В большинстве случаев, именно этот способ является наиболее эффективным для получения качественного перевода. Положиться полностью на сервисы можно только в том случае, если знания иностранного языка имеют прочно подготовленную базу. Также во многих случаях работа по переводу может протекать с использованием технических и специализированных текстов, что тоже приводит к снижению эффективности машинного перевода, а времени на поиск в печатных словарях требуется значительно больше.
Исходя из вышеописанной проблемы и нерационального способа ее решения, основанном на моем личном опыте, я посчитал необходимым решить следующую задачу: разработать такое клиентское программное приложение, которое бы выполняло функцию, прежде всего, пословного перевода текста (включая технические и узкоспециализированные термины) для дальнейшего составления на его основе логически и синтаксически верных предложений, а также ряд дополнительных функций, необходимых при работе.
Для этого мною был разработан аналог программного обеспечения (ПО), удовлетворяющий поставленной задаче. ПО выполнено на языке JAVA под мобильную платформу Android с использованием базы данных SQlite [1], API «Яндекс переводчика» [2] [3] и собственного алгоритма шифрования.
Основу программы составляет клиентское однооконное приложение (Рис. 1), главное назначение которого состоит в выполнении двух основных задач:
1. разбиение исходного текста, требующего перевода, на фрагменты (слова, словосочетания) и перевод каждой данной части в отдельности;
2. представление обработанных данных в виде списка прокрутки парой: «исходное слово» – «перевод». Перевод может быть выполнен с помощью подключенного свободно распространяемого API «Яндекс переводчика» (далее просто API), пользовательской заполненной базы данных SQlite или с помощью комбинированного метода с выбором приоритета (перевод знакомых слов из ранее составленной БД или с использованием API).
Рисунок 1. Интерфейс
Основные возможности (опции) разработанного клиентского программного приложения состоят в следующем:
1. Перевод текста с использованием пользовательской БД или/и API. При этом заполнение базы данных слов происходит путем добавления их в ручном режиме по одному через встроенную форму или автоматически группами при переводе через API.
2. Возможность зарегистрировать и использовать свой API ключ, так как у вшитого бесплатного API ключа есть лимиты на число запросов, которые могут быть превышены при общем массовом использовании.
3. Возможность защиты пользовательских и сохраненных данных, включенным в программу авторским алгоритмом шифрования. Этот алгоритм осуществляет как шифрование переводов текста и хранение БД в закриптовонном виде, так и элементарную и минимальную защиту от любопытных глаз важнейших констант программы, в том числе встроенного API ключа. Если зашифровать необходимые сведения данным алгоритмом, а ключ для расшифрования будет храниться по частям в разных областях кода, применив к java классам обфускацию (процесс для разбиения класса на множество классов и запутывания кода, делая его для человека плохо читаемым), мы получим определенную защиту важных сведений программы. Отметим, что реверсинг (англ., reversing – обратный процесс, получение исходного кода программы из ее уже скомпилированных частей) android java приложений без защиты является легко доступным и простым средством для получения конфиденциальной информации из тела уже собранной программы.
4. Распознавание однокоренных слов для перевода с помощью БД.
5. Выбор языка при переводе с помощью API, включая автоматическое распознание.
6. Дополнительные функции:
6.1. Возможность задать ключ шифрования/дешифрования выше описанных операций
6.2. Сохранение БД и переведенных текстов
6.3 Просмотр БД, редактирование и удаление ее элементов
6.4. Экспорт и импорт БД в файл
6.5. Масштабирование текста
Возможность настройки пользовательских тем интерфейса и повышение его эргономики и удобства в последующих версиях ПО.
Выводы и перспективы
1. Разработанное клиентское приложение, позволяет с легкостью разбить текст на минимальные фрагменты, получить их перевод и составить на их основе логически и синтаксически верное предложение. Данную операцию нет необходимости выполнять каждый раз повторно в ручном режиме. Встроенная база данных SQlite заполняется с использованием API “Яндекс переводчика” для последующей работы в режиме «офлайн». Приложение отлично подойдет для работы с техническими и узкоспециализированными текстами, по мере постепенного заполнения пользовательской базы данных новыми встречающимися и изученными словами. Данное приложение будет востребованным среди людей, плохо квалифицированных в иностранных языках и тех, кто только проходит обучение иностранному языку.
2. В связи с актуальностью вопроса конфиденциальности и защиты информации, как в сети интернет, так и на других носителях, я разработал собственный алгоритм – класс шифрования, который будет в дальнейшем мной совершенствоваться, и подкреплен дополнительными инструментами анализа данных: частотными анализами, проверки целостности и др.
3. Представленное программное приложение перевода текста может быть применено не только по своему прямому назначению. Используя полученные наработки, данный исходный код может быть использован (дополнительно к задаче шифрования) для защиты конфиденциальных данных путем метода стеганографии (скрытие смысла или/и факта передачи информации). Для ранее написанных текстов (без специально искаженного смысла) исходные слова могут быть заменены на слова из БД словами жаргонами и диалектиками ограниченных кругов лиц, таким образом, чтобы даже расшифрованный текст не давал стопроцентной открытой информации. Таким образом, в перспективе разработанное клиентское программное приложение планируется преобразовать в комплекс клиентских программ и создать на их основе программное обеспечение с расширенными потенциальными возможностями.
Список литературы:
- Варакин М. Разработка мобильных приложений под Android. Курс I. Москва: УЦ «Специалист», 2012. – 128 с.
- Дейтел П., Дейтел Х., Дейтел Э., Моргано М. Android для программистов: создаём приложения. СПб.: Питер, 2013. – 560 с.: ил.
- Хашими С., Коматинени С., Маклин Д. Разработка приложений для Android. СПб.: Питер, 2011. – 736 с.: ил.
дипломов
Оставить комментарий