Системы общения на ЕЯ
В этой статье коротко объясняется, что такое системы общения на ЕЯ, приводятся примеры нескольких алгорисмов простейших из таких ситем.
Можно ли назвать их Искусственным Интеллектом?
Сразу расшифрую: ЕЯ - естесственный язык, язык на котором разговаривают люди. Будь то английский, русский или китайский язык - это ЕЯ. Что такое системы общения? Это программы которые способны граммотно отвечать на вопросы задающего, используя при этом интеллектуальные рассуждения, либо создающие иллюзию вышеназванных (о них я и расскажу далее).
Я сам разрабатывал такие системы и поэтому мне легче ниже перечислить все их версии с описанием принципа работы и остановиться на самой последней поподробнее. А выводы делайте сами:
v1.0-v1.2 Работали под ДОС. Имелась база в которую вводились все вопросы и ответы поочередно. Пользователь вводил строку, программа сравнивала с каждым вопросом в базе на полное соответствие, если находила, выводила ответ соответствующий данной строке, если нет - спрашивала: "Как мне подобает на это ответить?", пользователь вводил строку, которая вместе с вопросом заносилась в базу и т.д.
v2.0 Изменен интерфейс.
v3.0-v3.4 Эта под Windows. Все так же как и в предыдущих версиях, лишь изменен поиск, теперь это поиск на нестрогое соответствие: слова могут быть расположены в любом порядке, некотрые слова могут отсутствовать.
v4.0,v5.0 Недоделки
v6.0 Сильно изменен интерфейс. Процедура поиска практически не изменилась за исключением того что теперь: Строка "Я гуляю." и строка "Я не гуляю." прямо противоположны. А строка "Я гуляю.", строка "Я не не гуляю.", строка "Я не гуляю не." и "Не я не гуляю.", и т.д. идиентичны.
v7.0 Ну вот и долгожданная последняя версия. Если вы разберетесь в моем коде на VisualBasic, можете взять здесь исходники. Сразу скажу, чем алгоритм поика этой версии отличается от других версий: теперь несколько букв одной фразы сравнивается с несколькими буквами второй фразы(по умолчанию - три буквы), поэтому стало возможным следующее сравнение: слово "Разуметь" и слово "Разумею" - "раз" и "раз" - 100%, "уме" и "уме" - 100%, "ть" и "ю" - 0%, отсюда: n=(100+100+0)/3=66,7%. А алгоритм самой программы практически такой же как в v1.0, тем не менее результаты неплохие. Вы можете взять скомпилированные программы v6.0 и v7.0 здесь.
Как вы сумели заметить сложность таких программ заключается в составлении наилучшего алгоритма "интеллектуального" сравнения строк. Неплохо было бы разработать такй вот алгоритм: строка "Разуметь" и "Разумею" - 85%, строка "Разуметь" и "Создать" - 0%, строка "Создавать" и "Созидать" - 95%. Предлагаю подумать над этим и вам, а с предложениями можно обратиться ко мне(написать мне на E-mail).
Дополнительно
Программа: System of Artificial Intelligence
Источник: