Bab lan Paragraf[Singidaken][Tampilake]
Telpon swara lagi dibuwang kanggo teks lan visual ing sektor komunikasi. Miturut polling Facebook, luwih saka setengah panuku luwih seneng tuku saka perusahaan sing bisa diajak guneman. Ngobrol wis dadi mode komunikasi anyar sing bisa ditampa kanthi sosial.
Iki ngidini bisnis bisa komunikasi karo klien ing sembarang wektu lan saka ngendi wae. Chatbots saya tambah populer ing antarane perusahaan lan pelanggan amarga gampang digunakake lan suda wektu ngenteni.
Chatbots, utawa program obrolan otomatis, nyedhiyakake klien cara sing luwih disesuaikan kanggo ngakses layanan liwat antarmuka adhedhasar teks. Chatbots AI-powered paling anyar bisa ngenali pitakonan (pitakonan, printah, pesenan, etc.) digawe dening wong (utawa bot liyane, wiwitan) ing lingkungan tartamtu lan nanggapi kanthi tepat (jawaban, tumindak, etc.).
Ing kirim iki, kita bakal ngrembug babagan apa chatbots, keuntungane, kasus panggunaan, lan carane nggawe dhewe sinau jero chatbot ing Python, antara liya.
Ayo miwiti.
Dadi, apa chatbots?
Chatbot asring diarani minangka salah sawijining bentuk interaksi manungsa-mesin sing paling maju lan njanjeni. Asisten digital iki nambah pengalaman pelanggan kanthi nyepetake interaksi antarane wong lan layanan.
Bebarengan, padha nyedhiyani bisnis karo opsi anyar kanggo ngoptimalake proses kontak customer kanggo efficiency, kang bisa Cut expenses support conventional.
Cekakipun, punika piranti lunak basis AI sing dimaksudaké kanggo komunikasi karo manungsa ing basa alam. Chatbots iki kerep sesambungan liwat teknik audio utawa tulisan, lan bisa niru basa manungsa kanthi gampang supaya bisa nyambung karo manungsa kanthi cara kaya manungsa.
Chatbots sinau saka interaksi karo pangguna, dadi luwih nyata lan efisien liwat wektu. Dheweke bisa nangani macem-macem kegiatan bisnis, kayata menehi wewenang kanggo mbuwang, melu konsumen online, lan ngasilake petunjuk.
Nggawe chatbot sinau jero dhewe nganggo python
Ana macem-macem jinis chatbots ing lapangan learning machine lan AI. Sawetara chatbots minangka asisten virtual, dene liyane mung ana kanggo ngobrol, dene liyane minangka agen layanan pelanggan.
Sampeyan bisa uga wis ndeleng sawetara wong sing kerja ing bisnis kanggo mangsuli pitakon. Kita bakal nggawe chatbot cilik ing tutorial iki kanggo mangsuli pitakon sing asring dijaluk.
1. Nginstal paket
Langkah pisanan kita yaiku nginstal paket ing ngisor iki.
2. Data Latihan
Saiki wektune kanggo nemtokake jinis informasi apa sing kudu diwenehake marang chatbot. Kita ora perlu ndownload set data gedhe amarga iki minangka chatbot sing gampang.
Kita mung bakal nggunakake informasi sing wis digawe dhewe. Kanggo ngetutake pelajaran kanthi efektif, sampeyan kudu nggawe file .JSON kanthi format sing padha karo sing katon ing ngisor iki. Fileku jenenge "intents.json."
File JSON digunakake kanggo nggawe sakumpulan pesen sing bisa dilebokake pangguna lan dipetakan menyang sakumpulan jawaban sing cocog. Saben kamus ing file kasebut duwe tag sing nemtokake klompok endi saben pesen.
Kita bakal nggunakake informasi iki kanggo olahraga a jaringan saraf kanggo nggolongake frase tembung minangka salah sawijining tag ing file kita.
Kita banjur bisa njupuk respon saka klompok kasebut lan menehi pangguna. Chatbot bakal luwih apik lan luwih rumit yen sampeyan menehi tag, balesan, lan pola tambahan.
3. Loading data JSON
Kita bakal miwiti kanthi ngemot data .json lan ngimpor sawetara modul. Ngumpul file your.json ing direktori sing padha karo sampeyan Aksara Python. Data .json kita saiki bakal disimpen ing variabel data.
4. Ekstraksi Data
Saiki wektune kanggo ngekstrak informasi sing dibutuhake saka file JSON. Kabeh pola, uga kelas/tag sing dadi kagungane, dibutuhake.
Kita uga mbutuhake dhaptar kabeh istilah unik ing pola kita (amarga alasan sing bakal kita jelasake mengko), mula ayo nggawe dhaptar kosong kanggo nglacak nilai kasebut.
Saiki kita bakal mbukak data JSON lan njupuk informasi sing dibutuhake. Tinimbang dadi senar, kita bakal nggunakake nltk.word tokenizer kanggo ngowahi saben pola dadi dhaptar tembung.
Banjur, ing dhaptar docs_x kita, kita bakal nambah saben pola, bebarengan karo tag sing gegandhengan, menyang dhaptar docs_y.
5. Tembung Stemming
Nemokake rooting tembung diarani stemming. Contone, batang saka tembung "sing" bisa uga "sing", dene batang saka tembung "kedadeyan" bisa uga "kedadeyan".
Kita bakal nggunakake teknik stemming iki kanggo motong vocabulary model kita lan nyoba kanggo mangerteni apa ukara tegese ing umum. Kode iki mung bakal nggawe dhaptar unik saka tembung stemmed sing bakal digunakake ing tahap sabanjure panyiapan data kita.
6. Kanthong Tembung
Wektu kanggo ngomong babagan tas tembung saiki kita wis ngimpor data lan nggawe kosakata stemmed. Jaringan saraf lan algoritma machine learning, kaya sing kita ngerti, mbutuhake input numerik. Dadi dhaptar string kita ora bakal dipotong. Kita butuh mekanisme kanggo makili angka ing ukara kita, yaiku ing ngendi tas tembung mlebu.
Saben frase bakal diwakili kanthi dhaptar dawa jumlah istilah ing kosakata model kita. Saben tembung ing vocabulary kita bakal dituduhake dening panggonan ing dhaftar. Yen posisi ing dhaftar punika 1, tembung katon ing statement kita; yen ana 0, tembung kasebut ora katon ing ukara kita.
Kita ngarani tas tembung amarga ora ngerti urutane tembung kasebut ing frasa kasebut; kabeh kita ngerti iku padha ana ing Vocabulary model kita.
Saliyane nggawe struktur input, kita uga kudu ngowahi format output supaya jaringan saraf ngerti. Kita bakal nggawe dhaptar output sing dawane jumlah label/tag ing dataset kita, padha karo tas tembung. Saben panggonan ing dhaptar nggambarake label/tag sing unik, lan 1 ing salah sawijining lokasi kasebut nuduhake label/tag sing diwakili.
Pungkasan, kita bakal nggunakake array NumPy kanggo nyimpen data lan output latihan.
7. Pangembangan Model
Kita siyap miwiti mbangun lan nglatih model saiki wis diproses sadurunge kabeh data. Kita bakal nggunakake jaringan saraf feed-maju dhasar kanthi rong lapisan sing didhelikake kanggo tujuan kita.
Tujuan jaringan kita yaiku kanggo ndeleng koleksi tembung lan menehi menyang kelas (salah sawijining tag saka file JSON). Kita bakal miwiti kanthi nggawe arsitektur model kita. Tetep wonten ing pikiran sing bisa muter karo sawetara saka nomer teka munggah karo model luwih! learning machine biasane adhedhasar nyoba lan kesalahan.
8. Model Training & Saving
Iku wektu kanggo nglatih model kita ing data kita saiki wis nyiyapake! Kita bakal entuk iki kanthi nyetel data menyang model. Jumlah epochs kita nyedhiyani nomer kaping model bakal kapapar data padha sak latihan.
Kita bisa nyimpen model menyang model file yen wis rampung latihan. tflearn minangka naskah sing bisa digunakake ing naskah liyane.
9. Nggunakake chatbot
Saiki sampeyan bisa miwiti ngobrol karo bot sampeyan.
Keuntungan saka Chatbot
- Minangka bot samesthine kanggo operate 365 dina setahun, 24 jam dina, tanpa bayaran, nambah kasedhiyan lan kacepetan reaksi.
- Bot iki minangka alat sing sampurna kanggo ngatasi telung kunci Vs data gedhe: volume, kecepatan, lan macem-macem.
- Chatbots minangka piranti lunak sing bisa digunakake kanggo sinau lan ngerteni konsumen perusahaan.
- Wis daya unggul sing wis biaya pangopènan mirah sawise gadhah keuntungan ndhuwur.
- Aplikasi Chatbot nggawe data sing bisa disimpen lan digunakake kanggo analytics lan ramalan.
Usecase
- Ngrampungake pitakon pelanggan
- Njawab pitakonan sing kerep ditakoni
- Nemtokake pelanggan kanggo ndhukung tim
- Nglumpukake umpan balik pelanggan
- Rekomendasi tawaran anyar
- Toko karo perdagangan conversational
- IT Helpdesk
- Booking akomodasi
- Pangiriman dhuwit
kesimpulan
Chatbots, kaya teknologi AI liyane, bakal digunakake kanggo nambah katrampilan manungsa lan mbebasake manungsa dadi luwih kreatif lan imajinatif kanthi ngidini dheweke nglampahi wektu luwih akeh kanggo tugas strategis tinimbang tugas taktis.
Bisnis, karyawan, lan konsumen bisa uga entuk manfaat saka fitur chatbot sing ditingkatake kayata rekomendasi lan ramalan sing luwih cepet, uga akses gampang menyang konferensi video definisi dhuwur saka obrolan, ing mangsa ngarep, nalika AI digabungake karo pangembangan teknologi 5G.
Iki lan kemungkinan liyane isih diselidiki, nanging amarga konektivitas internet, AI, NLP, lan proses pembelajaran mesin, bakal dadi luwih umum.
Chwoo
Halo,
Matur nuwun kanggo program iki.
Aku duwe pitakonan.
"bag_of_words" ora ditetepake. Aku ora ngerti kesalahan iki.
Apa sampeyan bisa ngomong kepiye carane ngatasi kesalahan iki ??
Matur nuwun kanggo program iki!! Sugeng dalu
Jay
Mangga tambahake fungsi sadurunge nggunakake bagean chatbot:
////////////////////////////////////////// //////////////////////////
def bag_of_words(s, words):
tas = [0 kanggo _ ing jangkoan(len(tembung))]
s_words = nltk.word_tokenize(s)
s_words = [stemmer.stem(word.lower()) kanggo tembung ing s_words]
kanggo se ing s_words:
kanggo i, w ing enumerate (tembung):
yen w == se:
tas [i] = 1
bali numpy.array(tas)
// Iku mesthi bakal ngrampungake masalah sampeyan. //
////////////////////////////////////////// ////////////////////////
Aku nuduhake kode lengkap karo sampeyan, supaya sampeyan bakal entuk gambar sing jelas.
////////////////////////////////////////// /////////
ngimpor nltk
saka nltk.stem.lancaster ngimpor LancasterStemmer
stemmer = LancasterStemmer()
ngimpor numpy
ngimpor tflearn
impor tensorflow
ngimpor acak
ngimpor json
ngimpor acar
kanthi mbukak ("intents.json") minangka file:
data = json.load(file)
coba:
kanthi mbukak ("data.pickle", "rb") minangka f:
tembung, label, latihan, output = pickle.load(f)
kajaba:
tembung = []
label = []
docs_x = []
docs_y = []
kanggo maksud ing data ["maksud"]:
kanggo pola ing maksud ["pola"]:
wrd = nltk.word_tokenize(pola)
words.extend(wrds)
docs_x.append(wrds)
docs_y.append(maksud[“tag”])
yen maksud ["tag"] ora ana ing label:
labels.append(maksud[“tag”])
tembung = [stemmer.stem(w.lower()) kanggo w ing tembung yen w != “?”]
tembung = diurut (dhaptar(set(tembung)))
label = diurut (label)
latihan = []
hasil = []
out_empty = [0 kanggo _ in range(len(labels))]
kanggo x, doc ing enumerate(docs_x):
tas = []
wrd = [stemmer.stem(w.lower()) kanggo w ing doc]
kanggo w ing tembung:
yen w ing wrd:
bag.tambahan(1)
liyane:
bag.tambahan(0)
output_row = metu_kosong [:]
output_row[labels.index(docs_y[x])] = 1
training.append(tas)
output.append(output_row)
training = numpy.array(training)
output = numpy.array(output)
kanthi mbukak ("data.pickle", "wb") minangka f:
pickle.dump((tembung, label, pelatihan, output), 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)
coba:
model.load("model.tflearn")
kajaba:
model.fit(training, output, n_epoch=1500, batch_size=8, show_metric=True)
model.save("model.tflearn")
def bag_of_words(s, words):
tas = [0 kanggo _ ing jangkoan(len(tembung))]
s_words = nltk.word_tokenize(s)
s_words = [stemmer.stem(word.lower()) kanggo tembung ing s_words]
kanggo se ing s_words:
kanggo i, w ing enumerate (tembung):
yen w == se:
tas [i] = 1
bali numpy.array(tas)
def chat():
print("Miwiti ngomong karo bot (ketik quit to stop)!")
nalika Bener:
inp = input("Sampeyan:")
yen inp.lower() == "mati":
break
hasil = model.predict([bag_kata_kata(inp, kata)])
hasil_indeks = numpy.argmax(hasil)
tag = label [indeks_hasil]
kanggo tg ing data ["maksud"]:
yen tg['tag'] == tag:
wangsulan = tg['respons']
print(random.choice(respons))
chatting()
////////////////////////////////////////// //////////////
Matur nuwun,
Sugeng coding!
Lu
Halo,
Apa sampeyan bisa menehi ide babagan proses sing kudu ditindakake yen pengin nggawe chatbot ing python, nanging informasi kasebut dipikolehi saka survey ing excel. Matur nuwun!