Daptar eusi[Sumputkeun][Témbongkeun]
Telepon sora ayeuna dileungitkeun pikeun milih téks sareng visual dina séktor komunikasi. Numutkeun kana polling Facebook, langkung ti satengah pembeli langkung milih mésér ti perusahaan anu aranjeunna tiasa nyarios. Ngobrol geus jadi mode anyar komunikasi ditarima socially.
Éta ngamungkinkeun usaha pikeun komunikasi sareng klienna iraha waé sareng ti lokasi mana waé. Chatbots beuki populer di kalangan perusahaan sareng konsumén kusabab betah dianggo sareng ngirangan waktos ngantosan.
Chatbots, atawa program conversational otomatis, nyadiakeun klien kalawan métode nu leuwih ngaropéa pikeun ngakses jasa ngaliwatan panganteur dumasar-téks. Chatbots AI-Powered panganyarna bisa mikawanoh hiji query (patarosan, paréntah, urutan, jsb) dijieun ku hiji jalma (atawa bot sejen, inception) dina lingkungan husus sarta ngabales appropriately (jawaban, aksi, jsb).
Dina postingan ieu, urang bakal ngabahas naon chatbots, mangpaatna, kasus pamakean, sareng kumaha cara ngadamel anjeun sorangan learning jero chatbot di Python, antara séjén.
Hayu urang ngamimitian.
Janten, naon chatbots?
Chatbot sering disebut salah sahiji bentuk interaksi manusa-mesin anu paling maju sareng ngajangjikeun. Asisten digital ieu ningkatkeun pangalaman palanggan ku cara nyernakeun interaksi antara jalma sareng jasa.
Sakaligus, aranjeunna nyadiakeun usaha kalawan pilihan anyar pikeun ngaoptimalkeun prosés kontak customer pikeun efisiensi, nu bisa motong expenses rojongan konvensional.
Sacara ringkes, éta mangrupikeun parangkat lunak berbasis AI anu dimaksudkeun pikeun komunikasi sareng manusa dina basa alamna. Chatbots ieu sering berinteraksi liwat téknik audio atanapi tulisan, sareng aranjeunna tiasa kalayan gampang meniru basa manusa supados tiasa nyambung sareng manusa dina cara sapertos manusa.
Chatbots diajar tina interaksi maranéhanana jeung pamaké, jadi leuwih realistis jeung efisien kana waktu. Aranjeunna tiasa ngadamel rupa-rupa kagiatan bisnis, sapertos otorisasi belanja, kalibet sareng konsumén online, sareng ngahasilkeun petunjuk.
Nyiptakeun chatbot diajar jero anjeun sorangan sareng python
Aya seueur jinis chatbots anu béda dina widang learning mesin jeung AI. Sababaraha chatbots mangrupakeun asisten maya, sedengkeun nu sejenna ngan aya ngobrol jeung, sedengkeun nu sejenna mangrupakeun agén layanan palanggan.
Anjeun panginten parantos ningali sababaraha anu padamelan ku usaha pikeun ngajawab patarosan. Kami bakal ngadamel chatbot leutik dina tutorial ieu pikeun ngajawab patarosan anu sering dipénta.
1. Masang bungkusan
Léngkah munggaran urang nyaéta masang bungkusan di handap ieu.
2. Data Latihan
Ayeuna waktuna pikeun terang naon jinis inpormasi anu urang peryogikeun pikeun chatbot urang. Kami henteu kedah ngaunduh set data ageung sabab ieu mangrupikeun chatbot saderhana.
Kami ngan ukur nganggo inpormasi anu kami ciptakeun sorangan. Pikeun éféktif nuturkeun sapanjang kalawan palajaran, anjeun bakal kudu ngahasilkeun file .JSON jeung format sarua jeung nu ditempo di handap ieu. File abdi namina "intents.json."
Berkas JSON dianggo pikeun nyiptakeun sakumpulan pesen anu dipikaresep ku pangguna pikeun input sareng peta kana sakumpulan jawaban anu relevan. Unggal kamus dina file boga tag nu nangtukeun mana grup nu masing-masing pesen milik.
Ieu gé ngagunakeun informasi ieu pikeun ngalatih a jaringan neural pikeun ngagolongkeun frasa kecap salaku salah sahiji tag dina file urang.
Urang teras tiasa nyandak réspon ti grup éta sareng masihan ka pangguna. Chatbot bakal langkung saé sareng langkung rumit upami anjeun nawiskeun éta kalayan tag tambahan, balesan, sareng pola.
3. JSON data loading
Urang mimitian ku loading dina data .json urang jeung importing sababaraha modul. Nyusun file your.json dina diréktori anu sami sareng anjeun Aksara Python. Data .json kami ayeuna bakal disimpen dina variabel data.
4. Ékstraksi Data
Ayeuna waktuna pikeun nimba inpormasi anu urang peryogikeun tina file JSON kami. Sadaya pola, kitu ogé kelas/tag nu aranjeunna milik, diperlukeun.
Urang ogé bakal butuh daptar sagala istilah unik dina pola urang (kusabab urang bakal ngajelaskeun engké), jadi hayu urang nyieun sababaraha daptar kosong pikeun ngalacak nilai ieu.
Ayeuna kami gé loop ngaliwatan data JSON kami sarta meunangkeun inpo nu urang butuhkeun. Tinimbang gaduh aranjeunna salaku string, urang bakal nganggo nltk.word tokenizer pikeun transformasi unggal pola kana daptar kecap.
Teras, dina daptar docs_x kami, kami bakal nambihan unggal pola, sareng tag anu aya hubunganana, kana daptar docs_y.
5. Kecap Stemming
Manggihan akar kecap katelah stemming. Contona, bobot kecap "éta" bisa jadi "éta," sedengkeun bobot tina kecap "kajadian" bisa jadi "kajadian".
Urang bakal ngagunakeun téknik stemming ieu pikeun motong handap kosakata model urang jeung nyoba angka kaluar naon kalimat imply sacara umum. Kode ieu ngan saukur bakal ngahasilkeun daptar unik kecap stemmed anu bakal dipaké dina fase salajengna persiapan data urang.
6. Kantong Kecap
Geus waktuna pikeun nyarita ngeunaan kantong kecap ayeuna urang geus diimpor data urang jeung dihasilkeun hiji kosakata stemmed. Jaringan saraf jeung algoritma mesin learning, sakumaha urang sadayana terang, merlukeun input numerik. Janten daptar string kami henteu bakal dipotong. Urang peryogi mékanisme pikeun ngagambarkeun angka dina kalimat urang, dimana kantong kecap asup.
Unggal frasa bakal digambarkeun ku daptar panjang jumlah istilah dina kosakata model urang. Unggal kecap dina kosakata urang bakal digambarkeun ku tempat dina daptar. Lamun posisi dina daptar mangrupa 1, kecap némbongan dina pernyataan urang; lamun éta 0, kecap teu muncul dina kalimah urang.
Urang nyebut eta kantong kecap sabab urang teu nyaho runtuyan nu kecap muncul dina frasa; sadayana urang terang nyaeta aranjeunna aya dina kosakata model urang.
Salian ngastrukturkeun input urang, urang ogé kedah pormat kaluaran urang supados jaringan saraf ngartos éta. Urang bakal ngawangun daptar kaluaran anu panjangna jumlah labél/tag dina susunan data urang, sarupa jeung kantong kecap. Unggal tempat dina daptar ngagambarkeun labél / tag anu unik, sareng 1 dina salah sahiji lokasi éta nunjukkeun labél / tag mana anu diwakilan.
Tungtungna, urang bakal ngagunakeun arrays NumPy pikeun nyimpen data latihan urang jeung kaluaran.
7. Kamekaran Modél
Kami siap ngamimitian ngawangun sareng ngalatih modél ayeuna yén kami parantos ngolah sadaya data urang. Kami bakal ngagunakeun jaringan neural feed-forward anu dasar pisan sareng dua lapisan disumputkeun pikeun tujuan urang.
Tujuan jaringan kami nyaéta pikeun ningali kumpulan kecap sareng napelkeun ka kelas (salah sahiji tag kami tina file JSON). Urang mimitian ku ngadegkeun arsitektur model urang. Terus di pikiran nu bisa maénkeun kalayan sababaraha nomer pikeun datang nepi ka model hadé! learning mesin lolobana dumasar kana trial and error.
8. Modél Pelatihan & Simpen
Waktosna pikeun ngalatih modél kami dina data kami ayeuna parantos nyetél éta! Urang bakal ngahontal ieu ku nyocogkeun data urang kana model. Jumlah epochs kami nyadiakeun nyaéta sabaraha kali model bakal kakeunaan data sarua salila latihan.
Urang tiasa nyimpen modél kana modél file saatos urang parantos ngalatih éta. tflearn mangrupikeun naskah anu tiasa dianggo dina naskah sanés.
9. Ngagunakeun chatbot a
Ayeuna anjeun tiasa ngamimitian ngobrol sareng bot anjeun.
Kauntungannana Chatbot
- Salaku bot diperkirakeun beroperasi 365 dinten sataun, 24 jam sapoé, tanpa bayaran, ningkatkeun kasadiaan sarta speed réaksi.
- Bot ieu mangrupikeun alat anu sampurna pikeun ngatasi tilu konci Vs data gedé: volume, laju, sareng rupa-rupa.
- Chatbots mangrupikeun parangkat lunak anu tiasa dianggo pikeun diajar sareng ngartos konsumen perusahaan.
- Cai mibanda kakuatan punjul nu boga ongkos pangropéa mirah sanggeus ngabogaan kauntungan luhur.
- Aplikasi Chatbot nyiptakeun data anu tiasa dilestarikan sareng dianggo pikeun analitik sareng ramalan.
Usecase
- Resolving queries customer
- Ngawalon patarosan anu sering ditaroskeun
- Assigning konsumén pikeun ngarojong tim
- Ngumpulkeun eupan balik customer
- Nyarankeun nawaran anyar
- Balanja jeung dagang conversational
- IT Helpdesk
- Booking akomodasi
- Transfer artos
kacindekan
Chatbots, sapertos téknologi AI anu sanés, bakal dianggo pikeun ningkatkeun kaahlian manusa sareng ngabebaskeun manusa janten langkung kreatif sareng imajinatif ku ngamungkinkeun aranjeunna nyéépkeun waktos langkung seueur pikeun tugas strategis tinimbang taktis.
Usaha, karyawan, sareng konsumen sigana bakal nguntungkeun tina fitur chatbot anu ditingkatkeun sapertos saran sareng prediksi anu langkung gancang, ogé aksés gampang kana konperénsi pidéo definisi luhur tina paguneman, dina waktos anu caket, nalika AI digabungkeun sareng pamekaran téhnologi 5G.
Kamungkinan ieu sareng anu sanésna masih ditalungtik, tapi nalika konektipitas internét, AI, NLP, sareng kamajuan pembelajaran mesin, aranjeunna bakal langkung umum.
Chwoo
Halo,
Hatur nuhun pikeun program ieu.
Abdi gaduh patarosan.
"bag_of_words" teu dihartikeun. Abdi teu tiasa ngartos kasalahan ieu.
Dupi anjeun ngawartosan kumaha abdi tiasa ngajawab kasalahan ieu??
Hatur nuhun pikeun program ieu!! Wilujeng Angkat
Jay
Punten tambahkeun fungsi sateuacan nganggo bagian chatbot:
///////////////////////////////////////////// //////////////////////////
def bag_of_words(s, words):
kantong = [0 pikeun _ dina rentang(len(kecap))]
s_words = nltk.word_tokenize(s)
s_words = [stemmer.stem(word.lower()) pikeun kecap dina s_words]
pikeun se dina s_words:
pikeun i, w dina enumerate (kecap):
lamun w == se:
kantong [i] = 1
balikkeun numpy.array(bag)
// Pasti bakal ngabéréskeun masalah anjeun. //
///////////////////////////////////////////// /////////////////////////
Kuring ngabagikeun kodeu lengkep sareng anjeun, ku kituna anjeun bakal nampi gambaran anu jelas ngeunaan éta.
///////////////////////////////////////////// /////////
impor nltk
ti nltk.stem.lancaster impor LancasterStemmer
stemmer = LancasterStemmer()
impor numpy
impor tflearn
impor tensorflow
impor acak
impor json
impor acar
kalayan open ("intents.json") salaku file:
data = json.load(file)
cobian:
kalayan open ("data.pickle", "rb") salaku f:
kecap, labél, latihan, kaluaran = pickle.load(f)
kecuali:
kecap = []
labél = []
docs_x = []
docs_y = []
pikeun maksud dina data ["maksud"]:
pikeun pola dina hajat ["pola"]:
wrd = nltk.word_tokenize(pola)
kecap.manjangan(wrds)
docs_x.append(wrds)
docs_y.append(maksud ["tag"])
upami hajat ["tag"] henteu dina labél:
labels.append(maksud ["tag"])
kecap = [stemmer.stem(w.lower()) pikeun w dina kecap lamun w != “?”]
kecap = diurutkeun(daftar(set(kecap)))
labél = diurutkeun (label)
latihan = []
kaluaran = []
out_empty = [0 pikeun _ dina rentang (len(labél))]
pikeun x, doc dina enumerate(docs_x):
kantong = []
wrd = [stemmer.stem(w.lower()) pikeun w dina doc]
pikeun w dina kecap:
lamun w dina wrd:
bag.append(1)
sanésna:
bag.append(0)
kaluaran_baris = kaluar_kosong [:]
baris kaluaran[labels.index(docs_y[x])] = 1
training.append(tas)
output.append(output_row)
latihan = numpy.array(latihan)
kaluaran = numpy.array(kaluaran)
kalayan open ("data.pickle", "wb") salaku f:
pickle.dump((kecap, labél, palatihan, kaluaran), f)
tensorflow.reset_default_graph()
net = tflearn.input_data(shape=[Euweuh, len(latihan[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)
cobian:
model.load("model.tflearn")
kecuali:
model.fit(latihan, kaluaran, n_epoch=1500, batch_size=8, show_metric = Leres)
model.save("model.tflearn")
def bag_of_words(s, words):
kantong = [0 pikeun _ dina rentang(len(kecap))]
s_words = nltk.word_tokenize(s)
s_words = [stemmer.stem(word.lower()) pikeun kecap dina s_words]
pikeun se dina s_words:
pikeun i, w dina enumerate (kecap):
lamun w == se:
kantong [i] = 1
balikkeun numpy.array(bag)
def obrolan ():
print ("Mimitian ngobrol sareng bot (ketik kaluar pikeun ngeureunkeun)!")
bari Leres:
inp = input("Anjeun:")
lamun inp.lower() == "kaluar":
peunggas
hasil = model.predict([bag_of_words(inp, kecap)])
indéks_hasil = numpy.argmax(hasil)
tag = labél[hasil_indéks]
pikeun tg dina data ["maksud"]:
lamun tg[ 'tag'] == tag:
réspon = tg['respons']
print(random.choice(respons))
ngobrol()
///////////////////////////////////////////// //////////////
Hatur nuhun,
Senang coding!
Lu
Halo,
Naha anjeun tiasa masihan kuring ide ngeunaan prosés anu kedah dilakukeun upami hoyong nyiptakeun chatbot dina python, tapi inpormasina dicandak tina survey dina Excel. Hatur nuhun!