Edukien aurkibidea[Ezkutatu][Erakutsi]
Ahots-deiak pixkanaka kentzen ari dira komunikazio-sektorean testu eta ikus-entzunezkoen alde. Facebookeko inkesta baten arabera, erosleen erdiek baino gehiagok nahiago dute hitz egin dezaketen enpresa bati erosi. Txateatzea sozialki onargarria den komunikazio modu berri bihurtu da.
Enpresei edozein unetan eta edozein lekutatik komunikatzeko aukera ematen die bezeroekin. Txatbot-ak gero eta ospe handiagoa hartzen ari dira enpresen eta bezeroen artean, erabiltzeko erraztasunagatik eta itxaron denbora murritzagatik.
Chatbot-ek edo elkarrizketa-programa automatizatuek testu bidezko interfaze baten bidez zerbitzuetara sartzeko metodo pertsonalizatuagoa eskaintzen diete bezeroei. AI bidezko txat-bot berrienek pertsona batek (edo beste bot batek, sorrera) egindako kontsulta (galdera, komandoa, etab.) ingurune zehatz batean antzeman dezakete eta egoki erantzun (erantzuna, ekintza, etab.).
Argitalpen honetan, chatbot-ak zer diren, haien onurak, erabilera kasuak eta zurea nola egin aztertuko dugu. ikaskuntza sakona chatbot Python-en, besteak beste.
Has gaitezen
Beraz, zer dira chatbot-ak?
Chatbot bat maiz aipatzen da gizakiaren eta makinaren arteko interakzio formarik aurreratuenetako eta itxaropentsuenetako bat dela. Laguntzaile digital hauek bezeroen esperientzia hobetzen dute pertsonen eta zerbitzuen arteko elkarrekintzak erraztuz.
Aldi berean, enpresei aukera berriak eskaintzen dizkiete bezeroekin harremanetan jartzeko prozesua eraginkortasunerako optimizatzeko, ohiko laguntza gastuak murrizteko.
Laburbilduz, AI-n oinarritutako softwarea da, gizakiekin beren hizkuntza naturalean komunikatzeko xedea duena. Txatbot hauek audio edo idatzizko tekniken bidez elkarreragiten dute sarri, eta erraz imita ditzakete gizakien hizkuntzak gizakiekin gizakiaren antzera konektatzeko.
Chatbot-ek erabiltzaileekin dituzten interakzioetatik ikasten dute, denborarekin errealistagoak eta eraginkorragoak bihurtuz. Negozio-jarduera ugari kudeatu ditzakete, hala nola, gastuak baimentzea, kontsumitzaileek linean harremanetan jartzea eta bezerogaiak sortzea.
Zure ikaskuntza sakoneko chatbot propioa sortu python-ekin
Chatbot mota asko daude alorrean makina ikaskuntza eta AI. Chatbot batzuk laguntzaile birtualak dira, beste batzuekin solas egiteko besterik ez daude, eta beste batzuk bezeroarentzako arretarako agenteak.
Seguruenik, enpresek kontsultei erantzuteko langile batzuk ikusi dituzu. Tutorial honetan txatbot txiki bat egingo dugu maiz eskatutako galderei erantzuteko.
1. Paketeak instalatzea
Gure lehen urratsa honako pakete hauek instalatzea da.
2. Prestakuntza Datuak
Orain, gure txatbot-ari zein informazio-mota eman beharko diogun jakiteko garaia da. Ez dugu datu multzo handirik deskargatu behar hau txat-bot soil bat delako.
Guk guk sortutako informazioa bakarrik erabiliko dugu. Ikasgaia modu eraginkorrean jarraitzeko, .JSON fitxategi bat sortu beharko duzu behean ikusten den formatu berdinarekin. Nire fitxategiak "intents.json" du izena.
JSON fitxategia erabiltzaileak litekeena da sartu eta erantzun garrantzitsuen multzo batera esleituko dituen mezu multzo bat sortzeko erabiltzen da. Fitxategiko hiztegi bakoitzak mezu bakoitza zein taldetakoa den identifikatzen duen etiketa bat du.
Informazio hau a trebatzeko erabiliko dugu sare neural hitz esaldi bat gure fitxategiko etiketa bat bezala sailkatzeko.
Orduan, talde horien erantzuna hartu eta erabiltzaileari eman diezaiokegu. Chatbot-a hobea eta konplikatuagoa izango da etiketa, erantzun eta eredu gehigarriekin eskaintzen badiozu.
3. JSON datuak kargatzea
Gure .json datuak kargatzen eta modulu batzuk inportatzen hasiko gara. Bildu zure.json fitxategia zure direktorio berean Python gidoia. Gure .json datuak datu aldagaian gordeko dira orain.
4. Datuak ateratzea
Orain gure JSON fitxategitik behar dugun informazioa ateratzeko garaia da. Eredu guztiak beharrezkoak dira, baita zein klase/etiketa dagozkion ere.
Gure ereduetako termino esklusibo guztien zerrenda ere beharko dugu (geroago azalduko ditugun arrazoiengatik), beraz, sor ditzagun zerrenda huts batzuk balio horien jarraipena egiteko.
Orain gure JSON datuak errepasatu eta behar dugun informazioa berreskuratuko dugu. Kate gisa eduki beharrean, nltk.word tokenizer erabiliko dugu eredu bakoitza hitz zerrenda batean bihurtzeko.
Ondoren, gure docs_x zerrendan, eredu bakoitza, bere etiketarekin batera, docs_y zerrendara gehituko dugu.
5. Hitz-sortzea
Hitz baten erroa aurkitzea stemming bezala ezagutzen da. Esate baterako, "hori" hitzaren ardatza "hori" izan daiteke, eta "gertatzen" hitzaren ardatza "gertatu" izan daiteke.
Stemming teknika hau erabiliko dugu gure ereduaren hiztegia murrizteko eta esaldiek oro har zer inplikatzen duten asmatzen saiatzeko. Kode honek gure datuak prestatzeko hurrengo fasean erabiliko den hitz nagusien zerrenda bakarra sortuko du.
6. Hitzen poltsa
Bada garaia hitz-poltsa bati buruz hitz egiteko, gure datuak inportatu eta lexikoa sortu dugulako. Neurona sareak eta ikaskuntza automatikoko algoritmoek, denok dakigunez, zenbakizko sarrera behar dute. Beraz, gure kate zerrenda ez da moztuko. Zenbakiak gure esaldietan irudikatzeko mekanismo bat behar dugu, eta hor sartzen da hitz poltsa bat.
Esaldi bakoitza gure ereduaren hiztegiko termino-kopuruaren luzeraren zerrenda batekin irudikatuko da. Gure hiztegiko hitz bakoitza zerrendako leku batekin irudikatuko da. Zerrendako posizioa 1 bada, hitza gure adierazpenean agertzen da; 0 bada, hitza ez da gure esaldian agertzen.
Hitz-poltsa deitzen diogu, ez dakigulako zein segidan agertzen diren hitzak esaldian; dakiguna da gure ereduaren hiztegian existitzen direla.
Gure sarrera egituratzeaz gain, gure irteera ere formateatu behar dugu, neurona-sareak uler dezan. Gure datu-multzoko etiketa-kopuruaren luzera duten irteera-zerrendak sortuko ditugu, hitz-poltsa baten antzera. Zerrendako leku bakoitzak etiketa/etiketa bakarra adierazten du, eta kokapen horietako edozeinetan 1 batek adierazten du zein etiketa/etiketa adierazten ari den.
Azkenik, NumPy matrizeak erabiliko ditugu gure prestakuntza-datuak eta irteerak gordetzeko.
7. Ereduaren Garapena
Prest gaude eredu bat eraikitzen eta trebatzen hasteko, datu guztiak aurrez prozesatu ditugula. Oso oinarrizko feed-forward sare neuronal bat erabiliko dugu ezkutuko bi geruza dituena gure helburuetarako.
Gure sarearen helburua hitz bilduma bat begiratu eta klase bati esleitzea izango da (JSON fitxategiko gure etiketa bat). Gure ereduaren arkitektura ezartzen hasiko gara. Kontuan izan zenbaki batzuekin jolastu dezakezula eredu hobe bat lortzeko! Makina ikaskuntza saiakuntzan oinarritzen da gehienbat.
8. Eredu Prestakuntza eta Aurreztea
Konfiguratu dugunean gure eredua gure datuetan trebatzeko garaia da! Hori lortuko dugu gure datuak ereduari egokituz. Ematen dugun aro kopurua prestakuntzan zehar ereduak datu berberak jasango dituen aldi kopurua da.
Eredua fitxategi-ereduan gorde dezakegu entrenatzen amaitu dugunean. tflearn beste script batzuetan erabil daitekeen script bat da.
9. Chatbot bat erabiltzea
Orain zure botarekin txateatzen has zaitezke.
Chatbot-en abantailak
- Botek urteko 365 egunetan, eguneko 24 orduetan, soldatarik gabe funtzionatuko dutela espero denez, erabilgarritasuna eta erreakzio abiadura handitu.
- Bot hauek tresna ezin hobeak dira datu handien hiru gakoei aurre egiteko: bolumena, abiadura eta barietatea.
- Chatbot-ak enpresa baten kontsumitzaileak ezagutzeko eta ulertzeko erabil daitezkeen softwareak dira.
- Goi-mailako potentzia du, mantentze-kostu merkea duelako abantaila nagusiak izan ondoren.
- Chatbot aplikazioek analisietarako eta aurreikuspenetarako gorde eta erabil daitezkeen datuak sortzen dituzte.
Erabilera kasua
- Bezeroen kontsultak ebaztea
- Maiz egiten diren galderei erantzutea
- Bezeroak laguntza-taldeari esleitzea
- Bezeroen iritziak biltzea
- Eskaintza berriak gomendatzen
- Erosi elkarrizketa merkataritzarekin
- IT Laguntza Zerbitzua
- Ostatuak erreserbatu
- Diru transferentzia
Ondorioa
Chatbot-ak, beste AI teknologiak bezala, giza gaitasunak areagotzeko eta gizakiak sormen eta irudimentsuagoak izan daitezen erabiliko dira, zeregin estrategikoetan baino denbora gehiago pasatzeko aukera emanez.
Enpresek, langileek eta kontsumitzaileek txatbot-en eginbide hobetuez balia daitezke, hala nola gomendio eta iragarpen azkarragoak, eta baita elkarrizketa baten barruan definizio handiko bideokonferentziarako sarbide erraza ere, etorkizun hurbilean, AI garapenarekin konbinatzen denean. 5G teknologia.
Aukera hauek eta beste batzuk ikertzen ari dira oraindik, baina Interneteko konexioak, AI, NLP eta ikaskuntza automatikoa aurrera egin ahala, gehiago zabalduko dira.
Chwoo
Kaixo,
Eskerrik asko programa honengatik.
Galdera bat daukat.
"bag_of_words" ez dago definituta. Ezin dut ulertu errore hau.
Esango al zenidake nola konpondu dezaket errore hau??
Eskerrik asko programa honengatik!! Egun ona izan
Jay
Mesedez, gehitu funtzio bat chatbot atala erabili aurretik:
//////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////
def hitzen_poltsa(k, hitzak):
poltsa = [0 _ tartean (len (hitzak))]
s_words = nltk.word_tokenize(k)
s_words = [stemmer.stem(word.lower()) hitzetarako s_words]
berarentzat s_words:
i, w-n enumerate(hitzak):
w == bada:
poltsa [i] = 1
itzuli numpy.array(poltsa)
// Zalantzarik gabe, zure arazoa konponduko du. //
////////////////////////////////////////////////////// // ////////////////////////////
Kode osoa partekatzen ari naiz zurekin, argazki argia lortuko duzu.
//////////////////////////////////////////////////////////////////////////////////////// //////////
inportatu nltk
nltk.stem.lancaster inportaziotik LancasterStemmer
stemmer = LancasterStemmer ()
inportatu numpy
inportatu tflearn
inportatu tensorflow
ausaz inportatu
inportatu json
inportatu ozpinetakoa
open("intents.json") fitxategi gisa:
datuak = json.load (fitxategia)
saiatu:
open("data.pickle", "rb") f gisa:
hitzak, etiketak, prestakuntza, irteera = pickle.load(f)
ezik:
hitzak = []
etiketak = []
docs_x = []
docs_y = []
datuetan intentziorako[“asmoak”]:
asmotan eredurako[“ereduak”]:
wrds = nltk.word_tokenize (eredua)
hitzak.zabaldu(hitz)
docs_x.append(wrds)
docs_y.append(intent[“etiketa”])
intentzioa[“etiketa”] etiketetan ez badago:
labels.append(intent[“etiketa”])
hitzak = [stemmer.stem(w.lower()) hitzetarako w hitzetan w != "?"]
hitzak = ordenatuta (zerrenda (multzoa (hitzak)))
etiketak = ordenatuta (etiketak)
prestakuntza = []
irteera = []
out_empty = [0 _rentzako barrutian (len (etiketak))]
x-rentzat, doc enumerate(docs_x):
poltsa = []
wrds = [stemmer.stem(w.lower()) w-rako dokumentuan]
w hitzetan:
w hitzetan bada:
poltsa.erantsi(1)
bestela:
poltsa.erantsi(0)
irteera_erranka = kanpo_hutsik[:]
irteera_errenkada[labels.index(docs_y[x])] = 1
entrenamendua.erantsi(poltsa)
output.append (irteera_erranka)
prestakuntza = numpy.array (prestakuntza)
irteera = numpy.array (irteera)
open("data.pickle", "wb") f gisa:
pickle.dump((hitzak, etiketak, prestakuntza, irteera), f)
tensorflow.reset_default_graph()
net = tflearn.input_data(forma=[Ez ere ez, len(prestakuntza[0])])
net = tflearn.fully_connected(net, 8)
net = tflearn.fully_connected(net, 8)
net = tflearn.fully_connected(sarea, len(irteera[0]), aktibazioa=”softmax”)
net = tflearn.regression (net)
eredua = tflearn.DNN(net)
saiatu:
model.load ("model.tflearn")
ezik:
model.fit(training, output, n_epoch=1500, batch_size=8, show_metric=True)
model.save ("model.tflearn")
def hitzen_poltsa(k, hitzak):
poltsa = [0 _ tartean (len (hitzak))]
s_words = nltk.word_tokenize(k)
s_words = [stemmer.stem(word.lower()) hitzetarako s_words]
berarentzat s_words:
i, w-n enumerate(hitzak):
w == bada:
poltsa [i] = 1
itzuli numpy.array(poltsa)
def chat():
print("Hasi bot-arekin hitz egiten (idatzi irten gelditzeko)!")
Egia bitartean:
inp = input ("Zuk: ")
if inp.lower() == “irten”:
apurtu
emaitzak = model.predict([hitz_poltsa(inp, hitzak)])
results_index = numpy.argmax (emaitzak)
etiketa = etiketak[results_index]
datuetan tg-rako[“asmoak”]:
tg['etiketa'] == etiketa:
erantzunak = tg['erantzunak']
inprimatu(ausazko.aukera(erantzunak))
txateatu()
//////////////////////////////////////////////////////////////////////////////////////// ////////////////
Eskerrik asko,
Zoriontsu kodeketa!
Lu
Kaixo,
Eman al zenidake python-en txat-bot bat sortu nahi izanez gero egin beharreko prozesuaren ideia, baina informazioa excel-eko inkesta batetik lortzen da. Eskerrik asko!