Índice:

Como fazer um I.A. Parte 2: 9 etapas
Como fazer um I.A. Parte 2: 9 etapas
Anonim
Como fazer um I. A. Parte 2
Como fazer um I. A. Parte 2

Esta é a parte 2 sobre as etapas que executei para construir uma IA em um computador Windows, usando um banco de dados gratuito, ferramenta de desenvolvimento de programação e o mecanismo de TTS integrado gratuito que vem com o Windows.

A palavra "Windows" pertence à Microsoft.

A palavra "Dragão" pertence à Nuance.

Etapa 1: Como fazer um AI Parte 2

Como fazer um AI Parte 2
Como fazer um AI Parte 2

Escolha uma linguagem de programação e obtenha algumas ferramentas

Existem muitas linguagens de programação. Alguns são especializados em I. A. Meu favorito é Visual Basic, então foi o que usei. Eu também trabalho com bancos de dados de servidor SQL, então usei isso também.

Você pode baixar versões gratuitas deles no site da Microsoft. Basta pesquisar “EXPRESS” no site da Microsoft. [Visual Studio Express e SQL server Express]

Outras linguagens que você pode querer para nós são: Python, C #, C ++, Java, Prolog, Lisp, IPL

e muitos outros. AIML é uma “linguagem de marcação” muito interessante.

Eu queria um programa de “reconhecimento de fala” melhor do que o que vem com o Windows, então comprei o software DRAGON. Estou usando o programa padrão “Text-to-speech” que acompanha o Windows.

Etapa 2: Projete seu sistema:

Projete seu sistema
Projete seu sistema

Divida seus grandes projetos em um monte de projetos menores. Dividi o código do meu programa em módulos.

Dividi meu código em diferentes módulos para que uma função específica seja mais fácil de encontrar.

Eu tenho módulos chamados “Process Input”, “Process AI”, “Process Output”, “User Interface” e alguns outros. Algumas das minhas funções precisam estar acessíveis a todos os outros módulos de código, então coloquei essas funções em um módulo "comum" onde tudo é compartilhado

Etapa 3: funções integradas à linguagem de programação:

Funções que são incorporadas à linguagem de programação
Funções que são incorporadas à linguagem de programação

Linguagens diferentes podem ter nomes diferentes para eles, mas todas as linguagens de alto nível têm funções semelhantes.

LCase ou ToLower: Converte uma string em minúsculas. Eu converto tudo para minúsculas antes de fazer uma pesquisa no banco de dados - embora a maioria das coisas não faça distinção entre maiúsculas e minúsculas - por precaução.

Substituir: Substitua um string dentro de um string por outro string. Você pode substituir uma string por uma string vazia “” para se livrar dela. Eu me livrei de pontos finais, pontos de interrogação, vírgulas e outros sinais de pontuação.

Dividir: divide um barbante em pedaços individuais e os coloca em uma matriz. Esta função irá dividir uma string em qualquer caractere, ou “Delimitador”. Eu divido uma frase em um “caractere de espaço” ““para fazer uma série de palavras. Isso é chamado de “Tokenização” pelos Gurus de IA.

Eu uso as palavras individuais para construir consultas usadas para pesquisar o banco de dados. (Mais sobre isso em meu próximo artigo)

Etapa 4: Combine funções integradas para criar suas próprias funções

Este é um exemplo “visual básico”. Use sua linguagem de programação para construir algo assim.

Claro, você precisará escrever muito código e construir muitas funções, usando a linguagem de programação de sua escolha.

Etapa 5: O que os módulos fazem? “Processador de entrada”

O que os módulos fazem? “Processador de entrada”
O que os módulos fazem? “Processador de entrada”

Pode haver uma centena de maneiras diferentes de fazer a mesma pergunta à IA. Por exemplo; “Que horas são?”, “Você tem tempo?” “Você sabe que horas são?”, “Você pode me dizer a hora atual do dia?” Como o usuário está apenas perguntando o tempo, eu converto qualquer uma dessas entradas em uma única saída chamada “Tempo de consulta” usando uma tabela de “consulta” do banco de dados.

Você pode escrever código para percorrer uma tabela até encontrar uma correspondência ou, se estiver usando um banco de dados SQL, pode escrever uma consulta SQL, como …

“Selecione Output from TableName onde Input =‘”qualquer‘”

… E então eu envio a saída, “Query Time”, para o próximo módulo de código; “Processo AI”

Além de perguntas, existem muitas maneiras de dizer “Olá”

Olá, Olá, tudo bem, ei, olá, tudo bem ?, saudações, bem-vindo, saudações, olá …

Todos estes são reduzidos a "Saudação"

Quando o processador AI vê “Saudação”, ele envia “Saudação” para o processador de saída, que escolherá uma saudação aleatória de uma tabela de banco de dados e a falará em voz alta.

Etapa 6: “Processador AI”

“Processador AI”
“Processador AI”

AI de processo é o maior módulo de código. É tão grande que também o dividi em seções.

A entrada é verificada para ver se o usuário falou um comando ou fez uma pergunta. Além disso, o AI pode estar em qualquer um dos vários "Modos", o que significa que o código "Process AI" espera que o usuário RESPONDA a uma pergunta, em vez de FAZER uma pergunta.

Se o usuário não falou um comando e o AI não está em um “Modo” especial, ele constrói e executa um monte de consultas, a partir de combinações de palavras no “array de palavras”. Todos os resultados da consulta são armazenados em uma tabela, e cada resultado da consulta recebe uma “pontuação” que mostra quão próximo o resultado corresponde ao que o usuário falou. A tabela é classificada pela pontuação e o resultado com a pontuação mais alta é enviado para a saída, se exceder um determinado limite. Se todas as pontuações estiverem abaixo do limite, o AI pode responder com "Não sei" ou "Isso não faz sentido"

Etapa 7: A tabela de "resultados e pontuações"

o
o

O resultado do AI a partir da minha entrada "O que a galinha fez?"

Etapa 8: “Processador de saída”

“Processador de Saída”
“Processador de Saída”

Isso faz várias coisas que parecem "não relacionadas", mas todas elas têm a ver com passar o texto do processador AI para o usuário.

Aqui está uma lista.

1. O texto da base de dados pode estar todo em caixa baixa e não ter pontuação.. Subrotinas colocarão a primeira letra em maiúscula e colocarão um ponto final ou ponto de interrogação no final.

2. Outra sub-rotina colocará apóstrofos de volta em contrações ou converterá as contrações de volta em palavras completas (ou seja, "não posso" é substituído por "não posso")

3. O mecanismo de conversão de texto em fala não pronuncia algumas palavras da maneira que eu gosto, então o "Processador de saída" substitui essas palavras por uma grafia fonética. Eu tenho tabelas de "pesquisa" de banco de dados para mantê-las, semelhantes a esta no “processador de entrada”

4. Se a IA não encontrar uma resposta adequada no banco de dados, pode dizer "Não sei", mas não quero que diga isso indefinidamente. Pessoas reais variam suas respostas. Portanto, há uma tabela com frases de "Saída Comum" e uma função que escolhe uma aleatoriamente (e nunca escolherá a mesma duas vezes consecutivas).

5. O mecanismo “text-to-speech” (TTS) gratuito não oferece ao programador muitas opções para a forma como as frases são faladas, mas você tem um pouco de controle sobre o tom e a velocidade dos fonemas. O termo para isso é “Prosódia”. Eu adicionei alguns códigos de “prosódia” ao texto em meu banco de dados e, quando o “Processador de saída” os vê, ele ajusta o tom e a velocidade no mecanismo TTS conforme cada palavra é falada.

6. Às vezes, o TTS é difícil de entender, então, além de falar palavras em voz alta, eu também as exibo em letras grandes na tela do meu computador. Esta parte da "Interface do usuário" é uma grade que mostra as últimas 6 linhas de uma conversa (entrada do usuário e saída AI) e rola para cima conforme novas linhas são adicionadas.

Etapa 9: Continue trabalhando nisso

Continue trabalhando nisso
Continue trabalhando nisso

Minha opinião foi “Não conte a ninguém”

Ainda estou trabalhando no meu sistema de IA e provavelmente nunca estará realmente "pronto". À medida que adiciono mais recursos, escreverei mais artigos.

Talvez algumas das minhas ideias o inspirem a construir uma IA melhor do que a minha

Recomendado: