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, Novembar
Anonim
Kako napraviti A. I. Dio 2
Kako napraviti A. I. Dio 2

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

Riječ "Windows" pripada Microsoftu.

Reč "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. Moj omiljeni je Visual Basic, pa sam to i koristio. Radim i sa bazama podataka SQL servera, 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 da nam pošaljete su: 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 sistem:

Dizajnirajte svoj sistem
Dizajnirajte svoj sistem

Podijelite svoje velike projekte u gomilu manjih projekata. Podijelio sam svoj programski kod 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, ali svi jezici na visokom nivou imaju slične funkcije.

LCase ili ToLower: Pretvara niz u sva mala slova. Pretvaram sve u mala slova prije pretraživanja baze podataka-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 tačaka, upitnika, zareza i drugih znakova interpunkcije.

Podijeli: Razdvaja niz na pojedinačne dijelove i stavlja ih u niz. Ova funkcija će podijeliti niz na bilo koji znak ili "Razdjelnik". Podijelio sam rečenicu na "razmaknicu" "" da napravim 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 "vizualni osnovni" primjer. Upotrijebite svoj programski jezik da napravite nešto poput ovoga.

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

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

Šta rade moduli? "Ulazni procesor"
Šta 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 =" "šta god""

… I onda šaljem izlaz, “Query Time”, u sljedeći kodni modul; "Proces AI"

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

Zdravo, zdravo, šta ima, hej, hola, kako si ?, pozdrav, dobrodošlica, 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 inteligencija je najveći kodni modul. Toliko je velik da sam ga podijelio i na 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 "modu", 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 sortirana prema rezultatu, a rezultat s najvišom ocjenom šalje se na izlaz, ako prelazi određeni prag. Ako su svi bodovi ispod praga, AI može odgovoriti sa "ne znam" ili "to se ne računa"

Korak 7: Tabela "izlaz i rezultati"

The
The

Rezultat AI -a iz mog unosa "Šta je uradila piletina?"

Korak 8: "Izlazni procesor"

"Izlazni procesor"
"Izlazni procesor"

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

Evo liste.

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

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

3. Mašina za pretvaranje teksta u govor ne izgovara neke riječi onako kako ja volim, pa "Output Processor" zamjenjuje te riječi fonetskim pravopisom. Imam tablice za "traženje" baze podataka za držanje ovih, slično onoj u "ulaznom procesoru"

4. Ako AI 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 pretvaranja teksta u govor (TTS) ne daje programerima 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 mehanizmu 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 ekranu računara. Ovaj dio "Korisničkog sučelja" je rešetka 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 sistemu umjetne inteligencije, i to vjerovatno nikada neće biti istinski „završeno“. Kako budem dodavao više funkcija, pisat ću i više članaka.

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

Preporučuje se: