Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Разное
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 15.07.2009, 12:55
][or ][or вне форума
Прохожий
 
Регистрация: 08.07.2009
Сообщения: 8
Репутация: 10
По умолчанию Искусственный интеллект...

Думаю, почти каждый пробовал сделать свой "искусственный идиот"... Вот и я собрался. Куча мыслей, идей... Но с нуля никогда ничего не пишу - у кого что есть, алгоритмы, исходники, идеи: я вас жду Да, программы-болталки я уже изучил, они идут прямиком в dev/null
Ответить с цитированием
  #2  
Старый 15.07.2009, 13:41
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

Цитата:
Сообщение от ][or
...Но с нуля никогда ничего не пишу...
Очень радостное известие...
Ответить с цитированием
  #3  
Старый 15.07.2009, 19:38
][or ][or вне форума
Прохожий
 
Регистрация: 08.07.2009
Сообщения: 8
Репутация: 10
По умолчанию

У меня нет желания изобретать велосипед... Если у тебя другое мнение - ради бога...
Ответить с цитированием
  #4  
Старый 18.07.2009, 02:14
][or ][or вне форума
Прохожий
 
Регистрация: 08.07.2009
Сообщения: 8
Репутация: 10
По умолчанию

...судя по хвосту и лапам, будем все таки с нуля. В общем идея такова: слово мы понимаем только когда есть ассоциации. То есть, когда слово имеет связи... Отсюда можно сделать вывод, что любой объект в мозгу - облако ассоциаций (то есть, оно связано с кучей других слов. Булева алгебра здесь не катит, придется расставлять веса связей.) Соответственно, если построить сеть слов, то программа сможет понять вопрос и дать ответ. Она разберет вопрос на понятия, выделит ключевые слова и собственно по ним даст ответ... Следующий вопрос - а как строить эту сеть? Не вручную же... И слово, для нее незнакомое(а для нее сначала они все незнакомые) лишь тупая строка... Тут приходит на помощь курс русского языка средней школы:-) Мы можем разобрать слово. Понять часть речи, выделить суффиксы, приставки, окончания... Они в любых словах имеют одно и то же значение. В общем выдираем из слова все, что можем, и вот! Оно уже несет какой то смысл!
Затем можно программу натравить на, скажем, библиотеку Мошкова... Будет круто! В общем, пока я переписываю весь этот бред на Дельфях, Вы, уважаемые форумчане, попробуйте сходу найти десять ошибок. Или больше
Ответить с цитированием
  #5  
Старый 19.07.2009, 14:30
Аватар для Rokuell
Rokuell Rokuell вне форума
Активный
 
Регистрация: 27.12.2006
Адрес: Псков
Сообщения: 274
Версия Delphi: Delphi 7
Репутация: 497
По умолчанию

У меня к тебе вопрос - ты собираешься писать бота для чата(ICQ) ?

Просто под искуственным интеллектом обычно подразумевают нечто другое, а не примитивную болталку.
__________________
Велик и могуч наш Object Pascal !
ICQ: 357-591-887
Ответить с цитированием
  #6  
Старый 19.07.2009, 21:42
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

ИМХО, дело хорошее... но ты задолбаешься сети делать. + прога врят ли поймёт беблиотеку... она ж даже начальных понятий не будет знать... и даже если ты это сделаешь, прога будет тупить, каждый раз перебирая много(мега/гига/ТЕРА(!))байтную базу... хотя, если ты всё оптимизируешь, наладишь, и ещё введёшь процесс обучения - нобелевка твоя.
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #7  
Старый 03.09.2009, 18:47
Аватар для dartv
dartv dartv вне форума
Прохожий
 
Регистрация: 03.09.2009
Сообщения: 8
Репутация: 10
По умолчанию

Цитата:
Сообщение от Rokuell
У меня к тебе вопрос - ты собираешься писать бота для чата(ICQ) ?

Просто под искусственным интеллектом обычно подразумевают нечто другое, а не примитивную болталку.

Программа должна говаривать, это факт. Они и стихи писать умеют. В Анализе слова на самом деле есть большой смысл. Можно попробовать с примитивного Hello World!

Создать класс
Слово - Приветствие - Перечень Синонимов, так не нужно будет каждому слову давать свое значение, они будут объектами класса Приветствие.
Ответить с цитированием
  #8  
Старый 18.09.2009, 21:16
Аватар для -sanya-
-sanya- -sanya- вне форума
Новичок
 
Регистрация: 14.04.2009
Сообщения: 64
Репутация: 20
По умолчанию

Есть программа ChatMaster (копирую часть введения)
ChatMaster — это самообучающаяся программа, которая поддерживает диалог с человеком. В ее основе лежат прецедентные методы, которые обеспечивают самообучение и подстройку под собеседника. ChatMaster ведет контекстно-зависимый разговор, то есть понимает смысл реплики, которая опирается на предшествующие. Диалог может вестись на любом неиероглифическом языке (все европейские и некоторые азиатские). Пока база знаний программы существует только на русском, но может быть легко пополнена.(она уменя пылится на ж.диске где-то лет 5 могу выложить но где?)
__________________
Ответить с цитированием
  #9  
Старый 18.09.2009, 21:26
Аватар для -sanya-
-sanya- -sanya- вне форума
Новичок
 
Регистрация: 14.04.2009
Сообщения: 64
Репутация: 20
По умолчанию

если надумаешь создавать то у ChatMaster есть свои базы
вопросов и ответов с разширением dat(внутри они тот же тхт) можно с ними по эксперементировать.
__________________
Ответить с цитированием
  #10  
Старый 20.09.2009, 21:46
Аватар для GrenLES
GrenLES GrenLES вне форума
Новичок
 
Регистрация: 12.05.2009
Сообщения: 51
Репутация: 13
По умолчанию

Интересная тема. Я как-то в "годы молодости" тоже озадачивался такой проблемой. Даже тетрадь завел, где писал мысли, факты и все что может помочь. Потом как-то за учебой в универе и прочими более приземленными делами забросил.

Могу поделиться своими мыслями, может они помогут.

1. Я предположил сначала. что надо писать хотя бы для одного языка (примитивный переводчик делать не стоит, хотя в данном случае он не помешает и будет нужен), иначе это будет чисто думалка для ... (..русского, ...английского и пр.), то есть локальная.
Так вот я начал изучать учебник русского языка Розенталя и первоначально создал правила для выделения слов, а также их написаний. Классический пример.
"елка" "Ёлка", "олка", "иолка", "елга" ну и т.п.
В общем все это свелось к элементарной словарной базе, но с расширением по признакам.
= глагол = деепричастие = существительное = прилагательное = частица = и так. далее.
Так же в базу я ввел связи, типа
"это слово МОЖЕТ быть связано с ТЕМ словом"
Так же ввел базу основных окончаний типа "ой" "ай" "ий" и т.п. и что-то типа правила, к каким словам они могу лепиться. типа "существ."
у глагола "ать" "ять" "ить"
Кроме того слова хранились не просто, а в ввиде уже разобранного слова
"корень" "суффикс" "окончание"
Кроме того для слова были связи его неправильных форм, типа
"Шурик - Александр - Саша - Саня"
"Петр - Петя - Петро - Петян"
"Санкт-Питербург - Ленинград"
Ну и т.п.
Скажем - так это было начальной базой.


2. По мере развития мысли я сделал вывод, что этого мало и надо хранить правила русского языка. Ну например, по аналогии с той же проверкой в Ворде орфографии.
То есть хранение структуры предложений - простый, сложные, сложносочиненные, сложноподчиненные и прочее.

Правила хранил как-то так

(поиск по глаголу)
глагол=1: глагол существ прилаг - ПРАВИЛО1
глагол=2: существ глагол частича глагол и .... ПРАВИЛО2

(поиск по существ)
сущ = 2: глагол существ прилаг - ПРАВИЛО1
сущ = 1: сущ прилаг глагол ПРАВИЛО3
......


3. Этап - смысловой. Я помучился и сопоставил. словам их "эмоциональные определения". и ВЕСА их в зависимости от употребления.
Например
1- злой (пошел ты // рожа // оружие и т.п.)
2- положительный (любовь // свет // еда и т.пр.
3- холодный (снег // дождь // ...)
4- мокрый (дождь // вода // ... )
Ну естественно база выглядела что-то типа

дождь = существ // 3=холодный=50%: // 4 =мокрый=100% .....

Это скажем так - основная база знаний. Чем больше ассоциаций и связей построено, тем "точнее" понимание машиной языка.

Естественно попытался придумать какие-то правила выделения определения слова, если его нет.

Были и нейтральные слова, типа "шел" "прыгал" "стоял"


В итоге база слов усложнилась на признаки....

первая базаэ
тип смысл
1. холодный
2. мокрый
3. нейтральный
4. мягкий
5. жидкий
6. твердый
.....
слово определения
снег (1 / 2 / 4 / 5 / 6 )
вода (2 / 4 / 5)
и т.п.

При этом возникла проблема со списками неограниченной длины.
Для одного слова может быть 20 определений. для другого 3-4.
Как это все хранить, да еще эффективно искать и "понимать".
Тогда я еще не все знал и плохо понимал, особенно базы данных.

Мало того возникла проблема "взаимоисключающих определений".
Снег может быть и твердый, и жидкий. и мокрый.
Пришлось вводить что-то типа "уточнений" и состояний вещества...
чуть ли не физику.
4. Самое сложное, на чем я запоролся - это "анализ" фразы.
Нет, логически я понимал, а программно сложно (тем более, что я и тогда и сейчас не очень понимал нейронные сети просто потому. что не занимался изучением, что это и как?).
Так вот, разбор типа
глагол - частица - сущ - прилаг - сущ - прилаг
получался.
даже получалось, что-то типа
нейтрал - нейтрал - (холодный мокрый жидкий) - (возвышенная степень) - (мокрый твердый) - (определение)

А вот генерить ответ было сложно.
Первое решение было что-то вроде такого

Шел - (куда - место действия)
Ищем по глаголу ответ с признаком (место действия).
Уточняем существительным.....

Вообщем тут я застрял...


5. Проблема встала русской генерации ответа. Фразы типа
"идти в школа понял ты" - это жуть......
а надо было "шел в школу, понятно тебе"

Вообщем окончания, формы слова и прочее - тоже не цветочки, особенно в русском языке.

собственно проект можно продолжить бы... только что плохо "исходники" остались на бумаге в тетради.

Единственное, что осталось из того проекта - это программа подсчитывающая число слов в предложении по двум направлениям - выборка из базы подобного и подсчет по признакам, хотя были "обломы", когда по признаку "ать" ловился не глагол, а существительное "МАТЬ".
Нет, его можно занести в базу (просто этот пример пришел в голову, но смысл понятен).

А еще был тормоз с поиском, я использовал метод сортировки "золотым сечением" и поиск отсечением типа "в правой" или "левой" части списка слово?

А задумка была глобальная. - не просто "говорилка",
"понимающая говорилка" - "понимающая" имелось ввиду - отвечающая по смыслу и сама предлагающая темы.
В идела была задумка заставить "писать стихи" на тему....

буду рад, если кто-то это доведет до ума.
Ответить с цитированием
  #11  
Старый 21.09.2009, 01:08
Аватар для GrenLES
GrenLES GrenLES вне форума
Новичок
 
Регистрация: 12.05.2009
Сообщения: 51
Репутация: 13
По умолчанию

http://ar.aiassistant.info/doc/about.html - вот случайно наткнулся
Ответить с цитированием
  #12  
Старый 21.09.2009, 01:10
Аватар для GrenLES
GrenLES GrenLES вне форума
Новичок
 
Регистрация: 12.05.2009
Сообщения: 51
Репутация: 13
По умолчанию

Кстати, Тоже любопытный сайт по теме http://www.iss.ru/
Ответить с цитированием
  #13  
Старый 22.09.2009, 11:24
Аватар для hkdkest
hkdkest hkdkest вне форума
Начинающий
 
Регистрация: 06.05.2008
Адрес: Рязань
Сообщения: 180
Репутация: 10
Плохо

Цитата:
Сообщение от GrenLES
Кстати, Тоже любопытный сайт по теме http://www.iss.ru/
где же он по теме?? про видеонаблюдение
__________________
Делаю курсовые и лабораторные на Delphi, GPSS, Assembler, C++.
Заказать и почитать отзывы можно на сайте, который указан в этой теме
Дешево!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:05.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter