Sommario:

Come creare un'intelligenza artificiale Parte 2: 9 passaggi
Come creare un'intelligenza artificiale Parte 2: 9 passaggi

Video: Come creare un'intelligenza artificiale Parte 2: 9 passaggi

Video: Come creare un'intelligenza artificiale Parte 2: 9 passaggi
Video: Come Creare Video con L'Intelligenza Artificiale: Tutorial ⚡ 2024, Dicembre
Anonim
Come creare un'intelligenza artificiale Parte 2
Come creare un'intelligenza artificiale Parte 2

Questa è la parte 2 sui passaggi che ho seguito per creare un'intelligenza artificiale su un computer Windows, utilizzando un database gratuito, uno strumento di sviluppo della programmazione e il motore TTS integrato gratuito fornito con Windows.

La parola "Windows" appartiene a Microsoft.

La parola "Drago" appartiene a Nuance.

Passaggio 1: come creare un'IA Parte 2

Come creare un'intelligenza artificiale Parte 2
Come creare un'intelligenza artificiale Parte 2

Scegli un linguaggio di programmazione e procurati alcuni strumenti

Esistono molti linguaggi di programmazione. Alcuni sono specializzati per l'A. I. Il mio preferito è Visual Basic, quindi è quello che ho usato. Lavoro anche con database del server SQL, quindi l'ho usato anche io.

È possibile scaricare versioni gratuite di questi dal sito Web Microsoft. Basta cercare "EXPRESS" sul sito Web di Microsoft. [Visual Studio Express e SQL server Express]

Altre lingue che potresti volerci sono: Python, C#, C++, Java, Prolog, Lisp, IPL

e molti altri. AIML è un "Markup Language" molto interessante.

Volevo un programma di "riconoscimento vocale" migliore di quello fornito con Windows, quindi ho acquistato il software DRAGON. Sto usando il programma "Sintesi vocale" standard fornito con Windows.

Passaggio 2: progetta il tuo sistema:

Progetta il tuo sistema
Progetta il tuo sistema

Dividi i tuoi grandi progetti in una serie di progetti più piccoli. Ho diviso il codice del mio programma in moduli.

Ho diviso il mio codice in diversi moduli in modo che una particolare funzione sia più facile da trovare.

Ho moduli chiamati "Input di processo", "AI di processo", "Output di processo", "Interfaccia utente" e pochi altri. Alcune delle mie funzioni devono essere accessibili a tutti gli altri moduli di codice, quindi inserisco quelle funzioni in un modulo "comune" in cui tutto è condiviso

Passaggio 3: funzioni integrate nel linguaggio di programmazione:

Funzioni integrate nel linguaggio di programmazione
Funzioni integrate nel linguaggio di programmazione

Lingue diverse possono avere nomi diversi per queste, ma tutte le lingue di alto livello hanno funzioni simili.

LCase o ToLower: converte una stringa in tutte minuscole. Convertire tutto in minuscolo prima di eseguire una ricerca nel database, anche se la maggior parte delle cose è "senza distinzione tra maiuscole e minuscole" - per ogni evenienza.

Sostituisci: sostituisce una stringa all'interno di una stringa in un'altra stringa. Puoi sostituire una stringa con una stringa vuota "" per sbarazzartene. Mi libero di punti, punti interrogativi, virgole e altri segni di punteggiatura.

Dividi: divide una stringa in singoli pezzi e li inserisce in una matrice. Questa funzione dividerà una stringa su qualsiasi carattere o "Delimitatore". Ho diviso una frase su un "carattere spazio" " " per creare una serie di parole. Questo è chiamato "Tokenizzazione" dai Guru AI.

Uso le singole parole per costruire query utilizzate per cercare nel database. (Maggiori informazioni su questo nel mio prossimo articolo)

Passaggio 4: combinare le funzioni integrate per creare le proprie funzioni

Questo è un esempio "visual basic". Usa il tuo linguaggio di programmazione per creare qualcosa di simile.

Ovviamente dovrai scrivere molto codice e costruire molte funzioni, usando il linguaggio di programmazione che preferisci.

Passaggio 5: cosa fanno i moduli? "Processore di ingresso"

Cosa fanno i moduli? "Processore di ingresso"
Cosa fanno i moduli? "Processore di ingresso"

Potrebbero esserci centinaia di modi diversi per porre la stessa domanda all'IA. Per esempio; "Che ore sono?", "Hai tempo?" "Sai che ore sono?", "Puoi dirmi l'ora attuale?" Poiché l'utente sta solo chiedendo il tempo, converto uno qualsiasi di questi input in un singolo output chiamato "Tempo di query" utilizzando una tabella di "ricerca" del database.

Puoi scrivere codice per scorrere una tabella finché non trova una corrispondenza, o se stai usando un database SQL, puoi scrivere una query SQL, come…

"Seleziona Output da TableName dove Input = '" qualunque '"

…E poi invio l'output, “Query Time”, al modulo di codice successivo; "IA di processo"

Oltre alle domande, ci sono molti modi per dire "Ciao"

Ciao, ciao, come va, ehi, ciao, come va?, saluti, benvenuto, saluti, ciao ….

Tutto questo si riduce a “Saluto”

Quando il processore AI vede "Saluto", invia "Saluto" al processore di output, che sceglierà un saluto casuale da una tabella del database e lo pronuncerà ad alta voce.

Passaggio 6: "Processore AI"

"Processore di intelligenza artificiale"
"Processore di intelligenza artificiale"

Process AI è il modulo di codice più grande. È così grande che l'ho diviso anche in sezioni.

L'input viene controllato per vedere se l'utente ha pronunciato un comando o ha posto una domanda. Inoltre, l'IA può trovarsi in una qualsiasi delle diverse "Modalità", il che significa che il codice "AI di processo" si aspetta che l'utente RISPONDI a una domanda, invece di CHIEDERE una domanda.

Se l'utente non ha pronunciato un comando e l'IA non è in una "Modalità" speciale, costruisce ed esegue una serie di query, a partire da combinazioni di parole nell'"array di parole". Tutti i risultati della query sono archiviati in una tabella e a ciascun risultato della query viene assegnato un "punteggio" su quanto il risultato corrisponda a ciò che l'utente ha pronunciato. La tabella viene ordinata in base al punteggio e il risultato con il punteggio più alto viene inviato all'output, se supera una determinata soglia. Se tutti i punteggi sono al di sotto della soglia, l'IA può rispondere con "Non lo so" o "Non calcola"

Passaggio 7: la tabella "output e punteggi"

Il
Il

L'output dell'IA dal mio input "Cosa ha fatto il pollo?"

Passaggio 8: "Processore di uscita"

"Processore di uscita"
"Processore di uscita"

Questo fa diverse cose dall'aspetto "non correlato", ma tutte hanno a che fare con il trasferimento del testo dal processore AI all'utente.

Ecco un elenco.

1. Il testo del database può essere tutto minuscolo e non avere segni di punteggiatura.. Le subroutine metteranno in maiuscolo la prima lettera e metteranno un punto o un punto interrogativo alla fine.

2. Un'altra subroutine rimetterà gli apostrofi nelle contrazioni, o riconvertirà le contrazioni in parole complete (cioè "cant" è sostituito con "can not")

3. Il motore di sintesi vocale non pronuncia alcune parole come mi piace, quindi il "Processore di output" sostituisce quelle parole con un'ortografia fonetica. Ho tabelle di "ricerca" del database per contenere queste, simili a quella nel "processore di ingresso"

4. Se l'IA non trova una risposta adeguata nel database, può dire "Non lo so" ma non voglio che lo ripeta ancora e ancora. Le persone reali variano le loro risposte. Quindi c'è una tabella con frasi "Common Output" e una funzione che ne sceglie una a caso (e non sceglierà mai la stessa due volte di seguito).

5. Il motore di sintesi vocale (TTS) gratuito non offre a un programmatore molte opzioni per il modo in cui vengono pronunciate le frasi, ma hai un piccolo controllo sul tono e sulla velocità dei fonemi. Il termine per questo è "Prosodia". Ho aggiunto alcuni codici "prosodia" nel testo nel mio database e quando il "Processore di output" li vede, regola il tono e la velocità nel motore TTS mentre ogni parola viene pronunciata.

6. A volte il TTS è solo difficile da capire, quindi oltre a pronunciare le parole ad alta voce, le visualizzo anche a caratteri cubitali sul display del mio computer. Questa parte dell'"Interfaccia utente" è una griglia che mostra le ultime 6 righe di una conversazione (input utente e output AI) e scorre verso l'alto man mano che vengono aggiunte nuove righe.

Passaggio 9: continua a lavorarci sopra

Continua a lavorarci sopra
Continua a lavorarci sopra

Il mio input è stato "Non dirlo a nessuno"

Sto ancora lavorando al mio sistema di intelligenza artificiale e probabilmente non sarà mai veramente "fatto". Man mano che aggiungo più funzionalità, scriverò più articoli.

Forse alcune delle mie idee ti ispireranno a costruire un'IA migliore della mia

Consigliato: