Table di cuntinutu[Piattà][Mostra]
E chjama di voce sò state eliminate in favore di testu è visuale in u settore di a cumunicazione. Sicondu un sondaghju di Facebook, più di a mità di i cumpratori preferanu cumprà da una sucità cù quale ponu parlà. A chat hè diventata u novu modu di cumunicazione socialmente accettabile.
Permette à l'imprese di cumunicà cù i so clienti in ogni mumentu è da ogni locu. I chatbots sò sempre più populari trà l'imprese è i clienti per via di a so facilità d'utilizazione è di i tempi di attesa ridotti.
Chatbots, o prugrammi di conversazione automatizati, furnisce i clienti cù un metudu più persunalizatu per accede à i servizii attraversu una interfaccia testu. I più recenti chatbots AI-powered ponu ricunnosce una dumanda (questione, cumanda, ordine, etc.) fatta da una persona (o un altru bot, iniziu) in un ambiente specificu è risponde in modu adattatu (risposta, azzione, etc.).
In questu post, andemu nantu à ciò chì sò i chatbots, i so benefici, i casi d'usu, è cumu fà u vostru propiu. studiu prufunnu chatbot in Python, frà altre cose.
Cuminciamu.
Allora, chì sò i chatbots?
Un chatbot hè spessu riferitu à esse una di e forme più avanzate è promettenti di interazzione umana-macchina. Questi assistenti digitali migliurà l'esperienza di i clienti simplificendu l'interazzione trà e persone è i servizii.
Simultaneamente, furnisce l'imprese cù novi opzioni per ottimisà u prucessu di cuntattu cù i clienti per l'efficienza, chì ponu tagliate e spese di supportu convenzionale.
In poche parole, hè un software basatu in AI chì hè destinatu à cumunicà cù l'omu in e so lingue naturali. Questi chatbots spessu interagiscenu per via di tecniche audio o scritte, è ponu facilmente imitate e lingue umane per cunnette cù l'omu in una manera umana.
I Chatbots imparanu da e so interazzione cù l'utilizatori, diventendu più realistichi è efficaci cù u tempu. Puderanu gestisce una larga gamma di attività cummerciale, cum'è l'autorizazione di spesa, l'ingaghjamentu cù i cunsumatori in linea, è a generazione di leads.
Crea u vostru propiu chatbot di apprendimentu profondu cù python
Ci sò parechji tippi distinti di chatbots in u campu di machine learning è AI. Certi chatbots sò assistenti virtuali, mentre chì altri sò solu quì per cunversà cun, mentre chì altri sò agenti di serviziu di u cliente.
Probabilmente avete vistu alcuni di quelli impiegati da l'imprese per risponde à e dumande. Faremu un picculu chatbot in stu tutoriale per risponde à e dumande frequenti.
1. Installazione di pacchetti
U nostru primu passu hè di stallà i seguenti pacchetti.
2. Training Data
Avà hè u tempu di capisce quale tipu d'infurmazioni avemu bisognu di dà u nostru chatbot. Ùn avemu micca bisognu di scaricà un grande dataset perchè questu hè un chatbot simplice.
Utilizemu solu l'infurmazioni chì avemu creatu noi stessi. Per seguità effittivamenti cù a lezioni, avete bisognu di generà un schedariu .JSON cù u stessu formatu cum'è quellu chì vede quì sottu. U mo schedariu hè chjamatu "intents.json".
U schedariu JSON hè utilizatu per creà un inseme di missaghji chì l'utilizatore hè prubabile di inserisce è mappe à un inseme di risposte pertinenti. Ogni dizziunariu in u schedariu hà una tag chì identifica à quale gruppu appartene ogni missaghju.
Avemu aduprà sta infurmazione per furmà a reta neurale per categurizà una frase di parolle cum'è una di e tag in u nostru schedariu.
Pudemu solu piglià una risposta da quelli gruppi è furnisce à l'utilizatori. U chatbot serà megliu è più complicatu se l'offre cù tags, risposte è mudelli supplementari.
3. Carica di dati JSON
Avemu da principià per carricà in i nostri dati .json è impurtà qualchi moduli. Assemble your.json file in u listessu cartulare cum'è u vostru Scrittura Python. I nostri dati .json seranu avà salvatu in a variabile di dati.
4. Estrazione di dati
Avà hè u tempu di caccià l'infurmazioni chì avemu bisognu da u nostru schedariu JSON. Tutti i mudelli, è ancu a classe / tag à quale appartenenu, sò richiesti.
Averemu ancu bisognu di una lista di tutti i termini unichi in i nostri mudelli (per ragioni chì spiegheremu più tardi), allora creamu qualchi listi in biancu per guardà questi valori.
Avà circheremu i nostri dati JSON è ricuperà l'infurmazioni chì avemu bisognu. Piuttostu cà avè li cum'è strings, avemu aduprà nltk.word tokenizer per trasfurmà ogni mudellu in una lista di parolle.
Allora, in a nostra lista docs_x, aghjunghjemu ogni mudellu, cù u so tag assuciatu, à a lista docs_y.
5. Parola Stemming
Truvà a radica di una parolla hè cunnisciuta cum'è stemming. Per esempiu, u gambu di a parolla "thats" stam pò esse "quessu", mentre chì a gamba di a parolla "happening" puderia esse "happening".
Adupremu sta tecnica di stemming per sminuì u vocabulariu di u nostru mudellu è pruvate à capisce ciò chì e frasi implicanu in generale. Stu codice serà simpricimenti generà una lista unica di parolle stemmed chì serà utilizatu in a prossima fase di a nostra preparazione di dati.
6. Saccu di e parolle
Hè ora di parlà di un saccu di parolle avà chì avemu impurtatu i nostri dati è generatu un vocabulariu stemmed. Rete neurale è l'algoritmi di apprendimentu automaticu, cum'è tutti sapemu, necessitanu input numericu. Allora a nostra lista di stringhe ùn hà micca da taglià. Avemu bisognu di un mecanismu per rapprisintà i numeri in e nostre frasi, chì hè induve vene un saccu di parolle.
Ogni frasa serà rapprisintata da una lista di a durata di u numeru di termini in u vocabulariu di u nostru mudellu. Ogni parolla in u nostru vocabulariu serà rapprisintatu da un locu in a lista. Se a pusizione in a lista hè un 1, a parolla appare in a nostra dichjarazione; s'ellu hè un 0, a parolla ùn appare micca in a nostra frase.
Chjamemu un saccu di parolle perchè ùn cunnosci micca a sequenza in quale e parolle appariscenu in a frasa ; tuttu ciò chì sapemu hè chì esistenu in u vocabulariu di u nostru mudellu.
In più di strutturà u nostru input, avemu da furmà ancu a nostra output per chì a reta neurale capisce. Custruiremu listi di output chì sò a durata di u numeru di etichette / tag in u nostru dataset, simili à un saccu di parolle. Ogni locu in a lista rapprisenta una etichetta / tag unica, è un 1 in qualsiasi di quelli lochi indica quale etichetta / tag hè rapprisintatu.
Infine, useremu array NumPy per almacenà i nostri dati di furmazione è output.
7. Sviluppu di mudelli
Semu pronti per cumincià à custruisce è furmà un mudellu avà chì avemu preprocessatu tutti i nostri dati. Utilizemu una rete neurale di feed-forward assai basica cù dui strati nascosti per i nostri obiettivi.
U scopu di a nostra rete serà di guardà una cullizzioni di parolle è l'assignà à una classa (una di e nostre tag da u schedariu JSON). Cuminciaremu per stabilisce l'architettura di u nostru mudellu. Tenite in mente chì pudete ghjucà cù alcuni di i numeri per vene cun un mudellu megliu! Appruposi à machina hè principalmente basatu nantu à prova è errore.
8. Model Training & Saving
Hè ora di furmà u nostru mudellu nantu à i nostri dati avà chì l'avemu stabilitu ! Avemu da ottene questu per adatta i nostri dati à u mudellu. U nùmeru di epoche chì furnimu hè u numeru di volte chì u mudellu serà espostu à i stessi dati durante a furmazione.
Pudemu salvà u mudellu à u mudellu di schedariu una volta chì avemu finitu di furmazione. tflearn hè un script chì pò esse usatu in altri script.
9. Utilizendu un chatbot
Avà pudete inizià a chatte cù u vostru bot.
Vantaggi di Chatbot
- Cum'è i bots sò previsti per operare 365 ghjorni à l'annu, 24 ore à ghjornu, senza pagamentu, aumentà a dispunibilità è a velocità di reazione.
- Questi bots sò strumenti perfetti per affruntà i trè Vs chjave di big data: voluminu, velocità è varietà.
- I chatbots sò software chì ponu esse usatu per amparà è capisce i cunsumatori di una cumpagnia.
- Hà una putenza superiore chì hà un costu di mantenimentu à pocu pressu dopu avè i benefizii superiori.
- L'applicazioni Chatbot creanu dati chì ponu esse cunservati è utilizati per analitiche è previsioni.
Casu d'usu
- Risolve e dumande di i clienti
- Rispondi à e dumande frequenti
- Assignazione di i clienti à a squadra di supportu
- Raccolta di feedback di i clienti
- Cunsigliu di novi offerte
- Cumprate cù u cummerciu di cunversazione
- IT Helpdesk
- Riserva di l'alloghji
- Trasferimentu di soldi
cunchiusioni
I chatbots, cum'è l'altri tecnulugii AI, seranu utilizati per aumentà e cumpetenze umane è liberà l'omu per esse più creativi è imaginativi chì li permettenu di passà più tempu in attività strategiche invece di tattiche.
L'imprese, l'impiegati è i cunsumatori sò prubabilmente prufittà di funzioni di chatbot avanzate cum'è raccomandazioni è predizioni più veloci, è ancu un accessu faciule à videoconferenza in alta definizione da una conversazione, in un futuru vicinu, quandu l'AI hè cumminata cù u sviluppu di tecnulugia 5G.
Queste è altre pussibulità sò sempre investigate, ma cum'è a cunnessione Internet, AI, NLP è u prugressu di l'apprendimentu di a macchina, diventeranu più prevalenti.
Chwou
Bonghjornu,
Grazie per stu prugramma.
Aghju una quistione.
"bag_of_words" ùn hè micca definitu. Ùn possu micca capisce stu errore.
Puderia dì cumu possu risolve stu errore ??
Grazie per stu prugramma !! Avè una bona ghjurnata
Jay
Per piacè aghjunghje una funzione prima di utilizà a sezione di chatbot:
////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////
def bag_of_words(s, words):
bag = [0 per _ in range (len (parole))]
s_words = nltk.word_tokenize(s)
s_words = [stemmer.stem (word.lower ()) per a parolla in s_words]
per sè in s_words:
per i, w in enumerate (parole):
se w == se:
saccu [i] = 1
torna numpy.array (bag)
// Definitivamente risolverà u vostru prublema. //
////////////////////////////////////////////////////// // ////////////////////////////
Aghju sparte u codice cumpletu cun voi, cusì vi uttene una stampa chjara di questu.
////////////////////////////////////////////////////////////////////////////////////////// //////////
impurta nltk
da nltk.stem.lancaster import LancasterStemmer
stemmer = LancasterStemmer ()
import numpy
impurtà tflearn
import tensorflow
impurtà casuale
impurtà json
impurtazione di salameria
cù open ("intents.json") cum'è file:
data = json.load (file)
pruvà:
cù open ("data.pickle", "rb") cum'è f:
parole, etichette, furmazione, output = pickle.load(f)
eccettu:
parolle = []
etichette = []
docs_x = []
docs_y = []
per l'intenzione in dati ["intenzioni"]:
per u mudellu in l'intenzione ["patterns"]:
wrds = nltk.word_tokenize (mudellu)
parolle.estensione (parole)
docs_x.append (wrds)
docs_y.append(intent ["tag")
se intent ["tag"] ùn hè micca in etichette:
labels.append (intentu ["tag"])
parole = [stemmer.stem (w.lower ()) per w in parolle se w ! = "?"]
parole = ordinate (lista (set (parole)))
etichette = ordinati (etichette)
furmazione = []
output = []
out_empty = [0 per _ in range (len (etichette))]
per x, doc in enumerate(docs_x):
saccu = []
wrds = [stemmer.stem(w.lower()) per w in doc]
per w in parolle:
se w in wrds:
saccu.append (1)
altru:
saccu.append (0)
output_row = out_empty[:]
fila_output[labels.index(docs_y[x])] = 1
furmazione.append (bag)
output.append (fila_output)
furmazione = numpy.array (furmazione)
output = numpy.array (output)
cù open ("data.pickle", "wb") cum'è f:
pickle.dump((parole, etichette, formazione, output), f)
tensorflow.reset_default_graph()
net = tflearn.input_data (forma = [Nisunu, len (formazione [0])])
net = tflearn.fully_connected(net, 8)
net = tflearn.fully_connected(net, 8)
net = tflearn.fully_connected (net, len (output [0]), attivazione = "softmax")
net = tflearn.regression (net)
mudellu = tflearn.DNN (net)
pruvà:
model.load ("model.tflearn")
eccettu:
model.fit (formazione, output, n_epoch = 1500, batch_size = 8, show_metric = True)
model.save ("model.tflearn")
def bag_of_words(s, words):
bag = [0 per _ in range (len (parole))]
s_words = nltk.word_tokenize(s)
s_words = [stemmer.stem (word.lower ()) per a parolla in s_words]
per sè in s_words:
per i, w in enumerate (parole):
se w == se:
saccu [i] = 1
torna numpy.array (bag)
def chat():
print ("Cominciate à parlà cù u bot (type quit to stop)!")
mentre True:
inp = input ("Tu: ")
if inp.lower() == "quit":
ruttura
risultati = model.predict([bag_of_words(inp, words)])
results_index = numpy.argmax (risultati)
tag = etichette[results_index]
per tg in data ["intenzioni"]:
if tg['tag'] == tag:
risposte = tg['risposte']
stampa (random.choice (risposte))
chat ()
////////////////////////////////////////////////////////////////////////////////////////// ////////////////
Grazie,
Felice codificazione!
Lu
Bonghjornu,
Puderiami dà un'idea di u prucessu da esse realizatu in u casu di vulete creà un chatbot in python, ma l'infurmazione hè ottenuta da un sondaghju in excel. Grazie!