Obsah:

Ako urobiť A.I. Časť 2: 9 krokov
Ako urobiť A.I. Časť 2: 9 krokov

Video: Ako urobiť A.I. Časť 2: 9 krokov

Video: Ako urobiť A.I. Časť 2: 9 krokov
Video: Электрика в квартире своими руками. Вторая серия. Переделка хрущевки от А до Я .#10 2024, Júl
Anonim
Ako urobiť A. I. Časť 2
Ako urobiť A. I. Časť 2

Toto je časť 2 o krokoch, ktoré som vykonal pri vytváraní AI na počítači so systémom Windows pomocou bezplatnej databázy, nástroja na vývoj programovania a bezplatného vstavaného motora TTS, ktorý je súčasťou systému Windows.

Slovo „Windows“patrí spoločnosti Microsoft.

Slovo „drak“patrí Nuance.

Krok 1: Ako vyrobiť AI, časť 2

Ako vyrobiť AI časť 2
Ako vyrobiť AI časť 2

Vyberte si programovací jazyk a získajte niekoľko nástrojov

Existuje mnoho programovacích jazykov. Niektoré sú špecializované pre A. I. Môj obľúbený je Visual Basic, takže som ho použil. Pracujem aj s databázami serverov SQL, takže som to tiež použil.

Ich bezplatné verzie si môžete stiahnuť z webovej stránky spoločnosti Microsoft. Stačí vyhľadať výraz „EXPRESS“na webovej stránke spoločnosti Microsoft. [Visual Studio Express a SQL server Express]

Ďalšie jazyky, ktoré by ste od nás mohli chcieť, sú: Python, C#, C ++, Java, Prolog, Lisp, IPL

a veľa ďalších. AIML je „značkovací jazyk“, ktorý je veľmi zaujímavý.

Chcel som lepší program na rozpoznávanie reči, ako je program, ktorý je súčasťou systému Windows, a tak som si kúpil softvér DRAGON. Používam štandardný program „Prevod textu na reč“, ktorý bol dodaný so systémom Windows.

Krok 2: Navrhnite svoj systém:

Navrhnite svoj systém
Navrhnite svoj systém

Rozdeľte svoje veľké projekty na veľa menších projektov. Programový kód som rozdelil do modulov.

Svoj kód som rozdelil do rôznych modulov, aby bolo jednoduchšie nájsť konkrétnu funkciu.

Mám moduly s názvom „Process Input“, „Process AI“, „Process Output“, „User Interface“a niekoľko ďalších. Niektoré z mojich funkcií musia byť prístupné pre všetky ostatné moduly kódu, preto som tieto funkcie vložil do „spoločného“modulu, v ktorom je všetko zdieľané

Krok 3: Funkcie, ktoré sú zabudované do programovacieho jazyka:

Funkcie, ktoré sú zabudované do programovacieho jazyka
Funkcie, ktoré sú zabudované do programovacieho jazyka

Rôzne jazyky môžu mať rôzne názvy, ale všetky jazyky na vysokej úrovni majú podobné funkcie.

LCase alebo ToLower: Konvertuje reťazec na všetky malé písmená. Pred vyhľadávaním v databáze skonvertujem všetko na malé písmená-aj keď väčšina vecí nerozlišuje malé a veľké písmena-len pre prípad.

Nahradiť: Nahradí reťazec vo vnútri reťazca iným reťazcom. Reťazec môžete nahradiť prázdnym reťazcom „“, aby ste sa ho zbavili. Zbavujem sa bodiek, otáznikov, čiarok a iných interpunkčných znamienok.

Rozdeliť: Rozdelí reťazec na jednotlivé kúsky a usporiada ich do poľa. Táto funkcia rozdelí reťazec na ľubovoľný znak alebo „oddeľovač“. Rozdelím vetu na „medzerník““„ “, aby som vytvoril pole slov. AI Guru to nazýva „tokenizácia“.

Jednotlivé slová používam na vytváranie dotazov používaných na vyhľadávanie v databáze. (Viac o tom v mojom ďalšom článku)

Krok 4: Skombinujte vstavané funkcie a vytvorte si vlastné funkcie

Toto je príklad „vizuálneho základu“. Na zostavenie niečoho podobného použite svoj programovací jazyk.

Samozrejme, budete musieť napísať veľa kódu a vytvoriť mnoho funkcií pomocou programovacieho jazyka podľa vlastného výberu.

Krok 5: Čo robia moduly? „Vstupný procesor“

Čo robia moduly? „Vstupný procesor“
Čo robia moduly? „Vstupný procesor“

Môže existovať sto rôznych spôsobov, ako položiť AI rovnakú otázku. Napríklad; "Koľko je hodín?", "Máte čas?" "Viete, koľko je hodín?", "Môžete mi povedať aktuálny čas?" Pretože používateľ iba pýta čas, konvertujem ktorýkoľvek z týchto vstupov na jeden výstup s názvom „Query Time“pomocou tabuľky „look up“databázy.

Môžete písať kód a prechádzať tabuľkou, kým nenájde zhodu, alebo ak používate databázu SQL, môžete napísať dotaz SQL, napríklad …

„Vyberte výstup z TableName, kde Input =" "čokoľvek""

… A potom pošlem výstup „Čas dopytu“do ďalšieho modulu kódu; „Procesná AI“

Okrem otázok existuje niekoľko spôsobov, ako povedať „ahoj“

Ahojte, čo sa deje, ahoj, ako sa máš? Pozdravujem, vítam, pozdravujem, ahoj …

Všetky tieto položky sú redukované na „pozdrav“

Akonáhle procesor AI uvidí „pozdrav“, odošle „pozdrav“výstupnému procesoru, ktorý vyberie náhodný pozdrav z databázovej tabuľky a vysloví ho nahlas.

Krok 6: „Procesor AI“

„Procesor AI“
„Procesor AI“

Process AI je najväčší modul kódu. Je taký veľký, že som ho rozdelil aj na sekcie.

Vstup sa kontroluje, aby sa zistilo, či používateľ vyslovil príkaz alebo položil otázku. AI môže byť tiež v ktoromkoľvek z niekoľkých „režimov“, čo znamená, že kód „Process AI“očakáva, že používateľ namiesto PÝTANIA otázky odpovie na otázku.

Ak používateľ nevyslovil príkaz a AI nie je v špeciálnom „režime“, zostaví a vykoná množstvo dotazov z kombinácií slov v „slovnom poli“. Všetky výsledky dotazu sú uložené v tabuľke a každému výsledku dotazu je priradené „skóre“, do akej miery sa výsledok zhoduje s tým, čo používateľ povedal. Tabuľka je zoradená podľa skóre a výsledok s najvyšším skóre sa odošle na výstup, ak prekročí určitú prahovú hodnotu. Ak sú všetky skóre pod prahovou hodnotou, AI môže odpovedať „neviem“alebo „to sa nepočíta“

Krok 7: Tabuľka „Výstup a skóre“

The
The

Výstup AI z môjho vstupu „Čo urobilo kura?“

Krok 8: „Výstupný procesor“

"Výstupný procesor"
"Výstupný procesor"

To robí niekoľko „nesúvisiacich“vecí, ktoré vyzerajú, ale všetky súvisia s poskytnutím textu z procesora AI používateľovi.

Tu je zoznam.

1. Text z databázy môže byť napísaný malými písmenami a nesmie obsahovať žiadnu interpunkciu.. Programy použijú veľké písmeno ako prvé a na koniec vložia bodku alebo otáznik.

2. Ďalší podprogram vráti apostrofy do kontrakcií alebo ich prevedie späť na úplné slová (t. J. „Prevýšenie“sa nahradí výrazom „nemôže“)

3. Modul prevodu textu na reč nevyslovuje niektoré slová tak, ako sa mi páči, takže „výstupný procesor“tieto slová nahradí fonetickým pravopisom. Mám tabuľky „vyhľadať“databázu, ktoré ich uchovávajú, podobne ako tá. vo „vstupnom procesore“

4. Ak AI nenájde v databáze vhodnú odpoveď, môže povedať „neviem“, ale nechcem, aby to hovorilo znova a znova. Skutoční ľudia reagujú rôzne. Existuje teda tabuľka s frázami „spoločný výstup“a funkciou, ktorá vyberie jednu náhodne (a nikdy nevyberie rovnakú dvakrát za sebou.)

5. Voľný modul „prevodu textu na reč“(TTS) nedáva programátorovi veľa možností, ako sa vyslovujú vety, ale máte malú kontrolu nad výškou a rýchlosťou foném. Termín je „Prosody“. Do textu v mojej databáze som pridal nejaké „prozódové“kódy, a keď ich „výstupný procesor“uvidí, upraví výšku a rýchlosť v motore TTS tak, ako sa hovorí každé slovo.

6. TTS je niekedy ťažké porozumieť, takže okrem toho, že hovorím slová nahlas, zobrazujem ich aj veľkými písmenami na displeji svojho počítača. Táto časť „Používateľského rozhrania“je mriežka, ktorá zobrazuje posledných 6 riadkov konverzácie (vstup používateľa a výstup AI) a pri pridávaní nových riadkov sa posúva nahor.

Krok 9: Pokračujte v práci

Pokračujte v práci
Pokračujte v práci

Môj vstup bol „Nikomu to nehovor“

Stále pracujem na svojom systéme AI a pravdepodobne nikdy nebude skutočne „hotový“. Keď pridám ďalšie funkcie, napíšem ďalšie články.

Možno vás niektoré moje nápady inšpirujú k vybudovaniu AI, ktorá je lepšia ako moja

Odporúča: