Obsah:

Jak si vyrobit A.I. Část 2: 9 kroků
Jak si vyrobit A.I. Část 2: 9 kroků

Video: Jak si vyrobit A.I. Část 2: 9 kroků

Video: Jak si vyrobit A.I. Část 2: 9 kroků
Video: Adel ukazala prso 2024, Listopad
Anonim
Jak si vyrobit A. I. Část 2
Jak si vyrobit A. I. Část 2

Toto je část 2 o krocích, které jsem podnikl při vytváření AI na počítači se systémem Windows, pomocí bezplatné databáze, nástroje pro vývoj programování a bezplatného integrovaného enginu TTS, který je součástí systému Windows.

Slovo „Windows“patří společnosti Microsoft.

Slovo „drak“patří Nuance.

Krok 1: Jak vyrobit AI, část 2

Jak vyrobit AI část 2
Jak vyrobit AI část 2

Vyberte si programovací jazyk a získejte nějaké nástroje

Programovacích jazyků je mnoho. Některé jsou specializované pro A. I. Můj oblíbený je Visual Basic, takže jsem ho použil. Pracuji také s databázemi serveru SQL, takže jsem to také použil.

Jejich bezplatné verze si můžete stáhnout z webu Microsoft. Stačí vyhledat „EXPRESS“na webových stránkách společnosti Microsoft. [Visual Studio Express a SQL server Express]

Další jazyky, které pro nás možná budete chtít, jsou: Python, C#, C ++, Java, Prolog, Lisp, IPL

a mnoho dalších. AIML je „značkovací jazyk“, který je velmi zajímavý.

Chtěl jsem lepší program „rozpoznávání řeči“než ten, který je dodáván s Windows, tak jsem si koupil software DRAGON. Používám standardní program „Převod textu na řeč“, který byl dodán se systémem Windows.

Krok 2: Navrhněte svůj systém:

Navrhněte svůj systém
Navrhněte svůj systém

Rozdělte své velké projekty na spoustu menších projektů. Rozdělil jsem svůj programový kód do modulů.

Rozdělil jsem svůj kód do různých modulů, aby bylo možné konkrétní funkci snáze najít.

Mám moduly s názvem „Process Input“, „Process AI“, „Process Output“, „User Interface“a několik dalších. Některé z mých funkcí musí být přístupné všem ostatním modulům kódu, proto jsem tyto funkce vložil do „společného“modulu, kde je vše sdíleno

Krok 3: Funkce, které jsou integrovány do programovacího jazyka:

Funkce, které jsou integrovány do programovacího jazyka
Funkce, které jsou integrovány do programovacího jazyka

Různé jazyky mohou mít různé názvy, ale všechny jazyky na vysoké úrovni mají podobné funkce.

LCase nebo ToLower: Převede řetězec na všechna malá písmena. Před vyhledáváním v databázi převádím vše na malá písmena-i když většina věcí nerozlišuje velká a malá písmena-jen pro případ.

Nahradit: Nahradí řetězec uvnitř řetězce jiným řetězcem. Chcete -li se toho zbavit, můžete řetězec nahradit prázdným řetězcem „“. Zbavuji se teček, otazníků, čárek a dalších interpunkčních znamének.

Rozdělit: Rozdělí řetězec na jednotlivé kousky a umístí je do pole. Tato funkce rozdělí řetězec na libovolný znak nebo „Oddělovač“. Rozdělil jsem větu na „vesmírný znak“„“, abych vytvořil řadu slov. Toto je nazýváno „Tokenizací“AI Guru.

Jednotlivá slova používám k vytváření dotazů používaných k prohledávání databáze. (Více o tom v mém dalším článku)

Krok 4: Zkombinujte vestavěné funkce a vytvořte si vlastní funkce

Toto je příklad „vizuálního základu“. K vytvoření něčeho takového použijte svůj programovací jazyk.

Samozřejmě budete muset napsat spoustu kódu a vytvořit mnoho funkcí pomocí programovacího jazyka, který si vyberete.

Krok 5: Co moduly dělají? "Vstupní procesor"

Co moduly dělají? "Vstupní procesor"
Co moduly dělají? "Vstupní procesor"

Mohlo by existovat sto různých způsobů, jak položit AI stejnou otázku. Například; "Kolik je hodin?", "Máte čas?" "Víš, kolik je hodin?", "Můžeš mi říct aktuální denní dobu?" Protože uživatel pouze žádá o čas, převedu jakýkoli z těchto vstupů na jeden výstup s názvem „Čas dotazu“pomocí tabulky „vyhledat“databázi.

Můžete psát kód a procházet tabulkou, dokud nenajde shodu, nebo pokud používáte databázi SQL, můžete napsat dotaz SQL, jako …

"Vyberte výstup z TableName, kde Input =" "cokoli""

… A pak odešlu výstup „Query Time“do dalšího modulu kódu; „Procesní AI“

Kromě otázek existuje mnoho způsobů, jak říci „ahoj“

Ahoj, ahoj, co se děje, ahoj, jak se máš ?, pozdravy, uvítání, pozdravy, ahoj…

Všechny tyto položky jsou redukovány na „pozdrav“

Když procesor AI uvidí „Pozdrav“, odešle „Pozdrav“výstupnímu procesoru, který vybere náhodný pozdrav z databázové tabulky a vysloví jej nahlas.

Krok 6: „Procesor AI“

„Procesor AI“
„Procesor AI“

Process AI je největší modul kódu. Je tak velký, že jsem ho také rozdělil na sekce.

Vstup je zkontrolován, aby se zjistilo, zda uživatel vyslovil příkaz nebo položil otázku. AI může být také v kterémkoli z několika „režimů“, což znamená, že kód „Procesní AI“očekává, že uživatel ODPOVÍDÁ na otázku, místo NA KLADENÍ otázky.

Pokud uživatel nevyslovil příkaz a AI není ve speciálním „režimu“, vytvoří a provede spoustu dotazů z kombinací slov v „poli slov“. Všechny výsledky dotazu jsou uloženy v tabulce a každému výsledku dotazu je přiřazeno „skóre“, do jaké míry se výsledek shoduje s tím, co uživatel vyslovil. Tabulka je seřazena podle skóre a výsledek s nejvyšším skóre je odeslán na výstup, pokud překročí určitou prahovou hodnotu. Pokud jsou všechna skóre pod prahovou hodnotou, může AI reagovat „nevím“nebo „to se nepočítá“

Krok 7: Tabulka „Výstup a skóre“

The
The

Výstup AI z mého vstupu „Co udělalo kuře?“

Krok 8: „Výstupní procesor“

„Výstupní procesor“
„Výstupní procesor“

To dělá několik „nesouvisejících“věcí, které vypadají, ale všechny mají co do činění se získáním textu z procesoru AI k uživateli.

Zde je seznam.

1. Text z databáze může být psán malými písmeny a nesmí obsahovat žádnou interpunkci.. Programy začnou používat velké písmeno jako první a na konec vloží tečku nebo otazník.

2. Jiný podprogram přenese apostrofy zpět do kontrakcí nebo převede kontrakce zpět na plná slova (tj. „Převýšení“se nahradí „nelze“)

3. Modul převodu textu na řeč nevyslovuje některá slova tak, jak se mi líbí, takže „výstupní procesor“tato slova nahradí fonetickým hláskováním. Mám tabulky „vyhledat“tabulky, které je obsahují, podobné té, kterou mám ve „vstupním procesoru“

4. Pokud AI nenalezne vhodnou odpověď v databázi, může říci „nevím“, ale nechci, aby to říkala znovu a znovu. Skuteční lidé mění své reakce. Existuje tedy tabulka s frázemi „Společný výstup“a funkcí, která náhodně vybere jednu (a nikdy nevybere stejnou dvakrát dvakrát za sebou.)

5. Volný modul „převodu textu na řeč“(TTS) nedává programátorovi mnoho možností, jak jsou věty vyslovovány, ale máte malou kontrolu nad výškou a rychlostí fonémů. Termín pro to je „Prosody“. Do textu v mé databázi jsem přidal nějaké „prozódové“kódy, a když je „výstupní procesor“uvidí, upraví výšku a rychlost v enginu TTS tak, jak se vysloví každé slovo.

6. Někdy je TTS jen těžko pochopitelné, takže kromě toho, že mluvím slova nahlas, je také zobrazuji velkými písmeny na displeji svého počítače. Tato část „Uživatelského rozhraní“je mřížka, která zobrazuje posledních 6 řádků konverzace (vstup uživatele a výstup AI) a posouvá se nahoru, jak se přidávají nové řádky.

Krok 9: Pokračujte v práci

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

Můj příspěvek byl „Nikomu to neříkej“

Stále pracuji na svém systému AI a pravděpodobně nikdy nebude skutečně „hotový“. Jak přidám další funkce, budu psát další články.

Možná vás některé mé nápady inspirují k vybudování AI, která je lepší než moje

Doporučuje: