Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Моделирования человеческих рассуждений 2 Структура данных мысли.

Лекция



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

Начнем с нуля. У нас пока вообще нет никакой информации в БД. Совсем. Наш мозг чист как у младенца. 
Все что у нас есть это программа обработчик БД (она же оболочка чат-бота, она же ядро ИР).

(небольшое отступление: как я уже предупреждал, пока у нас ничего сложного нет. Информация вводится вручную на "внутреннем языке" обрабатывается оболочкой и заносится в БД/извлекается из БД, выводится на экран.)

Вводим первое предложение:

"Лев находится в клетке." 
поскольку это на "внутреннем языке", то выглядеть это будет так: 
(ОБЪЕКТ)->[ПРОЦЕСС]->ДА->(ОБЪЕКТ)

Напомню: 
Это не речь! Это мысль. Значит это не слова, а образы. 
Объект в круглые скобки. 
Процесс в квадратные. 
Да - связь положительная (лев действительно там находится) 
Пока все. То есть мы вводим инфу в бота так, как она будет хранится. 
(причем хранится она будет возможно даже проще чем мы вводим) 
Все "привязки"/переводчики и пр. ПОТОМ. Сейчас нам главное понять КАК оно хранится? КАК с этим работать?

(ЛЕВ)->[НАХОДИТСЯ]->ДА->(КЛЕТКА) 
Теперь картиночки: 
Моделирования человеческих рассуждений 2 Структура данных мысли. 
На картиночке изображено: 
1. Лев 
2. Клетка 
3. Связь через "узелок" (это значит связь объект-процесс) 
4. "Представление" как человек это представляет. Для чат-бота это "представление" пока не нужно. Изображено для понимания людьми.

И так смотрим по БД: 
1. (ЛЕВ) 
У нас есть в БД образ ЛЕВ? (ответ НЕТ, т.к. БД - пуста) 
Значит заносим этот образ в БД. 
2. (КЛЕТКА) 
У нас есть в БД образ КЛЕТКА? (ответ НЕТ, у нас там кроме ЛЕВ ничего пока нет) 
3. [НАХОДИТСЯ] 
У нас есть процесс находится? (ответ НЕТ, у нас вообще пока ни одного процесса в БД нет) 
Теперь можно наполнять БД.

Какой будет структура БД сейчас не важно (у меня есть несколько мыслей по поводу, но это позже) сейчас чем проще, тем лучше.

Представьте себе таблицу типа Exсel из нескольких ячеек. 
в одну пишем - "ЛЕВ" (просто слово из букв) 
во вторую - "НАХОДИТСЯ"  (просто слово из букв) 
в третью - "КЛЕТКА" 
в четвертой связь - да/нет или 1/0 
ВСЕ! Связь занесена в БД. 
Теперь как с ней работать?

Вводим: Лев находится в клетке?

Вспоминаем/изучаем "внутренний язык": 
(ЛЕВ)->[НАХОДИТСЯ]->?->(КЛЕТКА) 
В таблице у нас: 
Моделирования человеческих рассуждений 2 Структура данных мысли. 
Начинаем проверки: 
1. (ЛЕВ) 
У нас есть в БД образ ЛЕВ? (ответ ДА) Мы пока ничего не знаем что/кто такой лев? Как выглядит и пр. 
Это не важно. Есть ОБРАЗ - ПОНЯТИЕ "ЛЕВ". Значит с ним уже можно работать. 
2. (КЛЕТКА) 
У нас есть в БД образ КЛЕТКА? (ответ ДА) 
3. [НАХОДИТСЯ] 
У нас есть процесс находится? (ответ ДА) 
4. ? 
У нас есть связь между (ЛЕВ), (КЛЕТКА) и [НАХОДИТСЯ]? (ответ ДА) 
Связь положительна? Смотрим по таблице: 
Моделирования человеческих рассуждений 2 Структура данных мысли. 
Ответом на вопрос (ЛЕВ)->[НАХОДИТСЯ]->?->(КЛЕТКА) 
Будет содержимое ячейки D.

На какие вообще вопросы мы можем ответить? 
Вот список: 
1. Кто находится в клетке? 
2. Где находится лев? 
3. Что делает лев в клетке? 
4. Лев находится в клетке или нет?

1.  (?)->[НАХОДИТСЯ]->ДА->(КЛЕТКА) 
2.  (ЛЕВ)->[НАХОДИТСЯ]->ДА->(?) 
3.  (ЛЕВ)->[?]->ДА->(КЛЕТКА) 
4.  (ЛЕВ)->[НАХОДИТСЯ]->?->(КЛЕТКА)

Смотрим по БД: 
Моделирования человеческих рассуждений 2 Структура данных мысли. 
Ответы:

1. Содержимое ячейки А 
2. Содержимое ячейки С 
3. Содержимое ячейки В 
4. Содержимое ячейки D

Попробуем добавить данных в нашу "базу знаний": 
Введем: "Человек -  млекопитающее." 
Это обычная связь "понятие"-это-"понятие", связь "верхнего уровня". Смысл этой связи определяется словами: является, это, равно. (А=В) 
Работать с ней черезвычайно просто, так как это "общие понятия" ни к чему особенному не обязывающие. Однако в отличае от ИР (чат-бота) у человека, создание "понятия" идет "снизу-вверх" после анализа большого количества "конкретных объектов" у них выделяются "общие характеристики" и они объединяются в группу - "понятие". Мы же СРАЗУ получив неизвестный объект создаем группу (понятие) для упрощения системы. Т.е. "сверху-вниз".

(ЧЕЛОВЕК)<-ДА->(МЛЕКОПИТАЮЩЕЕ)

Смотрим на схемку: 
Моделирования человеческих рассуждений 2 Структура данных мысли.  
Не много что изменилось, верно? 
Все же попробуем "поработать" с этими данными. На какие вопросы мы можем ответить? 
Человек млекопитающееся? 
(ЧЕЛОВЕК)<-?->(МЛЕКОПИТАЮЩЕЕ) 
Кем является человек? 
(ЧЕЛОВЕК)<-ДА->(?) 
Какие млекопитающие вам известны? 
(?)<-ДА->(МЛЕКОПИТАЮЩЕЕ) 
Знаете ли вы еще какие-то виды млекопитающих, кроме ЧЕЛОВЕКа? (Ответ: НЕТ) 
(?)/(ЧЕЛОВЕК)<-?->(МЛЕКОПИТАЮЩЕЕ) 
Какие еще виды млекопитающих, кроме ЧЕЛОВЕКа вам известны? (Ответ: НЕТ ) 
(?)/(ЧЕЛОВЕК)<-ДА->(МЛЕКОПИТАЮЩЕЕ)

Вводим строку. "Слон млекопитающее." 
(СЛОН)<-ДА->(МЛЕКОПИТАЮЩЕЕ) 
Все аналогично примеру с человеком, за исключением: 
Знаете ли вы еще какие-то виды млекопитающих, кроме ЧЕЛОВЕКа? 
(?)/(ЧЕЛОВЕК)<-ДА->(МЛЕКОПИТАЮЩЕЕ) (Ответ: ДА) 
Какие еще виды млекопитающих, кроме ЧЕЛОВЕКа вам известны? (Ответ: СЛОН ) 
(?)/(ЧЕЛОВЕК)<-ДА->(МЛЕКОПИТАЮЩЕЕ)

Какие млекопитающие вам известны? 
(?)<-ДА->(МЛЕКОПИТАЮЩЕЕ) 
смотрим схемку: 
Моделирования человеческих рассуждений 2 Структура данных мысли.  
На этот вопрос мы не можем ответить, так как у нас развилка! 
То есть ответ более чем 1. Значит в качестве ответа выдаем список. 
(?)<-ДА->(МЛЕКОПИТАЮЩЕЕ) 
(СЛОН)/(ЧЕЛОВЕК)<-ДА->(МЛЕКОПИТАЮЩЕЕ) 
(Но для ИР конечно логичным было бы выдать ответ: Я знаю НЕСКОЛЬКО млекопитающих. И после уточнения (Перечисли их) уже тогда выдавать список, но я думаю это мелочь, которой можно и принебречь)

Теперь самое главное, то о чем я твержу с самого начала. Это связи и путь. 
В предыдущей схеме мы впервые встретились с неоднозначностью ответа. То есть у нас на "пути" оказалась "развилка". Значит СТОП. Куда идти? Как правильно выбрать направление пути? Какой ответ правильный? 
В выше приведенном примере оба ответа верны. Но это ведь еще и не путь... Путь - это длинная цепочка размышлений для поиска ответа. И чем длиннее цепочка, тем сложнее путь, а значит больше встретится на пути ветвлений.

Добавим в нашу схему например корову. Просто объект корова:

(КОРОВА)

То есть та же ситуации, что и со львом. Мы понятия не имеем что такое корова, чем занимается, как выглядит и пр. 
Нам главное, можем ли мы работать с нею? 
Смотрим на схему: 
Моделирования человеческих рассуждений 2 Структура данных мысли. 
Ни к корове, ни от коровы мы не видим никаких "соединительных линий". Что толку от бензозаправки, которая находится на необитаемом острове? Как туда проехать на машине? Ответ НИКАК. 
Без "пути" добраться до объекта КОРОВА просто невозможно. Об этом говорит сайт https://intellect.icu . Объект есть, но вот использовать его НЕЛЬЗЯ, так как он не имеет связей с "внешним миром" (то есть данными) он просто изолирован внутри нашей БД.

Забудем пока о корове и пойдем дальше. 
Вводим вопрос: "Человек живой организм?" 
(ЧЕЛОВЕК)<-?->(ЖИВОЙ ОРГАНИЗМ) 
Это вопрос а не утверждение! 
Смотрим по БД есть у нас такое понятие "ЖИВОЙ ОРГАНИЗМ"? Ответ - НЕТ. 
Соответственно мы не можем ответить на этот вопрос (Ответ: НЕ ЗНАЮ) 
И... Поступаем так же как с КОРОВОЙ, то есть заводим "изолированную ячейку" помещаем туда наше новое понятие, а в "буфер нерешенных задач" помещаем задачу №1 поиск ответа на вопрос: (ЧЕЛОВЕК)<-?->(ЖИВОЙ ОРГАНИЗМ). (об этом подробнее в немного позже)

Не будем мучить бота :))) Введем ему ответ и заодно пополним ему БД введя сразу несколько фраз: 
"Слон - животное." 
" Животные- живые организмы" 
"Человек - живой организм" 
"Лев - животное"

(СЛОН)<-ДА->(ЖИВОТНОЕ) 
(ЛЕВ)<-ДА->(ЖИВОТНОЕ) 
(ЖИВОТНОЕ)<-ДА->(ЖИВОЙ ОРГАНИЗМ) 
(ЧЕЛОВЕК)<-ДА->(ЖИВОЙ ОРГАНИЗМ)

Смотрим на схемку, что у нас получилось? 
Моделирования человеческих рассуждений 2 Структура данных мысли.

Это называется "гроздь". Выборка связей связанных общей темой. 
Пробуем работать со схемой: 
(ЧЕЛОВЕК)<-?->(ЖИВОЙ ОРГАНИЗМ) Человек это живой организм? 
(ЧЕЛОВЕК)<-?->(МЛЕКОПИТАЮЩЕЕ)Человек это млекопитающее? 
Тут пояснений не нужно. Всего лишь проверка положительная ли связь. 
(поскольку у нас в БД пока нет отрицательных связей, ответ тоже положительный) 
(ЧЕЛОВЕК)<-?->(ЖИВОТНОЕ)Человек это животное? 
Связи "человек-животное" нет. Отрицательной связи "человек НЕ животное" тоже нет, значит ответ "НЕ ЗНАЮ". Аналогично и для льва: 
(ЛЕВ)<-?->(МЛЕКОПИТАЮЩЕЕ)Лев это млекопитающее? НЕ ЗНАЮ 
Здесь уже знакомое нам: 
(СЛОН)<-?->(МЛЕКОПИТАЮЩЕЕ)Слон это млекопитающее? ДА 
(ЛЕВ)<-?->(ЖИВОТНОЕ)Лев это животное? ДА 
(СЛОН)<-?->(ЖИВОТНОЕ)Слон это животное? ДА 
Теперь чуть сложнее: 
(СЛОН)<-?->(ЖИВОЙ ОРГАНИЗМ) Слон это живой организм? 
(ЛЕВ)<-?->(ЖИВОЙ ОРГАНИЗМ) Лев это живой организм? 
У нас нет связей: "слон-живой организм" и "лев-живой организм". 
Поэтому прямая сверка выдает отсутствие связи. Но у нас есть связь через связь. 
То есть решение идет в два этапа: 
слон-животное. животные-живые организмы. 
(А=В, В=С следовательно А=С) 
Слон живой организм. потому что слон животное, а животные это живые организмы. (см. Почему?) 
(ЛЕВ)<-ДА->(?)Кем является Лев? ЖИВОТНОЕ 
Это уточнение объекта. Ответ выдать объект на который указывает связь. 
(ЧЕЛОВЕК)<-ДА->(?)Кем является человек? 
У нас развилка. Связей в БД несколько. Тут существует несколько вариантов. 
Например выдать весь список связей. Но таких связей может быть ОЧЕНЬ много. 
Критерием для такого ответа может быть количество связей (например если связей не больше трех выдавать в ответ список, иначе переспрашивать "в смысле?") 
Либо выдавать в ответ первую связь. При повторном вопросе (а кем еще является человек?) выдавать вторую связь и т.д. Либо вообще не выдавать ответ а переспрашивать: "Я знаю несколько ответов на этот вопрос, уточните что именно вас интересует?" 
(КЛЕТКА)<-?->(МЛЕКОПИТАЮЩЕЕ) НЕ ЗНАЮ 
(КЛЕТКА)<-?->(ЖИВОЙ ОРГАНИЗМ) НЕ ЗНАЮ 
(КЛЕТКА)<-?->(ЖИВОТНОЕ) НЕ ЗНАЮ 
(КЛЕТКА)<-?->(ЧЕЛОВЕК) НЕ ЗНАЮ 
(КЛЕТКА)<-?->(СЛОН) НЕ ЗНАЮ 
Отсутствие связей это всегда ответ НЕ ЗНАЮ. Ответ ДА или НЕТ, дается только в случае если такая связь существует (положительная или отрицательная). 
(КЛЕТКА)<-?->(ЛЕВ)НЕ ЗНАЮ 
Напомню еще раз, про то, что связи типа "лев-животное" это упрощенная запись. 
На самом деле полная запись: Лев-это-животное. Связей объект-объект в природе не существует вообще.  Следовательно Лев и животное связаны через понятие "это". А вот лев и клетка связаны через понятие "находится". Это разные понятия и разные пути. 
Лев это клетка? НЕ ЗНАЮ. 
Клетка это лев? НЕ ЗНАЮ 
Так как у нас нет таких связей, а выводы нам пока делать не из чего. (связей мало) 
Мы еще вернемся к этим вопросам позже. 
А пока вернемся к самому началу: 
(ЛЕВ)->[НАХОДИТСЯ]->?->(КЛЕТКА) Лев находится в клетке? ДА 
2.  (КЛЕТКА)->[НАХОДИТСЯ]->?->(ЛЕВ) Клетка находится в льве? НЕ ЗНАЮ 
Связь однонаправленная. Нам известно, что лев находится в клетке но обратное значение нам неизвестно. 
(СЛОН)->[НАХОДИТСЯ]->ДА->(КЛЕТКА)НЕ ЗНАЮ 
(ЧЕЛОВЕК)->[НАХОДИТСЯ]->ДА->(КЛЕТКА)НЕ ЗНАЮ 
Это нам уже знакомо. 
Теперь вопросики посложней: 
(?)<-ДА->(ЖИВОТНОЕ) 
Знаете ли вы какое нибудь животное? 
Но мы знаем несколько животных (см. предыдущий пример) выдаем список если знаем меньше трех, иначе говорим: "Я знаю МНОГО животных" и перечисляем их только если нас об этом попросят. 
(?)<-ДА->(ЖИВОЙ ОРГАНИЗМ) 
Знаете ли вы какие нибудь живые организмы? 
Уже привычная нам вилка, ответ: человек, животные 
Можно писать сразу так: 
(?)/(?)<-ДА->(ЖИВОЙ ОРГАНИЗМ) 
Будет звучать как: Перечислите все живые организмы которые вам известны.

Для "отладки" и для осмысления: 
1. Все связи поданные на вход - "горизонтальные" 
2. Связь: ЖИВОЙ ОРГАНИЗМ - ЖИВОТНОЕ - СЛОН. является "вертикальной" 
Чем "выше" тем более общими становятся понятия, чем "ниже" тем более конкретными. 
3. Связи для "верхних" актуальны для "нижних". Но связи "нижних" НЕ имеют значения для верхних. Т.к. это частный случай. (Как там у вас называется? Дочерние процессы. Предки/потомки - наследственность)

Добавим еще один процесс: 
Слон ест яблоки. 
(СЛОН)->[ЕСТ]->ДА->(ЯБЛОКИ)

Моделирования человеческих рассуждений 2 Структура данных мысли. 
Как и в предыдущих примерах, добавление нового процесса не имеющего связей, не дает нам возможности ответить на те вопросы, которые требуют наличия этих связей. 
Например: 
Человек ест яблоки? 
Лев ест яблоки?

ОБРАЗЫ-СИНОНИМЫ (не путать со словами-синонимами) 
Сейчас нам нужен просто абстрактный пример синонима образа, пусть это будет синоним образа "слон" написанный английскими буквами - elephant, чтобы легко отличить эти два образа. 
(К языку это не имеет отношения, просто так легче понять)

Введем данные: 
ELEPHANT это СЛОН. 
(ELEPHANT)<-ДА->(СЛОН) 
Это двунаправленная связь. То есть по просту: А=В, значит В=А 
elephant имеет хобот 
(ELEPHANT)->[ИМЕЕТ]->ДА->(ХОБОТ)

Моделирования человеческих рассуждений 2 Структура данных мысли.

Что теперь мы имеем? Создаем ХОБОТ, протягиваем связь. Создаем ELEPHANT, протягиваем связь. 
Связь ELEPHANT - СЛОН является горизонтальной! Это равносильно утверждению ELEPHANT = СЛОН. 
Значит все связи для СЛОН актуальны и для ELEPHANT.

САМОПОСТРОЕНИЕ СВЯЗЕЙ

Вспомним наши данные о слоне: 
(СЛОН)<-ДА->(ЖИВОТНОЕ) 
Слон это животное 
(СЛОН)<-ДА->(ЖИВОЙ ОРГАНИЗМ) 
Слон это живой организм 
(СЛОН)<-ДА->(МЛЕКОПИТАЮЩЕЕ) 
Слон это млекопитающее 
(СЛОН)->[ЕСТ]->ДА->(ЯБЛОКИ) 
Слон ест яблоки 
Но поскольку ELEPHANT = СЛОН 
(ELEPHANT)<-ДА->(СЛОН) 
Мы можем сразу подставить ELEPHANT вместо СЛОН и получить необходимые нам связи: 
(ELEPHANT)<-ДА->(ЖИВОТНОЕ) 
Слон это животное 
(ELEPHANT)<-ДА->(ЖИВОЙ ОРГАНИЗМ) 
Слон это живой организм 
(ELEPHANT)<-ДА->(МЛЕКОПИТАЮЩЕЕ) 
Слон это млекопитающее 
(ELEPHANT)->[ЕСТ]->ДА->(ЯБЛОКИ)

А кроме того на вопрос: 
Слон имеет хобот? 
(СЛОН)->[ИМЕЕТ]->?->(ХОБОТ) 
Мы можем ответить ДА. (поскольку ELEPHANT = СЛОН) 
(СЛОН)->[ИМЕЕТ]->ДА->(ХОБОТ)

Моделирования человеческих рассуждений 2 Структура данных мысли.

Все полученные связи на рисунке я выделил зеленым цветом.

Еще вопрос: 
Лев имеет хобот? 
И вновь смотрим по дереву: ЛЕВ и СЛОН (который еще и ELEPHANT) в разных ветках. Значит мы не можем ответить на этот вопрос. 
Или НЕТ или НЕ ЗНАЮ. (связь отсутствует)

ОТРИЦАТЕЛЬНЫЕ СВЯЗИ

Введем: Лев НЕ ест яблоки. 
(ЛЕВ)->[ЕСТ]->НЕТ->(ЯБЛОКИ) 
Отрицательная ветвь знаний не хранится. (Но хранится метка "отрицательной зоны") 
Это значит, что это тупик. Конец пути. 
То есть, на вопрос: Лев ест красные или зеленые яблоки? Ответ искаться не будет, встретив на пути "Лев НЕ ест яблоки" на этом весь процесс поиска пути прекращается. 
Не важно каким был вопрос, ответом будет отрицательная связь: "Лев НЕ ест яблоки".

Итак, продолжим. 
Будем добавлять новую информацию, но не будем добавлять новые объекты/процессы. Нас в основном интересует принцип образования новых связей. Добавляем:

Человек ест яблоки. 
(ЧЕЛОВЕК)->[ЕСТ]->ДА->(ЯБЛОКИ) 
Человек ест животных. 
(ЧЕЛОВЕК)->[ЕСТ]->ДА->(ЖИВОТНЫЕ) 
Лев ест все живые организмы. 
(ЛЕВ)->[ЕСТ]->ДА->(ЖИВЫЕ ОРГАНИЗМЫ)

Устанавливаем необходимые связи. (на картинке связи выделил синим цветом, что бы не путать виды связей, стрелки это направление соединений). Картинка приобретает вот такой вид:

Моделирования человеческих рассуждений 2 Структура данных мысли.

А с учетом "самопостроенных связей", такой:

Моделирования человеческих рассуждений 2 Структура данных мысли.

А теперь внимательно смотрим на картинку и пытаемся ответить на вот такие вопросы: 
1. Лев ест яблоки? (переключатель в положении НЕТ) 
2. Яблоко ест человека? 
3. Лев ест человека? 
3. Лев ест слона? 
4. Лев ест льва? 
5. Лев ест млекопитающих? 
6. Человек ест слона?

Учитываем наличие соединений или их отсутствие и направление (стрелочки) соединений. 
Если все по схеме все понятно, перейдем к следующей части, более сложной. 
Вся эта схема пока не выходит за рамки традиционного ИИ (вспомним китайскую комнату). Для создания Разума этого маловато. 
Поэтому рассмотрим чуть более сложные примеры:

ЛОГИКА

7. Животные едят яблоки?

Здесь цепочка окажется немного длиннее. 
1. Животных мы знем несколько - СЛОН (который еще и ELEPHANT к тому же), ЛЕВ. 
2. Слон ЕСТ яблоки. 
3. Лев НЕ ЕСТ яблоки. 
Получилась щекотливая ситуация, и ДА и НЕТ - ОДНОВРЕМЕННО. Развилка. 
Взаимоисключающие связи. Какой дать ответ? 
Поэтому и ответ должен быть двойной: 
ДА, НЕКОТОРЫЕ животные едят яблоки. и Некоторые животные НЕ едят яблоки. 
А после уточнения (Какие ИМЕННО животные едят яблоки?) Выдавать список яблокоедящих животных.

8. Животные едят человека?

Принцип тот же: 
Слон ЕСТ человека? Нет такой связи. НЕИЗВЕСТНО. 
Лев ЕСТ человека? Нет такой связи. НЕИЗВЕСТНО. 
Нужно строить путь: 
Что нам известно? 
Слон ЕСТ яблоки. 
Но Слон это еще и ELEPHANT! 
ELEPHANT ест человека? 
Нет такой связи. НЕИЗВЕСТНО. 
лев ЕСТ все живые организмы. 
Человек это яблоко? НЕТ. Отпадает. 
Человек - живой организм? ДА. 
Значит: 
Лев - ЕСТ человека. 
Подытожим: 
Мы знаем несколько животных: 
ЛЕВ, СЛОН (он же ELEPHANT) 
Слон (он же  ELEPHANT)  ЕСТ человека? Нет такой связи. НЕИЗВЕСТНО. 
Лев - ЕСТ человека. 
Вывод: 
ДА, НЕКОТОРЫЕ животные едят человека. 
На уточняющий вопрос КАКИЕ ИМЕННО - ответ ЛЕВ.

КОНТРОЛЕР правильная/неправильная мысль

Любые данные поступившие на вход системы проверяются (сравниваются с уже ИМЕЮЩИМИСЯ данными ). 
То, что внутри БД имеет коэфициент надежности источника полученных данных. (например: Энциклопедия вполне надежный источник данных, учебник физики - то же заслуживает доверия, а вот собеседник-тролль такого доверия не вызывает.)

И так на входе новая информация:

Лев сидит в клетке и ест яблоко. 
Разбиваем на две отдельных мысли: 
Лев сидит в клетке. 
Лев ест яблоко.

см по схеме: Лев сидит в клетке (уже известная нам информация) и ест яблоко. 
СТОП! Лев не ест яблоки. ВЫХОД. 
НЕВЕРНАЯ ИНФОРМАЦИЯ: Лев не ест яблоки.

Парадоксы

Введем фразу: 
Человек не ест львов. (строим необходимые связи) 
Смотрим внимательно на схему:

Моделирования человеческих рассуждений 2 Структура данных мысли.

У нас получается парадокс: 
Человек ест животных. 
Лев - животное. 
Человек не ест львов.

На самом деле, ничего страшного нет. Это просто ИСКЛЮЧЕНИЕ. 
Человек ест животных. (но) Человек не ест львов. 
ИСКЛЮЧЕНИЕ - это правка БД. 
Изменение ошибочных/несколько-смысленных/неосмысленных знаний при поступлении новой информации. 
Нечеткая логика допускает исправление любой информации. Изначально подразумевается что данные неполны/неточны/могут быть изменены. Основная суть: 
> Человек ест животных. 
> Человек не ест львов 
остается, но при добавлении новой информации: 
>Лев - съедобен. 
Появляется (в БД) новая развилка (уточнение, читай: ИСКЛЮЧЕНИЕ) 
> Человек (обычно) не ест львов (но) 
>Лев - съедобен. 
Следовательно, в исключительных случаях льва сожрать таки можно.

Общее и конкретное

Добавим в нашу модель: 
Слон ВАСЯ ест [только] ЗЕЛЕНЫЕ яблоки.


(СЛОН)->[ЕСТ]->ДА->(ЯБЛОКИ)                            
    |                      |            | 
(ВАСЯ)      [но только]->|зеленые|

Моделирования человеческих рассуждений 2 Структура данных мысли.

Прежде всего вернемся сюда: http://www.gamedev.ru/community/ir/articles/?id=4809 
и еще раз глянем на схему "формирования образов". 
И так, "общее" становится "конкретным" только после "уточнения". 
ЯБЛОКО это просто класс объектов. Понятие. Общее представление. 
"Зеленое яблоко" - подкласс (класса ЯБЛОКО) имеющий параметр цвет - зеленый. Уже более точное определение, но все еще "слишком" общее представление. 
А вот "то самое, зеленое, кислое яблоко, которое я сорвал у соседа на даче..." - уже будет конкретным объектом. 
Поэтому, для указания конкретности (точность) объекта используются дополнительные привязки (уточнение).

В данном примере: 
Слон имеет кличку ВАСЯ (это конкретизирует объект "просто" СЛОН становится "конкретным" - "СЛОН-ВАСЯ" 
(Васи не обижайтесь пожалуйста, я просто не знаю какие клички дают слонам, а Вася Пупкин имя нарицательное) 
И так, все (общие) свойства класса СЛОН так же принадлежат и (конкретному) СЛОНУ-ВАСЕ. 
Однако, некоторые (уточнение/исключение) могут отличаться. В данном случае, СЛОН-ВАСЯ ест ТОЛЬКО зеленые яблоки (что и отличает его от других СЛОНов), но (так же как и другие СЛОНы и ELEPHANTы) СЛОН-ВАСЯ имеет хобот, является животным/млекопитающимся, может быть съеден львом и т.д.

 

Хочу обратить внимание на два момента. 
1. Если ввести дополнительно характеристики яблока - кислое/сладкое/невкусное и т.д. это никак не повлияет на СЛОНа-ВАСЮ, так как у нас жестко задано, что именно он ест. Но, если ввести данные "повыше" (слоны едят только сладкие яблоки) то соответственно и СЛОН-ВАСЯ "откажется" от зеленых, но при этом кислых яблок. И соответственно, если ввести данные: "Слон ВАСЯ ест только зеленые и сладкие яблоки", это никак не повлияет на выбор остальных слонов. 
2. Недостаток информации, нормальное "состояние" системы. 
Что было бы, если бы мы не вводили "Яблоки бывают желтые, зеленые и красные", а  сразу ввели "Слон ВАСЯ ест только зеленые яблоки"? Ничего страшного бы не произошло. Просто у нас появилась бы "развилка" с "неопределенными параметрам". "Слон ВАСЯ ест только зеленые яблоки", но КАКИМИ бывают яблоки мы не знаем. 
Поэтому для ответа на вопрос: "Вася съест красное яблоко?" Нам необходимо узнать что такое КРАСНОЕ? 
При отсутствии "понятия" ЦВЕТ мы не сможем ответить на этот вопрос.

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

Ответы на вопросы для самопроверки пишите в комментариях, мы проверим, или же задавайте свой вопрос по данной теме.

создано: 2014-09-23
обновлено: 2024-11-14
261



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей

Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Моделирование мыслительных процессов на естественном языке и Символьное моделирование

Термины: Моделирование мыслительных процессов на естественном языке и Символьное моделирование