Съдържание:

Как да си направим AI Част 2: 9 стъпки
Как да си направим AI Част 2: 9 стъпки

Видео: Как да си направим AI Част 2: 9 стъпки

Видео: Как да си направим AI Част 2: 9 стъпки
Видео: 15 Способов Пронести ДРУГА в КИНОТЕАТР ! **2 Часть** 2024, Юли
Anonim
Как да си направим AI Част 2
Как да си направим AI Част 2

Това е част 2 за стъпките, които предприех за изграждането на AI на компютър с Windows, използвайки безплатна база данни, инструмент за програмиране и безплатния вграден TTS двигател, който се доставя с Windows.

Думата „Windows“принадлежи на Microsoft.

Думата "Дракон" принадлежи на Нюанс.

Стъпка 1: Как да си направим AI Част 2

Как да си направим AI част 2
Как да си направим AI част 2

Изберете език за програмиране и вземете някои инструменти

Има много езици за програмиране. Някои са специализирани за A. I. Любимият ми е Visual Basic, затова го използвах. Работя и с бази данни на SQL сървър, затова използвах и това.

Можете да изтеглите безплатни версии на тези от уебсайта на Microsoft. Просто потърсете „EXPRESS“на уеб сайта на Microsoft. [Visual Studio Express и SQL server Express]

Други езици, които може да искате за нас, са: Python, C#, C ++, Java, Prolog, Lisp, IPL

и много други. AIML е „език за маркиране“, който е много интересен.

Исках по -добра програма за разпознаване на реч от тази, която идва с Windows, затова купих софтуера DRAGON. Използвам стандартната програма „Текст в реч“, доставена с Windows.

Стъпка 2: Проектирайте вашата система:

Проектирайте вашата система
Проектирайте вашата система

Разделете големите си проекти на куп по -малки проекти. Разделих програмния си код на модули.

Разделих кода си на различни модули, така че да се намери по -лесно определена функция.

Имам модули, наречени „Process Input“, „Process AI“, „Process Output“, „User Interface“и няколко други. Някои от функциите ми трябва да са достъпни за всички останали кодови модули, затова ги поставям в „общ“модул, където всичко се споделя

Стъпка 3: Функции, които са вградени в езика за програмиране:

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

Различните езици могат да имат различни имена за тези, но всички езици на високо ниво имат сходни функции.

LCase или ToLower: Преобразува низ във всички малки букви. Преобразувам всичко в малки букви, преди да извърша търсене в база данни-въпреки че повечето неща не са чувствителни към регистъра-за всеки случай.

Замяна: Заменете низ в низ в друг низ. Можете да замените низ с празен низ „”, за да се отървете от него. Освобождавам се от точки, въпросителни, запетаи и други препинателни знаци.

Разделяне: Разделя низ на отделни парчета и ги поставя в масив. Тази функция ще раздели низ на всеки знак или „Разделител“. Разделям изречение на „интервал“„„, за да направя масив от думи. Това се нарича „Токенизиране“от гурутата на AI.

Използвам отделните думи за изграждане на заявки, използвани за търсене в базата данни. (Повече за това в следващата ми статия)

Стъпка 4: Комбинирайте вградени функции, за да създадете свои собствени функции

Това е „визуален основен“пример. Използвайте езика си за програмиране, за да изградите нещо подобно.

Разбира се, ще трябва да напишете много код и да изградите много функции, като използвате езика за програмиране по ваш избор.

Стъпка 5: Какво правят модулите? „Входен процесор“

Какво правят модулите? „Входен процесор“
Какво правят модулите? „Входен процесор“

Може да има сто различни начина да зададете на AI същия въпрос. Например; „Колко е часът?“, „Имаш ли време?“„Знаеш ли колко е часът?“, „Можете ли да ми кажете текущото време на деня?“Тъй като потребителят просто иска време, преобразувам всеки от тези входове в един изход, наречен „Време за заявка“, използвайки таблица за търсене на база данни.

Можете да напишете код, който да премине през таблица, докато намери съвпадение, или ако използвате SQL база данни, можете да напишете SQL заявка, като …

"Изберете изход от TableName, където Input =" "каквото и да е""

… И след това изпращам изхода „Време на заявка“към следващия кодов модул; „Процес на AI“

Освен въпросите, има много начини да кажете „Здравей“

Здравей, Здравей, какво има, хей, хола, как си ?, поздрави, добре дошъл, поздрави, здравей….

Всичко това се свежда до „Поздрави“

Когато AI процесорът види „Greeting“, той изпраща „Greeting“към изходния процесор, който ще избере случаен поздрав от таблица в база данни и ще го произнесе на глас.

Стъпка 6: „AI процесор“

„AI процесор“
„AI процесор“

Процесният AI е най -големият кодов модул. Толкова е голямо, че го разделих и на секции.

Входът се проверява, за да се види дали потребителят е говорил команда или е задал въпрос. Също така, AI може да бъде във всеки от няколко „режима“, което означава, че кодът „Process AI“очаква потребителят да ОТГОВОРИ въпрос, вместо да ЗАДАВА въпрос.

Ако потребителят не е произнесъл команда и AI не е в специален „режим“, той изгражда и изпълнява куп заявки, извън комбинации от думите в „масива от думи“. Всички резултати от заявките се съхраняват в таблица и всеки резултат от заявката получава „оценка“за това доколко резултатът съвпада с това, което е казал потребителят. Таблицата се сортира по резултата и резултатът с най -висок резултат се изпраща към изхода, ако надвишава определен праг. Ако всички резултати са под прага, AI може да отговори с „Не знам“или „Това не се изчислява“

Стъпка 7: Таблицата „продукция и резултати“

The
The

Изходът на AI от моя вход „Какво направи пилето?“

Стъпка 8: „Изходен процесор“

„Изходен процесор“
„Изходен процесор“

Това прави няколко „несвързани“изглеждащи неща, но всички те са свързани с получаването на текста от AI процесора до потребителя.

Ето списък.

1. Текстът от базата данни може да е с малки букви и без препинателни знаци.. Подпрограмите ще изписват с главни букви първата буква и ще поставят точка или въпросителен знак в края.

2. Друга подпрограма ще върне апострофите обратно в контракции или ще преобразува контракциите обратно в пълни думи (т.е. „наклон“се заменя с „не мога“)

3. Двигателят за преобразуване на текст в реч не произнася някои думи по моя начин, така че „Изходният процесор“замества тези думи с фонетичен правопис. във „входния процесор“

4. Ако AI не намери подходящ отговор в базата данни, той може да каже „Не знам“, но не искам да казва това отново и отново. Истинските хора варират отговорите си. Така че има таблица с фрази „Общ изход“и функция, която избира една на случаен принцип (и никога няма да избере една и съща два пъти подред.)

5. Безплатният механизъм „текст в реч“(TTS) не дава на програмиста много опции за начина на произнасяне на изреченията, но вие имате малко контрол върху височината и скоростта на фонемите. Терминът за това е „Просодия“. Добавих някои „просодийски“кодове в текста в моята база данни и когато „Изходният процесор“ги види, той регулира височината и скоростта в TTS двигателя, когато всяка дума се изговаря.

6. Понякога TTS е просто труден за разбиране, така че освен да говоря думи на глас, ги показвам и с големи букви на дисплея на компютъра си. Тази част от „Потребителски интерфейс“е мрежа, която показва последните 6 реда на разговор (Въвеждане на потребител и AI изход) и превърта нагоре, когато се добавят нови редове.

Стъпка 9: Продължете да работите върху него

Продължавайте да работите по него
Продължавайте да работите по него

Моят принос беше „Не казвай на никого“

Все още работя върху моята AI система и вероятно тя никога няма да бъде „свършена“. Като добавям още функции, ще пиша още статии.

Може би някои от моите идеи ще ви вдъхновят да изградите AI, който е по -добър от моя

Препоръчано: