Искусственный интеллект

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Lonely Wolf
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 5
Зарегистрирован: 11.03.2008 (Вт) 13:55
Откуда: Питер

Искусственный интеллект

Сообщение Lonely Wolf » 16.03.2008 (Вс) 22:54

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

Начал придумывать алгоритм:

Искать во введенной фразе ключевые слова синонимы, присваивать им соответствующие коды, после этого записать их в одну строку и уже на основе её выводить ответ.

т.е.

Привератник: Приветствую тебя, о юзер!
Юзер: Хай, ты кто?
Привератник: Я - программа привратник.


Есть массивы синонимов ["A1", "хай", "привет", "здравствуй",...]
["A2", "ты", "вы",...]
каждый массив содержит некий код в нулевом элементе например A1, A2 и т.д.

Разбиваем строку на слова и если в ней есть элементы из массивов пишем в строчку их нулевые элементы.
В итоге после анализа должна получиться строка вида "A1A3B8"

Все это надо для того чтобы строки
"Привет, кто ты?"
"Привет, ты кто?"
"Привет, кто ты такой?"
"Здравствуйте, кто вы?"
"Ты ваще кто?"
и т.д.
воспринимались программой как один и тот же вопрос.

Помогите плиз реализовать алгоритм в VB и может посоветуете как его доработать :roll:
Quis custodiet ipsos custodes?

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

Сообщение BV » 17.03.2008 (Пн) 0:33

О, еще один герой :) http://bbs.vbstreets.ru/viewtopic.php?t=15546
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;

netdemon
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 179
Зарегистрирован: 04.09.2007 (Вт) 15:51

Сообщение netdemon » 17.03.2008 (Пн) 7:39

Если хочешь написать алгоритм подобного рода займись нейронными сетями.
Лишь разум потерянный бесповоротно мною. Наполнить может сердце мне тоской.
Нельзя обнять необъятное и впихнуть невпихуемое.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 17.03.2008 (Пн) 9:02

Lonely Wolf, читай про ALICE.
Lasciate ogni speranza, voi ch'entrate.

Dragon
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 18.02.2008 (Пн) 10:11

Сообщение Dragon » 25.03.2008 (Вт) 12:33

Я тоже пытался сделать подобное, но дело больно уж геморройное.
Кстати, есть там вроде в WindowsXP такой компонент, MS Speech Engine, так вот если найдёшь, то обрати внимание - он может пригодится.
То Lonely Wolf:
1: Геморрой с синонимами
2: - с ненормативной лексикой
3: - базой данных слов
4 - из 3-его - будет ли прога самообучающейся?
И т.д. и т.п.

Не расхотелось? :lol:

Wolfie
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 213
Зарегистрирован: 06.03.2006 (Пн) 18:52
Откуда: Россия, Москва, СЗАО

Сообщение Wolfie » 27.03.2008 (Чт) 0:50

Придется еще учитывать всякое отрицание, (часто хитрое!), иначе пользователь вдоволь потешится над атким превратником, да ив ообще, словарь синонимов огромен! -

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

Русский язык и фантазия геймеров и тестеров богата на выдумки, не хочу лишать надежды, но помойму с ИИ по силам биться только научным институтам, и даже чат не просто сделать с автоответчиком....
··•··•••··•··••·•·•·•···••·•••···•···•••·•··•·•··
C:\> per asper ad astra
'ASTRA' answer: Path 'ASPER' Not Found
684 Errare humanum est!
C:\> _

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 27.03.2008 (Чт) 11:00

Придется еще учитывать всякое отрицание
Никто не говорит, что это не так :wink:
Поэтому русский язык пока отдыхает. Энтузиастам советую изучить эсперанто. Это искусственный язык, очень простой, в нем совсем немного правил и нет исключений, идеальный объект для компьютерного анализа.
Лучший способ понять что-то самому — объяснить это другому.


Вернуться в Visual Basic 1–6

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

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

    TopList