Ho questo mio progetto personale in C++ e sono attualmente bloccato. Sembra che molte persone abbiano fatto domande su questo argomento e vorrei scusarmi ora se si tratta di una domanda a ripetizione.Risposta in base al rank del bot di chat in C++?
In ogni caso, questo progetto è un bot di chat che risponderà in base all'input dell'utente. Attualmente allo stato attuale, prende l'intera query e cerca una corrispondenza utilizzando linee lunghe e inefficienti con le istruzioni if
. Se trova una corrispondenza, risponderà con una certa risposta.
Il motivo per cui sono venuto qui è perché mi sono ammalato e stanco di scrivere molto tempo e inefficienti if
dichiarazioni che non hanno nemmeno prendere tutte le varianti della stessa domanda. Non sto cercando codice o soluzioni che raccolgano dati da Wikipedia o qualcosa del genere. Quello che vorrei è che il bot della chat risponda solo ad alcune semplici domande.
Durante il mio intervallo di tempo con le dichiarazioni if, mi è venuta un'idea. Perché non uso parole chiave come un motore di ricerca classifica le pagine web?
Ho scritto il codice fino a contare quante volte una parola chiave (o diverse) esistono nella query. Il problema è come fare per classificarli per trovare la migliore risposta? Presumo che le risposte e le parole chiave debbano essere memorizzate in un modo speciale.
mio elenco di risposte alla mia domanda principale finora sono:
1. Quando si riceve una query, rango tramite un file INI in cui ha la parola chiave (s) nella chiave, e la rispondere come il valore di esso. Se ci sono più risposte, prendi un'altra parola chiave e cerca quella e l'originale (diminuendo l'ambito). Fare questo abbastanza volte dovrebbe dare la risposta corretta.
Pro: Si adatta a ciò che devo fare ed è qualcosa che riesco a cogliere in C++.
Contro: Sembra lungo e inefficiente, quasi come tuffarsi in se le dichiarazioni di nuovo ...
2. Utilizzando un database SQL, dirgli di trovare la risposta pertinente. Non sono sicuro di come sarebbe fatto.
Pro: Sarebbe leggero, in quanto il computer di database gestirà la ricerca e potrebbe essere abbastanza dettagliato.
Contro: Potrebbe causare un po 'di dolore per me poiché sto già calpestando acque piuttosto alte con C++. Tuttavia, sto iniziando a pensare che finirà proprio come le dichiarazioni if.
3. La migliore risposta che qualcuno probabilmente suggerirebbe qui è AIML (che era discussed here).
Pro: Utilizzato per sviluppare bot di chat intelligenti ed è piuttosto potente.
Contro: Sembra troppo "pesante" per il mio progetto semplice e non riesco a inchiodare una ricerca che mi trovi un codice facile da capire per un bot che utilizza AIML.
Spero che qualcuno possa suggerire un percorso intelligente da prendere in quanto non sono davvero un fan del C++ e mi sento come se stessi già calpestando acque profonde con questo progetto. Comunque per quest'estate ho sentito mordermi la lingua, uscire dalla mia zona di comfort e per una volta aver fatto qualcosa di utile in C++. Avrei potuto farlo rapidamente in PHP, ma per poter inviare i messaggi, devo usare C++.
Se avessi potuto farlo in PHP, cosa ti impedisce di farlo in C++? Inoltre, dovresti probabilmente concentrarti maggiormente sul contesto rispetto al posizionamento di parole chiave se vuoi che appaia intelligente. – gcochard
Quando si tratta di rendere l'intelligenza artificiale almeno un po '"intelligente", ci sarà molto lavoro da svolgere. La prima fase del lutto è l'accettazione. –
Il contesto sarebbe qualcosa di semplice, l'ho già pensato. È solo come trovare la risposta corretta o migliore. Come ha fatto notare Alex, temo che qualsiasi tipo di intelligenza artificiale non sia facile da fare. Non sono il migliore del C++, ma allo stesso tempo non sto strisciando. Non sono abituato al C++ e sto ancora spostando la testa su alcuni concetti. –