Экспертная система – компьютерная система, способная частично заменить специалистаэксперта в разрешении проблемной ситуации. Фундаментом классической экспертной системы является база знаний – особого рода база данных, разработанная для оперирования знаниями (метаданными).
Она составляется на основе экспертных знаний специалистов. Экспертные знания – это сочетание теоретического понимания проблемы и практических навыков ее решения, эффективность которых доказана в результате практической деятельности экспертов в данной области.
Недостатком классической экспертной системы является тот факт, что во многих случаях даже объединение экспертных знаний нескольких специалистов становится недостаточным для эффективного функционирования системы. Для решения данной проблемы были разработаны самообучающиеся экспертные системы.
Преимущество самообучающихся экспертных систем является способность сохранять и обрабатывать знания, полученные от пользователя, тем самым реагируя на изменения в предметной области.
Далее в данной работе будут подробно рассмотрены самообучающиеся экспертные системы «Акинатор»1 и «20q»2.
Недостатком самообучающейся экспертной системы является необходимость в информации от достаточно большого количества пользователей для эффективного функционирования. Особенно проблематично найти пользователей на первых этапах жизненного цикла, когда система еще недостаточно эффективно работает. Создание же автоматически обучаемой экспертной системы должно решить данную проблему.
Кроме того, в существующих системах генерация вопросов и объектов поиска происходит вручную. Это трудоемкий процесс, не гарантирующий оптимальный результат. С помощью автоматической генерации можно не только ускорить процесс создания вопросов и объектов, но и поддерживать их актуальность.
Для исследования и разработки экспертной системы была выбрана область кинематография. Эта область является неотъемлемой частью жизни человека. И с каждым http://ru.akinator.com/ http://www.20q.net/ годом ее важность все увеличивается и увеличивается. Разработанная система должна решать задачу поиска кинокартины: задавать пользователю вопросы о фильме (в том числе и о сюжете), получать от него ответ и, обрабатывая имеющуюся информацию, выдавать предполагаемое название кинофильма.
Важная особенность данной предметной области заключается в сложности обработки сюжета. Сюжет хранит в себе основную, самую запоминающуюся информацию о фильме, но в открытом доступе не существует подробных описаний сюжетов кинокартин.
Метод экспертных оценок
... области знаний. Применение групповой экспертизы позволяет не только рассмотреть множество аспектов и факторов, но и объединить различные подходы, с помощью которых руководитель находит наилучшее решение. Сущность метода экспертных оценок ... заключительного этапа экспертного оценивания – обработки экспертных оценок. Реферат состоит из введения, трех глав, заключения и списка использованной ...
Целью курсовой работы является исследование и разработка методов построения самообучающейся экспертной системы для поиска кинокартин с автоматической генерацией вопросов.
1 Постановка задачи
Для достижения поставленной цели необходимо разработать экспертную систему, определяющую название кинокартины по ответам пользователя на заданные системой вопросы. Система должна быть автоматизированной, предоставлять пользователю возможность работать в интерактивном режиме. Генерация вопросов должна происходить автоматически, язык вопросов – русский. С помощью созданных вопросов система должна получить возможность узнавать информацию о сюжете кинокартины. Также необходимо создать базу данных существующих фильмов и реализовать функционал, способный автоматически пополнять ее. Система должна иметь возможность дообучения. Также необходимо минимизировать количество вопросов, заданное системой. После реализации данную систему требуется обучить. Для оценки качества работы системы необходимо подготовить тестовый набор и провести тестирование.
2 Обзор существующих решений
Системы, решающие поставленную задачу, должны быть автоматизированы, работать с пользователем в интерактивном режиме и иметь возможность использовать информацию о сюжете.
Системы, решающие данную задачу можно выделить в 3 большие группы:
1. Системы, реализующие поиск в базе данных по заданным значениям
параметров.
2. Системы, являющиеся интерфейсом для общения пользователей и экспертов в
данной области.
3. Экспертные системы.
Рассмотрим данные системы более подробно.
2.1 Системы, реализующие поиск в базе данных по заданным значениям параметров Данные системы предоставляют интерфейс, с помощью которого пользователь передает известную информацию о фильме. Система ищет в базе данных наиболее подходящие под данное описание фильмы и возвращает их пользователю. Как правило, интерфейс таких систем состоит из полей, которые нужно заполнить. Каждое поле соответствует какой-то специфичной информации (например, жанр, имя главного героя, актер, продюсер, режиссер, и т.д.).
Некоторые системы учитывают информацию о сюжете. Например, расширенный поиск сайта «Кинопоиск»3 позволяет искать фильм по заданным терминам. В процессе данного поиска находятся фильмы, краткое описание которых содержит наибольшее количество общих слов с введенным запросом.
Тем не менее, данный метод является не очень продуктивным, так как он не обрабатывает семантику запроса.
Главный недостаток данной системы – неэффективная обработка информации о сюжете. http://www.kinopoisk.ru/s/ Достоинством данного подхода является его полная автоматизация и интерактивная работы с пользователем. Также, в случаях, когда пользователь помнит достаточно информации о самом фильме (актеров, героев, страну производства и т.д.), система показывает хорошее качество работы.
2.2 Системы, являющиеся интерфейсом для общения пользователей и экспертов в данной области Данные системы предоставляют интерфейс, помогающий общаться пользователю и эксперту. Пользователь предоставляет всю известную информацию о фильме эксперту, а тот, в свою очередь, пытается вспомнить фильм. Чаще всего такие системы реализованы в виде форума.
Защита информации в автоматизированных системах обработки данных: ...
... органами. Методы и средства защиты информации Понятие «защита информации в вычислительных системах» предполагает проведение мероприятий в двух взаимосвязанных направлениях: безопасность данных и целостность данных. Безопасность данных связана с их защитой от намеренного разрушения, ...
Достоинство такого подхода заключается в том, что эксперт может вспомнить фильм по очень маленькому описанию, следовательно, такие системы иногда имеют высокое качество обработки информации о сюжете.
Недостаток – человеческие знания сильно ограничены, и практически невозможно знать про все кинокартины. Также недостаток данных систем заключается в том, что они не являются автоматизированными.
2.3 Экспертные системы Существующие экспертные системы не решают узкую задачу поиска кинофильмов. Они ставят перед собой более общую проблему: определение загаданного пользователем объекта по ответам на вопросы об этом объекте. Из-за этого качество работы таких систем при поиске кинофильмов довольно-таки низкое: не все фильмы содержатся в базе данных, да и практически нет вопросов, с помощью которых можно узнать у пользователя о сюжетной линии фильма.
Несмотря на вышеназванные недостатки, подобные системы имеют много преимуществ: автоматическая работа, интерактивный режим с пользователем, использование информации о сюжете.
Пример известных экспертных систем: Акинатор и 20q.
2.4 Выводы
Рассмотренные в обзоре системы имеют как преимущества, так и недостатки. Системы, реализующие поиск в базе данных по заданным значениям параметров не позволяют обрабатывать информацию о сюжете. Системы, являющиеся интерфейсом для общения пользователей и экспертов, не являются автоматизированными. Существующие экспертные системы решают более общие задачи и не являются специализированными в предметной области «Кинофильмы», что отражается на качестве их работы в данной области, так как в базе данных практически не существует вопросов, с помощью которых можно узнать о деталях сюжетной линии фильмов.
Экспертная система, функционирующая в одной предметной области, способна устранить недостатки обобщенных экспертных систем, так как с помощью сгенерированных вопросов система сможет узнать информацию, важную именно для этой предметной области.
3 Исследование и построение решения задачи
Для полного решения поставленной задачи, необходимо решить следующие подзадачи
Провести исследование запросов пользователей. Заполнить базу данных существующими фильмами. Сгенерировать вопросы, с помощью которых можно будет узнавать информацию о
фильме у пользователя. Разработать алгоритм, определяющий вопрос, который будет задан пользователю
на очередной итерации. Разработать алгоритм, определяющий наиболее вероятный фильм,
соответствующий ответам на вопросы. Генерация обучающей выборки. Генерация тестирующей выборки. Провести тестирование реализованной системы.
3.1 Исследование запросов пользователей
Для построения решения поставленной задачи было проведено исследование предметной области. Изучались неформальные русскоязычные запросы на специализированных форумах, в которых пользователи искали фильмы, предоставляя всю известную информацию о них. Были рассмотрены 100 запросов.
Результаты исследования:
- во всех 100 запросах пользователи предоставляли информацию о сюжете;
- в 69 запросах был упомянут жанр фильма;
- 24 раза было сказано о дате просмотра;
- 21 раз фигурировала страна, в которой был снят фильм (в 8 из них пользователь
обобщал информацию, писав, что фильм иностранный); 5 раз пользователь упоминал о каких-то деталях названия кинокартины (название
Биометрические системы контроля доступа
... -фантастический фильм или боевик с потугами на сюжет и интеллектуальность не обходится без той или иной биометрической системы. Ярчайший тому пример — фильмы цикла «Бондиана». В фильмах этого ... вложившие в разработку этих систем огромные, по тем временам, средства, были вынуждены поддерживать дальнейшие работы по совершенствованию технологической и аппаратной частей систем. На середину 80- ...
состоит из одного слова, в названии фигурирует имя главного героя и т.д.); 8 раз пользователь называл актеров, игравших в фильме; ни разу пользователь не предоставлял информацию об именах героях и
длительности фильма; когда пользователю задавали уточняющие вопросы по фильму, он вспоминал
новую информацию.
Используя информацию, полученную в результате исследования, были сделаны выводы о том, какие вопросы необходимо генерировать для более качественной работы системы. В соответствии с результатами исследования, пользователь скорее ответит на вопрос о сюжете, чем на вопрос об имени главного героя или длительности фильма.
В качестве ответа на заданный вопрос пользователь может выбрать один из трех вариантов ответа: «да», «нет», «не знаю».
3.2 Заполнение базы данных фильмами
Для заполнения базы данных фильмами использовался сайт «Кинопоиск». Выбор был продиктован тем, что вышеупомянутый ресурс содержит подробную информацию обо всех кинокартинах мирового кинематографа, и база данных фильмов регулярно пополняется. Информация, полученная с вышеназванного сайта, использовалась как в пополнении базы данных системы, так и в ее дальнейшем обучении.
Процесс пополнения базы данных системы фильмами состоял из извлечения названия фильма с сайта и, собственно, его добавления в базу данных. Извлечение названия было реализовано с помощью применения регулярных выражений к web-страницам, описывающим фильмы.
3.3 Генерация вопросов
Знание метаданных фильма, как показали исследования, может быть очень полезным при функционировании системы. К примеру, жанр фильма знали 69 пользователей из 100. Для автоматической генерации вопросов, с помощью которых система сможет получать информацию о фильме от пользователя, так же, как и в предыдущем пункте, использовались данные с сайта «Кинопоиск». С помощью этого ресурса можно создать вопросы, благодаря ответам на которые система сможет получать информацию не только о фильме в целом, но и о его сюжетной линии.
Каждому фильму на данном сайте соответствует web-страница, содержащая следующую общую информацию (метаданные):
- название;
- год создания;
- страна, в которой фильм снимался;
- режиссер;
- жанр;
- бюджет;
- снимавшиеся актеры;
- и т.д.
Для получения вышеперечисленной информации, необходимо извлечь ее с web-страниц сайта. Требуемый механизм был реализован с помощью регулярных выражений, применяемых к соответствующим страницам сайта. Извлеченная информация сохранялась в базе данных и на ее основе генерировались вопросы. При создании вопросов использовались шаблоны: «Является ли жанр фильма [жанр]?», «Снимался ли [актер] в данном фильме?», «Фильм был снят в [страна]?», и т.д. Вместо слов, заключенных в квадратные скобки, подставлялась соответствующая информация.
Пример вопросов:
«Является ли жанр фильма комедия?» «Снимался ли Юрий Никулин в данном фильме?» «Фильм был снят в России?»
Также метаданные использовались при обучении системы. Подробнее об этом рассказывается в пункте 3.4.
Системы машинного перевода
... переводе, осуществляемом при помощи систем машинного перевода Объект исследования: Проблемы систем машинного перевода Предмет исследования: Системы машинного перевода ГЛАВА 1. МАШИННЫЙ ПЕРЕВОД 1 Машинный перевод Для того, ... ёт произнесённое. Происходит сравнение входных данных с фонологическими моделями, состоящими из большого количества речевых библиотек. Отфильтрованное таким образом, используя ...
Из результатов проведенных исследований были сделаны выводы, что данные о сюжете являются основными данными, которыми располагает пользователь. Для того чтобы система смогла их использовать, необходимо создать вопросы, целью которых является получение информации о сюжете. «Кинопоиск» предоставляет такую возможность.
Каждому фильму на сайте поставлена в соответствие web-страница, содержащая некоторое множество тегов, описывающих сюжетную линию фильма. Каждый тег представляет собой слово и словосочетание. Один и тот же тег может входить в описание нескольких фильмов. Таким образом, используя имеющиеся данные, система имеет возможность, как получить информацию о сюжете фильма, так и определить каким фильмам соответствует какая-то деталь сюжета. Кроме того, информация о соответствии тегов фильмам использовалась при обучении системы (подробнее об этом рассказано в пункте 3.4).
Для каждого существующего тега был сгенерирован вопрос, с помощью которого система может проверить у пользователя, присутствовала ли данная деталь сюжета в фильме. Процесс извлечения тегов происходил с использованием регулярных выражений. Каждый полученный тег сохранялся в базе данных.
При генерации вопросов применялся шаблон: «Присутствует ли в сюжете данного фильма [тег]?», где вместо [тег] подставлялось текстовое представление тега.
Примеры вопросов:
Присутствует ли в сюжете данного фильма оружие? Присутствует ли в сюжете данного фильма похищение людей?
3.4 Определение результата
Для определения наиболее подходящего фильма по уже имеющимся ответам использовался метод машинного обучения (классификация).
В качестве классификатора был выбран наивный байесовский классификатор[1].
Выбор наивного байесовского классификатора был продиктован тем, что он устойчив к ошибочному ответу пользователя на небольшое количество вопросов, так как данный классификатор основан на вероятностной модели. Еще одним преимуществом является возможное дообучение. Это очень важное свойство для данной задачи, так как обучающая выборка, в ходе функционирования системы, будет регулярно пополняться за счет ответов пользователей. Хранение полной обучающей выборки требует много памяти. К тому же, переобучение на всей имеющейся выборке требует большого количества времени.
В качестве признаков, передающихся классификатору, выступали ответы пользователя на вопросы. В ходе классификации не учитывались ответы «не знаю». Это было сделано для того, чтобы отбросить возможный шум и ошибки классификации.
3.5 Генерация обучающей выборки
Обучающая выборка состояла из троек . Каждая такая тройка описывала ответ (Z) пользователя на вопрос (Y) при условии, что он пытается найти фильм (X).
В качестве ответа, как уже было сказано выше, пользователь мог выбрать один из трех вариантов: «да», «нет», «не знаю». Изначально обучающая выборка была сгенерирована автоматически с помощью извлеченной информации с Кинопоиска.
Разработка системы самостоятельных работ и ее комплексного учебно-методического ...
... методических положений, объясняющих разработку средств учебно-методического обеспечения самостоятельной работы. Проектирование учебно-методического обеспечения в системе ... к занятиям, экзаменам, зачетам, выполнения курсовых и дипломных работ (А.Г Молибог); самообразование (С.И. ... -методического обеспечения самостоятельной работы учащихся по специальной дисциплине «Технология одежды» (на примере темы ...
Для генерации выборки, описывающей метаданные фильма, создание таких троек происходило следующим образом. Система по очереди рассматривала все занесенные в базу данных фильмы. Первое поле в тройке (X) соответствовало очередному фильму. Далее, для каждого вопроса Y, связанного с метаданными фильма (жанр, актеры, и т.д.) проверялось, соответствуют ли метаданные фильму X. Если ответ положительный, то поле Z имело значение «да», иначе – «нет».
Генерация выборки, описывающей данные о сюжете фильма, происходила схожим образом. Для каждого фильма X проверялось, соответствует ли тег, порождающий вопрос Y, данному фильму. Единственное различие заключается только в тех выборках, поле Z в которых соответствовало ответу «нет». Было проведено 2 разных обучения: в одном такие ответы учитывались, в другом – нет. Это было продиктовано тем, что некоторые теги, которые в действительность описывают детали сюжета некоторого фильма, могли отсутствовать в списке тегов, соответствующих фильму, на сайте, так как создание тегов происходило вручную, и человек, ставивший соответствие теги фильмам, мог забыть о какой-то детали сюжетной линии. Поэтому были протестированы обе стратегии генерации обучающей выборки. Результаты тестирования описаны в пункте 3.6.
Кроме того, система имеет возможность дообучаться на ответах пользователей, что должно повысить качество классификации.
3.6 Определение очередного вопроса
Для минимизации количества вопросов, заданных пользователю, был использован метод максимальной энтропии (Principle of maximum entropy)[2, 3]. Этот метод позволяет каждый раз задавать вопрос, ответ на который максимально уменьшает энтропию распределения вероятности фильма при известных ответах на вопросы. Таким образом, каждый заданный вопрос будет максимально устранять неопределенность. Данный метод использует вероятностный подход.
3.7 Результаты тестирования
Для оценки качества работы системы было проведено тестирование. В процессе тестирования было определено, насколько сильно на качество работы системы влияют следующие параметры: количество заданных вопросов, общее количество фильмов и вопросов в базе данных, знания пользователя о сюжете.
Также тестирование затрагивало стратегию генерации обучающей выборки: в одном случае в обучающей выборке никак не присутствовала информация о тегах, с которыми не связан сюжет фильма; в другом же случае учитывалась эта информация. Подробнее об этом рассказывается в пункте 3.4.
Процесс тестирования происходил следующим образом. Из базы данных случайно выбирались 100 фильмов. Далее имитировалась работа пользователя, запускающего систему 100 раз и загадывающего каждый раз очередной фильм. При каждом таком запуске система задавала 50 вопросов о загаданном фильме. На каждый загаданный вопрос система получала ответ «да», если соответствующая тройка <�фильм, вопрос, «да»> были в обучающей выборке, сгенерированной с помощью извлечения данных с сайта «Кинопоиск». Если же такой тройки в выборке не было, то система получала ответ «нет». Далее, после 10, 15, 20, 25, 30, 35, 40, 45, 50 заданных вопросов проверялось совпадение загаданного фильма и фильма – результата классификации. Если они совпадали, то результат для текущего количества вопросов увеличивался на единицу. Данные в таблицах – количество правильных отгаданных фильмов из 100 запусков системы.
Использование здоровьесберегающих технологий на х физической ...
... 4.Описать систему работы по применению здоровьесберегающих технологий на уроках физической культуры. 5.Разработать методические рекомендации для учителей физической культуры Новизна опыта, Практическая значимость:, Систему работы 1. Теоретический аспект. Здоровьесберегающие образовательные технологии 1.1 Классификация образовательных технологий Технология - это ...
Таблица 1: Результаты тестирования системы, при отсутствии отрицательных ответов в обучающей выборке
Количество Количество 10 15 20 25 30 35 40 45 50 фильмов вопросов 100 5208 19 25 30 39 43 50 60 67 73 200 7459 16 22 28 32 37 43 52 59 65 300 8965 15 20 22 29 33 40 42 50 58 400 10254 11 16 21 23 29 36 42 45 51 Таблица 2: Результаты тестирования системы при включении отрицательных ответов в обучающую выборку
Количество Количество 10 15 20 25 30 35 40 45 50 фильмов вопросов 100 5208 23 28 35 42 49 53 62 70 79 200 7459 19 24 30 37 41 47 56 64 70 300 8965 18 23 28 33 39 43 45 52 59 400 10254 15 21 25 28 32 39 45 52 57
Для моделирования поведения пользователя, плохо помнившего сюжетную линию фильма, использовалась следующая стратегия ответов на вопросы. На каждый вопрос система с вероятностью 50% получала ответ, который был в обучающей выборке, и с вероятностью в 50% — «не знаю». Таким образом, система получала точные ответы не на все заданные вопросы, что характеризует поведение среднестатистического пользователя, посмотревшего фильм несколько лет назад.
Таблица 3: Результаты тестирования системы при 50% вероятности пропуска вопроса
Количество Количество 10 15 20 25 30 35 40 45 50 фильмов вопросов 100 5208 10 15 17 25 30 33 38 42 45 200 7459 7 9 16 17 25 32 36 42 44 300 8965 6 8 15 18 22 27 30 32 34 400 10254 3 4 8 15 15 20 21 25 26
90
70 Точность, %
50 100
40 200
30
20
0
10 15 20 25 30 35 40 45 50
Количество заданных вопросов
Рисунок 1: Зависимость качества функционирования системы от количества заданных вопросов и количество имеющихся фильмов в базе данных
В соответствии с графиком на рисунке 1, качество работы системы ухудшается с увеличением фильмов в базе данных. Также прослеживается увеличение качества при увеличении количества заданных вопросов. При 100 фильмов в базе данных качество работы при 50 заданных вопросов достигает 79%, а при 10 – всего лишь 23%.
50 Точность, %
30 С обучением на выборке с
отрицательными ответами
С обуением на выборке
без отрицательных ответов
0
10 15 20 25 30 35 40 45 50
Количество заданных вопросов
Рисунок 2: Зависимость качества работы системы от стратегии обучения Данные графика на рисунке 2 приведены для базы данных, включающей 400 фильмов. Видно, что обучение с использованием примеров с отрицательными примерами дает стабильный выигрыш в качестве на 5%-7%.
50 Точность, %
Ответы даны на все
30 заданные вопросы
Ответы на вопросы
давались с 50%
вероятностью
0
10 15 20 25 30 35 40 45 50
Количество заданных вопросов
Рисунок 3: Сравнение результатов работы системы с ответом на все вопросы и с 50% вероятностью пропуска вопроса
Результаты были проведены для случая, когда в базе данных было 400 фильмов, и обучение проводилось на выборке, содержащей отрицательные ответы на вопросы о сюжете. График, изображенный на рисунке 3, подтверждает предположение, что качество работы ухудшается с появлением вопросов, на которых не был дан ответ.
Автоматизированная система работы салона красоты ‘Еstel’
... программа для салона красоты <#"650618.files/image015.gif"> <javascript:void(window.open('/UserFile/Image/Krasota/krasota_1084.jpg','Карточка клиента','resizable=no,location=no,menubar=no,scrollbars=no,status=no,toolbar=no,fullscreen=no,dependent=no,width=782,height=530')>Ведение базы данных клиентов Учет персональных, накопительных и бонусных скидок Учет депозитов клиентов Работа с ...
4 Описание практической части
Был разработан прототип на языке программирования Java.
В качестве библиотеки алгоритмов машинного обучения была использована библиотека Weka[4].
Данная библиотека содержит большое число эффективных реализаций алгоритмов машинного обучения, в том числе наивный Байесовский классификатор.
Для работы с реляционной базой данных была использована библиотека Hibernate. Данная библиотека предоставляет фреймворк для отображения объектноориентированной модели данных в реляционные базы данных.
Для создания веб-интерфейса системы использовалась JSP(JavaServer Pages) технология. Данная технология позволяет создавать Web страницы, содержащие как статические, так и динамические компоненты. JSP является платформонезависимой, переносимой и легко расширяемой технологий для разработки веб-приложений.
4.1 Общая схема работы
В начале работы система предлагает выбрать один из 4 режимов:
Основной режим. Тренировочный режим. Режим добавления вопроса в базу данных. Режим добавления фильма в базу данных.
4.1.1 Основной режим
Схема работы системы в основном режиме:
1. Установление подключения к базе данных. Инициализация данных. Создание
пустого вектора признаков. Загрузка обученной модели. 2. Пока пользователь не остановит программу, или пока не пройдет N итераций,
выполняются пункты 3-5. 3. Из множества всех вопросов, которые еще не были заданы пользователю,
выбирается вопрос с минимальной условной энтропией. Текстовое представление
выводится на экран. 4. Считывается ответ пользователя. Дополняется вектор признаков. 5. Вектор признаков передается классификатору. Результат классификации выводится
на экран. 6. Если в ходе работы системы искомый фильм становится известным, ответы и
искомый фильм сохраняются в базу данных для дальнейшего обучения.
На рисунке 4 отображена схема работы системы в основном режиме.
Инициализация данных
Выбор вопроса
Редактирование вектора
признаков
Классификация
Сохранение выборки
Рисунок 4: Схема работы системы в основном режиме
4.1.2 Тренировочный режим
Схема работы системы в тренировочном режиме:
1. Установление подключения к базе данных. Инициализация данных. 2. Пока в базе данных остались неиспользованные выборки, выполняется пункт 3. 3. Загрузка из базы данных признаков (ответов на вопросы), относящихся к
очередной выборке. Создание вектора признаков с соответствующими
значениями. 4. Передача векторов признаков, полученных в пункте 3, классификатору для
обучения. 5. Сохранение обученной модели.
На рисунке 5 отображена схема работы системы в тренировочном режиме.
Инициализация данных
Создание вектора признаков
Обучение
Сохранение модели
Рисунок 5: Схема работы системы в тренировочном режиме
4.1.3 Режим добавления вопроса в базу данных
Схема работы системы в режиме добавления вопроса в базу данных:
1. Считывание текстового представления вопроса, введенного пользователем. 2. Создание объекта Question с полем name, равным текстовому представлению
вопроса. 3. Сохранение объекта в базе данных.
Разработка автоматизированной информационной системы работы отдела кадров (2)
... данные для решения задач и функций управления. Темой данного курсового проекта является информационная система отдела кадров предприятия. Работа ... отбор нужных данных при приеме на работу, увольнении, составлении отчетов. Основанием разработки послужил ряд ... модель Следующим этапом проектирования базы данных является даталогическое (логическое) проектирование базы данных. Даталогическая модель строится ...
4.1.4 Режим добавления фильма в базу данных
Схема работы системы в режиме добавления фильма в базу данных аналогична работе в режиме добавления вопроса в базу данных. Она состоит из следующих пунктов:
1. Считывание текстового представления фильма, введенного пользователем. 2. Создание объекта Film с полем name, равным текстовому представлению фильма. 3. Сохранение объекта в базе данных.
4.2 Общая архитектура системы
На рисунке 6 представлена диаграмма, описывающая общую архитектуру системы.
Классы система
Библиотека Weka База данных
Servlet + JSP
Рисунок 6: Общая архитектура системы На рисунке 7 представлена диаграмма классов системы.
Learning GuessFilm DataBase
+classify():String +guess(Question, AnswerOnQuestion) +train() +getCurrentFilm():Film
+train()
+appendNewFilm(String)
+appendNewQuestion(String)
+saveSamples(Film)
Films Questions Samples
+appendNewFilm(String):int +appendNewQuestion(String):int
+getNextQuestion(AnswerOnQuestion):Question
Film Question Sample
Рисунок 7: Диаграмма классов системы
AnswerOnQuestion – перечислимый тип. Используется для хранения ответа пользователя на заданный ему вопрос. Возможные значения: «YES» (положительный ответ), «NO» (отрицательный ответ), «DO_NOT_KNOW» (ответ неизвестен).
Класс GuessFlm является основным классом, координирующим работу системы. Он содержит экземпляры классов Learning, DataBase, Questions, Films, Samples. Данный класс определяет режим, в котором должна работать система, и передает управление классу, отвечающему за соответствующий режим. Метод guess(Question, AnswerOnQuestion) сохраняет информацию о том, какой ответ (аргумент типа AnswerOnQuestion) пользователь дал на заданный ему вопрос (аргумент типа Question).
Метод getCurrentFilm():Film возвращает результат классификации. Метод train() производит обучение системы на имеющихся данных. Метод appendNewFilm(String) предназначен для добавления фильма в базу данных. Метод appendNewQuestion(String) используется для добавления вопроса в базу данных. Метод saveSamples(Film) предназначен для сохранения ответа пользователя на вопрос, касающийся определенного фильма.
Класс Learning предназначен для работы системы с библиотекой машинного обучения WEKA. Данный класс содержит методы classify():String для классификации и train() для обучения.
Класс DataBase предназначен для работы системы с реляционной базой данных. Данный класс использует библиотеку Hibernate. В нем существуют методы, позволяющие работать с сущностями Question, Film, Sample. Реализованы методы добавления сущности в базу данных, удаление сущности из базы данных, поиск и извлечение сущностей из базы данных.
Класс Film содержит информацию о фильме. Хранится его идентификационный номер в базе данных, текстовое представление названия фильма и количество запусков системы в основном режиме, в которых данный фильм был искомым.
Класс Films содержит список классов Film, соответствующих всем фильмам, хранящимся в базе данных. Метод appendNewFilm(String):int позволяет добавлять новый фильм, передавая в качестве аргумента текстовое представление названия фильма.
Класс Question содержит информацию о вопросе. Хранится его идентификационный номер в базе данных и текстовое представление вопроса.
Класс Questions содержит список классов Question, соответствующих всем вопросам, хранящимся в базе данных. Метод appendNewQuestion(String):int позволяет добавлять новый вопрос, передавая в качестве аргумента его текстовое представление. Метод getNextQuestion(AnswerOnQuestion):Question возвращает экземпляр класса Question, соответствующий вопросу, который необходимо задать пользователю в соответствии с алгоритмом, описанном в главе 3. Аргумент типа AnswerOnQuestion хранит ответ пользователя на предыдущий вопрос.
Класс Sample содержит информацию об известном ответе пользователя на вопрос. Эта информация необходима для обучения системы. Хранится идентификационный номер в базе данных, идентификационный номер заданного вопроса, идентификационный номер фильма, на вопрос о котором был получен ответ, и, собственно, ответ.
Класс Samples содержит список классов Sample. Данный класс хранит всю имеющуюся выборку.
Заключение
В рамках данной курсовой работы были исследованы методы построения системы для поиска кинокартин. Была разработана самообучающаяся экспертная система для поиска кинокартин с автоматической генерацией вопросов. Она была реализована в виде WEBприложения. Данная экспертная система автоматизирована, работает с пользователем в интерактивном режиме. Реализованная система способна дообучаться на ответах пользователей. Также в данной системе был реализован алгоритм, определяющий очередной вопроса, который необходимо задать пользователю, с помощью которого минимизируется общее количество заданных вопросов. Для автоматического пополнения базы данных фильмов и вопросов был реализован соответствующий функционал, скачивающий необходимую информацию с сайта «Кинопоиск» и использующий регулярные выражения для ее извлечения. Сгенерированные вопросы были на русском языке, с помощью них система может получать информацию о данных двух типов: метаданных и деталях сюжета, что особенно важно для данной предметной области, как показало проведенное исследование неформальных запросов пользователей. Кроме того, в системе была реализована возможность ручного пополнения базы данных фильмов и вопросов. Также были созданы обучающая и тестовая выборка, система была обучена на первой из них. Было проведено тестирование для оценки качества функционирования системы и проанализированы его результаты.
Список литературы
[Электронный ресурс]//URL: https://inzhpro.ru/kursovaya/razrabotka-ekspertnoy-sistemyi/