Mundarija:

A.I.ni qanday qilish kerak 2 -qism: 9 qadam
A.I.ni qanday qilish kerak 2 -qism: 9 qadam

Video: A.I.ni qanday qilish kerak 2 -qism: 9 qadam

Video: A.I.ni qanday qilish kerak 2 -qism: 9 qadam
Video: 🔥 SAMSUNG TELEFONI TEZ ISHLAYDIGAN QILISH 2024, Noyabr
Anonim
A. I.ni qanday qilish kerak 2 -qism
A. I.ni qanday qilish kerak 2 -qism

Bu Windows ma'lumotlar bazasi, dasturiy ta'minotni ishlab chiqish vositasi va Windows bilan birga kelgan bepul TTS dvigatelidan foydalanib, Windows kompyuterida sun'iy intellektni yaratish bo'yicha qadamlar haqida 2 -qism.

"Windows" so'zi Microsoft -ga tegishli.

"Ajdaho" so'zi Nuancega tegishli.

1 -qadam: AIni qanday qilish kerak 2 -qism

Qanday qilib AI qilish kerak 2 -qism
Qanday qilib AI qilish kerak 2 -qism

Dasturlash tilini tanlang va ba'zi vositalarni oling

Ko'p dasturlash tillari mavjud. Ba'zilar A. I.ga ixtisoslashgan. Men yoqtirgan Visual Basic, shuning uchun men buni ishlatganman. Men SQL server ma'lumotlar bazalari bilan ham ishlayman, shuning uchun men ham undan foydalanardim.

Siz Microsoft veb -saytidan ularning bepul versiyalarini yuklab olishingiz mumkin. Microsoft veb -saytida "EXPRESS" ni qidiring. [Visual Studio Express va SQL server Express]

Boshqa tillar: Python, C#, C ++, Java, Prolog, Lisp, IPL

va boshqalar. AIML - bu "belgilash tili", bu juda qiziq.

Men Windows bilan birga kelganidan yaxshiroq "nutqni aniqlash" dasturini xohlardim, shuning uchun men DRAGON dasturini sotib oldim. Men Windows bilan birga kelgan "Matndan nutqqa" standart dasturidan foydalanmoqdaman.

2 -qadam: tizimni loyihalash:

Tizimingizni loyihalash
Tizimingizni loyihalash

Katta loyihalaringizni bir nechta kichik loyihalarga bo'ling. Men dastur kodimni modullarga ajratdim.

Muayyan funktsiyani topish oson bo'lishi uchun kodimni turli modullarga ajratdim.

Menda "Process Input", "Process AI", "Process Output", "User Interface" va boshqa bir qancha modullar bor. Mening ba'zi funktsiyalarim boshqa barcha kodli modullar uchun ochiq bo'lishi kerak, shuning uchun men bu funktsiyalarni hamma narsa almashiladigan "umumiy" modulga qo'yaman.

3 -qadam: Dasturlash tiliga o'rnatilgan funktsiyalar:

Dasturlash tiliga o'rnatilgan funktsiyalar
Dasturlash tiliga o'rnatilgan funktsiyalar

Turli tillarda bularning nomlari turlicha bo'lishi mumkin, lekin hamma yuqori darajadagi tillarning vazifalari o'xshash.

LCase yoki ToLower: satrni hamma kichik harflarga o'zgartiradi. Ma'lumotlar bazasini qidirishdan oldin, men hamma narsani kichik harflarga aylantiraman, garchi ko'p narsa "katta-kichikligi sezilmaydigan" bo'lsa ham-Har holda.

O'zgartirish: satr ichidagi qatorni boshqa qatorga almashtiring. Siz mag'lubiyatdan qutulish uchun bo'sh simni "" bilan almashtirishingiz mumkin. Men nuqta, savol, vergul va boshqa tinish belgilaridan qutulaman.

Ajratish: satrni alohida qismlarga ajratadi va ularni qatorga joylashtiradi. Bu funktsiya har qanday belgiga yoki "Ajratuvchi" ga bo'linadi. Men so'zlarni bir qator qilish uchun "fazoviy belgi" ga "" jumlasini ajratdim. Bu AI Gurus tomonidan "Tokenizing" deb nomlangan.

Ma'lumotlar bazasini qidirish uchun so'rovlarni tuzish uchun alohida so'zlardan foydalanaman. (Bu haqida keyingi maqolamda)

4-qadam: O'z funksiyalaringizni yaratish uchun o'rnatilgan funktsiyalarni birlashtiring

Bu "vizual asosiy" misol. Bunga o'xshash narsalarni yaratish uchun dasturlash tilidan foydalaning.

Albatta, siz tanlagan dasturlash tilidan foydalanib, juda ko'p kod yozishingiz va ko'p funktsiyalarni bajarishingiz kerak bo'ladi.

5 -qadam: Modullar nima qiladi? "Kirish protsessori"

Modullar nima qiladi? "Kirish protsessori"
Modullar nima qiladi? "Kirish protsessori"

AIga bir xil savol berishning yuz xil usullari bo'lishi mumkin. Masalan; "Soat nechada?", "Vaqtingiz bormi?" "Bilasizmi, soat nechada?", "Hozirgi kunning vaqtini ayta olasizmi?" Foydalanuvchi shunchaki vaqt so'raganligi sababli, men ushbu kirishlar istalganini ma'lumotlar bazasini "qidirish" jadvali yordamida "So'rov vaqti" deb nomlangan bitta chiqishga aylantiraman.

Siz jadvalni mos kelguncha aylantirish uchun kod yozishingiz mumkin yoki agar siz SQL ma'lumotlar bazasidan foydalansangiz, SQL so'rovini yozishingiz mumkin, masalan …

"TableName -dan Chiqishni tanlang, bu erda Kirish =" "nima bo'lishidan qat'iy nazar""

… Keyin men "So'rov vaqti" chiqishini keyingi kod moduliga yuboraman; "AI jarayonlari"

Savollardan tashqari, "Salom" deb aytishning ko'plab usullari mavjud.

Salom, salom, nima bo'ldi, salom, salom, salomlar, salomlar, salomlar, salom ….

Bularning barchasi "Salomlashish" ga qisqartirilgan.

AI protsessori "Salomlashish" ni ko'rganida, u chiqish protsessoriga "Salom" ni yuboradi, u ma'lumotlar bazasi jadvalidan tasodifiy tabrikni tanlaydi va baland ovozda gapiradi.

6 -qadam: "AI protsessori"

"AI protsessori"
"AI protsessori"

Process AI - bu eng katta kodli modul. Bu juda katta, men uni qismlarga ajratdim.

Foydalanuvchi buyruq aytganmi yoki savol berganmi, kirish tekshiriladi. Bundan tashqari, AI bir nechta "rejim" da bo'lishi mumkin, ya'ni "jarayon AI" kodi foydalanuvchidan savol berish o'rniga savolga javob berishini kutadi.

Agar foydalanuvchi buyruqni aytmagan bo'lsa va AI maxsus "rejimda" bo'lmasa, u "so'zlar majmuasi" dagi so'zlarning kombinatsiyasidan iborat ko'plab so'rovlarni tuzadi va bajaradi. Barcha so'rov natijalari jadvalda saqlanadi va har bir so'rov natijasiga foydalanuvchi aytgan natija qanchalik mos kelishiga "ball" beriladi. Jadval ballar bo'yicha saralanadi va eng yuqori ball to'plagan natija, agar u ma'lum chegaradan oshsa, chiqishga yuboriladi. Agar barcha ballar chegaradan past bo'lsa, AI "Bilmayman" yoki "Bu hisoblamaydi" deb javob berishi mumkin.

7 -qadam: "Chiqish va ballar" jadvali

The
The

AIning "tovuq nima qildi?"

8 -qadam: "Chiqish protsessori"

"Chiqish protsessori"
"Chiqish protsessori"

Bu bir nechta "bog'liq bo'lmagan" ko'rinadigan narsalarni qiladi, lekin ularning barchasi AI protsessoridan foydalanuvchiga matnni olish bilan bog'liq.

Mana ro'yxat.

1. Ma'lumotlar bazasidagi matn hamma kichik harflar bilan yozilishi mumkin va tinish belgilariga ega emas. Subroutines birinchi harfni katta harf bilan yozadi va oxiriga nuqta yoki savol belgisini qo'yadi.

2. Boshqa kichik dastur apostroflarni qisqarishga qaytaradi yoki qisqarishni to'liq so'zlarga aylantiradi (ya'ni "cant" o'rniga "olmaydi" bilan almashtiriladi)

3. Matn-nutq dvigateli ba'zi so'zlarni o'zim xohlagan tarzda talaffuz qilmaydi, shuning uchun "Chiqish protsessori" bu so'zlarni fonetik imlo bilan almashtiradi. Menda ularni ushlab turish uchun "qidirish" jadvallari mavjud. "kirish protsessorida"

4. Agar AI ma'lumotlar bazasida munosib javob topmasa, u "bilmayman" deb ayta oladi, lekin men buni qayta -qayta aytishni xohlamayman. Haqiqiy odamlarning javoblari turlicha. Shunday qilib, "Umumiy chiqish" iboralari va tasodifiy tanlaydigan funktsiyasi bo'lgan jadval mavjud (va hech qachon ketma -ket ikki marta bir xilini tanlamaydi).

5. Bepul "matndan nutqqa" (TTS) dvigateli dasturchiga jumlalarni talaffuz qilish uchun ko'p variantlarni bermaydi, lekin siz ovoz balandligi va fonemalarning tezligini biroz nazorat qilasiz. Buning atamasi "Prosody". Men ma'lumotlar bazasidagi matnga bir nechta "prosody" kodlarini qo'shdim va "Chiqish protsessori" buni ko'rganida, har bir so'z aytilganda, TTS dvigatelidagi tezligi va tezligini moslashtiradi.

6. Ba'zida TTSni tushunish qiyin, shuning uchun men baland ovozda gapirishdan tashqari, ularni kompyuter displeyida katta harflar bilan ko'rsataman. "Foydalanuvchi interfeysi" ning bu qismi - suhbatning oxirgi 6 satrini (foydalanuvchi kiritish va AI chiqishi) ko'rsatadigan va yangi satrlar qo'shilganda yuqoriga siljiydigan tarmoq.

9 -qadam: Ishni davom ettiring

Buning ustida ishlashda davom eting
Buning ustida ishlashda davom eting

Mening fikrim "Hech kimga aytma"

Men hali ham AI tizimim ustida ishlayapman va, ehtimol, bu hech qachon "bajarilmaydi". Ko'proq xususiyatlar qo'shganim sayin, men ko'proq maqolalar yozaman.

Balki, mening ba'zi fikrlarim sizni menikidan yaxshiroq bo'lgan AIni yaratishga ilhomlantiradi

Tavsiya: