Taula de continguts:

Com fer un A.I. Part 2: 9 passos
Com fer un A.I. Part 2: 9 passos

Vídeo: Com fer un A.I. Part 2: 9 passos

Vídeo: Com fer un A.I. Part 2: 9 passos
Vídeo: ИСЧЕЗНУВШИЙ В АНОМАЛЬНОМ МЕСТЕ "ЧЕРТОВ ОВРАГ 2/DISAPPEARED IN AN ANOMALOUS PLACE "DEVIL'S RAVINE 2 2024, Desembre
Anonim
Com fer un A. I. Part 2
Com fer un A. I. Part 2

Aquesta és la segona part sobre els passos que vaig fer per construir una IA en un ordinador Windows, mitjançant una base de dades gratuïta, una eina de desenvolupament de programació i el motor TTS gratuït incorporat que ve amb Windows.

La paraula "Windows" pertany a Microsoft.

La paraula "Drac" pertany a Nuance.

Pas 1: Com fer una IA part 2

Com fer una IA Part 2
Com fer una IA Part 2

Trieu un llenguatge de programació i obteniu algunes eines

Hi ha molts llenguatges de programació. Alguns estan especialitzats en A. I. El meu preferit és Visual Basic, per això és el que he utilitzat. També treballo amb bases de dades del servidor SQL, de manera que també ho he fet servir.

Podeu descarregar-ne versions gratuïtes des del lloc web de Microsoft. Només cal que cerqueu "EXPRESS" al lloc web de Microsoft. [Visual Studio Express i SQL Server Express]

Altres idiomes que ens poden interessar són: Python, C #, C ++, Java, Prolog, Lisp, IPL

i molts altres. AIML és un "llenguatge de marques" que és molt interessant.

Volia un programa de "reconeixement de veu" millor que el que ve amb Windows, així que vaig comprar el programari DRAGON. Estic fent servir el programa estàndard de text a veu inclòs amb Windows.

Pas 2: Dissenyeu el vostre sistema:

Dissenyeu el vostre sistema
Dissenyeu el vostre sistema

Dividiu els vostres grans projectes en un munt de projectes més petits. He dividit el codi del meu programa en mòduls.

He dividit el meu codi en diferents mòduls de manera que una funció concreta sigui més fàcil de trobar.

Tinc mòduls anomenats "Process Input", "Process AI", "Process Output", "User Interface" i alguns altres. Algunes de les meves funcions han de ser accessibles a tots els altres mòduls de codi, de manera que he posat aquestes funcions en un mòdul "comú" on es comparteix tot

Pas 3: Funcions integrades en el llenguatge de programació:

Funcions integrades en el llenguatge de programació
Funcions integrades en el llenguatge de programació

Els idiomes diferents poden tenir noms diferents per a aquests, però tots els idiomes d’alt nivell tenen funcions similars.

LCase o ToLower: converteix una cadena en minúscules. Ho converteixo tot en minúscula abans de fer una cerca a la base de dades, tot i que la majoria de les coses no distingeixen entre majúscules i minúscules, per si de cas.

Substitueix: substitueix una cadena dins d'una cadena per una altra. Podeu substituir una cadena per una cadena buida "" per eliminar-la. M’elimino de punts, signes d’interrogació, comes i altres signes de puntuació.

Dividir: divideix una cadena en peces individuals i les col·loca en una matriu. Aquesta funció dividirà una cadena en qualsevol caràcter o "Delimitador". He dividit una frase en un "caràcter espacial" "" per fer un conjunt de paraules. Això és anomenat "Tokenizing" pels AI Gurus.

Utilitzo les paraules individuals per crear consultes que s’utilitzen per fer cerques a la base de dades. (Més informació al següent article)

Pas 4: Combineu funcions integrades per crear les vostres pròpies funcions

Aquest és un exemple "visual bàsic". Utilitzeu el vostre llenguatge de programació per crear una cosa així.

Per descomptat, haureu d’escriure molt codi i construir moltes funcions, utilitzant el llenguatge de programació que trieu.

Pas 5: què fan els mòduls? "Processador d'entrada"

Què fan els mòduls? "Processador d'entrada"
Què fan els mòduls? "Processador d'entrada"

Hi pot haver cent maneres diferents de fer la mateixa pregunta a la IA. Per exemple; "Quina hora és?", "Tens temps?" "Saps quina hora és?", "Em pots indicar l'hora actual del dia?" Com que l'usuari només demana l'hora, converteixo qualsevol d'aquestes entrades en una única sortida anomenada "Temps de consulta" mitjançant una taula de cerca de la base de dades.

Podeu escriure codi per passar una taula fins que trobi una coincidència o, si utilitzeu una base de dades SQL, podeu escriure una consulta SQL, com ara …

"Seleccioneu Sortida de TableName on Entrada =" "sigui quina sigui""

… I després envio la sortida, "Temps de consulta", al següent mòdul de codi; "Processar IA"

A més de preguntes, hi ha moltes maneres de dir "Hola"

Hola, hola, què passa, hola, hola, com ho fas ?, salutacions, benvinguda, salutacions, hola …

Tot això es redueix a "Salutació"

Quan el processador d'AI veu "Salutació", envia "Salutació" al processador de sortida, que triarà una salutació aleatòria d'una taula de base de dades i la pronunciarà en veu alta.

Pas 6: "Processador d'IA"

"Processador d'IA"
"Processador d'IA"

Process AI és el mòdul de codi més gran. És tan gran que també el vaig dividir en seccions.

Es comprova l'entrada si l'usuari ha parlat una ordre o ha fet una pregunta. A més, la IA pot estar en qualsevol dels diversos "modes", cosa que significa que el codi "IA de procés" espera que l'usuari RESPON una pregunta, en lloc de FER una pregunta.

Si l'usuari no va pronunciar cap ordre i l'IA no es troba en un "mode" especial, crea i executa un munt de consultes a partir de les combinacions de les paraules de la "matriu de paraules". Tots els resultats de la consulta s'emmagatzemen en una taula i cada resultat de la consulta té una "puntuació" quant a la concordança del resultat amb el que havia parlat l'usuari. La taula s’ordena per la puntuació i el resultat amb la puntuació més alta s’envia a la sortida, si supera un llindar determinat. Si totes les puntuacions estan per sota del llindar, la IA pot respondre amb "No sé" o "Això no computa"

Pas 7: la taula "Resultats i puntuacions"

El
El

La sortida de la IA de la meva entrada "Què va fer el pollastre?"

Pas 8: "Processador de sortida"

"Processador de sortida"
"Processador de sortida"

Això fa diverses coses amb aspecte "no relacionat", però totes tenen a veure amb fer arribar el text del processador d'IA a l'usuari.

Aquí teniu una llista.

1. El text de la base de dades pot ser en minúscules i no tenir puntuació.. Les subrutines posaran en majúscula la primera lletra i posaran un punt o un interrogant al final.

2. Una altra subrutina tornarà a posar els apòstrofs en contraccions o convertirà les contraccions de nou en paraules completes (és a dir, "cant" se substitueix per "no es pot")

3. El motor de conversió de text a veu no pronuncia algunes paraules com m'agrada, de manera que el "Processador de sortida" substitueix aquestes paraules per una grafia fonètica. Tinc taules de "buscar cap a la base de dades" per contenir-les, similars a la al "processador d'entrada"

4. Si la IA no troba una resposta adequada a la base de dades, pot dir "No ho sé", però no vull que ho digui una vegada i una altra. Les persones reals varien les seves respostes. Per tant, hi ha una taula amb frases de "Sortida comuna" i una funció que en tria una a l'atzar (i mai no en triarà la mateixa dues vegades seguides).

5. El motor lliure de "text a veu" (TTS) no proporciona a un programador moltes opcions per a la manera en què es parlen les frases, però sí que teniu un petit control sobre el to i la velocitat dels fonemes. El terme per a això és "prosòdia". He afegit alguns codis de "prosòdia" al text de la meva base de dades i, quan el "Processador de sortida" els veu, ajusta el to i la velocitat del motor TTS a mesura que es parla cada paraula.

6. De vegades, el TTS és difícil d’entendre, de manera que, a més de dir paraules en veu alta, també les mostro en lletres grans a la pantalla de l’ordinador. Aquesta part de la "Interfície d'usuari" és una quadrícula que mostra les darreres 6 línies d'una conversa (entrada d'usuari i sortida d'IA) i es desplaça cap amunt a mesura que s'afegeixen línies noves.

Pas 9: continueu treballant-hi

Seguiu treballant-hi
Seguiu treballant-hi

La meva aportació va ser "No ho diguis a ningú"

Encara estic treballant en el meu sistema d'intel·ligència artificial i probablement mai no es realitzarà "realment". A mesura que afegeixi més funcions, escriuré més articles.

Potser algunes de les meves idees us inspiraran a construir una IA que sigui millor que la meva

Recomanat: