Оглавление:

Как сделать A.I. Часть 2: 9 шагов
Как сделать A.I. Часть 2: 9 шагов

Видео: Как сделать A.I. Часть 2: 9 шагов

Видео: Как сделать A.I. Часть 2: 9 шагов
Видео: НЕЙРОСЕТЬ своими руками за 10 минут на Python 2024, Ноябрь
Anonim
Как сделать A. I. Часть 2
Как сделать A. I. Часть 2

Это часть 2 о шагах, которые я предпринял для создания ИИ на компьютере с Windows, используя бесплатную базу данных, инструмент разработки программирования и бесплатный встроенный движок TTS, который поставляется с Windows.

Слово «Windows» принадлежит Microsoft.

Слово «Дракон» принадлежит Nuance.

Шаг 1. Как создать ИИ. Часть 2

Как сделать ИИ Часть 2
Как сделать ИИ Часть 2

Выберите язык программирования и получите инструменты

Есть много языков программирования. Некоторые из них специализируются на искусственном интеллекте. Мне больше всего нравится Visual Basic, поэтому я использовал именно его. Я также работаю с базами данных SQL-серверов, поэтому тоже использовал их.

Вы можете скачать их бесплатные версии с веб-сайта Microsoft. Просто выполните поиск «EXPRESS» на веб-сайте Microsoft. [Visual Studio Express и SQL Server Express]

Другие языки, которые могут вам понадобиться: Python, C #, C ++, Java, Prolog, Lisp, IPL.

и многие другие. AIML - это очень интересный «язык разметки».

Мне нужна была лучшая программа «распознавания речи», чем та, которая поставляется с Windows, поэтому я купил программу DRAGON. Я использую стандартную программу преобразования текста в речь, поставляемую с Windows.

Шаг 2: Создайте свою систему:

Создайте свою систему
Создайте свою систему

Разделите свои большие проекты на несколько более мелких. Я разделил свой программный код на модули.

Я разделил свой код на разные модули, чтобы было легче найти конкретную функцию.

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

Шаг 3. Функции, встроенные в язык программирования:

Функции, встроенные в язык программирования
Функции, встроенные в язык программирования

На разных языках они могут иметь разные названия, но все языки высокого уровня имеют схожие функции.

LCase или ToLower: преобразует строку в нижний регистр. Я конвертирую все в нижний регистр перед поиском в базе данных - хотя большинство вещей «нечувствительны к регистру» - на всякий случай.

Заменить: заменить строку внутри строки другой строкой. Вы можете заменить строку пустой строкой «», чтобы избавиться от нее. Избавляюсь от точек, вопросительных знаков, запятых и других знаков препинания.

Разделить: разбивает строку на отдельные части и помещает их в массив. Эта функция разделит строку на любой символ или «разделитель». Я разбиваю предложение на «пробел» «», чтобы получился массив слов. Гуру ИИ называют это «токенизацией».

Я использую отдельные слова для построения запросов, используемых для поиска в базе данных. (Подробнее об этом в моей следующей статье)

Шаг 4. Объедините встроенные функции, чтобы создать свои собственные

Это «наглядный базовый» пример. Используйте свой язык программирования, чтобы создать что-то подобное.

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

Шаг 5: Что делают модули? «Входной процессор»

Что делают модули? «Входной процессор»
Что делают модули? «Входной процессор»

Может быть сотни разных способов задать ИИ один и тот же вопрос. Например; «Который час?», «У вас есть время?» «Вы знаете, который час?», «Вы можете сказать мне текущее время суток?» Поскольку пользователь просто спрашивает время, я конвертирую любой из этих входов в один выход, называемый «Время запроса», с помощью таблицы «поиска» в базе данных.

Вы можете написать код для цикла по таблице до тех пор, пока не будет найдено совпадение, или, если вы используете базу данных SQL, вы можете написать SQL-запрос, например …

«Выберите вывод из TableName, где Input =‘»независимо от‘»

… И затем я отправляю вывод «Время запроса» следующему модулю кода; «Процессный ИИ»

Помимо вопросов, есть много способов сказать "Привет".

Привет, Привет, как дела, привет, привет, как дела?, Привет, добро пожаловать, приветствия, привет….

Все это сводится к «Приветствию».

Когда AI-процессор видит «Приветствие», он отправляет «Приветствие» процессору вывода, который выбирает случайное приветствие из таблицы базы данных и произносит его вслух.

Шаг 6: «AI-процессор»

«AI-процессор»
«AI-процессор»

Процесс AI - самый большой модуль кода. Он такой большой, что я тоже разделил его на секции.

Ввод проверяется, чтобы узнать, произнес ли пользователь команду или задал вопрос. Кроме того, ИИ может находиться в любом из нескольких «Режимов», что означает, что код «Обработка ИИ» ожидает, что пользователь ОТВЕТИТ на вопрос, а не ЗАПРОСИТЕ вопрос.

Если пользователь не произнес команду и ИИ не находится в специальном «режиме», он создает и выполняет набор запросов из комбинаций слов в «массиве слов». Все результаты запроса хранятся в таблице, и каждому результату запроса присваивается «оценка» того, насколько близко результат соответствует тому, что сказал пользователь. Таблица сортируется по количеству баллов, и результат с наивысшим баллом отправляется на выход, если он превышает определенный порог. Если все оценки ниже порогового значения, ИИ может ответить «Я не знаю» или «Это не вычисляет».

Шаг 7. Таблица «Результаты и баллы»

В
В

Вывод ИИ из моего ввода "Что сделал цыпленок?"

Шаг 8: «Процессор вывода»

«Процессор вывода»
«Процессор вывода»

Это делает несколько «несвязанных» вещей, но все они связаны с передачей текста от ИИ-процессора пользователю.

Вот список.

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

2. Другая подпрограмма вернет апострофы в сокращения или преобразует сокращения в полные слова (т. Е. «Cant» заменяется «can not»)

3. Механизм преобразования текста в речь не произносит некоторые слова так, как мне нравится, поэтому «Процессор вывода» заменяет эти слова фонетическим написанием. У меня есть таблицы «поиска» в базе данных, в которых они хранятся, аналогичные той, что во «процессоре ввода»

4. Если ИИ не находит подходящий ответ в базе данных, он может сказать «Я не знаю», но я не хочу, чтобы он повторял это снова и снова. Реальные люди меняют свои ответы. Итак, есть таблица с фразами «Общий вывод» и функция, которая выбирает одну наугад (и никогда не выберет одну и ту же дважды подряд).

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

6. Иногда TTS просто трудно понять, поэтому я не только говорю слова вслух, но и показываю их большими буквами на экране компьютера. Эта часть «Пользовательского интерфейса» представляет собой сетку, которая показывает последние 6 строк разговора (пользовательский ввод и вывод AI) и прокручивается вверх по мере добавления новых строк.

Шаг 9: Продолжайте работать над этим

Продолжайте работать над этим
Продолжайте работать над этим

Я посоветовал "Никому не рассказывать"

Я все еще работаю над своей системой искусственного интеллекта, и, вероятно, это никогда не будет «сделано» по-настоящему. По мере того, как я добавляю больше функций, я буду писать больше статей.

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

Рекомендуемые: