La mia domanda è legata al progetto su cui ho appena iniziato a lavorare, ed è un ChatBot.Ordinare biglietti per il cinema con ChatBot
Il bot che voglio creare ha un compito piuttosto semplice. Deve automatizzare il processo di acquisto dei biglietti del cinema. Questo è un dominio abbastanza vicino e il bot ha tutto il necessario accesso al database del cinema. Naturalmente va bene che il bot risponda come "Non so" se il messaggio dell'utente non è correlato al processo di ordinazione dei biglietti del cinema.
Ho già creato una semplice demo solo per mostrarla a poche persone e vedere se sono interessate a un prodotto del genere. La demo utilizza un semplice approccio DFA e alcuni semplici abbinamenti di testo con lo stemming L'ho hackerato in un giorno e si è scoperto che gli utenti sono rimasti colpiti dal fatto di essere in grado di ordinare i biglietti che desiderano. (La demo utilizza una connessione al database del cinema per fornire agli utenti tutte le informazioni necessarie per ordinare i biglietti che desiderano).
Il mio obiettivo attuale è quello di creare la versione successiva, una più avanzata, soprattutto in termini di comprensione del linguaggio naturale. Ad esempio, la versione demo chiede agli utenti di fornire solo una informazione in un singolo messaggio e non riconosce se hanno fornito informazioni più pertinenti (titolo del film e ora, ad esempio). Ho letto che una tecnica utile qui si chiama "Semantica frame e slot", e sembra essere promettente, ma non ho trovato alcun dettaglio su come utilizzare questo approccio.
Inoltre, non so quale approccio sia il migliore per migliorare la comprensione del linguaggio naturale. Per la maggior parte, considero:
- Utilizzo di tecniche di "NLP" standard per comprendere meglio i messaggi degli utenti. Ad esempio, database di sinonimi, correzione ortografica, parte di tag vocali, formazione di classificatori basati su statistiche per acquisire somiglianze e altre relazioni tra parole (o tra tutte le frasi se possibile?) Ecc.
- Utilizzare AIML per modellare il flusso di conversazione . Non sono sicuro se sia una buona idea usare AIML in un dominio chiuso. Non l'ho mai usato, quindi è la ragione per cui lo sto chiedendo.
- Utilizzare un approccio più "moderno" e utilizzare le reti neurali per addestrare un classificatore per la classificazione dei messaggi utente. Potrebbe, tuttavia, richiedere molti dati etichettati
- Qualche altro metodo che non conosco?
Quale approccio è il più adatto al mio obiettivo?
Sai dove posso trovare più risorse su come funziona la "semantica frame e slot" nei dettagli? Mi riferisco a questo PDF from Stanford quando si parla di frame e slot.
Duplicato di http://datascience.stackexchange.com/q/12095/8820 –
Se possibile, si prega di rivedere la domanda in modo che non sia basata sull'opinione pubblica. – Tor