Jadual Kandungan[Sembunyi][Tunjukkan]
Panggilan suara sedang ditamatkan secara berperingkat memihak kepada teks dan visual dalam sektor komunikasi. Menurut tinjauan pendapat Facebook, lebih separuh daripada pembeli lebih suka membeli daripada syarikat yang mereka boleh bercakap dengannya. Berbual telah menjadi cara komunikasi baharu yang boleh diterima oleh masyarakat.
Ia membolehkan perniagaan berkomunikasi dengan pelanggan mereka pada bila-bila masa dan dari mana-mana lokasi. Chatbots semakin mendapat populariti di kalangan syarikat dan pelanggan kerana kemudahan penggunaannya dan masa menunggu yang berkurangan.
Chatbots, atau program perbualan automatik, menyediakan pelanggan kaedah yang lebih tersuai untuk mengakses perkhidmatan melalui antara muka berasaskan teks. Chatbot berkuasa AI terbaharu boleh mengecam pertanyaan (soalan, arahan, pesanan, dll.) yang dibuat oleh seseorang (atau bot lain, permulaan) dalam persekitaran tertentu dan bertindak balas dengan sewajarnya (jawapan, tindakan, dll.).
Dalam siaran ini, kami akan membincangkan apa itu chatbot, faedahnya, kes penggunaan dan cara membuatnya sendiri pembelajaran mendalam chatbot dalam Python, antara lain.
Mari kita mulakan.
Jadi, apakah chatbots?
Chatbot sering dirujuk sebagai salah satu bentuk interaksi manusia-mesin yang paling maju dan menjanjikan. Pembantu digital ini meningkatkan pengalaman pelanggan dengan memperkemas interaksi antara orang dan perkhidmatan.
Pada masa yang sama, mereka menyediakan perniagaan dengan pilihan baharu untuk mengoptimumkan proses hubungan pelanggan untuk kecekapan, yang boleh mengurangkan perbelanjaan sokongan konvensional.
Secara ringkasnya, ia adalah perisian berasaskan AI yang bertujuan untuk berkomunikasi dengan manusia dalam bahasa semula jadi mereka. Chatbot ini sering berinteraksi melalui teknik audio atau bertulis, dan mereka boleh meniru bahasa manusia dengan mudah untuk berhubung dengan manusia dengan cara seperti manusia.
Chatbots belajar daripada interaksi mereka dengan pengguna, menjadi lebih realistik dan cekap dari semasa ke semasa. Mereka boleh mengendalikan pelbagai aktiviti perniagaan, seperti membenarkan perbelanjaan, melibatkan diri dengan pengguna dalam talian dan menjana petunjuk.
Mencipta chatbot pembelajaran mendalam anda sendiri dengan python
Terdapat banyak jenis chatbot yang berbeza dalam bidang pembelajaran mesin dan AI. Sesetengah bot sembang adalah pembantu maya, manakala yang lain hanya ada untuk berbual, manakala yang lain adalah ejen perkhidmatan pelanggan.
Anda mungkin pernah melihat beberapa orang yang diambil bekerja oleh perniagaan untuk menjawab pertanyaan. Kami akan membuat chatbot kecil dalam tutorial ini untuk menjawab pertanyaan yang sering diminta.
1. Memasang pakej
Langkah pertama kami ialah memasang pakej berikut.
2. Data Latihan
Kini tiba masanya untuk mengetahui jenis maklumat yang kami perlukan untuk memberikan chatbot kami. Kami tidak perlu memuat turun sebarang set data yang besar kerana ini adalah chatbot yang mudah.
Kami hanya akan menggunakan maklumat yang kami cipta sendiri. Untuk mengikuti pelajaran dengan berkesan, anda perlu menjana fail .JSON dengan format yang sama seperti yang dilihat di bawah. Fail saya dinamakan "intents.json."
Fail JSON digunakan untuk mencipta satu set mesej yang pengguna mungkin akan masukkan dan petakan kepada satu set jawapan yang berkaitan. Setiap kamus dalam fail mempunyai teg yang mengenal pasti kumpulan mana yang dimiliki oleh setiap mesej.
Kami akan menggunakan maklumat ini untuk melatih a rangkaian neural untuk mengkategorikan frasa perkataan sebagai salah satu teg dalam fail kami.
Kami kemudian hanya boleh mengambil respons daripada kumpulan tersebut dan memberikannya kepada pengguna. Chatbot akan menjadi lebih baik dan lebih rumit jika anda menawarkannya dengan teg, balasan dan corak tambahan.
3. Pemuatan data JSON
Kami akan mulakan dengan memuatkan data .json kami dan mengimport beberapa modul. Pasang fail your.json dalam direktori yang sama dengan anda Skrip Python. Data .json kami kini akan disimpan dalam pembolehubah data.
4. Pengekstrakan Data
Kini tiba masanya untuk mengekstrak maklumat yang kami perlukan daripada fail JSON kami. Semua corak, serta kelas/teg yang dimilikinya, diperlukan.
Kami juga memerlukan senarai semua istilah unik dalam corak kami (atas sebab yang akan kami jelaskan kemudian), jadi mari buat beberapa senarai kosong untuk menjejaki nilai ini.
Sekarang kami akan mengulangi data JSON kami dan mendapatkan maklumat yang kami perlukan. Daripada menjadikannya sebagai rentetan, kami akan menggunakan nltk.word tokenizer untuk mengubah setiap corak menjadi senarai perkataan.
Kemudian, dalam senarai docs_x kami, kami akan menambah setiap corak, bersama dengan teg yang berkaitan, pada senarai docs_y.
5. Kata Stemming
Mencari punca sesuatu perkataan dikenali sebagai stemming. Sebagai contoh, batang perkataan "itu" boleh menjadi "itu", manakala batang perkataan "berlaku" boleh menjadi "berlaku".
Kami akan menggunakan teknik stemming ini untuk mengurangkan perbendaharaan kata model kami dan cuba memikirkan ayat yang dimaksudkan secara umum. Kod ini hanya akan menjana senarai unik perkataan berpunca yang akan digunakan dalam fasa seterusnya penyediaan data kami.
6. Beg Perkataan
Sudah tiba masanya untuk bercakap tentang beg perkataan sekarang kerana kami telah mengimport data kami dan menjana perbendaharaan kata berpunca. Rangkaian saraf dan algoritma pembelajaran mesin, seperti yang kita semua tahu, memerlukan input berangka. Jadi senarai rentetan kami tidak akan memotongnya. Kami memerlukan mekanisme untuk mewakili nombor dalam ayat kami, di mana beg perkataan masuk.
Setiap frasa akan diwakili oleh senarai panjang bilangan istilah dalam perbendaharaan kata model kami. Setiap perkataan dalam perbendaharaan kata kami akan diwakili oleh tempat dalam senarai. Jika kedudukan dalam senarai ialah 1, perkataan itu muncul dalam penyata kami; jika ia adalah 0, perkataan itu tidak muncul dalam ayat kami.
Kami memanggilnya beg perkataan kerana kami tidak tahu urutan perkataan muncul dalam frasa; apa yang kita tahu ialah ia wujud dalam perbendaharaan kata model kita.
Selain menstrukturkan input kita, kita juga mesti memformatkan output kita supaya rangkaian neural memahaminya. Kami akan membina senarai output yang merupakan panjang bilangan label/teg dalam set data kami, serupa dengan beg perkataan. Setiap tempat dalam senarai mewakili label/teg unik, dan 1 dalam mana-mana lokasi tersebut menunjukkan label/teg mana yang diwakili.
Akhir sekali, kami akan menggunakan tatasusunan NumPy untuk menyimpan data latihan dan output kami.
7. Pembangunan Model
Kami bersedia untuk mula membina dan melatih model sekarang setelah kami telah memproses semua data kami. Kami akan menggunakan rangkaian neural suapan ke hadapan yang sangat asas dengan dua lapisan tersembunyi untuk objektif kami.
Tujuan rangkaian kami adalah untuk melihat koleksi perkataan dan menetapkannya ke kelas (salah satu teg kami daripada fail JSON). Kami akan bermula dengan mewujudkan seni bina model kami. Perlu diingat bahawa anda boleh bermain dengan beberapa nombor untuk menghasilkan model yang lebih baik! pembelajaran mesin kebanyakannya berdasarkan percubaan dan kesilapan.
8. Latihan & Penjimatan Model
Sudah tiba masanya untuk melatih model kami pada data kami sekarang setelah kami menyediakannya! Kami akan mencapai ini dengan menyesuaikan data kami pada model. Bilangan zaman yang kami sediakan ialah bilangan kali model akan didedahkan kepada data yang sama semasa latihan.
Kami boleh menyimpan model ke model fail setelah kami selesai melatihnya. tflearn ialah skrip yang boleh digunakan dalam skrip lain.
9. Menggunakan chatbot
Kini anda boleh mula bersembang dengan bot anda.
Faedah Chatbot
- Memandangkan bot dijangka beroperasi 365 hari setahun, 24 jam sehari, tanpa gaji, meningkatkan ketersediaan dan kelajuan tindak balas.
- Bot ini ialah alat yang sempurna untuk menangani tiga Vs utama data besar: volum, halaju dan kepelbagaian.
- Chatbots ialah perisian yang boleh digunakan untuk mempelajari dan memahami pengguna syarikat.
- Ia mempunyai kuasa unggul yang mempunyai kos penyelenggaraan yang murah selepas mendapat faedah yang tinggi.
- Aplikasi Chatbot mencipta data yang mungkin disimpan dan digunakan untuk analisis dan ramalan.
Kes guna
- Menyelesaikan pertanyaan pelanggan
- Menjawab soalan lazim
- Menugaskan pelanggan untuk menyokong pasukan
- Mengumpul maklum balas pelanggan
- Mengesyorkan tawaran baharu
- Beli-belah dengan perdagangan perbualan
- IT Helpdesk
- Tempahan penginapan
- Pemindahan wang
Kesimpulan
Chatbots, seperti teknologi AI yang lain, akan digunakan untuk menambah kemahiran manusia dan membebaskan manusia untuk menjadi lebih kreatif dan imaginatif dengan membenarkan mereka menghabiskan lebih banyak masa untuk tugasan strategik dan bukannya taktikal.
Perniagaan, pekerja dan pengguna mungkin mendapat manfaat daripada ciri chatbot yang dipertingkatkan seperti pengesyoran dan ramalan yang lebih pantas, serta akses mudah kepada persidangan video definisi tinggi dari dalam perbualan, dalam masa terdekat, apabila AI digabungkan dengan pembangunan teknologi 5G.
Kemungkinan ini dan kemungkinan lain masih disiasat, tetapi apabila sambungan internet, AI, NLP dan pembelajaran mesin berkembang, ia akan menjadi lebih berleluasa.
Chwoo
helo,
Terima kasih atas program ini.
Saya ada satu soalan.
“beg_perkataan” tidak ditakrifkan. Saya tidak dapat memahami ralat ini.
Bolehkah anda memberitahu saya bagaimana saya boleh menyelesaikan ralat ini??
Terima kasih atas program ini!! Selamat hari raya
Jay
Sila tambahkan fungsi sebelum menggunakan bahagian chatbot:
/////////////////////////////////////////////// ///////////////////////////
def beg_of_words(s, words):
beg = [0 untuk _ dalam julat(len(perkataan))]
s_words = nltk.word_tokenize(s)
s_words = [stemmer.stem(word.lower()) untuk perkataan dalam s_words]
untuk se dalam s_words:
untuk i, w dalam enumerate(perkataan):
jika w == se:
beg [i] = 1
kembalikan numpy.array(beg)
// Ia pasti akan menyelesaikan masalah anda. //
////////////////////////////////////////////////// //////////////////////////
Saya berkongsi kod lengkap dengan anda, jadi anda akan mendapat gambaran yang jelas mengenainya.
//////////////////////////////////////////////// /////////
import nltk
daripada nltk.stem.lancaster import LancasterStemmer
stemmer = LancasterStemmer()
import numpy
import tflearn
import aliran tensor
import rawak
import json
acar import
dengan open(“intents.json”) sebagai fail:
data = json.load(fail)
cuba:
dengan open(“data.pickle”, “rb”) sebagai f:
perkataan, label, latihan, output = pickle.load(f)
kecuali:
perkataan = []
label = []
docs_x = []
docs_y = []
untuk niat dalam data["niat"]:
untuk corak dalam niat["corak"]:
wrd = nltk.word_tokenize(corak)
words.extend(wrds)
docs_x.append(wrds)
docs_y.append(niat[“tag”])
jika niat[“tag”] tiada dalam label:
labels.append(niat[“tag”])
perkataan = [stemmer.stem(w.lower()) untuk w dalam perkataan jika w != “?”]
perkataan = disusun(senarai(set(perkataan)))
label = disusun (label)
latihan = []
keluaran = []
out_empty = [0 untuk _ dalam julat(len(label))]
untuk x, doc dalam enumerate(docs_x):
beg = []
wrd = [stemmer.stem(w.lower()) untuk w dalam doc]
untuk w dalam perkataan:
jika w dalam wrd:
beg.append(1)
lain:
beg.append(0)
baris_keluar = kosong_keluar[:]
baris output[labels.index(docs_y[x])] = 1
latihan.tambah(beg)
output.append(output_row)
latihan = numpy.array(latihan)
output = numpy.array(output)
dengan open(“data.pickle”, “wb”) sebagai f:
pickle.dump((perkataan, label, latihan, output), f)
tensorflow.reset_default_graph()
net = tflearn.input_data(shape=[Tiada, len(latihan[0])])
net = tflearn.fully_connected(bersih, 8)
net = tflearn.fully_connected(bersih, 8)
net = tflearn.fully_connected(net, len(output[0]), activation=”softmax”)
net = tflearn.regression(net)
model = tflearn.DNN(net)
cuba:
model.load(“model.tflearn”)
kecuali:
model.fit(latihan, output, n_epoch=1500, batch_size=8, show_metric=True)
model.save(“model.tflearn”)
def beg_of_words(s, words):
beg = [0 untuk _ dalam julat(len(perkataan))]
s_words = nltk.word_tokenize(s)
s_words = [stemmer.stem(word.lower()) untuk perkataan dalam s_words]
untuk se dalam s_words:
untuk i, w dalam enumerate(perkataan):
jika w == se:
beg [i] = 1
kembalikan numpy.array(beg)
sembang def():
print("Mula bercakap dengan bot (taip berhenti untuk berhenti)!")
Walaupun Betul:
inp = input(“Anda: “)
jika inp.lower() == "berhenti":
memecahkan
keputusan = model.predict([bag_of_words(inp, words)])
hasil_indeks = numpy.argmax(hasil)
tag = label[indeks_hasil]
untuk tg dalam data["niat"]:
jika tg['tag'] == tag:
respons = tg['respons']
print(random.choice(respons))
sembang()
////////////////////////////////////////////////// ///////////////
Terima kasih,
Selamat pengekodan!
Lu
helo,
Bolehkah anda memberi saya idea tentang proses yang perlu dijalankan dalam kes ingin mencipta chatbot dalam python, tetapi maklumat diperoleh daripada tinjauan dalam excel. Terima kasih!