Cuprins:

Cum să faci un A.I. Partea 2: 9 pași
Cum să faci un A.I. Partea 2: 9 pași

Video: Cum să faci un A.I. Partea 2: 9 pași

Video: Cum să faci un A.I. Partea 2: 9 pași
Video: Cum scrii când începi un caiet nou 2024, Iulie
Anonim
Cum să faci un A. I. Partea 2
Cum să faci un A. I. Partea 2

Aceasta este partea 2 despre pașii pe care i-am făcut pentru a construi un AI pe un computer Windows, folosind o bază de date gratuită, un instrument de dezvoltare a programării și motorul TTS gratuit încorporat care vine cu Windows.

Cuvântul „Windows” aparține Microsoft.

Cuvântul „Dragon” aparține Nuance.

Pasul 1: Cum se realizează o AI partea 2

Cum să faci o parte AI 2
Cum să faci o parte AI 2

Alegeți un limbaj de programare și obțineți câteva instrumente

Există multe limbaje de programare. Unele sunt specializate pentru A. I. Preferatul meu este Visual Basic, deci asta am folosit. Lucrez și cu baze de date SQL server, așa că am folosit și asta.

Puteți descărca versiuni gratuite ale acestora de pe site-ul web Microsoft. Căutați doar „EXPRESS” pe site-ul web Microsoft. [Visual Studio Express și SQL Server Express]

Alte limbi pe care le-ați putea dori sunt: Python, C #, C ++, Java, Prolog, Lisp, IPL

și multe altele. AIML este un „limbaj de markup” foarte interesant.

Am vrut un program de „recunoaștere a vorbirii” mai bun decât cel care vine cu Windows, așa că am cumpărat software-ul DRAGON. Folosesc programul standard „Text-to-speech” furnizat cu Windows.

Pasul 2: Proiectați-vă sistemul:

Proiectează-ți sistemul
Proiectează-ți sistemul

Împărțiți proiectele dvs. mari într-o grămadă de proiecte mai mici. Mi-am împărțit codul de program în module.

Mi-am împărțit codul în diferite module, astfel încât o anumită funcție să fie mai ușor de găsit.

Am module numite „Process Input”, „Process AI”, „Process Output”, „User Interface” și câteva altele. Unele dintre funcțiile mele trebuie să fie accesibile tuturor celorlalte module de cod, așa că am pus aceste funcții într-un modul „comun” în care totul este partajat

Pasul 3: Funcții care sunt încorporate în limbajul de programare:

Funcții care sunt încorporate în limbajul de programare
Funcții care sunt încorporate în limbajul de programare

Limbi diferite pot avea nume diferite pentru acestea, dar toate limbile de nivel înalt au funcții similare.

LCase sau ToLower: convertește un șir cu majuscule. Convertesc totul în minuscule înainte de a efectua o căutare în baza de date - chiar dacă majoritatea lucrurilor nu fac „minuscule” - pentru orice eventualitate.

Înlocuiți: înlocuiți un șir din interiorul unui șir într-un alt șir. Puteți înlocui un șir cu un șir gol „” pentru a scăpa de el. Scap de puncte, semne de întrebare, virgule și alte semne de punctuație.

Împărțire: împarte un șir în bucăți individuale și le pune într-o matrice. Această funcție va împărți un șir pe orice caracter sau „Delimitator”. Am împărțit o propoziție pe un „caracter spațial” „„ pentru a face o serie de cuvinte. Aceasta este numită „Tokenizarea” de către AI Gurus.

Folosesc cuvintele individuale pentru a construi interogări folosite pentru a căuta în baza de date. (Mai multe despre acest lucru în următorul meu articol)

Pasul 4: Combinați funcțiile încorporate pentru a vă crea propriile funcții

Acesta este un exemplu „de bază vizual”. Folosiți limbajul de programare pentru a construi așa ceva.

Desigur, va trebui să scrieți mult cod și să construiți multe funcții, folosind limbajul de programare la alegere.

Pasul 5: Ce fac modulele? „Procesor de intrare”

Ce fac modulele? „Procesor de intrare”
Ce fac modulele? „Procesor de intrare”

S-ar putea să existe o sută de moduri diferite de a pune AI aceeași întrebare. De exemplu; „Ce oră este?”, „Ai timp?” „Știți ce oră este?”, „Îmi puteți spune ora curentă a zilei?” Deoarece utilizatorul cere doar ora, convertesc oricare dintre aceste intrări într-o singură ieșire numită „Query Time” folosind un tabel de „căutare în sus” a bazei de date.

Puteți scrie cod pentru a trece printr-un tabel până când găsește o potrivire sau, dacă utilizați o bază de date SQL, puteți scrie o interogare SQL, cum ar fi …

„Selectați ieșire din TableName unde Input =‘”oricare ar fi„”

… Și apoi trimit rezultatul, „Query Time”, la următorul modul de cod; „Proces AI”

În afară de întrebări, există multe modalități de a spune „Bună ziua”

Bună, Bună, ce se întâmplă, hei, hola, ce mai faci ?, salutări, bun venit, salutări, howdy …

Toate acestea sunt reduse la „Salut”

Când procesorul AI vede „Greeting”, acesta trimite „Greeting” procesorului de ieșire, care va alege un mesaj aleatoriu dintr-un tabel de baze de date și îl va rosti cu voce tare.

Pasul 6: „Procesor AI”

„Procesor AI”
„Procesor AI”

Procesul AI este cel mai mare modul de cod. Este atât de mare încât l-am împărțit și în secțiuni.

Intrarea este verificată pentru a vedea dacă utilizatorul a rostit o comandă sau a pus o întrebare. De asemenea, AI poate fi în oricare dintre mai multe „Moduri” ceea ce înseamnă că codul „Procesează AI” așteaptă ca utilizatorul să RĂSPUNSĂ o întrebare, în loc să ÎL PUNE pe o întrebare.

Dacă utilizatorul nu a rostit o comandă și AI nu se află într-un „mod” special, atunci construiește și execută o grămadă de interogări, din combinațiile de cuvinte din „matricea de cuvinte”. Toate rezultatele interogării sunt stocate într-un tabel și fiecărui rezultat al interogării i se acordă un „scor” în ceea ce privește cât de mult se potrivește rezultatul cu ceea ce vorbise utilizatorul. Tabelul este sortat după scor, iar rezultatul cu cel mai mare scor este trimis la ieșire, dacă depășește un anumit prag. Dacă toate scorurile sunt sub prag, AI poate răspunde cu „Nu știu” sau „Asta nu calculează”

Pasul 7: Tabelul „ieșire și scoruri”

The
The

Ieșirea AI din inputul meu „Ce a făcut puiul?”

Pasul 8: „Procesor de ieșire”

„Procesor de ieșire”
„Procesor de ieșire”

Acest lucru face mai multe lucruri care nu au legătură, dar toate au de-a face cu transmiterea textului de la procesorul AI către utilizator.

Iată o listă.

1. Textul din baza de date poate fi cu majuscule și să nu conțină punctuație.. Subrutinele vor scrie cu majusculă prima literă și vor pune un punct sau un semn de întrebare la final.

2. Un alt subrutină va pune apostrofele înapoi în contracții sau va converti contracțiile înapoi în cuvinte complete (adică „cant” se înlocuiește cu „nu se poate”)

3. Motorul text-to-speech nu pronunță unele cuvinte așa cum îmi place, așa că „Procesorul de ieșire” înlocuiește aceste cuvinte cu o ortografie fonetică. Am tabele „căutați” în baza de date pentru a le păstra, asemănătoare cu cea în „procesorul de intrare”

4. Dacă AI nu găsește un răspuns adecvat în baza de date, poate spune „Nu știu”, dar nu vreau să spună acest lucru de nenumărate ori. Oamenii adevărați își variază răspunsurile. Deci, există un tabel cu fraze „Ieșire comună” și o funcție care alege una la întâmplare (și nu o va alege niciodată pe aceeași de două ori la rând.)

5. Motorul gratuit „text-to-speech” (TTS) nu oferă unui programator o mulțime de opțiuni pentru modul în care sunt rostite propozițiile, dar aveți puțin control asupra tonului și a vitezei fonemelor. Termenul pentru aceasta este „Prosodie”. Am adăugat câteva coduri de „prozodie” în textul din baza mea de date și, atunci când „Procesorul de ieșire” le vede, ajustează tonul și viteza în motorul TTS pe măsură ce se vorbește fiecare cuvânt.

6. Uneori, TTS este greu de înțeles, așa că, pe lângă rostirea cuvintelor cu voce tare, le afișez și cu litere mari pe ecranul computerului. Această parte a „Interfeței cu utilizatorul” este o grilă care afișează ultimele 6 linii ale unei conversații (Intrare utilizator și ieșire AI) și derulează pe măsură ce se adaugă noi linii..

Pasul 9: Continuați să lucrați la el

Continuă să lucrezi la asta
Continuă să lucrezi la asta

Contribuția mea a fost „Nu spune nimănui”

Încă lucrez la sistemul meu de AI și probabil că nu va fi niciodată „terminat” cu adevărat. Pe măsură ce adaug mai multe funcții, voi scrie mai multe articole.

Poate că unele dintre ideile mele te vor inspira să construiești o IA mai bună decât a mea

Recomandat: