Inhaltsverzeechnes[Verstoppen][Show]
Stëmm Appellen ginn ausgeschloss zugonschte vun Text a Visuals am Kommunikatiounssecteur. Laut enger Facebook Ëmfro, méi wéi d'Halschent vun de Keefer léiwer vun enger Firma ze kafen mat där se kënne schwätzen. Chatten ass den neie sozial akzeptablen Modus vun der Kommunikatioun ginn.
Et erméiglecht Entreprisen mat hire Clienten zu all Moment a vun all Plaz ze kommunizéieren. Chatbots gewannen ëmmer méi Popularitéit tëscht Firmen a Clienten wéinst hirer einfacher Benotzung a reduzéierter Waardezäiten.
Chatbots, oder automatiséiert Gespréichsprogrammer, bidden Clienten eng méi personaliséiert Method fir Zougang zu Servicer duerch eng textbaséiert Interface. Déi neisten AI-ugedriwwen Chatbots kënnen eng Ufro (Fro, Kommando, Uerdnung, etc.) vun enger Persoun (oder engem anere Bot, Inception) an engem spezifeschen Ëmfeld erkennen an entspriechend reagéieren (Äntwert, Handlung, etc.).
An dësem Post wäerte mir iwwergoen wat Chatbots sinn, hir Virdeeler, Benotzungsfäll a wéi Dir Är eege mécht ze léieren chatbot am Python, ënner anerem.
Loosst eis ufänken.
Also, wat sinn Chatbots?
E Chatbot gëtt dacks als ee vun de fortgeschrattsten a villverspriechendste Forme vu Mënsch-Maschinn Interaktioun bezeechent. Dës digital Assistenten verbesseren d'Clienterfarung andeems se d'Interaktiounen tëscht Leit a Servicer streamlinéieren.
Gläichzäiteg bidden se Geschäfter nei Optiounen fir de Clientskontaktprozess fir Effizienz ze optimiséieren, wat konventionell Ënnerstëtzungskäschte schneiden kann.
An enger Nossschuel ass et AI-baséiert Software déi geduecht ass fir mat Mënschen an hiren natierleche Sproochen ze kommunizéieren. Dës Chatbots interagéieren dacks iwwer Audio oder schrëftlech Techniken, a si kënne ganz einfach mënschlech Sprooche mimikéieren fir mat Mënschen op eng mënschlech-ähnlech Manéier ze verbannen.
Chatbots léiere vun hiren Interaktioune mat de Benotzer, ginn méi realistesch an effizient mat der Zäit. Si kënnen eng breet Palette vu Geschäftsaktivitéiten handhaben, wéi zB Autorisatioun vun Ausgaben, engagéieren mat Konsumenten online, a Leads generéieren.
Erstellt Ären eegene Deep Learning Chatbot mam Python
Et gi vill ënnerschiddlech Aarte vu Chatbots am Beräich vun Maschinn léieren an AI. E puer Chatbots si virtuell Assistenten, anerer si just do fir mat ze schwätzen, anerer sinn Clientsservice Agenten.
Dir hutt wahrscheinlech e puer vun deene gesinn, déi vun de Geschäfter beschäftegt sinn fir Ufroen ze beäntweren. Mir maachen e klenge Chatbot an dësem Tutorial fir dacks gefrot Ufroen ze beäntweren.
1. Installatioun Pakete
Eisen éischte Schrëtt ass déi folgend Packagen z'installéieren.
2. Training Data
Elo ass et Zäit fir erauszefannen wéi eng Zort Informatioun mir brauchen fir eise Chatbot ze ginn. Mir brauche keng grouss Datesätz erofzelueden well dëst en einfachen Chatbot ass.
Mir benotzen nëmmen d'Informatioun déi mir selwer erstallt hunn. Fir effektiv mat der Lektioun ze verfollegen, musst Dir eng .JSON Datei generéieren mat deemselwechte Format wéi deen hei ënnendrënner. Meng Datei heescht "intents.json."
D'JSON-Datei gëtt benotzt fir eng Rei vu Messagen ze kreéieren déi de Benotzer méiglecherweis op eng Rei vun relevante Äntwerten input a mapéiert. All Wierderbuch an der Datei huet en Tag deen identifizéiert wéi eng Grupp all Message gehéiert.
Mir wäerten dës Informatioun benotze fir eng ze trainéieren neural Netz fir eng Phrase vu Wierder als ee vun den Tags an eisem Fichier ze kategoriséieren.
Mir kënnen dann einfach eng Äntwert vun deene Gruppen huelen an de Benotzer et ubidden. De Chatbot wäert besser a méi komplizéiert sinn wann Dir et mat zousätzlech Tags, Äntwerten a Mustere bitt.
3. JSON Daten Luede
Mir fänke mat der Luede an eise .json Daten un an importéieren e puer Moduler. Assemblée your.json Datei am selwechte Verzeechnes wéi Är Python Skript. Eis .json Daten ginn elo an der Datevariabel gespäichert.
4. Daten Extraktioun
Elo ass et Zäit d'Informatioun ze extrahieren déi mir brauchen aus eiser JSON Datei. All d'Muster, wéi och d'Klass / Tag zu deem se gehéieren, sinn erfuerderlech.
Mir brauchen och eng Lëscht vun allen eenzegaartege Begrëffer an eise Musteren (aus Grënn déi mir spéider erklären), also loosst eis e puer eidel Lëschte erstellen fir dës Wäerter ze verfollegen.
Elo wäerte mir eis JSON Daten duerchschnëtt an d'Informatioun zréckzéien déi mir brauchen. Anstatt se als Saiten ze hunn, benotze mir nltk.word Tokenizer fir all Muster an eng Lëscht vu Wierder ze transforméieren.
Dann, an eiser docs_x Lëscht, addéiere mir all Muster, zesumme mat sengem assoziéierten Tag, op d'docs_y Lëscht.
5. Wuert Stemming
D'Wurzel vun engem Wuert ze fannen ass bekannt als Stemming. Zum Beispill kann de Stamm vum Wuert "datt" Stamm "dat" sinn, wärend de Stamm vum Wuert "geschéien" kéint "geschéien".
Mir benotze dës Stemmungstechnik fir de Vokabulär vun eisem Modell ofzeschneiden a probéieren erauszefannen wat Sätz allgemeng implizéieren. Dëse Code generéiert einfach eng eenzegaarteg Lëscht vu gestemmte Wierder déi an der nächster Phase vun eiser Datepräparatioun benotzt ginn.
6. Sak vun Wierder
Et ass Zäit iwwer e Sak vu Wierder ze schwätzen elo datt mir eis Donnéeën importéiert hunn an e stemmt Vokabulär generéiert hunn. Neural Netzwierker a Maschinn Léieren Algorithmen, wéi mir all wëssen, erfuerderen numeresch Input. Also eis String Lëscht wäert et net schneiden. Mir brauchen e Mechanismus fir Zuelen an eise Sätz ze representéieren, dat ass wou e Sak vu Wierder erakënnt.
All Saz gëtt duerch eng Lëscht vun der Längt vun der Unzuel u Begrëffer am Vokabulär vun eisem Modell vertruede ginn. All Wuert an eisem Vocabulaire gëtt duerch eng Plaz an der Lëscht vertrueden. Wann d'Positioun an der Lëscht eng 1 ass, da steet d'Wuert an eiser Ausso; wann et eng 0 ass, steet d'Wuert net an eisem Saz.
Mir nennen et e Sak vu Wierder, well mir wëssen net wéi eng Reih an där d'Wierder an der Phrase stinn; alles wat mir wëssen ass datt se am Vocabulaire vun eisem Modell existéieren.
Zousätzlech fir eisen Input ze strukturéieren, musse mir och eisen Output formatéieren sou datt den neurale Netzwierk et versteet. Mir bauen Ausgangslëschten déi d'Längt vun der Unzuel vun Etiketten/Tags an eisem Dataset sinn, ähnlech wéi e Sak vu Wierder. All Plaz an der Lëscht stellt en eenzegaartege Label / Tag duer, an en 1 an enger vun deene Plazen weist wéi ee Label / Tag vertruede gëtt.
Schlussendlech benotze mir NumPy Arrays fir eis Trainingsdaten an Ausgang ze späicheren.
7. Modell Entwécklung
Mir si prett fir unzefänken e Modell ze bauen an ze trainéieren elo datt mir all eis Donnéeën virveraarbecht hunn. Mir benotze e ganz Basisfeed-Forward neuralt Netzwierk mat zwee verstoppte Schichten fir eis Ziler.
Den Zweck vun eisem Netzwierk ass eng Sammlung vu Wierder ze kucken an se un eng Klass ze ginn (ee vun eisen Tags aus der JSON Datei). Mir fänken un d'Architektur vun eisem Modell opzestellen. Denkt drun datt Dir mat e puer vun den Zuelen spille kënnt fir e bessere Modell ze kommen! Machine learning ass meeschtens op Versuch a Feeler baséiert.
8. Modell Training & Spueren
Et ass Zäit eise Modell op eisen Donnéeën ze trainéieren elo datt mir et ageriicht hunn! Mir wäerten dëst erreechen andeems eis Daten un de Modell passen. D'Zuel vun den Epochen, déi mir ubidden, ass d'Zuel vun de Mol de Modell während dem Training un déiselwecht Daten ausgesat gëtt.
Mir kënnen de Modell op de Fichier Modell späicheren eemol mir Formatioun et fäerdeg. tflearn ass e Skript dat an anere Skripte benotzt ka ginn.
9. Mat engem Chatbot
Elo kënnt Dir ufänken mat Ärem Bot ze chatten.
Virdeeler vum Chatbot
- Wéi Bots ginn erwaart 365 Deeg am Joer, 24 Stonnen den Dag, ouni Pai ze bedreiwen, d'Disponibilitéit an d'Reaktiounsgeschwindegkeet erhéijen.
- Dës Bots si perfekt Tools fir déi dräi Schlëssel Vs vun Big Data unzegoen: Volumen, Geschwindegkeet a Varietéit.
- Chatbots si Software déi benotzt ka ginn fir iwwer d'Konsumenten vun enger Firma ze léieren an ze verstoen.
- Et huet super Kraaft datt et e bëllegen Ënnerhaltskäschte huet nodeems se Top Virdeeler huet.
- Chatbot Uwendungen kreéieren Daten déi konservéiert a benotzt kënne fir Analysen a Prognosen.
Usecase
- Client Ufroen léisen
- Beäntwert dacks gefrot Froen
- Clienten ze ënnerstëtzen Team ze ginn
- Sammelen Client Feedback
- Recommandéiert nei Offeren
- Shop mat Gespréichshandel
- IT Helpdesk
- Reservatioun Ënnerkunft
- Iwwerweisung
Konklusioun
Chatbots, wéi aner AI Technologien, wäerte benotzt ginn fir mënschlech Fäegkeeten ze vergréisseren an d'Mënschen ze befreien fir méi kreativ a fantastesch ze sinn andeems se méi Zäit op strategesch anstatt taktesch Aufgaben verbréngen.
Geschäfter, Mataarbechter a Konsumenten profitéiere méiglecherweis vu verstäerkte Chatbot-Features wéi méi séier Empfehlungen a Prognosen, souwéi einfachen Zougang zu High-Definition Videokonferenzen aus engem Gespréich, an der nächster Zukunft, wann AI mat der Entwécklung kombinéiert gëtt. 5G Technologie.
Dës an aner Méiglechkeeten ginn nach ëmmer ënnersicht, awer wéi d'Internetverbindung, AI, NLP, a Maschinnléiere Fortschrëtter ginn, wäerte se méi heefeg ginn.
Chwoo
Hallo,
Merci fir dëse Programm.
Ech hunn eng Fro.
"bag_of_words" ass net definéiert. Ech kann dëse Feeler net verstoen.
Kënnt Dir mir soen wéi kann ech dëse Feeler léisen ??
Merci fir dëse Programm!! Scheinen daag
Jay
Füügt w.e.g. eng Funktioun un ier Dir d'Chatbot Sektioun benotzt:
//////////////////////////////////////////////////// ///////////////////////////////
def bag_of_words(s, words):
bag = [0 fir _ am Beräich (len (Wierder))]
s_words = nltk.word_tokenize(s)
s_words = [stemmer.stem(word.lower()) fir Wuert a s_words]
fir se a s_words:
fir i, w an enumeréieren (Wierder):
wann w == se:
Täsch[i] = 1
return numpy.array(bag)
// Et wäert definitiv Är Problem léisen. //
///////////////////////////////////////////// // ////////////////////////
Ech deelen de komplette Code mat Iech, sou datt Dir e kloert Bild dovun kritt.
////////////////////////////////////////////// ////////
importéieren nltk
aus nltk.stem.lancaster Import LancasterStemmer
stemmer = LancasterStemmer()
importéieren numpy
importéieren tflearn
importéieren tensorflow
importéiert zoufälleg
importéieren json
Import Pickel
mat open ("intents.json") als Datei:
data = json.load(Datei)
probéieren:
mat oppen ("data.pickle", "rb") als f:
Wierder, Etiketten, Training, Ausgang = pickle.load(f)
ausser:
Wierder = []
Etiketten = []
docs_x = []
docs_y = []
fir Absicht an Daten["Intent"]:
fir Muster an Absicht["Muster"]:
wrds = nltk.word_tokenize(muster)
words.extend(wrds)
docs_x.append(wrds)
docs_y.append(intent["tag"])
wann Intent["Tag"] net an Etiketten:
labels.append(intent["tag"])
Wierder = [stemmer.stem(w.lower()) fir w a Wierder wann w != "?"]
Wierder = sortéiert(Lëscht(set(Wierder)))
Etiketten = sortéiert(Etiketten)
Ausbildung = []
Ausgang = []
out_empty = [0 fir _ am Beräich (len(Labels))]
fir x, doc an enumerate (docs_x):
Tasche = []
wrds = [stemmer.stem(w.lower()) for w in doc]
fir w a Wierder:
wann w an wrds:
bag.append(1)
anescht:
bag.append(0)
output_row = out_empty[:]
output_row[labels.index(docs_y[x])] = 1
training.append(bag)
output.append(output_row)
training = numpy.array(training)
output = numpy.array(output)
mat oppen ("data.pickle", "wb") als f:
pickle.dump((Wierder, Etiketten, Training, Ausgang), f)
tensorflow.reset_default_graph()
net = tflearn.input_data(shape=[None, len(training[0])])
net = tflearn.fully_connected(net, 8)
net = tflearn.fully_connected(net, 8)
net = tflearn.fully_connected(net, len(output[0]), activation=”softmax”)
net = tflearn.regression(net)
model = tflearn.DNN(net)
probéieren:
model.load(“model.tflearn”)
ausser:
model.fit(training, output, n_epoch=1500, batch_size=8, show_metric=True)
model.save(“model.tflearn”)
def bag_of_words(s, words):
bag = [0 fir _ am Beräich (len (Wierder))]
s_words = nltk.word_tokenize(s)
s_words = [stemmer.stem(word.lower()) fir Wuert a s_words]
fir se a s_words:
fir i, w an enumeréieren (Wierder):
wann w == se:
Täsch[i] = 1
return numpy.array(bag)
def chat():
print ("Fänkt mam Bot ze schwätzen (Typ quit to stop)!")
wärend richteg:
inp = input("Dir:")
if inp.lower() == "quit":
briechen
Resultater = model.predict([bag_of_words(inp, words)])
results_index = numpy.argmax(resultater)
tag = labels[results_index]
fir tg an Daten["Intent"]:
if tg['tag'] == tag:
Äntwerten = tg['Äntwerten']
print(random.choice(responses))
chat()
////////////////////////////////////////////// //////////////
Merci,
Glécklech Kodéierung!
Lu
Hallo,
Kënnt Dir mir eng Iddi ginn iwwer de Prozess fir auszeféieren am Fall vun engem Chatbot am Python erstellen, awer d'Informatioun gëtt aus enger Ëmfro am Excel kritt. Merci!