
Como o trabalho aplicado difere da teorização do papel é a ocorrência de problemas. Constantemente confrontado com novas dificuldades, que por sua vez fornecem alimento para a mente.
No processo de trabalhar em um bot de bate-papo, fui confrontado com a necessidade de antecipar (ou seja, antecipar) o desenvolvimento do diálogo. Eu não tinha pensado nisso antes, mas então - decidindo quais palavras colocar nos lábios do computador em resposta a uma frase humana específica - eu tive que pensar sobre isso.
As conclusões pareciam interessantes para mim. Eles estão na superfície do problema e podem não ser uma revelação para quem já estudou IA, mas eu não vi linguagem direta na imprensa. Então, vamos começar ...
Diálogo de uma pessoa e um chatbot: uma pessoa está dizendo algo, o chatbot deve responder
razoavelmente . Parece que a principal dificuldade na programação é a imprevisibilidade do que será falado por uma pessoa, porque ela pode dizer literalmente qualquer coisa. E, se for o caso, é difícil encontrar uma resposta razoável: a lista de respostas para perguntas imprevisíveis deve ser infinita, mas o infinito é tecnicamente impossível. Conseqüentemente, o chatbot deve "entender" o que o interlocutor disse a ele - ainda mais na pista dos desenvolvedores de IA, muito além dos limites do tópico anunciado ...
O humor da situação é que, a partir do chatbot "compreendendo", "compreendendo" a frase do interlocutor não é apenas uma oportunidade, mas também uma necessidade especial, pelo motivo de que ... as próprias pessoas não se comunicam assim. Se você pensa que as pessoas analisam o que ouvem com a ajuda do aparato mental - o cérebro, então, com base na análise, elas expressam a resposta, a comunicação não acontece exatamente assim, acontece de maneira diferente.
Você já se perguntou por que gosta de conversar com os amigos? Não é porque você ouve de amigos que é principalmente agradável, não apenas no sentido de "complementar", mas também no sentido de "interessante", "fascinante" etc.? Exatamente pelo mesmo motivo, é desagradável para você conversar com os inimigos, porque as informações provenientes deles têm o sinal ou o vetor oposto para você. Em outras palavras,
você sabe com antecedência quais informações de quem receberá e age de acordo com as circunstâncias : entre em contato com os amigos com alegria, evite reuniões com os inimigos, se possível.
Aqui está a pergunta: por que você precisa entrar em contato com seus amigos se você sabe com antecedência o que eles dirão? Não, entendo e compartilho: divirta-se, relaxe ... no entanto, o desejo de obter novas informações aqui está claramente em último lugar. Na maioria das vezes, as pessoas obtêm informações - em certo sentido, novas informações para si mesmas - de outras fontes e, ao se comunicarem com os amigos, recebem um burburinho de outra coisa, a saber, da previsibilidade da conversa, assim como ao se comunicar com os inimigos, muito antes de se comunicarem, elas sofrem negativas. emoções, graças à mesma previsibilidade do que vai acontecer.
A maioria das conversas é previsível, e isso só pode significar uma coisa: as pessoas sabem com antecedência o curso de uma conversa futura com um interlocutor específico.
Na realidade, a comunicação entre as pessoas é um pouco diferente do que é assumido por padrão:
- o interlocutor diz algo
- Você analisa a frase que ouve e dá uma resposta.
Na realidade, a comunicação entre as pessoas ocorre da seguinte maneira:
- você antecipa o que o interlocutor lhe dirá e prepara antecipadamente a resposta para a frase esperada ,
- se as expectativas foram atendidas, em branco
- caso contrário, você também emitirá um espaço em branco, mas não individual, para um determinado interlocutor, mas situacional, adequado para qualquer interlocutor.
Isso é antecipação, e suas leis são aplicáveis não apenas às conversas com pessoas, cuja atitude é definida (positiva ou negativa), mas também a quaisquer conversas em princípio.
Suponha que você encontre um amigo e diga a ele: "Olá".
Esta frase obedece à situação: de acordo com certas regras, cuja origem neste caso não é importante, é usada no início do diálogo. Não faz sentido esperar pela resposta, que provavelmente é conhecida, você pode começar a construir a próxima frase. Ao ouvir a saudação de retorno, você inicia a frase preparada imediatamente, sem mais deliberações.
No entanto, em resposta, você pode ouvir outra coisa, por exemplo: "Sim, você vai ...". A conversa planejada anteriormente seguiu um caminho diferente, o script mudou dramaticamente. Bem, acontece. Nesse caso, seu cérebro fornece uma resposta padrão, como: "Você vai!" - apenas um momento depois da frase que soaria se o cenário planejado permanecer inalterado. Um momento é, estritamente falando, não tempo para reflexão, mas tempo para acessar uma biblioteca de espaços em branco situacionais. Que tipo de pensamento existe quando tudo é feito “na máquina”, praticamente no nível inconsciente!
Pode-se imaginar que o interlocutor "pule a jogada": ele não diz olá, mas diz a frase a seguir de uma maneira amigável, familiar à sua comunicação passada. Meios habituais implícitos. Para você (mais precisamente, seu cérebro), não faz sentido esperar por uma resposta já conhecida, mas faz sentido preparar frases para o diálogo subsequente. Então é altamente provável que a frase subsequente após o “olá” esquecido não seja pega de surpresa: a peça preparada chegará à sua boca sem o menor atraso. Se desejado, a ausência de uma saudação de retorno pode ser considerada não uma “jogada perdida”, mas uma nova ramificação do script, mas isso não altera a imagem geral.

A terceira opção faz com que você decida sobre a profundidade da antecipação. Se não formos capazes de antecipar a frase que o interlocutor não disse, teremos que analisá-la após pronunciá-la. Assim, é ideal antecipar não apenas a frase a seguir, mas todo o diálogo como um todo - mas isso é do campo dos bons desejos. As pessoas são incapazes de tal coisa: durante o diálogo, são forçadas a pular constantemente das bibliotecas de compras individuais para as situacionais.
Portanto,
qualquer réplica envolve um conjunto de respostas subsequentes, com um conjunto muito limitado . No caso das saudações, isso se deve ao ritual da polidez, no caso geral - o limite das reações humanas a um evento específico: alegria, tristeza, admiração, desprezo etc. Existem várias dezenas de sensações, você não pode imaginar outras - as pessoas simplesmente não sentem mais nada. As reações possibilitam antecipar o diálogo, tendo em mãos os preparativos para qualquer possível frase do interlocutor.
Assim, o diálogo não tem possibilidades infinitas de dizer algo arbitrário e responder a algo arbitrário, mas de caminhos estreitos pelos quais você só pode se mover. São como pistas na pista de corrida: só é permitido desligar onde é fornecida pelo projetista da pista - a psicologia humana. Você não pode sair da estrada: a cerca principal foi instalada, você sabe.
Como carros em um autódromo, as conversas também se movem em círculo. Amigos se divertem com um assunto problemático, namoradas fofocam entre si não menos entusiasticamente. Se surgir uma disputa entre pessoas hostis, os argumentos do lado oposto são passados entre os ouvidos. No último caso, eles dizem: "Ele não me ouve". Ele ouve com os ouvidos, provavelmente, mas a sua reação ao plano de conversa não é antecipada pelo interlocutor, porque o interlocutor responde com um espaço em branco padrão que não combina mais com você. A rotatória é uma situação desesperadora.

Gráficos típicos. Qualquer frase pode ser pronunciada, sempre há a opção de uma ou outra resposta: portanto, cada nó deve ter pelo menos uma borda de entrada e várias extensões de extensão de saída.
Idealmente, um chatbot precisa de uma margem de várias colunas - planos de conversação: individual para cada interlocutor com quem ele falou e comum a estranhos. É óbvio que, por exemplo, para um homem que se comunica com uma mulher que ama e com um subordinado mal-intencionado, tudo será diferente: assuntos, vocabulário, entonações, cor emocional, volume, etc., mas antes de tudo - a direção do pensamento.
Deve-se entender que a antecipação não é uma panacéia, mas um dos muitos métodos, além disso, ao desenvolver a IA não é o mais significativo, existem outros mais importantes. Além disso, a técnica é extremamente difícil de implementar.
Se o interlocutor cumprimentou de alguma forma não padronizada, o chatbot pode "não adivinhar" a saudação e reagirá de maneira diferente (a variabilidade da fala humana é o problema dos problemas, droga). Mas a saudação é o caso mais simples: antecipar as observações subsequentes é muito mais difícil.
Além disso, ao gerar sua própria frase, o chatbot pode planejar uma reação errônea do interlocutor, o que levará a discrepâncias com a resposta esperada.
Finalmente, em alguns casos, por razões puramente algorítmicas, é mais lucrativo aguardar a frase do interlocutor e analisá-la. Se o chatbot for usado para solicitar ingressos, é óbvio que não há sentido ou oportunidade de prever o ticket para qual data e qual rota o comprador solicitará - é necessário aguardar as informações. Ao mesmo tempo, a antecipação é necessária em um diálogo típico livre de IA: pode economizar muito tempo de processamento, pelo menos devido à capacidade de antecipar enquanto você pensa ou pronuncia a frase.
Em conexão com a antecipação e uma biblioteca de espaços em branco situacionais, um caso curioso é lembrado. Um amigo veio para minha esposa e eu. Depois de algum tempo, ela mencionou o marido, que esquece para sempre de apagar a luz: ela começou a contar com entusiasmo como é o rabo checo dele e assim por diante. Claro! Claro! Você está absolutamente certo, querida! - ouvi os comentários compassivos da minha esposa. A piada era que na minha família exatamente o oposto. A esposa basicamente não apaga a luz: um minuto após sua chegada a casa, a luz está acesa em todos os lugares - nos quartos, no corredor, na cozinha, no banheiro e no banheiro. Ao passar, eu o desligo automaticamente, e minha esposa o liga automaticamente, e não há nada a ser feito. Mas a conversa com a amiga foi exatamente isso. A esposa usou os espaços em branco adequados à reunião um pouco fora do lugar, enquanto nada interferia na comunicação. As mulheres, como dizem, cantaram em uníssono - eram completamente unânimes e felizes.
PostscriptEste artigo foi escrito como parte de uma série sobre o desenvolvimento de um bot de bate-papo sintático por mim, Vanya, o Sensível.
Artigos anteriores:
- Criação de IA usando o método glock cuzdra. Odisséia Intelectual ;
- O Chatbot ganha audição ou o sofrimento de um amador .
Se alguém quiser conhecer Vanya em seu estado atual, a versão 2.0 está aqui:
bitbucket.org/mikejum/intellectualivan/downloadsComparado com a versão anterior, Vanya falou e se tornou menos buggy - você pode dizer, ele ficou mais sábio, embora não tanto quanto gostaríamos. Como minha tribo de seis anos disse depois de conversar com o bot de bate-papo, "seu Vanya é tão estúpido quanto Siri".
Houve problemas de instalação devido à transição do Access para o PostgreSQL: agora, descompactar o arquivo não é suficiente, é necessário instalar o PostgreSQL e implantar o despejo, as instruções estão anexadas.
Para a pergunta inevitável, quanta antecipação é implementada na versão 2.0, responderei dessa maneira. Parcialmente implementado, no nível inicial, no entanto, é problemático notá-lo durante o diálogo. Como mencionado anteriormente, a antecipação é um dos muitos recursos necessários no desenvolvimento da IA, longe de ser o mais significativo.