Turinys:

Kaip padaryti A.I. 2 dalis: 9 žingsniai
Kaip padaryti A.I. 2 dalis: 9 žingsniai

Video: Kaip padaryti A.I. 2 dalis: 9 žingsniai

Video: Kaip padaryti A.I. 2 dalis: 9 žingsniai
Video: платье крючком Классик/ часть 2 2024, Lapkritis
Anonim
Kaip padaryti A. I. 2 dalis
Kaip padaryti A. I. 2 dalis

Tai yra 2 dalis apie veiksmus, kurių aš ėmiausi kurdama dirbtinį intelektą „Windows“kompiuteryje, naudodama nemokamą duomenų bazę, programavimo kūrimo įrankį ir nemokamą integruotą TTS variklį, pateikiamą kartu su „Windows“.

Žodis „Windows“priklauso „Microsoft“.

Žodis „drakonas“priklauso „Nuance“.

1 žingsnis: Kaip padaryti AI 2 dalį

Kaip padaryti AI 2 dalis
Kaip padaryti AI 2 dalis

Pasirinkite programavimo kalbą ir įsigykite keletą įrankių

Yra daug programavimo kalbų. Kai kurie yra specializuoti A. I. Mano mėgstamiausias yra „Visual Basic“, todėl būtent tai ir naudojau. Taip pat dirbu su SQL serverio duomenų bazėmis, todėl taip pat naudojuosi.

Nemokamas jų versijas galite atsisiųsti iš „Microsoft“svetainės. Tiesiog „Microsoft“svetainėje ieškokite „EXPRESS“. [„Visual Studio Express“ir „SQL Server Express“]

Kitos kalbos, kurių galbūt norėsite mums: Python, C#, C ++, Java, Prolog, Lisp, IPL

ir daugelis kitų. AIML yra „žymėjimo kalba“, kuri yra labai įdomi.

Norėjau geresnės „kalbos atpažinimo“programos nei ta, kuri pateikiama kartu su „Windows“, todėl nusipirkau DRAGON programinę įrangą. Aš naudoju standartinę „teksto į kalbą“programą, kuri buvo pridėta prie „Windows“.

2 žingsnis: suprojektuokite savo sistemą:

Sukurkite savo sistemą
Sukurkite savo sistemą

Padalinkite savo didelius projektus į krūvą mažesnių projektų. Aš suskirstiau savo programos kodą į modulius.

Padalinau savo kodą į skirtingus modulius, kad būtų lengviau rasti tam tikrą funkciją.

Turiu modulius, pavadintus „Proceso įvestis“, „Proceso AI“, „Proceso išvestis“, „Vartotojo sąsaja“ir keletas kitų. Kai kurios mano funkcijos turi būti prieinamos visiems kitiems kodo moduliams, todėl šias funkcijas sudėjau į „bendrą“modulį, kuriame viskas bendrinama

3 žingsnis: Į programavimo kalbą integruotos funkcijos:

Funkcijos, integruotos į programavimo kalbą
Funkcijos, integruotos į programavimo kalbą

Skirtingos kalbos gali turėti skirtingus pavadinimus, tačiau visos aukšto lygio kalbos turi panašias funkcijas.

LCase arba ToLower: konvertuoja eilutę į visas mažąsias raides. Prieš atlikdamas duomenų bazės paiešką, viską paverčiu mažosiomis raidėmis, nors dauguma dalykų yra „nejautrūs didžiosioms ir mažosioms raidėms“.

Pakeisti: eilutės viduje esančią eilutę pakeiskite kita. Norėdami ją pašalinti, galite pakeisti eilutę tuščia eilute „“. Atsisakau taškų, klaustuko, kablelio ir kitų skyrybos ženklų.

Split: padalija eilutę į atskiras dalis ir sudeda į masyvą. Ši funkcija padalins bet kurio simbolio eilutę arba „Atribotoją“. Aš padalijau sakinį į „erdvės simbolį“„“, kad sudarytų žodžių masyvą. AI Guru tai vadina „tokenizavimu“.

Aš naudoju atskirus žodžius kurdamas užklausas, naudojamas duomenų bazės paieškai. (Daugiau apie tai kitame straipsnyje)

4 veiksmas: sujunkite integruotas funkcijas, kad sukurtumėte savo funkcijas

Tai yra „vizualus pagrindinis“pavyzdys. Naudokite savo programavimo kalbą, kad sukurtumėte kažką panašaus.

Žinoma, turėsite parašyti daug kodo ir sukurti daugybę funkcijų naudodami pasirinktą programavimo kalbą.

5 žingsnis: ką daro moduliai? „Įvesties procesorius“

Ką daro moduliai? „Įvesties procesorius“
Ką daro moduliai? „Įvesties procesorius“

Gali būti šimtas skirtingų būdų užduoti tą patį klausimą AI. Pavyzdžiui; "Kiek valandų?", "Ar turite laiko?" "Ar žinai, kiek dabar valandų?", "Ar gali pasakyti dabartinį paros laiką?" Kadangi vartotojas tik prašo laiko, aš konvertuoju bet kurią iš šių įvesties į vieną išvestį, pavadintą „Užklausos laikas“, naudodamas duomenų bazės „ieškoti“lentelę.

Galite rašyti kodą per lentelę, kol ji ras atitikimą, arba jei naudojate SQL duomenų bazę, galite parašyti SQL užklausą, pvz.

„Pasirinkite išvestį iš„ TableName “, kur įvestis =„ bet kokia ““

… Ir tada aš siunčiu išvestį „Užklausos laikas“į kitą kodo modulį; „Apdoroti AI“

Be klausimų, yra daug būdų pasakyti „Labas“

Sveiki, labas, kas tau, labas, hola, kaip tau sekasi ?, sveikinu, sveikinu, sveikinu, labas …

Visa tai sumažinama iki „pasveikinimas“

Kai dirbtinio intelekto procesorius pamato „Sveikinimas“, jis siunčia „Sveikinimą“išvesties procesoriui, kuris iš duomenų bazės lentelės parenka atsitiktinį sveikinimą ir garsiai jį pasako.

6 veiksmas: „AI procesorius“

„AI procesorius“
„AI procesorius“

„Process AI“yra didžiausias kodo modulis. Jis toks didelis, kad jį taip pat suskirstiau į skyrius.

Įvestis tikrinama, ar vartotojas ištarė komandą, ar uždavė klausimą. Be to, AI gali būti bet kuriame iš kelių „režimų“, o tai reiškia, kad „Process AI“kodas tikisi, kad vartotojas atsakys į klausimą, o ne užduos klausimą.

Jei vartotojas nekalbėjo komandos ir AI nėra specialiame „režime“, jis sukuria ir vykdo daugybę užklausų iš „žodžių masyvo“žodžių derinių. Visi užklausos rezultatai saugomi lentelėje, o kiekvienam užklausos rezultatui suteikiamas „balas“, kiek rezultatas atitinka tai, ką vartotojas pasakė. Lentelė surūšiuota pagal balą, o rezultatas, surinkęs aukščiausią balą, siunčiamas į išvestį, jei jis viršija tam tikrą ribą. Jei visi balai yra žemiau slenksčio, AI gali atsakyti „nežinau“arba „Tai neskaičiuojama“

7 žingsnis: lentelė „Rezultatas ir balai“

The
The

PG išvestis iš mano įvesties „Ką padarė vištiena?“

8 žingsnis: „Išvesties procesorius“

„Išvesties procesorius“
„Išvesties procesorius“

Tai daro keletą „nesusijusių“išvaizdos dalykų, tačiau jie visi yra susiję su teksto perdavimu iš AI procesoriaus vartotojui.

Čia yra sąrašas.

1. Tekstas iš duomenų bazės gali būti rašomas mažosiomis raidėmis ir neturi skyrybos ženklų.. Pogrupiai pirmąją raidę rašys didžiąja raide, o pabaigoje pridės tašką arba klaustuką.

2. Kita paprograma apostrofus grąžins į susitraukimus arba susitraukimus pavers pilnais žodžiais (t. Y. „Negali“pakeičiama į „negaliu“)

3. Teksto į kalbą variklis neištaria kai kurių žodžių taip, kaip man patinka, todėl „išvesties procesorius“šiuos žodžius pakeičia fonetine rašyba. Turiu duomenų bazės „ieškoti“lenteles, kad galėčiau jas laikyti, panašias į vieną „įvesties procesoriuje“

4. Jei AI neranda tinkamo atsakymo duomenų bazėje, jis gali pasakyti „nežinau“, bet nenoriu, kad tai sakytų vėl ir vėl. Tikri žmonės reaguoja skirtingai. Taigi yra lentelė su „bendros išvesties“frazėmis ir funkcija, kuri atsitiktinai parenka vieną (ir niekada nepasirinks tos pačios du kartus iš eilės.)

5. Laisvas „teksto į kalbą“(TTS) variklis nesuteikia programuotojui daug sakinių sakymo būdų, tačiau jūs šiek tiek kontroliuojate garsų aukštį ir greitį. Sąvoka yra „prozodija“. Į savo duomenų bazės tekstą pridėjau keletą „prosodijos“kodų, o kai „išvesties procesorius“juos mato, jis koreguoja TTS variklio žingsnį ir greitį, kai tariamas kiekvienas žodis.

6. Kartais TTS tiesiog sunku suprasti, todėl ne tik garsiai sakydamas žodžius, bet ir rodau juos didelėmis raidėmis savo kompiuterio ekrane. Ši „Vartotojo sąsajos“dalis yra tinklelis, rodantis paskutines 6 pokalbio eilutes (vartotojo įvestis ir AI išvestis) ir slinkdamas aukštyn, kai pridedamos naujos eilutės.

9 žingsnis: tęskite darbą

Tęskite darbą
Tęskite darbą

Mano indėlis buvo „Niekam nesakyk“

Aš vis dar dirbu prie savo AI sistemos, ir tai tikriausiai niekada nebus „padaryta“. Kai pridėsiu daugiau funkcijų, parašysiu daugiau straipsnių.

Galbūt kai kurios mano idėjos įkvėps jus sukurti geresnį AI nei mano

Rekomenduojamas: