Tartalomjegyzék:

Hogyan készítsünk A.I. 2. rész: 9 lépés
Hogyan készítsünk A.I. 2. rész: 9 lépés

Videó: Hogyan készítsünk A.I. 2. rész: 9 lépés

Videó: Hogyan készítsünk A.I. 2. rész: 9 lépés
Videó: Hogyan készítsünk lapbookot lépésről lépésre 2. rész 2024, Július
Anonim
Hogyan készítsünk A. I. 2. rész
Hogyan készítsünk A. I. 2. rész

Ez a 2. rész arról szól, hogy milyen lépéseket tettem egy mesterséges intelligencia létrehozásához egy Windows számítógépen, egy ingyenes adatbázis, programozói fejlesztőeszköz és a Windowshoz tartozó, beépített TTS motor használatával.

A "Windows" szó a Microsofté.

A "sárkány" szó a Nuance -hez tartozik.

1. lépés: Hogyan készítsünk mesterséges intelligenciát 2. rész

Hogyan készítsünk mesterséges intelligenciát 2. rész
Hogyan készítsünk mesterséges intelligenciát 2. rész

Válasszon programozási nyelvet, és szerezzen be néhány eszközt

Sok programozási nyelv létezik. Néhányuk az A. I. A kedvencem a Visual Basic, tehát ezt használtam. SQL szerver adatbázisokkal is dolgozom, ezért azt is használtam.

Ezek ingyenes verzióit letöltheti a Microsoft webhelyéről. Csak keressen rá az „EXPRESS” kifejezésre a Microsoft webhelyén. [Visual Studio Express és SQL Server Express]

További nyelvek: Python, C#, C ++, Java, Prolog, Lisp, IPL

és sokan mások. Az AIML egy „Markup Language”, ami nagyon érdekes.

Jobb „beszédfelismerő” programot akartam, mint ami a Windowshoz tartozik, ezért megvettem a DRAGON szoftvert. A szabványos „Szövegfelolvasó” programot használom, amely a Windows rendszerhez került.

Lépés: Tervezze meg a rendszert:

Tervezze meg rendszerét
Tervezze meg rendszerét

Ossza nagy projektjeit egy csomó kisebb projektre. A programkódomat modulokra osztottam.

A kódomat különböző modulokra osztottam, hogy egy adott funkció könnyebben megtalálható legyen.

Vannak „Process Input”, „Process AI”, „Process Output”, „User Interface” és néhány más modulom. Egyes funkcióimnak elérhetőnek kell lenniük az összes többi kódmodul számára, ezért ezeket a funkciókat egy „közös” modulba helyeztem, ahol minden megosztott

3. lépés: A programozási nyelvbe épített funkciók:

A programozási nyelvbe épített funkciók
A programozási nyelvbe épített funkciók

A különböző nyelveknek különböző nevei lehetnek, de minden magas szintű nyelvnek hasonló funkciói vannak.

LCase vagy ToLower: Egy karakterláncot kisbetűvé alakít át. Mindent kisbetűvé alakítok, mielőtt adatbázis-keresést végeznék-annak ellenére, hogy a legtöbb dolog „kis- és nagybetűket nem érzékeny”-minden esetre.

Csere: A karakterláncon belüli karakterlánc cseréje egy másikra. A karakterláncot egy üres karakterlánccal „” helyettesítheti, hogy megszabaduljon tőle. Megszabadulok a pontoktól, a kérdőjelektől, a vesszőktől és egyéb írásjelektől.

Felosztás: A karakterláncot külön darabokra bontja, és tömbbe helyezi. Ez a függvény egy karakterláncot szétválaszt bármely karakterre, vagy „elválasztóra”. Egy mondatot egy "szóköz" karakterre bontottam "" ", hogy szavakat állítsak össze. Ezt az AI -guruk „tokenizálásnak” nevezik.

Az egyes szavakat használom az adatbázisban való kereséshez használt lekérdezések létrehozásához. (Erről bővebben a következő cikkemben)

4. lépés: A beépített funkciók kombinálásával saját funkciókat hozhat létre

Ez egy „vizuális alap” példa. Használja a programozási nyelvét valami ilyesmi felépítéséhez.

Természetesen sok kódot kell írnia, és számos funkciót kell építenie az Ön által választott programozási nyelv használatával.

5. lépés: Mit csinálnak a modulok? "Bemeneti processzor"

Mit csinálnak a modulok? "Bemeneti processzor"
Mit csinálnak a modulok? "Bemeneti processzor"

Százféleképpen teheted fel ugyanazt a kérdést az AI -nak. Például; „Hány óra van?”, „Van ideje?” "Tudod, hány óra van?", "Meg tudod mondani a napszakot?" Mivel a felhasználó csak az időt kéri, ezen bemenetek bármelyikét egyetlen „Lekérdezési idő” nevű kimenetre konvertálom egy adatbázis „felkutatása” táblázat segítségével.

Írhat kódot a táblázaton keresztül, amíg meg nem találja az egyezést, vagy ha SQL adatbázist használ, írhat SQL lekérdezést, például…

"Válassza ki a Kimenetet a TableName -ből, ahol a bemenet =" "bármi""

… És akkor elküldöm a „Query Time” kimenetet a következő kódmodulnak; „AI feldolgozása”

A kérdéseken kívül sokféleképpen lehet „Hello” -ot mondani

Szia, sziasztok, mi újság, hé, hola, hogy vagytok ?, üdvözlet, üdvözlet, üdv, üdv….

Mindez „üdvözlésre” korlátozódik

Amikor az AI processzor látja a „Greeting” (Üdvözlés) üzenetet, akkor „Greeting” -t küld a kimeneti processzornak, amely véletlenszerű üdvözletet választ az adatbázis táblájából, és hangosan kimondja.

6. lépés: „AI processzor”

„AI processzor”
„AI processzor”

A Process AI a legnagyobb kódmodul. Olyan nagy, hogy azt is szakaszokra osztottam.

A bemenetet ellenőrzik, hogy a felhasználó parancsot mondott -e, vagy kérdést tett fel. Ezenkívül az AI több „mód” bármelyikében lehet, ami azt jelenti, hogy a „Process AI” kód azt várja a felhasználótól, hogy válaszoljon egy kérdésre ahelyett, hogy kérdezne.

Ha a felhasználó nem mondott parancsot, és az AI nincs speciális „módban”, akkor egy csomó lekérdezést épít fel és hajt végre a „szavak tömb” szavak kombinációiból. Az összes lekérdezési eredményt egy táblázat tárolja, és minden lekérdezés eredménye „pontszámot” kap arra vonatkozóan, hogy az eredmény mennyire felel meg a felhasználó által elmondottaknak. A táblázat a pontszámok szerint van rendezve, és a legmagasabb pontszámú eredményt küldi a kimenetre, ha meghalad egy bizonyos küszöböt. Ha az összes pontszám a küszöb alatt van, az AI válaszolhat: „Nem tudom” vagy „Ez nem számít”

7. lépés: A "kimenet és pontszámok" táblázat

Az
Az

Az AI kimenete a "Mit csinált a csirke?"

8. lépés: „Kimeneti processzor”

"Kimeneti processzor"
"Kimeneti processzor"

Ez számos „független” kinézetű dolgot tesz, de mindnek köze van ahhoz, hogy a szöveget az AI processzorról a felhasználóhoz juttassa.

Itt egy lista.

1. Az adatbázisból származó szöveg kisbetűs lehet, és nem tartalmazhat írásjeleket.. Az alprogramok nagybetűvel írják az első betűt, és pontot vagy kérdőjelet tesznek a végére.

2. Egy másik alprogram visszahelyezi az aposztrófokat összehúzódásokba, vagy az összehúzódásokat teljes szavakká alakítja át (azaz a „vidám” helyett „nem lehet”)

3. A szövegfelolvasó motor nem ejt ki egyes szavakat úgy, ahogy nekem tetszik, ezért az „Output Processor” ezeket a szavakat fonetikus helyesírással helyettesíti. Vannak adatbázis „look up” táblák ezek tárolására, hasonlóan az a „bemeneti processzorban”

4. Ha az AI nem talál megfelelő választ az adatbázisban, akkor azt mondhatja: „nem tudom”, de nem szeretném, ha ezt újra és újra elmondaná. Az igazi emberek eltérő válaszokat adnak. Tehát van egy táblázat „Common Output” kifejezésekkel és egy funkcióval, amely véletlenszerűen választ egyet (és soha nem választja ki ugyanazt kétszer egymás után.)

5. Az ingyenes „szöveg-beszéd” (TTS) motor nem sok lehetőséget ad a programozónak a mondatok kimondására, de egy kicsit kontrollálhatja a hangmagasságot és a fonémák sebességét. Ennek a kifejezés a „Prosody”. Hozzáadtam néhány „proszódia” kódot az adatbázisom szövegéhez, és amikor a „kimeneti processzor” látja ezeket, minden szó kimondásakor beállítja a TTS motor hangmagasságát és sebességét.

6. A TTS -t néha nehéz megérteni, ezért a szavak hangos kimondása mellett nagy betűkkel is megjelenítem őket a számítógép kijelzőjén. A „Felhasználói felület” ezen része egy rács, amely megjeleníti a beszélgetés utolsó 6 sorát (felhasználói bevitel és AI kimenet), és felfelé görget, amikor új sorok kerülnek hozzáadásra.

9. lépés: Folytassa a munkát

Dolgozzon tovább
Dolgozzon tovább

A hozzászólásom: „Ne mondd el senkinek”

Továbbra is dolgozom az AI rendszeren, és valószínűleg soha nem lesz „kész”. Ahogy további funkciókat adok hozzá, további cikkeket fogok írni.

Talán néhány ötletem inspirálni fog egy olyan mesterséges intelligencia létrehozásához, amely jobb, mint az enyém

Ajánlott: