Sisukord[Peida][Näita]
Häälkõnedest loobutakse kommunikatsioonisektoris teksti ja visuaalide kasuks. Facebooki küsitluse kohaselt eelistavad enam kui pooled ostjatest osta ettevõttelt, kellega nad saavad rääkida. Vestlusest on saanud uus sotsiaalselt vastuvõetav suhtlusviis.
See võimaldab ettevõtetel suhelda oma klientidega igal ajal ja igast kohast. Vestlusbotid koguvad ettevõtete ja klientide seas üha enam populaarsust nende kasutusmugavuse ja lühemate ooteaegade tõttu.
Vestlusbotid ehk automatiseeritud vestlusprogrammid pakuvad klientidele kohandatud meetodit teenustele juurdepääsuks tekstipõhise liidese kaudu. Uusimad AI-toega vestlusrobotid suudavad tuvastada konkreetses keskkonnas inimese (või mõne teise roboti, inceptioni) tehtud päringu (küsimus, käsk, käsk jne) ja vastata asjakohaselt (vastus, tegevus jne).
Selles postituses käsitleme vestlusroboteid, nende eeliseid, kasutusjuhtumeid ja seda, kuidas ise luua. sügav õpe chatbot muu hulgas Pythonis.
Alustame.
Niisiis, mis on vestlusrobotid?
Vestlusbotit nimetatakse sageli üheks kõige arenenumaks ja paljutõotavamaks inimese ja masina suhtluse vormiks. Need digitaalsed assistendid parandavad kliendikogemust, muutes inimeste ja teenuste vahelist suhtlust sujuvamaks.
Samal ajal pakuvad need ettevõtetele uusi võimalusi klientidega suhtlemise protsessi tõhustamiseks optimeerimiseks, mis võib vähendada tavapäraseid tugikulusid.
Lühidalt öeldes on see AI-põhine tarkvara, mis on mõeldud inimestega suhtlemiseks nende loomulikes keeltes. Need vestlusrobotid suhtlevad sageli heli- või kirjatehnikate kaudu ning nad suudavad hõlpsasti jäljendada inimeste keeli, et luua inimestega inimsarnasel viisil ühendust.
Vestlusrobotid õpivad oma suhtlusest kasutajatega, muutudes aja jooksul realistlikumaks ja tõhusamaks. Nad saavad hakkama paljude äritegevustega, nagu kulutuste lubamine, tarbijatega suhtlemine veebis ja müügivihjete loomine.
Oma süvaõppega vestlusroboti loomine Pythoniga
Selles valdkonnas on palju erinevaid vestlusroboteid masinõpe ja AI. Mõned vestlusrobotid on virtuaalsed assistendid, teised aga lihtsalt vestlemiseks, teised aga klienditeenindajad.
Olete ilmselt näinud mõnda neist, kes on ettevõtetes päringutele vastanud. Teeme selles õpetuses väikese vestlusroboti, et vastata sageli küsitavatele päringutele.
1. Paketide paigaldamine
Meie esimene samm on installida järgmised paketid.
2. Treeningu andmed
Nüüd on aeg välja mõelda, millist tüüpi teavet peame oma vestlusrobotile andma. Me ei pea alla laadima suuri andmekogumeid, kuna see on lihtne vestlusbot.
Kasutame ainult seda teavet, mille oleme ise loonud. Õppetunni tõhusaks järgimiseks peate looma JSON-faili, mille vorming on allpool näidatud. Minu faili nimi on "intents.json".
JSON-faili kasutatakse sõnumite komplekti loomiseks, mille kasutaja tõenäoliselt sisestab ja vastavate vastuste komplektiga seostab. Igal faili sõnastikul on silt, mis määrab, millisesse rühma iga sõnum kuulub.
Kasutame seda teavet a Närvivõrgus sõnafraasi kategoriseerimiseks meie faili üheks sildiks.
Seejärel saame lihtsalt võtta nendelt rühmadelt vastuse ja edastada selle kasutajale. Vestlusbot on parem ja keerulisem, kui pakute seda täiendavate siltide, vastuste ja mustritega.
3. JSON-andmete laadimine
Alustuseks laadime oma .json-andmed ja impordime mõned moodulid. Koguge oma.json-fail endaga samasse kataloogi Pythoni skript. Meie json-andmed salvestatakse nüüd andmemuutujasse.
4. Andmete ekstraheerimine
Nüüd on aeg meie JSON-failist vajalik teave eraldada. Kõik mustrid, samuti klass/silt, kuhu need kuuluvad, on nõutavad.
Vajame ka kõigi meie mustrites olevate unikaalsete terminite loendit (põhjustel, mida selgitame hiljem), nii et loome nende väärtuste jälgimiseks mõned tühjad loendid.
Nüüd vaatame läbi oma JSON-i andmed ja hangime vajaliku teabe. Selle asemel, et kasutada neid stringidena, kasutame iga mustri sõnade loendiks muutmiseks faili nltk.word tokenizer.
Seejärel lisame oma docs_x loendis iga mustri koos sellega seotud sildiga loendisse docs_y.
5. Sõnatüved
Sõnatüve leidmist nimetatakse tüvest. Näiteks võib sõna "see" tüvi olla "see", samas kui sõna "juhtub" tüvi võib olla "juhtuma".
Kasutame seda tüvest tuletatud tehnikat oma mudeli sõnavara kärpimiseks ja proovime välja mõelda, mida laused üldiselt tähendavad. See kood loob lihtsalt unikaalse loendi tüvelistest sõnadest, mida kasutatakse meie andmete ettevalmistamise järgmises etapis.
6. Sõnade kott
Nüüd on aeg rääkida paljudest sõnadest, kuna oleme oma andmed importinud ja loonud tüvega sõnavara. Neuraalsed võrgud ja masinõppe algoritmid, nagu me kõik teame, nõuavad numbrilist sisendit. Nii et meie stringide loend ei kavatse seda kärpida. Meil on vaja mehhanismi, et esitada oma lausetes numbreid, mis on koht, kus tuleb sisse kott sõnu.
Iga fraas on esitatud meie mudeli sõnavaras olevate terminite pikkuse loendina. Iga sõna meie sõnavaras on esindatud kohaga loendis. Kui positsioon loendis on 1, ilmub sõna meie avalduses; kui see on 0, siis seda sõna meie lauses ei esine.
Me nimetame seda sõnade kotiks, sest me ei tea, millises järjestuses sõnad fraasis esinevad; teame vaid, et need on meie mudeli sõnavaras olemas.
Lisaks sisendi struktureerimisele peame ka oma väljundi vormistama nii, et närvivõrk sellest aru saaks. Koostame väljundloendid, mis vastavad meie andmekogus olevate siltide/siltide arvu pikkusele sarnaselt sõnadega. Iga koht loendis tähistab unikaalset silti/märgendit ja 1 kõigis nendes kohtades näitab, millist silti/silti esindatakse.
Lõpuks kasutame treeningandmete ja väljundi salvestamiseks NumPy massiive.
7. Mudeli väljatöötamine
Oleme valmis alustama mudeli loomist ja koolitamist nüüd, kui oleme kõik oma andmed eeltöötlenud. Kasutame oma eesmärkide saavutamiseks väga lihtsat edasisaatvat närvivõrku, millel on kaks peidetud kihti.
Meie võrgu eesmärk on vaadata sõnade kogumit ja määrata need klassile (üks meie märgendist JSON-failist). Alustame oma mudeli arhitektuuri loomisega. Pidage meeles, et parema mudeli leidmiseks võite mõne numbriga mängida! Masinõpe põhineb enamasti katse-eksituse meetodil.
8. Mudelikoolitus ja säästmine
Nüüd, kui oleme selle seadistanud, on aeg oma mudelit meie andmete põhjal koolitada! Me saavutame selle, sobitades oma andmed mudeliga. Meie pakutav ajajärkude arv näitab, mitu korda mudelit treeningu ajal samade andmetega kokku puututakse.
Kui oleme selle väljaõppe lõpetanud, saame mudeli failimudelisse salvestada. tflearn on skript, mida saab kasutada ka teistes skriptides.
9. Vestlusroboti kasutamine
Nüüd saate hakata oma robotiga vestlema.
Chatboti eelised
- Kuna robotid peaksid töötama 365 päeva aastas, 24 tundi ööpäevas, ilma palgata, suurendavad nende kättesaadavust ja reaktsioonikiirust.
- Need robotid on ideaalsed tööriistad suurandmete kolme peamise V-ga tegelemiseks: maht, kiirus ja mitmekesisus.
- Vestlusbotid on tarkvara, mida saab kasutada ettevõtte tarbijate tundmaõppimiseks ja nendest arusaamiseks.
- Sellel on suurepärane võimsus, kuna sellel on pärast parimaid eeliseid odavad hoolduskulud.
- Chatbot rakendused loovad andmeid, mida saab säilitada ja kasutada analüüsiks ja prognoosideks.
Kasutusjuhtum
- Klientide päringute lahendamine
- Korduma kippuvatele küsimustele vastamine
- Klientide määramine tugimeeskonda
- Klientide tagasiside kogumine
- Soovitan uusi pakkumisi
- Ostke vestlusliku kaubandusega
- IT kasutajatugi
- Majutuse broneerimine
- Raha ülekandmine
Järeldus
Vestlusboteid, nagu ka teisi tehisintellekti tehnoloogiaid, kasutatakse inimeste oskuste suurendamiseks ning inimeste vabastamiseks loovamaks ja kujutlusvõimelisemaks, võimaldades neil kulutada rohkem aega strateegilistele, mitte taktikalistele ülesannetele.
Tõenäoliselt saavad ettevõtted, töötajad ja tarbijad lähitulevikus kasu täiustatud vestlusroboti funktsioonidest, nagu kiiremad soovitused ja ennustused, samuti lihtne juurdepääs kõrglahutusega videokonverentsidele vestluse käigus, kui AI kombineeritakse 5G tehnoloogia.
Neid ja muid võimalusi alles uuritakse, kuid Interneti-ühenduse, AI, NLP ja masinõppe edenedes muutuvad need levinumaks.
Chwoo
Tere,
Täname teid selle programmi eest.
Mul on küsimus.
Sõnade_kott ei ole määratletud. Ma ei saa sellest veast aru.
Kas saaksite mulle öelda, kuidas ma saan selle vea lahendada?
Aitäh selle programmi eest!! Head päeva
Pasknäär
Enne vestlusroti jaotise kasutamist lisage funktsioon:
//////////////////////////////////////////////////// /////////////////////////////
def bag_of_words(s, words):
kott = [0 _ jaoks vahemikus(len(words))]
s_words = nltk.word_tokenize(s)
s_words = [stemmer.stem(word.lower()) sõna jaoks s_words]
for se in s_words:
i, w jaoks loendis (sõnades):
kui w == se:
kott[i] = 1
tagasta numpy.array(kott)
// See lahendab kindlasti teie probleemi. //
/////////////////////////////////////////////////// //////////////////////////
Jagan teiega täielikku koodi, et saaksite sellest selge pildi.
/////////////////////////////////////////////////// //////////
import nltk
nltk.stem.lancasterist import LancasterStemmer
stemmer = LancasterStemmer()
import numpy
import tflearn
import tensorflow
impordi juhuslikult
importida json
import hapukurk
avatud ("intents.json") failiga:
andmed = json.load(fail)
proovige:
avatud ("data.pickle", "rb") kui f:
sõnad, sildid, koolitus, väljund = hapukurk.koormus(f)
välja arvatud:
sõnad = []
sildid = []
docs_x = []
docs_y = []
kavatsuste jaoks andmetes["intents"]:
kavatsuse mustri jaoks ["mustrid"]:
wrds = nltk.word_tokenize(muster)
words.extend(wrds)
docs_x.append(wrds)
docs_y.append(intent["silt"])
kui intent["silt"] pole siltides:
labels.append(intent["silt"])
sõnad = [stemmer.stem(w.lower()) w jaoks sõnades, kui w != "?"]
sõnad = sorted(list(set(sõnad)))
sildid = sorteeritud(sildid)
koolitus = []
väljund = []
out_empty = [0 _ jaoks vahemikus(len(sildid))]
x jaoks, doc in enumerate(docs_x):
kott = []
wrds = [stemmer.stem(w.lower()) jaoks w dokumendis]
w jaoks sõnadega:
kui w wrds:
bag.append (1)
muu:
bag.append (0)
väljundi_rida = välja_tühi[:]
väljundi_rida[sildid.index(docs_y[x])] = 1
koolitus.lisa(kott)
output.append(väljund_rida)
koolitus = numpy.array(treening)
väljund = numpy.array(väljund)
avatud ("data.pickle", "wb") kui f:
pickle.dump((sõnad, sildid, koolitus, väljund), f)
tensorflow.reset_default_graph()
net = tflearn.input_data(shape=[puudub, len(koolitus[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)
mudel = tflearn.DNN(net)
proovige:
model.load("model.tflearn")
välja arvatud:
model.fit(treening, väljund, n_epoch=1500, partii_suurus=8, show_metric=True)
model.save(“model.tflearn”)
def bag_of_words(s, words):
kott = [0 _ jaoks vahemikus(len(words))]
s_words = nltk.word_tokenize(s)
s_words = [stemmer.stem(word.lower()) sõna jaoks s_words]
for se in s_words:
i, w jaoks loendis (sõnades):
kui w == se:
kott[i] = 1
tagasta numpy.array(kott)
def chat():
print ("Alustage robotiga rääkimist (peatamiseks tippige quit)!")
tõsi:
inp = sisend ("Sina: ")
if inp.lower() == "quit":
murdma
tulemused = model.predict([sõnade_kott(sisend, sõnad)])
result_index = numpy.argmax(results)
silt = sildid[tulemuste_indeks]
tg in data jaoks ["intents"]:
if tg['tag'] == silt:
vastused = tg['vastused']
print(juhuslik.valik(vastused))
vestlus()
////////////////////////////////////////////////// ///////////////
Tänan teid,
Head kodeerimist!
Lu
Tere,
Kas saaksite anda aimu protsessist, mida läbi viia juhul, kui soovitakse pythonis chatbotit luua, aga info saadakse excelis tehtud küsitlusest. Aitäh!