Разработка системы классификации тендеров с использованием искусственной нейронной сети
Анализ предметной области. Технологии классификации текстовых данных. Диаграмма прецедентов системы определения категорий тендеров. Проектирование архитектуры системы определения категорий тендеров. Формирование обучающих выборок для нейронной сети.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 28.11.2019 |
Размер файла | 2,0 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Пермский филиал федерального государственного автономного образовательного учреждения высшего образования
«Национальный исследовательский университет
«Высшая школа экономики»
Факультет экономики, менеджмента и бизнес-информатики
Выпускная квалификационная работа
студента образовательной программы «Программная инженерия»
по направлению подготовки 09.03.04 Программная инженерия
Разработка системы классификации тендеров с использованием искусственной нейронной сети
Бурлаков Евгений Сергеевич
Рецензент к.т.н., доцент кафедры микропроцессорные средства автоматизации ФГБОУ ВО «ПНИПУ» Д.К. Елтышев
Руководитель к.т.н., доцент кафедры информационных технологий в бизнесе А.В. Кычкин
Пермь, 2019 год
Аннотация
В работе содержится описание разработки системы определения категорий тендеров с использованием нейронной сети. Рассмотрена система в целом и текущая реализация системы определения категорий, выявлены её недостатки. Проанализированы методы автоматической классификации данных. Спроектирована нейронная сеть для классификации тендеров. Описано проектирование и разработка системы определения категорий и нейронной сети.
Первая глава посвящена анализу предметной области, формированию требований к системе и обоснованию методов, используемых при реализации.
Во второй главе производится проектирование системы, приведена модель работы и спроектирована архитектура системы определения тендеров.
Третья глава содержит подробности о реализации методов подготовки данных, обучение нейросети и разработки системы.
Введение
Система для поиска тендеров является одним из основных продуктов компании «ИнитГрупп». Она предоставляет пользователям инструмент для быстрого поиска и удобной подготовки к участию в торгах. На данный момент система агрегирует в себе тендеры более чем из 3000 источников для предоставления клиентам полного перечня актуальных тендеров. Пользователю доступен поиск по 200 тысячам актуальных и 40 миллионам всех тендеров [1]. Разделение этого множества на отрасли является одним из важнейших параметров для поставщиков -- основных клиентов системы поиска тендеров.
Текущая версия системы определения категорий имеет ряд проблем, вследствие которых тендерам выставляется неверная категория или не выставляется вовсе. Для её корректной работы необходимо постоянное наблюдение, ручное воздействие со стороны сотрудников, обновление ключевых слов для конкретных категорий.
Разработка новой системы, лишенной этих недостатков и позволяющей использовать больше информации о тендерах при анализе и вычислении их отрасли, является насущной задачей предприятия. Такая система снизит нагрузку на сотрудников, автоматизируя часть их задач.
Объектом работы является процесс классификации тендерных объявлений по заранее сформулированным кластерам.
Предмет работы -- информационная система классификации тендерных объявлений на основе нейросети.
Цель: разработка информационной системы для классификации тендеров с использованием нейронной сети.
Задачи:
1. Анализ существующей системы классификации тендеров на предприятии «ИнитГрупп».
2. Анализ требований к системе определения категорий.
3. Проектирование архитектуры информационной системы.
4. Выбор методов и технологий для разработки системы.
5. Разработка архитектуры нейронной сети и формирование выборки для ее обучения.
6. Разработка системы классификации тендеров, использующей разработанную нейросеть.
7. Сравнение результатов работы системы с существующим решением.
В процессе исследования будут использованы следующие методы: анализ, сбор и обработка данных, объектно-ориентированное проектирование и программирование.
Итогом работы является система, получающая на вход имеющуюся информацию о тендере и выдающая категории, к которым он может относиться. Первое время предполагается, что разработанная система будет работать параллельно существующей для сравнения результатов. Основываясь на них, будет принято решении о внедрении.
Глава 1 содержит обзор аналогов, формулировку требований к системе и экономическое обоснование разработки. Здесь будет представлен анализ существующего на предприятии решения, разбор его достоинств и недостатков. Анализ существующих систем классификации [2] и их областей применения. Также в данной главе будут представлены диаграммы активностей и диаграммы прецедентов, необходимые для разработки системы.
Глава 2 содержит описание процесса проектирования информационной системы, включающей нейронную сеть для классификации тендеров. В данной главе будет описан процесс выбора входных параметров, отчистка входных данных [3], структура нейронной сети.
Глава 3 содержит описание процесса реализации [4, 5], тестирования и внедрения системы. В данной главе будут описаны этапы процесса реализации системы классификации тендеров, представлены этапы тестирования и отчет о внедрении и интеграции с существующими на предприятии системами. Также здесь будет описан процесс подготовки документации: руководства пользователя и программиста.
Глава 1. Анализ предметной области подсистемы определения категории системы поиска тендеров предприятия ИнитГрупп
архитектура нейронный текстовый тендер
В данной главе рассмотрена текущая реализация системы, выявлены её преимущества и недостатки, проанализированы существующие методы решения задач классификации текста, сформированы требования к разрабатываемой системе. Обоснован выбор методов и средств разработки.
1.1. Технологии классификации текстовых данных
Автоматическая классификация текстов на выделенные категории осуществляется двумя основными методами: с помощью выделения правил, следуя которым данные могут быть отнесены к конкретной категории и с помощью машинного обучения в процессе которых критерии по которым выделяется категория текста формируются автоматически в процессе обучения нейронной сети на выборке готовых данных.
При первом подходе для составления правил определения категории необходим специалист с глубокими знаниями предметной области. Зачастую необходимо его постоянное участие в работе такой системы для актуализации правил: добавления новых и корректировки уже созданных.
Второй подход предполагает использование методов машинного обучения. Необходимо наличие обучающей и тестовой выборки, т. е. коллекция документов, для которых уже известно значение целевого параметра, разбивается на два не пересекающих множества.
Использование обученной нейросети позволяет сгенерировать правила автоматически на основе выборки данных с заранее вычисленными верными категориями.
Перед непосредственным вычислением категории необходимо подготовить входные данные, привести их к подходящему для анализа формату. Необходимо выбирать только значимые слова, т. е. отфильтровать предлоги, союзы и другие стоп_слова. Например, слова «тендер», «извещение» или «закупка» не являются значимыми. Так же важно выполнить стемминг и лемматизацию для приведения слов к их основной форме.
1.2. Анализ текущей реализации системы определения категорий
В данный момент на предприятии «ИнитГрупп» существует система для определения категории тендеров, использующая сформированные специалистами наборы правил. В среднем в течение суток в систему поступает около 36 тыс. тендеров [1], большая часть из них поступает в течение рабочего дня, так же следует заметить, что нагрузка серьезно возрастает после праздничных и выходных дней. В процессе добавления тендера в систему поиска тендеров из его основных свойств: названия, дополнительных сведений. названий лотов формируется множество ключевых слов. Данное множество сравнивается с существующими правилами определения категорий и на основе этого вычисляется к каким категориям относится тендер.
В случае невозможности определения отрасли тендера вышеописанным способом проверяются все его ОКПД 2 коды (Общероссийский классификатор продукции по видам экономической деятельности) [6]. Они позволяют точно определить категорию, однако на коммерческих, т. е. не государственных электронных торговых площадках часто не указываются ОКПД 2. Так же бывают случаи, когда указана только общая категория без вложенных групп.
В случае обнаружения ошибки в определении категории существует возможность скорректировать правила определения категории и обновить категории для конкретного тендера или множества тендеров.
Изучены данные об определении категорий тендеров в системе за последние 2,5 года (табл. 1.1), за это время было обработано 14 528 816 тендеров. Как можно заменить система не смогла корректно обработать 15.9% от всех тендеров, т. е. это тендеры, для которых отрасль не определена и те, для которых отрасль указана специалистом.
Таблица 1.1 Проценты верного и ошибочного определения категорий тендеров
Статус категории |
Определена по ключевым словам |
Определена по ОКПД2 |
Категория не определена |
Изменена специалистом |
|
Количество тендеров |
10 130 876 |
2 087 560 |
1 793 827 |
516 553 |
|
Процент от общего числа |
69.73% |
14.37% |
12.35% |
3.56% |
Основываясь на приведенных выявлены два недостатка существующего решения:
1. Ошибки при определении категории: неверная категория, нет нужной категории, лишняя категория.
2. Необходимость воздействия со стороны специалистов для редактирования и добавления правил определения категории.
Модель AS-IS существующей системы в нотации IDEF0 приведена на рис. 1.1-1.2.
Рисунок 1.1. IDF0, модель as-is
Рисунок 1.2 IDF0, модель as-is
На вход системы поступают данные о тендере: его название и коды ОКПД 2. Название отчищается от лишних символов: знаков препинания, скобок. Удаляются сведения об адресе и организации-заказчике. Полученные данные сравниваются с ключевыми словами для каждой категории. Получившийся список категорий объединяется со категориями полученными от кодов ОКПД 2 и записывается в базу данных.
1.3. Формирование требований к системе определения категорий тендеров
В результате анализа существующей системы и обзора предметной области можно сказать, что функциональным назначением разрабатываемого продукта является классификация тендера по заранее сформированным категориям, запись полученных результатов в базу данных системы поиска тендеров компании «ИнитГрупп».
Система должна предоставлять следующие функции:
3. Определение категорий тендеров.
4. Получение данных от парсеров тендерных площадок.
5. Получение данных из используемой системой поиска тендеров базы данных и запись в неё.
6. Командный интерфейс взаимодействия с системой.
Система должна удовлетворять следующим нефункциональным требованиям заказчика, они основаны на объемах обрабатываемой информации системой поиска тендеров и показателями работы существующей системы определения категорий:
1. Корректное определение категории тендеров, доля ошибочно определенных категорий должна быть меньше, чем у текущей реализации подобной системы, менее 15.9%.
2. Производительность системы должна позволять обрабатывать все поступающие тендеры - до 50 тыс. тендеров в сутки.
3. Использование существующего списка категорий для классификации.
4. Для обучения нейронной сети выбрать данные из базы данных системы поиска тендеров.
5. Тендер может относиться к нескольким категориям.
1.4. Диаграмма прецедентов системы определения категорий тендеров
Требования к разрабатываемой системы формализованы с помощью диаграмм вариантов использования (см. рис. 1.3). Взаимодействие с системой осуществляют три актора: специалист - сотрудник предприятия «ИнитГрупп» - имеет возможность дополнить список стоп_слов, которые будут удаляться из текстовых данных поступающих на вход системы; парсер - является частью системы парсинга тендерных площадок, передает данные о тендере в систему классификации для определения категории; база данных - получает итоговые данные о категориях тендера.
Ниже приведено расширенное описание всех прецедентов.
Рисунок 1.3. Диаграмма прецедентов системы определения категорий.
Название: «Расширить список дополнительных стоп-слов».
Акторы: специалист.
Краткое описание: актор добавляет список стоп слов.
Триггер: актор запустил команду «python3 update_stop_words.py -f words.json».
Основной поток (табл. 1.2):
Таблица 1.2 Прецедент «расширить список дополнительных стоп-слов»
Действия акторов |
Отклик системы |
|
1. Актор запускает команду «python3 update_stop_words.py -f words.json». |
2. Система открывает указанный файл (Е1). 3. Система проверяет json массив (Е2). 4. Система добавляет слова из массива в таблицу стоп слов базы данных. |
Альтернативные потоки:
E1: Появляется сообщение что файл не корректен, выполнение программы прекращается.
Е2: Появляется сообщение что содержимое открытого файла не корректно, выполнение программы прекращается.
Название: «Определить категории».
Акторы: парсер.
Краткое описание: система определяет категории для тендеров.
Триггер: парсер отправляет данные тендера в систему.
Основной поток (табл. 1.3):
Таблица 1.3 Прецедент «определить категории»
Действия акторов |
Отклик системы |
|
1. Актор отправляет данные тендера на добавление в базу данных. |
2. Система получает информацию о тендере. 3. Выполняется подготовка данных. 4. Определяются категории. 5. Категории записываются в базу данных. |
Название: «Использовать нейронную сеть».
Акторы: парсер.
Краткое описание: подготовленные данные в виде цифрового вектора обрабатываются нейронной сетью.
Триггер: парсер отправляет данные тендера на добавление в базу данных
Основной поток (табл. 1.4):
Таблица 1.4 Прецедент «использовать нейронную сеть»
Действия акторов |
Отклик системы |
|
1. Актор отправляет данные тендера в систему. |
2. Подготовленные данные обрабатываются нейронной сетью. 3. Возвращается список категорий. |
Название: «Записать данные в базу».
Акторы: база данных.
Краткое описание: список категорий и уникальный идентификатор тендера записываются в базу данных.
Триггер: нейронная сеть вернула результат работы
Основной поток (табл. 1.5):
Таблица 1.5 Прецедент «записать данные в базу»
Действия акторов |
Отклик системы |
|
1. Актор принимает данные |
2. Сохранение нейросети 3. Сообщение об окончании обучения |
Название: «Выполнить токенизацию».
Акторы: парсер.
Краткое описание: текст разбивается на токены.
Триггер: выполняется подготовка данных.
Основной поток (табл. 1.6):
Таблица 1.6. Прецедент «выполнить токенизацию»
Действия акторов |
Отклик системы |
|
1. Актор выполняет подготовку данных. |
2. Система собирает текстовую информацию о тендере. 3. Текст разбивается на отдельные слова. |
Название: «Удалить стоп слова».
Акторы: парсер.
Краткое описание: из списка токенов удаляются стоп слова.
Триггер: выполняется подготовка данных.
Основной поток (табл. 1.7):
Таблица 1.7 Прецедент «удалить стоп слова»
Действия акторов |
Отклик системы |
|
1. Актор выполняет подготовку данных. |
2. Удаляются стоп слова из списка тендеров. |
Название: «Привести слова к нормальной форме».
Акторы: парсер.
Краткое описание: токены приводятся к нормальной(начальной) форме.
Триггер: выполняется подготовка данных.
Основной поток (табл. 1.8):
Таблица 1.8. Прецедент «привести слова к нормальной форме»
Действия акторов |
Отклик системы |
|
1. Актор выполняет подготовку данных. |
2. С помощью морфологического анализатора Pymorfy2 токены приводятся в начальную форму. |
Название: «Преобразовать текст в вектор».
Акторы: парсер.
Краткое описание: текст преобразовывается в вектор.
Триггер: выполняется подготовка данных.
Основной поток (табл. 1.9):
Таблица 1.9 Прецедент «преобразовать текст в вектор»
Действия акторов |
Отклик системы |
|
1. Актор выполняет подготовку данных. |
2. Текст преобразовывается в вектор на основе частотного анализа встречающихся в нем слов из словаря, сформированного ранее. |
1.5. Выбор методов и технологий для разработки
Выбор методов классификации данных
Существует несколько подходов к автоматической классификации данных:
6. Классификация с использованием искусственных нейронных сетей.
7. Метод опорных векторов.
8. Метод ближайших соседей.
9. Деревья решений.
Классификация с использованием искусственных нейронных сетей
Искусственные нейронные сети широко применяются во многих областях, в частности при решении задач классификации [10]. Они требуют обучения нейронной сети. В связи с этим существуют некоторые требования:
10. Необходима выборка данных для обучения, при больших размерах входных и выходных данных размеры тренировочной выборки так же должны соответствовать.
11. Требуется подготовка данных - отчистка текста.
Для обучения нейронных сетей применяются методы:
1. Обучение с учителем - используется выборка данных, содержащая правильные ответы прогнозирования. В процессе обучения сеть подстраивает параметры весов нейронов для достижения верного результата.
2. Обучение без учителя - известны только входные сигналы, относительно них сеть старается выдавать одинаковые результаты для похожих входных данных.
Метод опорных векторов
Популярный метод обучения по прецедентам, т. е. на основе выборки данных. Метод опорных векторов разделяет обучающее множество на точки в многомерном пространстве таким образом, чтобы сформировать отдельные кластеры, которые можно разделить гиперплоскостью [12]. Однако существует ряд ограничений:
3. Каждая точка должна принадлежать только к одному кластеру.
4. Хорошо работает для разделения множества на малое количество классов, например 2 класса.
Метод ближайших соседей
Данный метод так же использует обучающую выборку с известными результатами. При его работе объект относится к тому классу, на элементы которого он больше похож. Вычисляется близость атрибутов объекта с атрибутами объектов с уже известным классом. При каждый атрибут имеет свой вес. Количество объектов, на которые должен быть похож заданный объект можно изменять. Метод очень простой, но требует много вычислений (сравнений). Результат можно корректировать, изменяя меру близости, при который объект можно отнести к категории [14].
Деревья решений
Используются для решения задач отнесения объекта к одному из известных классов. При обучении дерева на выборке данных создается иерархия правил. На узлах дерева проверяются атрибуты на соответствие правилам. Листья дерева являются конечными решениями [13].
Выбор метода классификации
Основываясь на требованиях к системе, сформируем критерии, по которым можно будет выбрать подходящий метод классификации.
5. Тендер может принадлежать к нескольким категориям. Таким образом, методы, позволяющие получить только один результат, не подходят.
6. Обучение модели должно основываться на выборке данных с уже известными категориями.
На основе эти критериев выбран метод искусственных нейронных сетей. Для обучения нейронной сети использовался метод обучение с учителем. Его выбор обусловлен наличием выборки данных с известным результатом прогнозирования.
Для подготовки данных к анализу с помощью нейронной сети использовались следующие методы:
7. Токенизация - разделение текста на отдельные слова - токены.
8. Лемматизация - преобразование слов в их начальной форме.
9. Удаление стоп-слов - удаление слов, не несущих смысловой нагрузки, удаление предлогов, междометий, вводных слов.
10. Создание мешка слов - словарь всех слов коллекции текстов.
В разработке использовался язык Python версии 3.6 и известные пакеты с обширной документацией: Tensorflow, Pymorphy2, sklearn, nltk. Применялась система контроля версий Git и репозиторий на Bitbucket.
Выводы по главе
В данной главе рассмотрены технологии автоматической классификации текстовых данных, проанализирована текущая реализация системы, выявлены проблемы, которые необходимо устранить. Составлен список требований к разрабатываемой системе. Построена диаграмма прецедентов с развернутым описанием.
Глава 2. Проектирование системы определения категории тендеров
Данная глава описывает процесс проектирования системы определения категории тендеров. Здесь представлено формирование обучающих выборок, проектирование архитектуры нейросети и системы.
2.1 Место системы определения категории тендеров в системе поиска тендеров
Построена диаграмма компонентов системы (рис. 2.1) поиска тендеров компании «ИнитГрупп». Она включает в себя систему парсинга тендеров и веб-приложение поиска тендеров.
Рисунок 2.1 Место системы определения категорий в системе поиска тендеров
Система определения категорий является частью системы парсинга тендеров. Взаимодействует с парсерами тендерных площадок и базой данных. Получает данные непосредственно от парсеров, обрабатывает их и записывает в базу данных информацию об вычисленных категориях.
2.2 Технико-экономическое обоснование разработки системы определения категорий
Проведение расчета трудоемкости и стоимости разработки системы определения категорий тендеров проводилось по методике CETIN [11], основанной на измерении функционального размера системы (функциональные требования). В данной методике определены пять функциональных единиц измерения:
1. C - Case - количество прецедентов.
2. E - Entity - количество классов, относящихся к предметной области.
3. T - Tool - количество свойств классов.
4. I - Interaction - количество взаимодействий между типами объектов.
5. N - Node - количество узлов
Первым этапом была оценка функционального размера программного продукта:
1. Количество вариантов использования (количество прецедентов) - 10.
2. Количество типов объектов (количество классов, относящихся к предметной области) - 4.
3. Количество свойств типов объектов (количество свойств классов, относящихся к предметной области) - 10.
4. Количество взаимодействий между типами объектов (количество связей между классами, относящимися к предметной области) - 6.
5. Количество типов узлов - 1.
Функциональный размер = {10, 4, 10, 6, 1}.
Второй этап оценки заключается в оценке базовой трудоемкости разработки на каждой стадии разработки: бизнес-моделирование, управление требованиями, проектирование, реализация, тестирование, развертывание. Базовая трудоемкость процесса разработки вычисляется с использованием формулы (1).
где -- трудоемкость определенного процесса разработки с номером i, измеряется в человеко-месяцах,
(??) -- нормативные коэффициенты трудоемкости реализации одного варианта использования,
(??) -- нормативный коэффициент трудоемкости реализации одного типа объектов,
(??) -- нормативный коэффициент трудоемкости реализации одного свойства типа объекта,
(??) -- нормативный коэффициент трудоемкости реализации одного взаимодействия между типами объектов,
(??) -- нормативный коэффициент трудоемкости реализации одного типа узла,
{C, E, T, I, N} -- функциональный размер разрабатываемой системы,
165 -- количество человеко-часов в одном человеко-месяце.
Таким образом получается следующая базовая трудоемкость (табл. 2.1).
Таблица 2.1 Базовая трудоемкость по CETIN
Наименование процесса |
Функциональная единица измерения |
Итого чел. мес. |
|||||
Вариант использования |
Тип объекта |
Свойства типа объекта |
Свойства взаимоотношения между объектами |
Тип узла |
|||
Трудоемкость, чел.час |
|||||||
Бизнес моделирование |
32,12 |
28,33 |
0,00 |
14,15 |
0,00 |
3,15 |
|
Управление требованиями |
58,03 |
28,04 |
0,00 |
20,32 |
0,00 |
4,94 |
|
Проектирование |
45,42 |
61,75 |
31,35 |
37,52 |
24,02 |
7,66 |
|
Реализация |
31,57 |
81,51 |
50,72 |
36,11 |
0,00 |
8,28 |
|
Тестирование |
88,96 |
0,00 |
0,00 |
0,00 |
0,00 |
5,39 |
|
Развертывание |
8,69 |
0,00 |
0,00 |
0,00 |
23,74 |
0,67 |
Итоговая базовая трудоемкость = 30,08 человеко-часов.
Далее рассчитаем поправочные коэффициенты трудоемкости процессов разработки (табл. 2.2). Значение каждого поправочного коэффициента приведено в таблице 2.3 и расчет в таблице 2.4.
Таблица 2.2 Поправочные коэффициенты по CETIN
Поправочный коэффициент |
Значение |
|
КП1 |
1,12 |
|
КП2 |
1,14 |
|
КП3 |
1,32 |
|
КП4 |
1,18 |
|
КП5 |
1,32 |
|
КП6 |
1,19 |
Таблица 2.3 Поправочные коэффициенты
Обозначение частного поправочного коэффициента |
Значение частного поправочного коэффициента |
|
К1 - Режим эксплуатации ИС |
1,05 |
|
К2 - Масштаб ИС |
0,93 |
|
К4 - Защита от несанкционированного доступа |
1 |
|
К5 - Защита программ и данных |
1 |
|
К6 - Контрольный след операций |
1 |
|
К7 - Отказоустойчивость |
1,04 |
|
К8 - Восстанавливаемость |
1 |
|
К9 - Длительность обработки |
1,12 |
|
К10 - Исходный язык разработки ИС |
0,92 |
|
К11 - Класс пользователя |
1 |
|
К12 - Требования к центральному обрабатывающему устройству |
1,12 |
|
К13 - Требования к оперативной памяти |
1 |
|
К14 - Требования к внешней памяти |
1 |
|
К15 - Требования к локальной вычислительной сети |
1,01 |
|
К16 - Критичность ИС |
1,02 |
|
К17 - Готовность |
1 |
|
К18 - Представление данных |
1 |
Таблица 2.4. Расчет коэффициентов
Обозначение поправочного коэффициента |
Формула |
Значение |
|
КП1 |
К11 * К16 * К17 |
1,12 |
|
КП2 |
К1 * К2 * К4 * К5 * К6 * К7 * К8 *·К9 *·К16 *·К17 *·К18 |
1,14 |
|
КП3 |
К1 *·К2 *·К4 *·К5 *·К6 *·К7 *·К8 *·К9 *·К11 *·К12 *·К13 *·К14 *·К15 *·К16 *·К17 *·К18 |
1,32 |
|
КП4 |
К1 *·К2 *·К4 *·К5 *·К6 *·К7 *·К8 *·К9 *·К10 *·К12 *·К13 *·К14 *·К15 *·К16 *·К17 *·К18 |
1,18 |
|
КП5 |
К1 *·К2 *·К4 *·К5 *·К6 *·К7 *·К8 *·К9 *·К10 *·К11 *·К12 *·К13 *·К14 *·К15 *·К16 *·К17 *·К18 |
1,32 |
|
КП6 |
К1 *·К2 *·К11 *·К16 *·К18 |
1,19 |
Следующим этапом рассчитаем трудоемкость с учетом поправочных коэффициентов (табл. 2.5).
Таблица 2.5 Трудоемкость с учетом поправочных коэффициентов
№ |
Наименование процесса |
Итого чел. мес. |
Итого с учетом коэффициентов чел. мес. |
|
1 |
Бизнес моделирование |
3,15 |
3,53 |
|
2 |
Управление требованиями |
4,94 |
5,63 |
|
3 |
Проектирование |
7,66 |
10,08 |
|
4 |
Реализация |
8,28 |
9,73 |
|
5 |
Тестирование |
5,39 |
7,09 |
|
6 |
Развертывание |
0,67 |
0,80 |
Итоговая трудоемкость разработки с учетом поправочных коэффициентов получилась 36,87 человеко-часов.
Согласно зависимости срока разработки от трудоемкости (табл. 2.6) по методике CETIN срок разработки системы определения категорий тендеров можно оценить в 3 месяца. Минимум 2 месяца и максимум 5 месяцев.
Таблица 2.6 Зависимость срока разработки от трудоемкости
Срок разработки |
Трудоемкость чел. мес. |
|
1 месяц |
5 - 30 |
|
2 месяца |
10 - 80 |
|
3 месяца |
17 - 140 |
|
4 месяца |
26 - 210 |
|
5 месяцев |
37 - 280 |
|
6 месяцев |
50 - 340 |
|
7 месяцев |
65 - 400 |
|
8 месяцев |
80 - 450 |
При уменьшении сроков разработки с 3 до 2 месяцев произойдет увеличение трудоемкости разработки программного продукта. Коэффициент эластичности трудоемкости составляет 0.75, а срок уменьшается на 33%, трудоемкость увеличится на 24.7% и составит 45.9 человеко-месяцев.
Далее необходимо было оценить стоимость разработки программного продукта. Средняя заработная плата специалиста, разрабатывающего данную систему равна 30 000 рублей, при сроке разработки в 2 месяца система обойдется в 60 000 рублей.
При этом система поиска тендеров предлагает для пользователей тарифы на годовую подписку от 13 700 рублей до 29 900 рублей, что в среднем составляет 18 300 рублей.
Невозможно составить прямую зависимость оплаты или не оплаты тарифов пользователями от работы системы определения категорий тендеров в системе поиска тендеров. Поэтому нельзя точно сказать о сроках окупаемости разработки данной системы.
Модель поведения системы определения категорий тендеров.
Описание поведения системы определения категорий тендеров произведено с помощью диаграмм последовательностей. Разработанные диаграммы представлены ниже.
Название: «Определить категории» (рис 2.2).
Обязанности: определить категории тендера.
Ссылки: прецедент «Определить категории».
Предусловия: парсер тендеров отправил данные о тендере.
Постусловия: запись данных о категориях в базу.
Рисунок 2.2 Диаграмма последовательностей. Определение категорий
Алгоритм работы системы определения категорий.
Разработан алгоритм работы системы определения категорий, он представлен на рисунке 2.4 в виде блок-схем. Он включает в себя сценарий для определения категорий и алгоритм проверки точности сети и её переобучения.
Рисунок 2.3 Алгоритм работы системы
Описание используемой базы данных.
В процессе работы системы определения категорий тендеров используется база данных системы поиска тендеров компании «ИнитГрупп». Схема базы данных (см. рис. 2.4_2.5) описывает предметную область тендеров.
Основная таблица «Tender» содержит информацию о тендере. Поле «notificationNumber» является уникальным номером каждого тендера. Для тендеров с государственной единой информационной системы в сфере закупок [6] (zakupki.gov.ru) используется номер тендера. Для тендеров с остальных площадок генерируется свой уникальный номер, содержащий указание название площадки и уникальное значение тендера с данной площадки. Данное поле используется для поддержания актуальности тендеров при их обновлении на первоисточниках и для исключения дубликатов тендеров. Тут же хранятся даты тендера, а именно дата публикации на площадке-первоисточнике, даты начала и окончания подачи заявок, дата подведения итогов и проведения тендеров. Из них дата публикации, начала подачи заявок и дата окончания являются обязательными, остальные могут быть пропущены.
Тендер может иметь несколько лотов - таблица «Lot». В ней подробная информация об сроках и месте поставки объекта торгов. Суммы обеспечения контракта и обеспечения заявки на участие в торгах.
Таблица «Organization» содержит данные об компаниях заказчиках и организаторах торгов.
В таблице «Category» содержатся общие отрасли закупок, такие как «Медицина, фармакология», «Недвижимость, строительство, ремонт», «Транспорт, перевозки» и другие. Таблица «Subcategory» содержит конкретные категории.
Таблица «SubcategoryOKDP» содержит правила соответствия категорий из таблицы «Subcategory» и кодов ОКПД.
Сведения о документации тендера, а именно приложенные к извещению о тендере документы, содержатся в таблице «DocumentMeta». Так же там стоят статусы документации, информирующие о загрузке документа на сервера компании «ИнитГрупп» и об извлечении текста из документа. Обычно это файлы текстовые файлы форматов «Word», таблицы «Excel», рисунки и прочие документы, также архивы «rar», «zip», «7zip».
Содержание данных документов в виде текста записывается в таблицу «FileBlock». Большая часть документов прикладывается к тендеру в виде архива, поэтому на каждый документ может быть несколько записей в таблице «FileBlock». Содержание документов в форматах изображений также попадает в эти таблицы после автоматической процедуры оптического распознавания текста.
Сведения о площадке публикации тендера - таблица «Placement». Содержит метки о том является ли площадка государственной, о типе тендеров, поступающих с этой площадки, а также о необходимости загрузки документации тендеров с этой площадки на сервера «ИнитГрупп».
Таблица «TenderType» содержит типы тендеров по способу определения поставщика согласно федеральному закону о контрактной системе в сфере закупок товаров, работ, услуг для обеспечения государственных и муниципальных нужд от №44_ФЗ [7] и федеральному закону о закупках товаров, работ, услуг отдельными видами юридических лиц от 18.07.2011 №223-ФЗ [8]. Для тендеров не с государственных площадок используется тип «Коммерческий спрос».
Таблица «TenderRegion» содержит регионы, к которым принадлежит тендер. Основывается на адресах доставки объекта тендера, адресах заказчика или организатора тендера.
Рисунок 2.4 Схема базы данных. Часть 1
Таблица «PropTender» используется для отслеживания действий над тендером. У неё записывается дата добавления тендера в базу, дата его последнего изменения и сведения о системе, которая изменила данные. Это может быть парсер, система определения региона, система определения категорий.
Таблица «Protocol» содержит сведения о проведении торгов и выборе среди нескольких поставщиков победителя. В связанную таблицу «ProtocolMeta» заносится информация о документах, прикреплённых к протоколам выбора победителя тендера. Аналогично с документами тендера существуют отметки о загрузке документов на сервера компании.
Участники торгов попадают в таблицу «Bidder». В неё записываются пометки о статусе допуска определенных участников к торгам на всех его этапах проведения, причина не допуска, статус победителя и предложенная участником цена исполнения тендера.
Таблица «Complaint» содержит данные жалоб о недобросовестном поведении участников во время проведения торгов. Сохранение этих данных позволяет как заказчикам заранее оценить поставщиков, так и поставщикам проверить добросовестность заказчиков.
Таблица «Explanation» содержит разъяснения по проведению торгов. Обычно это уточнения технических деталей объектов торгов. В таблице «ExplanationMeta» хранятся данные о приложенной к разъяснениям документации, с соответствующими статусами загрузки документов на сервера компании.
Таблица «PlacementTender» служит для связывания друг с другом одинаковых тендеров, добавленных парсерами с разных тендерных площадок. Многие заказчики размещают извещения о торгах на нескольких тендерных площадках, включая портал государственных закупок. Для таких случаев сохраняется уникальный идентификатор главного тендера и тендера-копии, чтобы исключить дубликаты тендеров в системе поиска тендеров. В качестве главного тендера выбирается тендер, полученный с государственной площадки.
Рисунок 2.5 Схема данных. Часть 2
Система определения категорий использует таблицы «Tender», «Lot», «Subcategory», «SubcategoryTender», «PropTender».
Таблица Tender содержит данные о тендере. Следующие поля используются в системе определения категорий:
1. «name» - название тендера.
2. «publicationDate» - дата публикации.
3. «startDocDate» - дата начала подачи заявок на тендер.
4. «finishDocDate» - дата окончания подачи заявок.
5. «price» - цена тендера.
Из таблицы «Lot» используется название объекта лота. Чаще всего тендер содержит несколько лотов.
Формирование обучающих выборок для нейронной сети.
Для формирования обучающий выборок воспользуемся результатами работы существующей системы за прошедшие года. С большим приоритетом следует выбрать тендеры, для которых категория была определена неверно существующей системой и позже изменена специалистами вручную.
Для выбора данных используем sql запросы к базе данных тендеров. Для каждой категории выберем 2000 тендеров за последний год. Прогнозируемым значением будет являться id категории. В качестве данных для прогнозирования выберем название тендера, лота, цену, дату публикации, время между началом подачи заявок и окончанием подачи заявок на тендер.
Категории уже определены и их количество составляет 303 единицы. Тендер может относиться к нескольким категориям одновременно. Создадим словарь категорий размером 303 элемента, в котором будут значения 0 или 1, определяющие принадлежность тендера к соответствующей категории.
Данные о тендере необходимо преобразовать в числовое представление. Название тендера является строкой, поэтому для начала выполним токенизацию и удалим стоп слова. Для этого используется пакет nltk [2]. Он включает в себя общий список стоп слов в том числе и для русского языка. С помощью Pymorphy2 приведем слова к нормальной форме.
После данных процедур словарь токенов, сформированный из названий тендеров заметно уменьшится. Изначально размер составлял 32 628 элементов, после приведения к нормальной форме и удаления стоп-слов размер словаря сократился до 10721. Аналогично словарю категорий, элемента данного словаря могут принимать значения либо 1, либо 0 для обозначения присутствия конкретного токена в выборке.
Следующие поля, цена тендера и даты публикации и подачи заявок, уже в виде числовых данных. Поэтому просто добавим к входных данным цену, номер месяца из даты публикации, количество дней между началом подачи заявок и окончанием подачи заявок на тендер. В итоге получим вектор из 10724 элементов.
Получившуюся выборку разделим на две части - обучающую и проверочную. Они не должны пересекаться, для этого по каждой категории возьмем каждый четвертый тендер и поместим его в проверочную выборку, а остальные в обучающую.
Проектирование архитектуры нейронной сети.
Задача определения категории тендера является частным случаем задачи классификации. Для решения таких задач широко применяется [7] нейронные сети вида персептрон с одним скрытым слоем.
Архитектура нейронной сети во многом зависит от входных и выходных данных.
На входном слое будет 10724 нейрона в соответствии с сформированным ранее вектором.
Выходными данными нейронной сети в процессе обучения являются категории, к которым принадлежит тендер. Как было упомянуто ранее, уже имеются 303 категории, представленные в виде вектора из 303 элементов. Поэтому на выходном слое сети будет 303 нейрона отвечающих за каждую категорию.
Для вычисления количества нейронов на скрытом слое воспользуемся теоремой Арнольда -- Колмогорова -- Хехт-Нильсен [4]. Для начала вычислим границы количества синаптических связей по следующей формуле (2).
Таким образом число синаптических связей сети для проектируемой сети должно быть между 26316691 и 186556314.
, (2)
где --количество нейронов входного слоя,
- количество нейронов выходного слоя,
Q - количество элементов множества обучающих примеров.
Далее используя следующую формулу (3), вычислим количества нейронов на скрытом слое.
(3)
В результате получим значения от 2386 до 16918. В процессе обучения нейронной сети подберем точное значение количества нейронов на скрытом слое основываясь на точности результатов тестирования.
Итоговая архитектура нейронной сети представлена на рисунке 2.6.
Рисунок 2.6 Архитектура нейронной сети
Спроектирована архитектура нейронной сети. Количество нейронов на входном слое объясняется размером словаря слов из данных о тендере. Размер выходного слоя соответствует количеству категорий, существующих в системе поиска тендеров. Интервал, в которым может быть количество нейронов на скрытом слое будет уточнен в процессе обучения и тестирования сети.
Проектирование архитектуры системы определения категорий тендеров.
Разрабатываемая система призвана стать заменой существующей системе. Она должна взаимодействовать с существующими системами. В системе уже существует модуль для работы с базой данных, однако он реализован на языке PHP, поэтому для работы системы определения категорий будет создан собственный класс работы с базой данных, использующий библиотеку для работы с MySQL -- PyMySQL (рис. 2.7).
Рисунок 2.7 Архитектура системы определния категорйи
Модуль «update_stop_words.py» предназначен для работы со стоп словами. Будет использоваться с помощью командного интерфейса взаимодействия. Модуль «logger.py» используется для ведения записей определения категорий тендеров.
Выводы по главе
В данной главе выполнено формирование выборок данных для обучения и тестирования, произведена отчистка и преобразование в цифровые векторы. Спроектирована архитектура нейронной сети, вычислены возможные значения количества нейронов на скрытом слое. Произведено проектирование системы определения категорий.
Глава 3. Реализация системы определения категорий тендеров
3.1 Реализация методов подготовки данных
В систему для обработки поступает массив данных следующего вида (табл. 3.1).
Таблица 3.1 Входные данные системы
№ |
Переменная |
Тип |
Пример |
|
1 |
Id |
Число |
44326904 |
|
2 |
Name |
Строка |
Оказание услуг по организации и проведению церемонии награждения районной премии "Молодежная премия" |
|
3 |
Subject |
Строка |
Услуги молодежных общественных объединений |
|
4 |
publicationDate |
Строка |
30.04.2019 12:10:00 |
|
5 |
startDocDate |
Строка |
30.04.2019 12:10:00 |
|
6 |
finishDocDate |
Строка |
02.09.2019 09:00:00 |
|
7 |
Price |
Вещественное число |
1 308 450,00 |
|
8 |
allOKDP |
Строка |
94.99.15.110 |
Все вышеперечисленные данные, за исключением уникального идентификатора, необходимо подготовить. Поля «name» и «subject» тендера объединяются в один текст. Далее для него поочередно выполняются следующие действия:
Токенизация - разбиение текста на слова. Для этого можно применить функцию «word_tokenize» из пакета «nltk», однако данная функция выделяет все знаки препинания в отдельные токены, поэтому используем собственный метод - просто разделим текст на слова по знаку пробела. Перед этим удалим из текста знаки пунктуации и прочие знаки, такие как кавычки. Оставим только буквы, цифры и пробелы.
К примеру, тендер с названием «Выполнение работ, связанных с осуществлением регулярных перевозок по регулируемым тарифам на муниципальных маршрутах города Мичуринска Тамбовской области» преобразуется в массив токенов: 'выполнение', 'работ', 'связанных', 'с', 'осуществлением', 'регулярных', 'перевозок', 'по', 'регулируемым', 'тарифам', 'на', 'муниципальных', 'маршрутах', 'города', 'мичуринска', 'тамбовской', 'области'.
Далее удалим стоп слова - слова, не несущие смысловой нагрузки. Для определения таких слов используем общий список стоп-слов русского языка. Он так же доступен в библиотеке «nltk» и включает в себя 151 слово, это предлоги, междометия и вводные слова. Расширим этот список словами, напрямую принадлежащими к предметной области и не несущими смысла для классификации. Это слова «тендер», «извещение» -- большинство не государственных площадок используют слово «извещение» для именования тендеров. В эту же группу попадают слова «аукцион», «закупка», «конкурс», «открытый» (аукцион), «закрытый» (аукцион).
Для дополнительного анализа возможных стоп слов произведем частотный анализ токенов в тренировочной выборке. Самые часто используемые и редко используемые токены так же претендуют на исключение из текстов.
После частотного анализа токенов, выявлено что часто встречаются слова обозначающие единицы измерения: штука, метра, тонна. А также их сокращенные варианты. Добавим их в список стоп слов.
После удаления стоп-слов вышеупомянутый пример названия тендера сократится до следующего вида: 'выполнение', 'работ', 'связанных', 'осуществлением', 'регулярных', 'перевозок', 'регулируемым', 'тарифам', 'муниципальных', 'маршрутах', 'города', 'мичуринска', 'тамбовской', 'области'.
Далее выполним лемматизацию - это приведение слов к их начальной форме, например для существительных это единственное число и именительный падеж. Для выполнения такой операции над русскими словами используем библиотеку «pymorphy2». Применим её метод получения нормальной формы слова к каждому токену. В результате может получиться следующий список: 'выполнение', 'работа', 'связанный', 'осуществление', 'регулярный', 'перевозка', 'регулировать', 'тариф', 'муниципальный', 'маршрут', 'город', 'мичуринск', 'тамбовский', 'область'.
Полученный список можем преобразовать в цифровой вектор. Для этого используется словарь слов. Он был создан на этапе выборки текстовых данных. Словарь имеет размер 10721 токен, каждый его элемент соответствует одному слову, поэтому при конвертации названия тендера в вектор получается вектор такого же размера.
Остальные поля не требуют подобной обработки. Поле «price» уже является числом, поэтому просто добавляется ко входным данным нейронной сети. Из поля даты публикации выбирается месяц публикации. С помощью полей с датами начала и окончания подачи заявок, «startDocDate» и «finishDocDate» соответственно, вычисляется продолжительность проведения тендера в днях.
3.2 Обучение нейронной сети определения категории тендеров
Согласно спроектированной ранее модели, архитектура сети - однослойный персептрон. Число нейронов на скрытом слое должно быть от 2386 до 16918. Для определения точного значения проведем серию экспериментов. Возьмем крайние значения и среднее, т. е. 2386, 16918 и 10845. Обучим нейросеть с такой архитектурой и с помощью проверочной выборки выберем вариант, показывающий наибольшую точность.
Для обучения использован алгоритм обучения с учителем. Тренировочная выборка содержит данные о правильных ответах. Поэтому в процессе обучения нейронная сеть изменяет свои параметры весов нейронов чтобы выдавать верные результаты.
Используя библиотеку «TensorFlow» определим структуру нейросети - укажем 10724 нейрон на входном слое и 303 нейрона на выходном. Зададим один скрытый слой с одним из выбранных ранее количеством нейронов.
Для скрытого слоя в качестве активационной функции можно применить несколько функций: линейная, сигмоида, гиперболический тангенс, ReLu -- Rectified Linear Unit (усеченное линейное преобразование). Для первого обучения используем линейную функцию.
Для выходного слоя укажем активационную функцию «softmax». Она позволит получить результаты в интервале [0,1]. В нашем случае 1 будет обозначать принадлежность к категории.
После обработки обучающей выборки получились следующие значения точности (см. табл. 3.2).
Таблица 3.2 Тестирование нейросети
№ |
Нейронов на скрытом слое |
Точность |
|
1. |
2386 |
0.85 |
|
2. |
10845 |
0.68 |
|
3. |
16918 |
0.63 |
Максимальная точность достигается при числе нейронов 2386 на скрытом слое и равна 85%. Стоит заметить, что существующая система допускает ошибки в 15,9% случаев, т. е. 84,1% верных результатов.
Проведем еще несколько попыток обучения нейросети с использованием различных активационных функций на скрытом слое (табл. 3.3).
Таблица 3.3 Тестирование нейросети
№ |
Функция |
Точность |
|
1 |
Линейная |
0.85 |
|
2 |
Сигмоид |
0.89 |
|
3 |
Тангенс гиперболическая |
0.83 |
|
4 |
ReLu |
0.48 |
Таким образом наивысшая точность была достигнута при использовании активационной функции сигмоида.
Увеличение точности на 5% -- это ежедневное увеличение количества тендеров, которые попадут к поставщикам на 2500 тендеров.
Так же был использован модуль «sklearn» для выполнения аналогичной функции классификации тендеров. Он принимал те же подготовленные данные что и нейронная сеть. Использованы следующие модели и получены результаты точности:
1. Логическая регрессия - точность 0.84
2. Дерево решений - точность 0.71
3. К-ближайших соседей - точность 0.60
4. Линейный дискриминант - точность 0.69
Результаты получились довольно близкими к показателям нейронной сети, но не превосходят её.
3.3 Разработка системы определения категорий
Взаимодействие системы и базы данных реализовано с помощью в классе «db.py». Используется пакет PyMySql для подключения к базе данных MySQL. Класс содержит методы для получения списка тендеров, для которых еще не установлена категория, для получения тендера по уникальному идентификатору, для установки списка категорий для тендера. Так же методы для получения и обновления стоп-слов. Запросы к базе данных выполнены с использованием языка sql.
Создано средство для добавления стоп-слов. Пользователь запускает его из терминала командой «python3 update_stop_words.py». Для внесения новых стоп-слов нужно указать опцию ...
Подобные документы
Разработка алгоритма и программы для распознавания пола по фотографии с использованием искусственной нейронной сети. Создание алгоритмов: математического, работы с приложением, установки весов, реализации функции активации и обучения нейронной сети.
курсовая работа [1,0 M], добавлен 05.01.2013Математическая модель нейронной сети. Однослойный и многослойный персептрон, рекуррентные сети. Обучение нейронных сетей с учителем и без него. Алгоритм обратного распространения ошибки. Подготовка данных, схема системы сети с динамическим объектом.
дипломная работа [2,6 M], добавлен 23.09.2013Этап предварительной обработки данных, классификации, принятия решения. Изображения обучающих рукописных символов, тестового символа. Выход нейронной сети для тестового символа. График тренировки нейронной сети. Последовательность точек. Входные вектора.
статья [245,7 K], добавлен 29.09.2008Математическая модель искусственной нейронной сети. Структура многослойного персептрона. Обучение без учителя, методом соревнования. Правило коррекции по ошибке. Метод Хэбба. Генетический алгоритм. Применение нейронных сетей для синтеза регуляторов.
дипломная работа [1,5 M], добавлен 17.09.2013Изучение и реализация системы, использующей возможности Microsoft Azure для распределенного обучения нейронной сети. Рассмотрение функционирования распределенных вычислений. Выбор задачи для исследования; тестирование данного программного ресурса.
дипломная работа [2,0 M], добавлен 20.07.2015Описание структурной схемы искусственного нейрона. Характеристика искусственной нейронной сети как математической модели и устройств параллельных вычислений на основе микропроцессоров. Применение нейронной сети для распознавания образов и сжатия данных.
презентация [387,5 K], добавлен 11.12.2015Прогнозирование валютных курсов с использованием искусственной нейронной сети. Общая характеристика среды программирования Delphi 7. Существующие методы прогнозирования. Характеристика нечетких нейронных сетей. Инструкция по работе с программой.
курсовая работа [2,2 M], добавлен 12.11.2010Выявление закономерностей и свойств, применимых в искусственной нейронной сети. Построение графиков и диаграмм, определяющих степень удаленности между объектами. Моделирование, тестирование и отладка программной модели, использующей клеточный автомат.
дипломная работа [4,1 M], добавлен 25.02.2015Проектирование экспертной системы выбора нейронной сети. Сущность семантических сетей и фреймов. MatLab и системы Фаззи-регулирования. Реализация программы с использованием пакета fuzzy logic toolbox системы MatLab 7. Составление продукционных правил.
курсовая работа [904,4 K], добавлен 17.03.2016Базовые архитектуры компьютеров: последовательная обработка символов по заданной программе и параллельное распознавание образов по обучающим примерам. Искусственные нейронные сети. Прототип для создания нейрона. Поведение искусственной нейронной сети.
контрольная работа [229,5 K], добавлен 28.05.2010Исследование нечеткой модели управления. Создание нейронной сети, выполняющей различные функции. Исследование генетического алгоритма поиска экстремума целевой функции. Сравнительный анализ нечеткой логики и нейронной сети на примере печи кипящего слоя.
лабораторная работа [2,3 M], добавлен 25.03.2014Модель и задачи искусственного нейрона. Проектирование двуслойной нейронной сети прямого распространения с обратным распространением ошибки, способной подбирать коэффициенты ПИД-регулятора, для управления движения робота. Комплект “LEGO Mindstorms NXT.
отчет по практике [797,8 K], добавлен 13.04.2015Определение прецедентов АИС "Автопарковка". Анализ предметной области. Первоначальная настройка системы администратором. Настройка БД и зеркалирования клиентской базы. Диаграмма последовательности системы. Модель проектирования информационной системы.
курсовая работа [605,8 K], добавлен 06.05.2015Механизм работы нервной системы и мозга человека. Схема биологического нейрона и его математическая модель. Принцип работы искусственной нейронной сети, этапы ее построения и обучения. Применение нейронных сетей в интеллектуальных системах управления.
презентация [98,6 K], добавлен 16.10.2013Прогнозирование на фондовом рынке с помощью нейронных сетей. Описание типа нейронной сети. Определение входных данных и их обработка. Архитектура нейронной сети. Точность результата. Моделирование торговли. Нейронная сеть прямого распространения сигнала.
дипломная работа [2,7 M], добавлен 18.02.2017Оценка предметной области: концептуальные требования; выявление информационных объектов и связей между ними; построение базы данных. Описание входных и выходных данных информационной системы "Магазин компьютерной техники". Анализ диаграммы прецедентов.
курсовая работа [294,8 K], добавлен 13.04.2014Тендер: сущность, цели, виды, задачи, организация их проведения в сети Интернет. Организационно-экономический анализ деятельности Департамента cоциального развития Кировской области, анализ организации и порядок проведения тендера с участием Департамента.
курсовая работа [2,4 M], добавлен 18.09.2014Описание предметной области: работа с данными сети автосалонов. Структурная схема системы. Инфологическая модель: графическая диаграмма и спецификация. Связи между атрибутами сущности. Описание графа диалога системы. Формы входных и выходных сообщений.
курсовая работа [2,0 M], добавлен 21.10.2012Математические модели, построенные по принципу организации и функционирования биологических нейронных сетей, их программные или аппаратные реализации. Разработка нейронной сети типа "многослойный персептрон" для прогнозирования выбора токарного станка.
курсовая работа [549,7 K], добавлен 03.03.2015Нейронные сети и оценка возможности их применения к распознаванию подвижных объектов. Обучение нейронной сети распознаванию вращающегося трехмерного объекта. Задача управления огнем самолета по самолету. Оценка экономической эффективности программы.
дипломная работа [2,4 M], добавлен 07.02.2013