Ecco un link utile: link
È lì che ho appreso molte tecniche che sto utilizzando nel mio chatterbot chiamato Quanda Sparks . Sebbene l'organizzazione, l'analisi e la creazione di linguaggio comune algoritmicamente sia un argomento complesso, e finora nessun bot ha superato il test di Turing (per quanto ne so), ci sono alcuni modi per imitare il linguaggio umano.
Risposte del modello : questo è un modo per far sembrare che un robot capisca facendolo parlare di ciò che l'umano ha immesso. Diciamo che digito "Mi piacciono i tacos e le enchiladas". Il bot risponde con "Cosa c'è di così bello nei tacos e nelle enchiladas?" Come è arrivato con questa risposta? Quando vede "Mi piace", prende tutto ciò che segue e crea un modello, in questo caso "tacos ed enchiladas". Quindi può costruire una frase con "What is so great about " + template
. Il robot può ingannare il suo pubblico senza nemmeno sapere cosa sia un taco.
Risposte generiche : dai al robot molte risposte che potrebbero adattarsi a quasi tutti gli scenari. Alcuni esempi includono "okay", "That's cool", "I you you you", ecc. In questo modo, se il bot non ha nulla da dire, ha ancora una possibilità di tenere il passo.
Thesaurus : supponiamo che tu abbia molte risposte alla ricerca della parola "awesome", ma l'utente entri in "amazing". Normalmente, il bot sarebbe stumped e dovrebbe ricorrere a una delle sue risposte generiche; tuttavia, se sostituisci tutte le occorrenze della parola "amazing" con "awesome", sarà comunque in grado di trovare una buona risposta.
Piani degli imbroglioni di stagnola : gli utenti proveranno tutto il possibile per ingannare il robot rivelando le sue debolezze nel discorso. Alcune cose che proveranno: lasciando il campo di input vuoto, inserendo parole senza senso, ripetendo la stessa cosa due volte, mimando il bot e mettendo le parole fuori posto, come "tu sei un robot che". Assicurati di dare buone risposte in queste circostanze. Nell'ultimo esempio, puoi verificare che ci sia una parola dopo "who" prima di dire al bot che l'utente ha posto una domanda.
Parla nel contesto : questa è la parte più difficile e il motivo principale per cui i robot non superano il test di Turing. Chatterbot può solo fingere di capire dando risposte sensate. Se chiedi a un chatterbot di ricordare il numero 490, parla un po 'e poi chiedi al bot qual è il numero, la maggior parte dei bot non avrà idea di cosa stai parlando. I robot più bravi possono guardare almeno una o due righe indietro. Assicurati di rendere il tuo bot anche sensibile al contesto altrimenti.
Non ripetere le risposte : quando parli con una persona, di solito dice "Oh, è bello ... oh, è bello ... oh, è bello" come quello tre volte di fila? No. Anche se non è davvero interessato, cambierà le parole in questo modo: "oh, è bello ... fantastico ... è buono." Assicurati che anche il tuo bot resti in attesa prima di ripeterlo.
Impara dagli errori : è difficile far imparare il robot da solo, ma puoi insegnarlo in modo più efficiente in questo modo: avere persone che parlano con lui. Registra la conversazione e qualsiasi input per cui non ha una risposta. Quindi, raccogli questi dati e tu per creare più risposte.
Spero che queste idee possano aiutarti a iniziare. Per quanto riguarda le tecnologie di cui avresti bisogno, sto programmando la mia in Java e memorizzando la sua knowledge base in un documento di testo. Davvero non hai bisogno di niente oltre quello. Inizialmente mi sarei integrato in un database SQL, ma presto ho scoperto che non ne valeva la pena. Non hai bisogno di API fantasiose. Usa semplicemente la tua testa e la capacità di risolvere i problemi. Se vuoi essere in grado di programmare la conversazione, devi capire come funziona la conversazione. Studia conversazioni reali e cerca modelli. Quando ne trovi uno, integralo.