Sadržaj:

Kako napraviti A.I. Dio 2: 9 koraka
Kako napraviti A.I. Dio 2: 9 koraka

Video: Kako napraviti A.I. Dio 2: 9 koraka

Video: Kako napraviti A.I. Dio 2: 9 koraka
Video: Выставляю степень сжатия под 95 бензин на двигателе скутера 2024, Srpanj
Anonim
Kako napraviti A. I. 2. dio
Kako napraviti A. I. 2. dio

Ovo je drugi dio o koracima koje sam poduzeo za izgradnju umjetne inteligencije na Windows računalu, koristeći besplatnu bazu podataka, alat za razvoj programiranja i besplatni ugrađeni TTS motor koji dolazi s Windowsima.

Riječ "Windows" pripada Microsoftu.

Riječ "Zmaj" pripada Nuanceu.

Korak 1: Kako napraviti AI dio 2

Kako napraviti AI dio 2
Kako napraviti AI dio 2

Odaberite programski jezik i nabavite neke alate

Postoji mnogo programskih jezika. Neki su specijalizirani za A. I. Najdraži mi je Visual Basic pa sam to i koristio. Radim i s bazama podataka SQL poslužitelja pa sam i to koristio.

Možete preuzeti besplatne verzije ovih verzija s Microsoftove web stranice. Samo potražite “EXPRESS” na Microsoftovoj web stranici. [Visual Studio Express i SQL server Express]

Drugi jezici koje biste željeli su nam: Python, C#, C ++, Java, Prolog, Lisp, IPL

i mnogi drugi. AIML je "jezik označavanja" koji je vrlo zanimljiv.

Htio sam bolji program za "prepoznavanje govora" od onog koji dolazi s Windowsima, pa sam kupio softver DRAGON. Koristim standardni program za pretvaranje teksta u govor koji je isporučen sa sustavom Windows.

Korak 2: Dizajnirajte svoj sustav:

Dizajnirajte svoj sustav
Dizajnirajte svoj sustav

Podijelite svoje velike projekte u hrpu manjih projekata. Svoj programski kod podijelio sam na module.

Podijelio sam svoj kôd na različite module tako da je određenu funkciju lakše pronaći.

Imam module pod nazivom „Unos procesa“, „Procesna inteligencija“, „Izlaz procesa“, „Korisničko sučelje“i nekoliko drugih. Neke od mojih funkcija moraju biti dostupne svim ostalim kodnim modulima, pa sam te funkcije stavio u "zajednički" modul gdje se sve dijeli

Korak 3: Funkcije ugrađene u programski jezik:

Funkcije ugrađene u programski jezik
Funkcije ugrađene u programski jezik

Različiti jezici mogu imati različite nazive za ove jezike, ali svi jezici na visokoj razini imaju slične funkcije.

LCase ili ToLower: Pretvara niz u sva mala slova. Prije pretraživanja baze podataka sve pretvaram u mala slova-iako je većina stvari "ne razlikuju velika i mala slova"-Za svaki slučaj.

Zamijeni: Zamijenite niz unutar niza u drugi niz. Možete zamijeniti niz praznim nizom "" da biste ga se riješili. Riješim se točaka, upitnika, zareza i drugih znakova interpunkcije.

Split: Razdvaja niz na pojedinačne dijelove i stavlja ih u niz. Ova funkcija će podijeliti niz na bilo koji znak ili "Razdjelnik". Rečenicu sam podijelio na "razmaknicu" "" kako bih napravio niz riječi. AI gurui to zovu "Tokeniziranje".

Koristim pojedinačne riječi za izradu upita koji se koriste za pretraživanje baze podataka. (Više o tome u mom sljedećem članku)

Korak 4: Kombinirajte ugrađene funkcije za stvaranje vlastitih funkcija

Ovo je "osnovni vizualni" primjer. Upotrijebite svoj programski jezik da biste izgradili nešto poput ovoga.

Naravno, morat ćete napisati mnogo koda i izgraditi mnoge funkcije, koristeći programski jezik po svom izboru.

Korak 5: Što rade moduli? "Ulazni procesor"

Što rade moduli? "Ulazni procesor"
Što rade moduli? "Ulazni procesor"

Možda postoji stotinu različitih načina da AI postavite isto pitanje. Na primjer; "Koliko je sati?", "Imate li vremena?" "Znate li koliko je sati?", "Možete li mi reći trenutno doba dana?" Budući da korisnik samo traži vrijeme, pretvaram bilo koji od ovih ulaza u jedan izlaz pod nazivom "Vrijeme upita" koristeći tablicu "traženje" baze podataka.

Možete pisati kôd za petlju kroz tablicu dok ne pronađe podudaranje, ili ako koristite SQL bazu podataka, možete napisati SQL upit, poput …

"Odaberite izlaz iz TableName gdje je Input =" "svejedno""

… I onda šaljem izlaz, "Query Time", u sljedeći kodni modul; "Procesna umjetna inteligencija"

Osim pitanja, postoji mnogo načina da kažete "Zdravo"

Bok, zdravo, što ima, hej, hola, kako si ?, pozdrav, dobrodošao, pozdrav, pozdrav …

Sve se to svodi na "Pozdrav"

Kada AI procesor vidi "Greeting", šalje "Greeting" izlaznom procesoru, koji će izabrati nasumični pozdrav iz tablice baze podataka i izgovoriti ga naglas.

Korak 6: "AI procesor"

"AI procesor"
"AI procesor"

Procesna umjetna inteligencija najveći je kodni modul. Toliko je velik da sam ga podijelio i u odjeljke.

Unos se provjerava da li je korisnik izgovorio naredbu ili postavio pitanje. Također, umjetna inteligencija može biti u bilo kojem od nekoliko “načina”, što znači da kod “procesna umjetna inteligencija” očekuje da korisnik ODGOVORI na pitanje, umjesto da postavi pitanje.

Ako korisnik nije izgovorio naredbu, a umjetna inteligencija nije u posebnom "načinu rada", tada gradi i izvršava hrpu upita, iz kombinacija riječi u "nizu riječi". Svi rezultati upita pohranjeni su u tablici, a svaki rezultat upita dobiva "ocjenu" koliko se rezultat podudara s onim što je korisnik rekao. Tablica je razvrstana po bodovima, a rezultat s najvišom ocjenom šalje se na izlaz, ako prelazi određeni prag. Ako su svi bodovi ispod praga, umjetna inteligencija može odgovoriti sa "ne znam" ili "to se ne računa"

Korak 7: Tablica "izlaz i rezultati"

The
The

Rezultat umjetne inteligencije iz mog unosa "Što je kokoš učinila?"

Korak 8: "Izlazni procesor"

"Izlazni procesor"
"Izlazni procesor"

To čini nekoliko stvari koje nisu povezane, ali sve imaju veze s prenosom teksta iz AI procesora do korisnika.

Ovdje je popis.

1. Tekst iz baze podataka može biti malim slovima i bez interpunkcije.. Podprogrami će veliko slovo napisati velikim početnim slovom, a na kraju staviti točku ili upitnik.

2. Druga potprogram vratit će apostrofe u kontrakcije ili pretvoriti kontrakcije u pune riječi (tj. "Cant" se zamjenjuje sa "can not")

3. Stroj za pretvaranje teksta u govor ne izgovara neke riječi onako kako mi se sviđa, pa "Output Processor" zamjenjuje te riječi fonetskim pravopisom. Imam tablice "potražite" bazu podataka da ih držim, slično onoj u "ulaznom procesoru"

4. Ako umjetna inteligencija ne pronađe odgovarajući odgovor u bazi podataka, može reći "ne znam", ali ne želim da to ponavlja iznova i iznova. Pravi ljudi razlikuju svoje odgovore. Dakle, postoji tablica s izrazima "Uobičajeni izlaz" i funkcija koja nasumično odabire jednu (i nikada neće odabrati istu dva puta zaredom.)

5. Besplatni mehanizam za pretvaranje teksta u govor (TTS) ne daje programeru mnogo mogućnosti za način izgovora rečenica, ali imate malo kontrole nad visinom tona i brzinom fonema. Izraz za to je "prozodija". Dodao sam neke "prozodijske" kodove u tekst u svojoj bazi podataka, a kada ih "Output Processor" vidi, prilagođava visinu i brzinu u TTS stroju kako se izgovara svaka riječ.

6. Ponekad je TTS jednostavno teško razumjeti, pa osim što izgovaram riječi naglas, prikazujem ih i velikim slovima na zaslonu računala. Ovaj dio "Korisničkog sučelja" rešetka je koja prikazuje posljednjih 6 redaka razgovora (korisnički unos i AI izlaz) i pomiče se prema gore dodavanjem novih redaka.

Korak 9: Nastavite raditi na tome

Nastavite raditi na tome
Nastavite raditi na tome

Moj unos je bio "Ne govori nikome"

Još uvijek radim na svom AI sustavu i vjerojatno to nikada neće biti dovršeno. Kako budem dodavao više značajki, pisat ću i više članaka.

Možda će vas neke od mojih ideja inspirirati da napravite AI koja je bolja od moje

Preporučeni: