Разработка Искусственного Интеллекта...

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 21.04.2005 (Чт) 14:11

Ну на счет того, что получится пока рано судить.

Ariman, рад, что хоть кто-то высказал что-то дельное по поводу бота. Я пока думаю, что стоит организовать только словарные шаблоны. Когда словарный запас бота возрастет, можно будет перейти к шаблонам предложений, каждая часть которого будет состоять из словарных шаблонов.

Словарные шаблоны довольно просто будут восприниматься ботом и он их будет запоминать. Типа как говорить можно.

Нужен человек, который сможет написать функции для эмуляции грамматики. То есть анализ слова, к чему относится, а отсюда уже будет следовать его форма. Я пока буду заниматься ядром.
ХЎ

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 21.04.2005 (Чт) 15:05

Хотелось бы определиться, как у нас будет выглядеть начальный 2D интерфейс. Я попытаюсь создать класс, преобразовывающий русский текст в речь (на основе XVoice.dll), если, конечно, найду соответствующие голосовые модули, и включу его в AI Demo (d3drm) проект.

А люди, которые смогут реализовать классы для работы с грамматикой, действительно нужны. Возможно, какую-то часть можно будет унаследовать от MS Word (в MS Office).

D'alex
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 144
Зарегистрирован: 08.05.2004 (Сб) 20:11
Откуда: Moscow

Сообщение D'alex » 21.04.2005 (Чт) 21:41


BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 22.04.2005 (Пт) 1:18

Это файл чата из Quake 3. Хоть этот метод достаточно примитивен, но как пример в разработке общения можно использовать и его. Суть метода - при встрече определенных слов в строке каким-то образом выбирается вариант ответа (либо случайно, либо по другим словам) из предложенного набора.
Вложения
rchat.zip
(53.06 Кб) Скачиваний: 106

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 23.04.2005 (Сб) 13:21

Почти закончил систему Wallflower.
Эмулирует человека-собеседника.
В отличие от всех программ (chatmaster,и.т.д.) не тупо подставляет варианты ответов, а имеет простейшую память и логику. Может разговаривать, как на вы, так и на ты. Запоминает разных собеседников и по разному к ним относится.
Сейчас отлаживаю, скоро выложу.

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 23.04.2005 (Сб) 16:26

2 |kerish|

Хорошо, ждём! :)


Внимание всем участникам проекта!
У меня есть предложение.

Так как этот форум ("Народный треп") предназначен в основном для обсуждений чего-либо, то намного вернее будет размещать все наработки для 3D ИИ на форуме "Наши проекты" в этой же теме (или какой-либо другой). А обсуждать проект и задавать вопросы здесь (или вопросы на форуме "Visual Basic"). Кто за такое предложение?

skord
Китаец
Китаец
 
Сообщения: 572
Зарегистрирован: 14.10.2004 (Чт) 15:36
Откуда: Иркутск

Сообщение skord » 09.05.2005 (Пн) 5:57

Чего-то долго ждем...
Неужели проект накрывается... :? :shock: :) :wink:

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 09.05.2005 (Пн) 12:24

Нет :D
Скоро прикреплю переделанный AI Demo.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 09.05.2005 (Пн) 13:19

BV писал(а):Нет :D
Скоро прикреплю переделанный AI Demo.


ух ты, очень интересно!
ХЎ

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 22.05.2005 (Вс) 14:56

2 d3drm

Ты смотрел свои ЛС?
Там я тебе кое-что переслал.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

skord
Китаец
Китаец
 
Сообщения: 572
Зарегистрирован: 14.10.2004 (Чт) 15:36
Откуда: Иркутск

Сообщение skord » 23.05.2005 (Пн) 11:45

BV
Перешли мне тоже :)

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 23.05.2005 (Пн) 12:32

Это пока только нароботки. Если d3drm подключится, доведём до ума и выложим.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 01.06.2005 (Ср) 22:05

|kerish| писал(а):Сейчас отлаживаю, скоро выложу.


И где же ИИ?
Долго это скоро... однако....
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

dorido
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 107
Зарегистрирован: 27.02.2005 (Вс) 17:10
Откуда: Angarsk

Сообщение dorido » 09.06.2005 (Чт) 7:24

некоторые мысли по созданию ии

Для обучения ии необходимо, чтобы он отсеивал непонятные слова.
Однако слова "крот" и "кроты" считал за одно(крот). Таким образом
ии должен иметь представление о словообразовании, уметь выделять
корень, приставку и тд, и уметь отличать глагол от существительного,
наречие от местоимения. То есть ии необхадим алгоритм определения
типа речи, для определения смысла слова(знает он это слово или не знает).
С другой стороны, ии может иметь огромный словарный запас слов,
где каждое слово имеется во всех падежах и тд. Кроме того ии должен
понимать знаки препинания, и строить смысл фразы не только по значению
слов, но и по их расположению относительно друг друга, и по положению
знаков препинания. Другим препятствием на пути образования ии
становится непосредственное "понимание" слов, то есть смысл слова должен
записываться на понятном ии "языке". То есть независимо от текущего
состояния развития одинаковые слова он понимал одинаково. Например
если ии не знает слова крот, а пользователь скажет, что это
быстро бегающий утюг, ии не должен просто запомнить, что такое крот,
он должен пытаться понять смысл фразы.

ещё есть способ, создания простейшего словаря, с помощь которого будут
описываться остальные слова.

также для развития ии важна окружающая обстановка, материальный мир.
Например стол он должен воспринимать как по описанию, так и "зрительно",
"осязательно" и тд
а вообще я не против присоедениться
By oppression’s woes and pains,
By your sons in servile chains,
We will drain our dearest veins
But they shall be free!

skord
Китаец
Китаец
 
Сообщения: 572
Зарегистрирован: 14.10.2004 (Чт) 15:36
Откуда: Иркутск

Сообщение skord » 09.06.2005 (Чт) 12:02

dorido
Присоедениться все не против. Вот только как до дела доходит...

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 09.06.2005 (Чт) 12:25

Да... Это судьба всех проектов на VBS.

Только один их них был успешен - в 2003 году благодаря ему я стал модератором :roll:

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 09.06.2005 (Чт) 12:47

RayShade, а как же iRender? все еще функционирует =)
ХЎ

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 09.06.2005 (Чт) 12:49

Нужна основа, нужет примитивный движок для ИИ чата. Текущие мои наработки пока никуда не годятся. Описать алгоритм - это одно, реализовать его в виде кода - совсем другое. Должен признать - Ariman был прав. Если к проекту подключатся люди способные на это, то мы сдвинемся с мёртвой точки и начнём.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 08.07.2005 (Пт) 0:06

И так – главная часть проекта "чат-бот".


Как он должен работать:

Есть два варианта:

1) Чат-бот будет работать с базой данных (далее БД) слов, а не готовых фраз. Каждое слово будет сопровождаться информацией о его части речи, что поможет при использовании слова в предложении. При ответе чат-бот будет составлять предложения из слов в его БД. Анализ введённых данных будет проводится не только на схожесть слов, но и на то, в какой последовательности эти слова расположены.

- Плюсы: больше схожести с ИИ.
- Минусы: труднореализуемо, возможны тупиковые ситуации со словами.

2) Чат-бот будет работать с БД готовых фраз (предложений, слов, словосочетаний). После анализа введённых данных чат-бот начинает перебирать БД на схожесть слов. Совпавшее слово (словосочетание или предложение) с каким-то из слов в ведённом тексте получает один бал. И так, пока слова во введённом тексте не закончатся. То слово (словосочетание или предложение), которое набрало большее количество балов, и будет ответом чат-бота.

- Плюсы: достаточно легко реализуемо, вероятности ошибок в ответах нет.
- Минусы: чат-бот ограничен запасом слов (словосочетаний или предложений) в своей БД.


Что он должен уметь делать:

Проект должен представлять из себя обычного чат-бота (возможно, с "TextToSpeech") – т.е. окно с двумя EDIT полями (ввод/вывод) и кнопкой "Сказать" (например). Код должен быть разделён на классы (класс для обработки введённых данных [clsInput], класс для работы с БД...[clsDatabase]). Позже, на стадии интеграции чат-бота с 3D интерфейсом, окно будет убрано, информация будет вводится с консоли. В код будут введены небольшие поправки для работы с 3D. Всё достаточно просто.

Как пример чат-бота, можно посмотреть этот: http://nai.shergin.com


Какой вариант работы чат-бота выбрать? Можно взвесить все плюсы и минусы...
Теперь - кто может подключиться и помочь реализовать такой проект (возможно с кем-то)?
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

MeMBus
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 450
Зарегистрирован: 23.02.2005 (Ср) 7:03
Откуда: Из леса...

Сообщение MeMBus » 08.07.2005 (Пт) 4:22

Когда я начинал что-то подобное делать я пошел путем создания БД как слов, так и словосочетаний и «типичных» фраз. Словарный запас псевдо ИИ зависит от самой БД, механизмы самообучения не реализуются на данном этапе вообще. Т.к. в боте не возможно реализовать разбор слова и определения этого слова в какую либо группу. По крайне мере я не смог (т.к. по русскому у меня твердая 3). Для этапа набора словарного запаса необходимо сделать механизм определения слова, его привязки и т.п.
Я могу помочь, если мне дадут конкретную задачу.
Бороться и искать, найти и перепрятать!

MeMBus
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 450
Зарегистрирован: 23.02.2005 (Ср) 7:03
Откуда: Из леса...

Сообщение MeMBus » 08.07.2005 (Пт) 4:27

Еще хотелось бы заметить, что необходимо в самом начале таки создать что-то на подобии «проектной документации», соотв. описать глубже сам проект, с этапами. По поводу 3D я так понял заморок не возникнет, посему можно графическую часть вообще отбросить. Остается разработка «ИИ». Вот тут то и нужно определиться. От проектирования этой части и будет зависеть успех компании.

P.S. В чем заключается оценка «ИИ» - если человек общаясь в чате с ботом, не заметит что это бот, то это уже что-то, что может стать на ступень «первое поколение ИИ».
Бороться и искать, найти и перепрятать!

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 08.07.2005 (Пт) 11:47

MeMBus писал(а):P.S. В чем заключается оценка «ИИ» - если человек общаясь в чате с ботом, не заметит что это бот, то это уже что-то, что может стать на ступень «первое поколение ИИ».

Согласно Тюрингу, это последнее поколение ИИ.
Изображение

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 08.07.2005 (Пт) 14:05

Для начала нужно выбрать: чат-бот будет сам составлять предложения из слов или чат-бот будет отвечать готовыми предложениями.

После этого можно будет проект разделить на конкретные задачи для каждого.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

MeMBus
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 450
Зарегистрирован: 23.02.2005 (Ср) 7:03
Откуда: Из леса...

Сообщение MeMBus » 09.07.2005 (Сб) 11:25

Думаю можно объединить эти два действия. Т.к. на некоторые вопросы есть конкретные ответы, тобишь если бот «понимает» суть предложения он может выдать ответ-фразу, если нет, то будет анализировать фразу и слова, пытаясь «определить» суть предложения, набирая связанный ответ слов-фраз...
Бороться и искать, найти и перепрятать!

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 09.07.2005 (Сб) 14:32

Структура проекта чат-бота:

Объединяющая часть - это главное окно (интерфейс пользователя, далее frmMain), объединяющее все классы.

Классы разделяются на:


1) Класс для работы с БД (далее clsDB)

* чтение данных из БД
* запись данных в БД
* поиск слов в БД
* присвоение каждой фразе в БД временной оценки


2) Класс для обработки введённых данных (далее clsInput)

* анализ строки из frmMain
* разбиение строки на отдельные слова
* запрос clsDB на поиск каждого слова
* если clsDB нашел слово, clsInput рассчитывает и передаёт оценку слова в clsDB


3) Класс для вывода ответа (далее clsOutput)

* запрос clsDB на фразу с максимальной оценкой
* слежение за тем, чтобы фразы не повторялись (если повтор, то запрос clsDB на фразу с менее высокой оценкой)
* выдача полученной фразы на frmMain
* (возможно) произношение фразы через TextToSpeech
* (уже при объединении с 3D) анимация модели ИИ


Теперь – кто какой класс может сделать?
Если класс выбран, то желательно опишите, как вы собираетесь его реализовать (т.е. какие методы, свойства хотите создать в классе).

Код нужно писать (как я уже указывал) по стандартам (т.е. lngLong, frmForm, clsClass, imgImage, txtText... и отступы, самое главное - отступы) - это для того, чтобы он был легко читаем другими. И желательно не скупиться на комментарии (пусть даже их будет больше, чем кода).

Модули не желательно использовать во избежании путаницы в коде.

Как пример работы с базой данных, вот исходный код программы пополнения БД словами с пометкой их части речи (делалось для первого варианта чат-бота).
Вложения
AI_DB Source.rar
(21.01 Кб) Скачиваний: 101
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

dwertys
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 08.10.2005 (Сб) 12:42

Ты должен опредилится

Сообщение dwertys » 09.10.2005 (Вс) 15:23

Опредилитесь что создаёте
Если ии(искуственный разум)действительно думающий на подобе человека
То это глупость обречена на провал так как ничего из этого не получится не вы первые не вы последние!

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 09.10.2005 (Вс) 17:53

Увидел тему и не поверил, что кто-то её нашел.

dwertys писал(а):Опредилитесь что создаёте


Всего лишь чат-бот.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 09.10.2005 (Вс) 18:08

BV, не теряй надежду. Я сейчас потихонечку насилую книгу о нейронных сетях.
Как дочитаю - присоединюсь к созданию.

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 09.10.2005 (Вс) 20:11

Нейросети? Зачем? :?
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 09.10.2005 (Вс) 20:47

ИИ без нейросетей? :?

Пред.След.

Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14

    TopList