Дипломная работа: Методология создания экспертной системы для Telegram-Бота

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Федеральное государственное автономное образовательное учреждение высшего образования

КАЗАНСКИЙ (ПРИВОЛЖСКИЙ) ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ

ВЫСШАЯ ШКОЛА ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И ИНФОРМАЦИОННЫХ СИСТЕМ

Направление подготовки: 09.03.03 - Прикладная информатика

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

Методология создания экспертной системы для Telegram-Бота

Студент группы 11-301 Валиахметов Э.И.

Казань - 2017 г.

Содержание

Введение

1. Введение в сферу защиты интеллектуальной собственности

1.1 Экспертные системы

2. Постановка задачи

2.1 Технология создания экспертных систем

2.2 Выбор технологий для реализации

2.3 Выбор технологий для использования

3. Выбор соответствующих модулей и библиотек на языке Python

3.1 Библиотека Time

3.2 Библиотека Fysom

3.3 pyTelegramApi

4. Реализация экспертной системы для бота

4.1 Этапы разработки

4.1.1 Telegram Бот

4.2 BotFather. Настройка бота

4.3 Подключение библиотеки ДКА Fysom

4.4 ApiTelegramBot

4.5 Технология добавления новых веток в КДА

5. Интерфейс и тестирование Telegram бота “Робот-Юрист”

Заключение

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

Приложение

Введение

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

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

Задачи дипломной работы:

1. Подготовка всех технологий для реализации задачи.

2. Разработка и реализация всех библиотек и модулей.

3. Тестирование и обзор интерфейса.

4. Подготовка к выпуску продукта.

1. Введение в сферу защиты интеллектуальной собственности

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

Между собственностью и патентом существуют следующие признаки:

1. Собственнику, которому принадлежит патент, право пользования и распоряжение патентом;

2. Когда у патента, как и у любого товара, есть меновая стоимость;

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

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

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

Авторское право было введено в России по просьбе вдовы А.С. Пушкина как право наследования сроком на 50 лет.

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

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

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

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

В РФ охрана программ для ЭВМ обеспечена двумя актами:

1. Специальные законы для ЭВМ и Баз Данных;

2. Общий закон, который распространяется на авторское право.

База данных - объективная форма представления и организации каких-то данных, построенных таким образом, чтобы к ним был доступ программы ЭВМ для обработки запросов на основе этих данных.

Отношения, которые связаны с создание правовой охраны и использованием баз данных, регулируются Законом РФ “О правовой охране программ для ЭВМ и баз данных”. Любой желающий правообладатель может зарегистрировать базу данных и программу для ЭВМ, способом подачи в патентное ведомство.

В боте проекта “Робот-Юрист” будет представлена экспертная система, которая будет определять суть проблемы и его решение.

1.1 Экспертные системы

Экспемртная системма (ЭС, англ. expert system) -- компьютерная система, которая способна частично заменить эксперта-специалиста в разрешении какой-либо проблемы. Современные экспертные системы начали разрабатываться исследователями искусственного интеллекта в 1970-х годах, а в 1980-х получили коммерческое поддержание. Предшественники экспертных систем были предложены в 1832 году С.Н. Корсаковым, который создал механические устройства, так называемые «интеллектуальные машины», которые позволяли находить решения по конкретно-заданным условиям, например, определять наиболее подходящие лекарства по наблюдаемым у пациента симптомам заболевания.

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

База знаний ЭС создаётся при помощи трёх групп людей:

1. Эксперты той проблемной области, к которой относятся задачи, решаемые ЭС (В нашем случае юристы);

2. Инженеры по знаниям, являющиеся специалистами по разработке ИИС;

3. Программисты, осуществляющие реализацию ЭС.

2. Постановка задачи

2.1 Технология создания экспертных систем

CLIPS (от англ. C Language Integrated Production System) -- программная среда для разработки экспертных систем. Синтаксис и название предложены Чарльзом Форги (Charles Forgy) в OPS (Official Production System). Первые версии CLIPS разрабатывались с 1984 года в Космическом центре Джонсона (Johnson Space Center), NASA (как альтернатива существовавшей тогда системе ART*Inference), пока в начале 1990-х не было приостановлено финансирование, и NASA вынудили купить коммерческие продукты.

CLIPS является продукционной системой. Реализация вывода использует алгоритм Rete.

Основная идея состоит в представлении знаний в виде такой формы (Рис. 2.1):

Рис. 2.1. Форма представления знаний

1.2 Выбор технологии для реализации

Для решения нашей задачи есть великое множество способов.

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

JavaScript можно использовать как встраиваемый язык для программного доступа к объектам приложений, в нашем случае - Telegram Bot. Наиболее широко применяется в браузерах как язык сценариев для придания интерактивности веб-страницам.

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

На JavaScript оказали влияние многие языки, при разработке была цель сделать язык похожим на Java, но при этом легким для использования для тех, кто не умеет программировать.

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

PHP (/pi:.e?t?.pi:/ англ. PHP: Hypertext Preprocessor -- «PHP: препроцессор гипертекста»; первоначально Personal Home Page Tools -- «Инструменты для создания персональных веб-страниц») -- скриптовый язык общего назначения, применяющегося для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков, применяющихся для создания динамических веб-сайтов.

Язык и его интерпретатор (Zend Engine) разрабатываются группой энтузиастов в рамках проекта с открытым кодом. Проект распространяется под собственной лицензией, несовместимой с GNU GPL.

Python и Django фреймворки

Хочется отметить, что основные принципы как в Ruby, PHP совпадают.

Боты с людьми взаимодействуют на HTTP-запросах; для передачи данных используется JSON. Метод getUpdates возвращает список массив из объектов типа Update. Внутри Update находится объект Message. Для стандартного взаимодействия с ботом нас фактически интересует именно объект Message, у которого мы считываем атрибут text, хранящий в себе текст, переданный боту и объект chat, в котором лежит информация о пользователе, инициировавшем общение с нашим Telegram ботом. Также имеется параметр update_id, который служит в качестве offset параметра при вызове метода getUpdates. То есть update_id+1 вернёт все сообщения, поступившие после последнего update_id, при этом все предыдущие сообщения будут удалены.

1. Установка библиотеки очень проста.

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

Перед установкой и запуском нужно установить WebHook на нужный адрес и поймать выходной сигнал. Это способствует возвращению поведения с выгрузкой событий вручную. Вся логика будет находиться в классе tornado.web.RequestHandler, который редактор принимает для обработки запросов.

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

Телеграмм присылает полностью все сообщение. Необходимость ставить перед командами “/” создано лишь для того, чтобы пользователям было удобно. Это позволяет научить программу отвечать по-человечески. Для того чтобы дать ей возможность получать в группах все сообщения, нужно написать /setprivacy помощнику @BotFather, отключая, таким образом, приватность.

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

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

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

2.3 Выбор технологий для использования

Для проекта “Робот-Юрист” удобный интерфейс пользователя можно представить несколькими способами:

1. Веб-Приложение;

2. Мобильные приложения;

3. Telegram-бот.

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

Рассмотрим реализацию данной экспертной системы для мобильных приложений.

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