Программирование - это просто
Advertisement
Главная
04.05.2024 г.
Главное меню
Главная
Интернет магазин
Программные продукты
Биржевые роботы
Искусственный интеллект
Математика и информатика
1С:Предприятие
Уроки C#
Уроки Delphi
Уроки программирования
Web-программирование
Дизайн и графика
Компьютер для блондинок
Исходники
Статьи
Платный раздел
Рассказы про компьютеры
Хитрости и секреты
Системный подход
Размышления
Наука для чайников
Друзья сайта
Excel-это не сложно
Все о финансах
.
Разрабатываем экспертную систему. Урок 15. Улучшаем интерфейс ЭС. Продолжение. Печать E-mail
Автор megabax   
29.05.2021 г.
unit AIObj

Разрабатываем экспертную систему. Урок 15. Улучшаем интерфейс ЭС. Продолжение.

Чтобы смотреть урок полностью, подпишитесь на платный раздел.

В платном разделе статья находиться здесь.


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

...

...

Теперь идем в класс Core, к нему добавляем новое поле study_matrixes:

...

        /// <summary>

        /// Набор обучающих матриц

        /// </summary>

        public List<StudyMatrix> study_matrixes;

...

Раз мы добавили это поле, то придется чуть-чуть изменить конструктор, данный объект нужно создать:

        public Core()

        {

            properties = new List<ObjectProperty>();

            objects = new List<RecognizableObject>();

            init();

        }

Что мы ту добавили? Мы добавили метод init(), который и создаст объект study_matrixes:

        /// <summary>

        /// Инициализация

        /// </summary>

        public void init()

        {

            if (study_matrixes==null) study_matrixes = new List<StudyMatrix>();

        }

Почему так? Дело в том, что у нас класс Core сохраняемый. Мы добавили новое поле, и, как вы думаете, что будет, если мы откроем старый файл, в котором у нас сохранен объект Core? Он нормально прочитается, но study_matrixes будет равно null. Следовательно, после прочтения его нужно создать. В будущем у нас возможно появиться аналогичные поля, которые тоже придется создавать. Разумно объявить для этого отдельный метод, который мы будем вызывать после загрузки, а также в конструкторе, чтобы создать эти поля....

...

...

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

Разрабатываем экспертную систему. Урок 15. Улучшаем интерфейс ЭС. Продолжение.

Можно также и задать признаки, которые показывает, что это не эта болезнь:

Разрабатываем экспертную систему. Урок 15. Улучшаем интерфейс ЭС. Продолжение.

Еще у нас в постановке звучало такое требование, чтобы нельзя было ввести один и тот же признак дважды. Можно конечно, сделать простой поиск, но что если пользователь один введет признак: "Угнетенное или подавленное состояние" а второй раз сделает ошибку и введет, например "Угнетенное или подавленное состояние". Компьютер пропустит это. Как быть? Над придумать способ приближенного поиска по тексту, и если компьютер нашел что-то похожее, просто выводить предупреждение, а если нашел точное соответствие - не давать вводить. Эту задачу мы решим на следующем уроке.


Скриншоты, помеченные знаком *, являются цитатами и иллюстрациями  программного продукта "Microsoft Visual Studio 2010 Professional", авторское право на который принадлежит корпорации Microsoft.. 


 
Пред. »
 
© 2024 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги