Sisukord:

Kuidas teha A.I. 2. osa: 9 sammu
Kuidas teha A.I. 2. osa: 9 sammu

Video: Kuidas teha A.I. 2. osa: 9 sammu

Video: Kuidas teha A.I. 2. osa: 9 sammu
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Juuli
Anonim
Kuidas teha A. I. 2. osa
Kuidas teha A. I. 2. osa

See on 2. osa sammudest, mille tegin Windowsi arvutis AI loomiseks, kasutades tasuta andmebaasi, programmeerimise arendustööriista ja Windowsiga kaasasolevat tasuta sisseehitatud TTS -mootorit.

Sõna "Windows" kuulub Microsoftile.

Sõna "draakon" kuulub Nuance'ile.

Samm: kuidas teha tehisintellekti 2. osa

Kuidas teha tehisintellekti 2. osa
Kuidas teha tehisintellekti 2. osa

Valige programmeerimiskeel ja hankige tööriistad

Programmeerimiskeeli on palju. Mõned on spetsialiseerunud A. I. Minu lemmik on Visual Basic, nii et ma kasutasin seda. Töötan ka SQL serveri andmebaasidega, seega kasutasin ka seda.

Nende tasuta versioonid saate alla laadida Microsofti veebisaidilt. Lihtsalt otsige Microsofti veebisaidilt sõna „EXPRESS”. [Visual Studio Express ja SQL server Express]

Teised keeled, mida võiksite meile soovida, on järgmised: Python, C#, C ++, Java, Prolog, Lisp, IPL

ja paljud teised. AIML on märgistuskeel, mis on väga huvitav.

Tahtsin Windowsiga kaasasolevast programmist paremat kõnetuvastust, seega ostsin tarkvara DRAGON. Kasutan Windowsiga kaasasolevat standardset teksti kõneks muutmise programmi.

Samm: kujundage oma süsteem:

Kujundage oma süsteem
Kujundage oma süsteem

Jagage oma suured projektid hunnikuks väiksemateks projektideks. Jagasin oma programmi koodi mooduliteks.

Jagasin oma koodi erinevateks mooduliteks, et teatud funktsiooni oleks lihtsam leida.

Mul on mooduleid nimega „Protsessisisend”, „Protsessi AI”, „Protsessiväljund”, „Kasutajaliides” ja mõned teised. Mõned minu funktsioonid peavad olema kättesaadavad kõigile teistele koodimoodulitele, nii et ma panen need funktsioonid "ühisesse" moodulisse, kus kõik on jagatud

Samm 3: Programmeerimiskeele sisseehitatud funktsioonid:

Programmeerimiskeele sisseehitatud funktsioonid
Programmeerimiskeele sisseehitatud funktsioonid

Erinevatel keeltel võivad olla erinevad nimed, kuid kõigil kõrgetasemelistel keeltel on sarnased funktsioonid.

LCase või ToLower: teisendab stringi väiketähtedeks. Ma teisendan kõik enne andmebaasiotsingu tegemist väiketähtedeks-kuigi enamik asju on „tõstutundetu”-igaks juhuks.

Asenda: asendage stringi sees olev string teise stringina. Stringist vabanemiseks võite selle asendada tühja stringiga “”. Ma vabanen punktidest, küsimärkidest, komadest ja muudest kirjavahemärkidest.

Split: jagab stringi üksikuteks tükkideks ja paneb need massiivi. See funktsioon jagab stringi mis tahes tähemärgi või "eraldaja" järgi. Jagasin lause „tühikukujulisele tähemärgile” „“, et teha sõnamassiiv. AI -gurud nimetavad seda "tokeniseerimiseks".

Kasutan üksikuid sõnu andmebaasi otsimiseks kasutatavate päringute koostamiseks. (Lisateavet selle kohta minu järgmises artiklis)

Samm: ühendage sisseehitatud funktsioonid oma funktsioonide loomiseks

See on “visuaalne põhinäide”. Kasutage oma programmeerimiskeelt sellise asja loomiseks.

Loomulikult peate oma valitud programmeerimiskeelt kasutades kirjutama palju koodi ja looma palju funktsioone.

5. samm: mida moodulid teevad? "Sisendprotsessor"

Mida teevad moodulid? "Sisendprotsessor"
Mida teevad moodulid? "Sisendprotsessor"

AI -le sama küsimuse esitamiseks võib olla sada erinevat võimalust. Näiteks; "Mis kell on?", "Kas teil on aega?" "Kas sa tead, mis kell on?", "Kas sa oskad öelda praegust kellaaega?" Kuna kasutaja küsib lihtsalt aega, teisendan kõik need sisendid andmevälja otsingu tabeli abil üheks väljundiks nimega „Päringu aeg”.

Saate kirjutada koodi tabeli kaudu, kuni see leiab vaste, või kui kasutate SQL -andmebaasi, saate kirjutada SQL -päringu, näiteks…

"Valige tabeli Nimi väljund, kus sisend =" "mis iganes""

… Ja siis saadan väljundi „Päringu aeg” järgmisele koodimoodulile; "Töötle tehisintellekti"

Lisaks küsimustele on "Tere" ütlemiseks palju võimalusi

Tere, tere, mis lahti, hei, hola, kuidas läheb ?, tervitused, tere tulemast, tervitused, tere….

Kõik need on taandatud tervitusele

Kui tehisintellekti protsessor näeb tervitust, saadab see väljundprotsessorile tervituse, mis valib andmebaasi tabelist juhusliku tervituse ja ütleb selle valjusti.

Samm: „AI -protsessor”

"AI protsessor"
"AI protsessor"

Protsess AI on suurim koodimoodul. See on nii suur, et jagasin selle ka osadeks.

Sisendit kontrollitakse, et näha, kas kasutaja rääkis käsu või esitas küsimuse. Samuti võib tehisintellekt olla mitmes režiimis, mis tähendab, et kood „protsess AI“ootab kasutajalt küsimuse esitamise asemel küsimusele VASTAMIST.

Kui kasutaja ei rääkinud käsku ja tehisintellekt ei ole spetsiaalses režiimis, siis koostab ja täidab see hulga päringuid sõnade massiivi sõnade kombinatsioonidest. Kõik päringutulemused salvestatakse tabelisse ja igale päringutulemusele antakse „skoor” selle kohta, kui täpselt tulemus vastab kasutaja poolt öeldule. Tabel sorteeritakse punktisumma järgi ja kõrgeima skooriga tulemus saadetakse väljundisse, kui see ületab teatud läve. Kui kõik hinded jäävad allapoole künnist, võib tehisintellekt vastata sõnadega „ma ei tea” või „see ei arvuta”.

Samm 7: tabel "Väljund ja hinded"

The
The

AI väljund minu sisendist "Mida kana tegi?"

Samm: väljundprotsessor

"Väljundprotsessor"
"Väljundprotsessor"

See teeb mitmeid "sõltumatu" välimusega asju, kuid need kõik on seotud teksti edastamisega AI -protsessorilt kasutajale.

Siin on nimekiri.

1. Andmebaasi tekst võib olla väiketähtedega ja sellel ei tohi olla kirjavahemärke.. Alamprogrammid kirjutavad esimese tähe suurtähega ja panevad punkti või küsimärgi lõppu.

2. Teine alamprogramm muudab apostroofid kontraktsioonideks või teisendab kokkutõmbed täissõnadeks (st „ei saa” asendatakse sõnaga „ei saa”)

3. Tekst kõneks mootor ei häälda mõnda sõna nii, nagu mulle meeldib, nii et väljundprotsessor asendab need sõnad foneetilise õigekirjaga. Mul on andmebaasi otsimistabelid nende hoidmiseks, sarnaselt sellele "sisendprotsessoris"

4. Kui tehisintellekt ei leia andmebaasist sobivat vastust, võib ta öelda “ma ei tea”, kuid ma ei taha, et see seda ikka ja jälle ütleks. Reaalsed inimesed erinevad oma vastustest. Seega on olemas tabel, mis sisaldab fraase „Common Output” ja funktsioon, mis valib ühe juhuslikult (ja ei vali kunagi sama kaks korda järjest.)

5. Tasuta tekst-kõneks (TTS) mootor ei anna programmeerijale palju võimalusi lausete rääkimiseks, kuid teil on pisut kontrolli helikõrguse ja foneemide kiiruse üle. Selle mõiste on "Prosody". Lisasin oma andmebaasi teksti mõned „prosoodia” koodid ja kui „väljundprotsessor” neid näeb, reguleerib see iga sõna rääkimisel TTS -mootori helikõrgust ja kiirust.

6. Mõnikord on TTS -ist lihtsalt raske aru saada, nii et lisaks sõnade valjusti rääkimisele kuvan neid ka oma arvutiekraanil suurte tähtedega. See kasutajaliidese osa on ruudustik, mis näitab vestluse viimast 6 rida (kasutaja sisend ja tehisintellekti väljund) ning kerib uute ridade lisamisel üles.

9. samm: jätkake selle kallal töötamist

Jätkake selle kallal töötamist
Jätkake selle kallal töötamist

Minu sisend oli "Ära räägi kellelegi"

Töötan endiselt oma AI -süsteemi kallal ja tõenäoliselt ei tehta seda kunagi päriselt. Kui lisan rohkem funktsioone, kirjutan rohkem artikleid.

Võib -olla inspireerivad mõned minu ideed teid looma tehisintellekti, mis on parem kui minu oma

Soovitan: