Përmbajtje[Fshih][Shfaqje]
Thirrjet zanore janë duke u hequr në favor të tekstit dhe pamjeve vizuale në sektorin e komunikimit. Sipas një sondazhi në Facebook, më shumë se gjysma e blerësve preferojnë të blejnë nga një kompani me të cilën mund të flasin. Biseda është bërë mënyra e re e pranueshme shoqërore e komunikimit.
Ai u mundëson bizneseve të komunikojnë me klientët e tyre në çdo kohë dhe nga çdo vend. Chatbot-et po fitojnë gjithnjë e më shumë popullaritet në mesin e kompanive dhe klientëve për shkak të lehtësisë së tyre të përdorimit dhe uljes së kohës së pritjes.
Chatbot-et, ose programet e automatizuara të bisedës, u ofrojnë klientëve një metodë më të personalizuar për të hyrë në shërbimet përmes një ndërfaqeje të bazuar në tekst. Chatbot-et më të reja të fuqizuara nga AI mund të njohin një pyetje (pyetje, komandë, porosi, etj.) të bëra nga një person (ose një robot tjetër, fillim) në një mjedis specifik dhe të përgjigjen në mënyrë të përshtatshme (përgjigje, veprim, etj.).
Në këtë postim, ne do të shqyrtojmë se çfarë janë chatbot-et, përfitimet e tyre, rastet e përdorimit dhe si të bëni tuajat të mësuarit e thellë chatbot në Python, ndër të tjera.
Le të fillojmë.
Pra, çfarë janë chatbots?
Një chatbot përmendet shpesh si një nga format më të avancuara dhe më premtuese të ndërveprimit njeri-makinë. Këta asistentë dixhitalë përmirësojnë përvojën e klientit duke thjeshtuar ndërveprimet midis njerëzve dhe shërbimeve.
Njëkohësisht, ato u ofrojnë bizneseve opsione të reja për të optimizuar procesin e kontaktit me klientët për efikasitet, gjë që mund të shkurtojë shpenzimet konvencionale të mbështetjes.
Me pak fjalë, është softueri i bazuar në AI që ka për qëllim të komunikojë me njerëzit në gjuhët e tyre natyrore. Këta chatbot shpesh ndërveprojnë përmes teknikave audio ose të shkruara, dhe ata mund të imitojnë lehtësisht gjuhët njerëzore në mënyrë që të lidhen me njerëzit në një mënyrë si njeriu.
Chatbot-ët mësojnë nga ndërveprimet e tyre me përdoruesit, duke u bërë më realistë dhe efikasë me kalimin e kohës. Ata mund të trajtojnë një gamë të gjerë aktivitetesh biznesi, të tilla si autorizimi i shpenzimeve, angazhimi me konsumatorët në internet dhe gjenerimi i klientëve.
Krijimi i chatbot-it tuaj të mësimit të thellë me python
Ka shumë lloje të ndryshme të chatbot-eve në fushën e Mësimi makinë dhe AI. Disa chatbot janë asistentë virtualë, ndërsa të tjerët janë vetëm aty për të biseduar, ndërsa të tjerët janë agjentë të shërbimit ndaj klientit.
Ju ndoshta keni parë disa nga ata të punësuar nga bizneset për t'iu përgjigjur pyetjeve. Ne do të krijojmë një chatbot të vogël në këtë tutorial për t'iu përgjigjur pyetjeve të kërkuara shpesh.
1. Instalimi i paketave
Hapi ynë i parë është instalimi i paketave të mëposhtme.
2. Të dhënat e trajnimit
Tani është koha të kuptojmë se çfarë lloj informacioni do të na duhet për të dhënë chatbot-in tonë. Nuk kemi nevojë të shkarkojmë ndonjë grup të madh të dhënash sepse ky është një chatbot i thjeshtë.
Ne do të përdorim vetëm informacionin që kemi krijuar vetë. Për të ndjekur efektivisht mësimin, do t'ju duhet të gjeneroni një skedar .JSON me të njëjtin format si ai që shihet më poshtë. Skedari im quhet "intents.json".
Skedari JSON përdoret për të krijuar një grup mesazhesh që përdoruesi ka të ngjarë t'i futë dhe t'i vendosë në një grup përgjigjesh përkatëse. Çdo fjalor në skedar ka një etiketë që identifikon se cilit grup i përket secili mesazh.
Ne do ta përdorim këtë informacion për të trajnuar një Rrjeti nervoz për të kategorizuar një frazë fjalësh si një nga etiketat në skedarin tonë.
Më pas mund të marrim një përgjigje nga ato grupe dhe t'ia ofrojmë atë përdoruesit. Chatbot do të jetë më i mirë dhe më i ndërlikuar nëse e ofroni me etiketa, përgjigje dhe modele shtesë.
3. Ngarkimi i të dhënave JSON
Do të fillojmë duke ngarkuar të dhënat tona .json dhe duke importuar disa module. Mblidhni skedarin your.json në të njëjtën direktori si juaji Skript Python. Të dhënat tona .json tani do të ruhen në variablin e të dhënave.
4. Nxjerrja e të dhënave
Tani është koha për të nxjerrë informacionin që na nevojitet nga skedari ynë JSON. Kërkohen të gjitha modelet, si dhe klasa/etiketa të cilës i përkasin.
Do të na duhet gjithashtu një listë e të gjithë termave unikë në modelet tona (për arsye që do t'i shpjegojmë më vonë), kështu që le të krijojmë disa lista bosh për të mbajtur gjurmët e këtyre vlerave.
Tani do të kalojmë nëpër të dhënat tona JSON dhe do të marrim informacionin që na nevojitet. Në vend që t'i kemi ato si vargje, ne do të përdorim tokenizuesin nltk.word për të transformuar çdo model në një listë fjalësh.
Më pas, në listën tonë docs_x, ne do të shtojmë çdo model, së bashku me etiketën e tij të lidhur, në listën docs_y.
5. Fjala që rrjedh
Gjetja e rrënjës së një fjale njihet si rrjedhim. Për shembull, rrjedha e fjalës "ajo" mund të jetë "ajo", ndërsa rrjedha e fjalës "duke ndodhur" mund të jetë "ndodh".
Ne do ta përdorim këtë teknikë rrjedhëse për të shkurtuar fjalorin e modelit tonë dhe do të përpiqemi të kuptojmë se çfarë nënkuptojnë fjalitë në përgjithësi. Ky kod thjesht do të gjenerojë një listë unike të fjalëve me origjinë që do të përdoren në fazën tjetër të përgatitjes së të dhënave tona.
6. Thes me fjalë
Është koha të flasim për një çantë fjalësh tani që kemi importuar të dhënat tona dhe kemi krijuar një fjalor të bazuar. Rrjetet nervore dhe algoritmet e mësimit të makinerive, siç e dimë të gjithë, kërkojnë të dhëna numerike. Pra, lista jonë e vargjeve nuk do ta shkurtojë atë. Ne kemi nevojë për një mekanizëm për të paraqitur numrat në fjalitë tona, ku hyn një thes me fjalë.
Çdo frazë do të përfaqësohet nga një listë e gjatësisë së numrit të termave në fjalorin e modelit tonë. Çdo fjalë në fjalorin tonë do të përfaqësohet nga një vend në listë. Nëse pozicioni në listë është 1, fjala shfaqet në deklaratën tonë; nëse është 0, fjala nuk shfaqet në fjalinë tonë.
E quajmë një thes fjalësh, sepse nuk e dimë sekuencën në të cilën shfaqen fjalët në frazë; gjithçka që dimë është se ato ekzistojnë në fjalorin e modelit tonë.
Përveç strukturimit të hyrjes sonë, ne duhet gjithashtu të formatojmë daljen tonë në mënyrë që rrjeti nervor ta kuptojë atë. Ne do të ndërtojmë lista dalëse që janë gjatësia e numrit të etiketave/etiketave në grupin tonë të të dhënave, të ngjashme me një çantë fjalësh. Çdo vend në listë përfaqëson një etiketë/etiketë unike dhe një 1 në cilindo nga ato vendndodhje tregon se cila etiketë/etiketë përfaqësohet.
Së fundi, ne do të përdorim vargjet NumPy për të ruajtur të dhënat dhe rezultatet tona të trajnimit.
7. Zhvillimi i modelit
Ne jemi gati të fillojmë ndërtimin dhe trajnimin e një modeli tani që kemi përpunuar paraprakisht të gjitha të dhënat tona. Ne do të përdorim një rrjet nervor shumë themelor me dy shtresa të fshehura për objektivat tona.
Qëllimi i rrjetit tonë do të jetë të shikojë një koleksion fjalësh dhe t'i caktojë ato në një klasë (një nga etiketat tona nga skedari JSON). Ne do të fillojmë duke krijuar arkitekturën e modelit tonë. Mbani në mend se mund të luani me disa nga numrat për të dalë me një model më të mirë! Njohja e makinës bazohet kryesisht në provë dhe gabim.
8. Trajnim dhe kursim model
Është koha për të trajnuar modelin tonë në të dhënat tona tani që e kemi konfiguruar! Këtë do ta arrijmë duke i përshtatur të dhënat tona modelit. Numri i epokave që ne ofrojmë është numri i herëve që modeli do të ekspozohet ndaj të njëjtave të dhëna gjatë trajnimit.
Ne mund ta ruajmë modelin në modelin e skedarit pasi të kemi përfunduar trajnimin e tij. tflearn është një skript që mund të përdoret në skriptet e tjera.
9. Përdorimi i një chatbot
Tani mund të filloni të bisedoni me robotin tuaj.
Përfitimet e Chatbot
- Duke qenë se robotët pritet të funksionojnë 365 ditë në vit, 24 orë në ditë, pa pagesë, rrisin disponueshmërinë dhe shpejtësinë e reagimit.
- Këto robotë janë mjete të përsosura për të trajtuar tre V-të kryesore të të dhënave të mëdha: vëllimi, shpejtësia dhe shumëllojshmëria.
- Chatbot-et janë softuer që mund të përdoret për të mësuar dhe kuptuar konsumatorët e një kompanie.
- Ka fuqi superiore që ka një kosto të lirë mirëmbajtjeje pasi ka përfitime të larta.
- Aplikacionet Chatbot krijojnë të dhëna që mund të ruhen dhe të përdoren për analitikë dhe parashikime.
Rasti i përdorimit
- Zgjidhja e pyetjeve të klientëve
- Duke iu përgjigjur pyetjeve të bëra shpesh
- Caktimi i klientëve për ekipin mbështetës
- Mbledhja e reagimeve të klientëve
- Rekomandimi i ofertave të reja
- Blini me tregti bisedore
- Ndihmës IT
- Rezervimi i akomodimit
- Transferimi i parave
Përfundim
Chatbots, si teknologjitë e tjera të AI, do të përdoren për të rritur aftësitë njerëzore dhe për t'i çliruar njerëzit që të jenë më kreativë dhe imagjinarë duke i lejuar ata të shpenzojnë më shumë kohë në detyra strategjike dhe jo taktike.
Bizneset, punonjësit dhe konsumatorët ka të ngjarë të përfitojnë nga veçoritë e përmirësuara të chatbot-it, si rekomandimet dhe parashikimet më të shpejta, si dhe aksesi i lehtë në video-konferencat me definicion të lartë nga brenda një bisede, në të ardhmen e afërt, kur AI kombinohet me zhvillimin e Teknologjia 5G.
Këto dhe mundësi të tjera janë ende duke u hetuar, por ndërsa lidhja në internet, AI, NLP dhe mësimi i makinerive përparojnë, ato do të bëhen më të përhapura.
Chwoo
Përshëndetje,
Faleminderit për këtë program.
Kam një pyetje.
"bag_of_words" nuk është përcaktuar. Nuk mund ta kuptoj këtë gabim.
Mund të më thoni si mund ta zgjidh këtë gabim??
Faleminderit për këtë program!! Ditë të mbarë
Jay
Ju lutemi shtoni një funksion përpara se të përdorni seksionin e chatbot:
/////////////////////////////////////////////////////////////////// ////////////////////////////
def thes_of_words(s, words):
çanta = [0 për _ në varg (len(fjalë))]
s_words = nltk.word_tokenize(s)
s_words = [stemmer.stem(word.lower()) për fjalën në s_words]
për se në s_words:
për i, w në enumerate(fjalë):
nëse w == se:
qese[i] = 1
kthen numpy.array(bag)
// Me siguri do ta zgjidhë problemin tuaj. //
///////////////////////////////////////////////////////////////////////// // //////////////////////////
Unë po ndaj kodin e plotë me ju, kështu që ju do të merrni një pamje të qartë të tij.
/////////////////////////////////////////////////////////////////// /////////
importo nltk
nga nltk.stem.lancaster import LancasterStemmer
stemmer = LancasterStemmer()
importi numpy
import tflearn
importi tensorflow
importimi i rastësishëm
importoni json
import turshi
me open("intents.json") si skedar:
të dhëna = json.load(skedar)
provoni:
me open("data.pickle", "rb") si f:
fjalë, etiketa, trajnim, prodhim = turshi.ngarkesa(f)
përveç:
fjalë = []
etiketat = []
docs_x = []
docs_y = []
për qëllimin në të dhëna[“qëllimet”]:
për modelin në qëllim[“modele”]:
wrds = nltk.word_tokenize(modeli)
fjalë.zgjat (fjalë)
docs_x.append(wrds)
docs_y.append(qëllim[“etiketë”])
nëse synimi [“etiketa”] jo në etiketa:
labels.append(intent[“etiketë”])
fjalë = [stemmer.stem(w.lower()) për w në fjalë nëse w != “?”]
fjalë = të renditura(lista(bashkësi(fjalë)))
etiketa = të renditura (etiketat)
trajnim = []
prodhimi = []
jashtë_empty = [0 për _ në varg (len(etiketat))]
për x, doc në enumerate(docs_x):
çantë = []
wrds = [stemmer.stem(w.lower()) për w në doc]
për w me fjalë:
nëse w në fjalë:
çanta.shtoj (1)
tjeter:
çanta.shtoj (0)
Rreshti_dalës = jashtë_bosh[:]
Rreshti_dalës [etiketat.indeksi(dokumentet_y[x])] = 1
trainim.append(çantë)
output.append(output_row)
trainim = numpy.array (training)
output = numpy.array(output)
me open("data.pickle", "wb") si f:
pickle.dump((fjalë, etiketa, trajnim, prodhim), f)
tensorflow.reset_default_graph()
net = tflearn.input_data(shape=[Asnjë, len(trajnim[0])])
net = tflearn.fully_connected(net, 8)
net = tflearn.fully_connected(net, 8)
net = tflearn.fully_connected (net, len (dalja[0]), aktivizimi=”softmax”)
neto = tflearn.regresion(neto)
model = tflearn.DNN(net)
provoni:
model.load ("model.tflearn")
përveç:
model.fit (trajnim, rezultat, n_epoch=1500, batch_size=8, show_metric=E vërtetë)
model.save ("model.tflearn")
def thes_of_words(s, words):
çanta = [0 për _ në varg (len(fjalë))]
s_words = nltk.word_tokenize(s)
s_words = [stemmer.stem(word.lower()) për fjalën në s_words]
për se në s_words:
për i, w në enumerate(fjalë):
nëse w == se:
qese[i] = 1
kthen numpy.array(bag)
def chat ():
print (“Filloni të flisni me robotin (shkruani quit për të ndaluar)!”)
ndërsa e Vërtetë:
inp = hyrje ("Ti: ")
nëse inp.lower() == "dal":
pushim
rezultatet = model.predikt([çanta_fjalësh(inp, fjalë)])
rezultatet_indeksi = numpy.argmax(rezultatet)
etiketa = etiketa[indeksi_rezultatesh]
për tg në të dhëna[“qëllimet”]:
nëse tg['tag'] == etiketë:
përgjigjet = tg['përgjigje']
print(rastësisht.zgjedhja(përgjigjet))
chat ()
/////////////////////////////////////////////////////////////////// ///////////////
Ju faleminderit,
Gëzuar kodimin!
Lu
Përshëndetje,
Mund të më jepni një ide të procesit që duhet kryer në rastin kur dëshironi të krijoni një chatbot në python, por informacioni është marrë nga një sondazh në excel. Faleminderit!