Daftar Isi[Bersembunyi][Menunjukkan]
Panggilan suara sedang dihapus demi teks dan visual di sektor komunikasi. Menurut jajak pendapat Facebook, lebih dari setengah pembeli lebih suka membeli dari perusahaan yang dapat mereka ajak bicara. Mengobrol telah menjadi mode komunikasi baru yang dapat diterima secara sosial.
Ini memungkinkan bisnis untuk berkomunikasi dengan klien mereka kapan saja dan dari lokasi mana pun. Chatbot semakin populer di kalangan perusahaan dan pelanggan karena kemudahan penggunaannya dan waktu tunggu yang lebih singkat.
Chatbots, atau program percakapan otomatis, memberi klien metode yang lebih disesuaikan untuk mengakses layanan melalui antarmuka berbasis teks. Chatbots bertenaga AI terbaru dapat mengenali kueri (pertanyaan, perintah, pesanan, dll.) yang dibuat oleh seseorang (atau bot lain, permulaan) di lingkungan tertentu dan merespons dengan tepat (jawaban, tindakan, dll.).
Dalam posting ini, kita akan membahas apa itu chatbot, manfaatnya, kasus penggunaan, dan cara membuatnya sendiri belajar mendalam chatbot dengan Python, antara lain.
Mari kita mulai.
Jadi, apa itu chatbot?
Chatbot sering disebut sebagai salah satu bentuk interaksi manusia-mesin yang paling maju dan menjanjikan. Asisten digital ini meningkatkan pengalaman pelanggan dengan menyederhanakan interaksi antara orang dan layanan.
Secara bersamaan, mereka menyediakan bisnis dengan pilihan baru untuk mengoptimalkan proses kontak pelanggan untuk efisiensi, yang dapat memotong biaya dukungan konvensional.
Singkatnya, ini adalah perangkat lunak berbasis AI yang dimaksudkan untuk berkomunikasi dengan manusia dalam bahasa alami mereka. Chatbots ini sering berinteraksi melalui audio atau teknik tertulis, dan mereka dapat dengan mudah meniru bahasa manusia untuk terhubung dengan manusia dengan cara yang mirip manusia.
Chatbots belajar dari interaksi mereka dengan pengguna, menjadi lebih realistis dan efisien dari waktu ke waktu. Mereka dapat menangani berbagai aktivitas bisnis, seperti mengesahkan pengeluaran, terlibat dengan konsumen secara online, dan menghasilkan prospek.
Membuat chatbot pembelajaran mendalam Anda sendiri dengan python
Ada banyak jenis chatbot yang berbeda di bidang Mesin belajar dan AI. Beberapa chatbots adalah asisten virtual, sementara yang lain hanya ada untuk berkomunikasi, sementara yang lain adalah agen layanan pelanggan.
Anda mungkin pernah melihat beberapa orang yang dipekerjakan oleh bisnis untuk menjawab pertanyaan. Kami akan membuat chatbot kecil dalam tutorial ini untuk menjawab pertanyaan yang sering diminta.
1. Menginstal paket
Langkah pertama kami adalah menginstal paket-paket berikut.
2. Data Pelatihan
Sekarang saatnya untuk mencari tahu jenis informasi apa yang kita perlukan untuk memberikan chatbot kita. Kami tidak perlu mengunduh kumpulan data besar karena ini adalah chatbot sederhana.
Kami hanya akan menggunakan informasi yang kami buat sendiri. Untuk mengikuti pelajaran secara efektif, Anda harus membuat file .JSON dengan format yang sama seperti yang terlihat di bawah ini. File saya bernama "intents.json."
File JSON digunakan untuk membuat sekumpulan pesan yang kemungkinan akan dimasukkan oleh pengguna dan dipetakan ke sekumpulan jawaban yang relevan. Setiap kamus dalam file memiliki tag yang mengidentifikasi grup mana yang dimiliki setiap pesan.
Kami akan menggunakan informasi ini untuk melatih saraf jaringan untuk mengkategorikan frase kata-kata sebagai salah satu tag dalam file kami.
Kami kemudian dapat mengambil respons dari grup tersebut dan memberikannya kepada pengguna. Chatbot akan lebih baik dan lebih rumit jika Anda menawarkannya dengan tag, balasan, dan pola tambahan.
3. Pemuatan data JSON
Kita akan mulai dengan memuat data .json dan mengimpor beberapa modul. Rakit file .json Anda di direktori yang sama dengan file Anda Skrip python. Data .json kita sekarang akan disimpan dalam variabel data.
4. Ekstraksi Data
Sekarang saatnya untuk mengekstrak informasi yang kita butuhkan dari file JSON kita. Semua pola, serta kelas/tag tempatnya, diperlukan.
Kami juga memerlukan daftar semua istilah unik dalam pola kami (untuk alasan yang akan kami jelaskan nanti), jadi mari buat beberapa daftar kosong untuk melacak nilai-nilai ini.
Sekarang kita akan mengulang data JSON dan mengambil informasi yang kita butuhkan. Daripada menjadikannya sebagai string, kita akan menggunakan nltk.word tokenizer untuk mengubah setiap pola menjadi daftar kata.
Kemudian, dalam daftar docs_x, kita akan menambahkan setiap pola, bersama dengan tag yang terkait, ke daftar docs_y.
5. Stemming Kata
Menemukan akar kata dikenal sebagai stemming. Misalnya, batang kata "itu" bisa jadi "itu", sedangkan batang kata "terjadi" bisa jadi "terjadi."
Kami akan menggunakan teknik stemming ini untuk memangkas kosa kata model kami dan mencoba mencari tahu kalimat apa yang tersirat secara umum. Kode ini hanya akan menghasilkan daftar unik kata-kata bertangkai yang akan digunakan pada tahap selanjutnya dari persiapan data kita.
6. Kantong Kata-kata
Saatnya untuk berbicara tentang sekantong kata sekarang setelah kami mengimpor data kami dan menghasilkan kosa kata yang berakar. Jaringan syaraf dan algoritma pembelajaran mesin, seperti yang kita semua tahu, membutuhkan input numerik. Jadi daftar string kami tidak akan memotongnya. Kami membutuhkan mekanisme untuk mewakili angka dalam kalimat kami, di situlah sekantong kata-kata masuk.
Setiap frase akan diwakili oleh daftar panjang jumlah istilah dalam kosakata model kami. Setiap kata dalam kosakata kami akan diwakili oleh tempat dalam daftar. Jika posisi dalam daftar adalah 1, kata tersebut muncul dalam pernyataan kami; jika itu adalah 0, kata itu tidak muncul dalam kalimat kita.
Kami menyebutnya sekantong kata karena kami tidak tahu urutan kemunculan kata-kata dalam frasa; semua yang kita tahu adalah bahwa mereka ada dalam kosa kata model kami.
Selain menyusun input kita, kita juga harus memformat output kita sehingga jaringan saraf memahaminya. Kami akan membuat daftar keluaran yang merupakan panjang dari jumlah label/tag dalam kumpulan data kami, mirip dengan sekantong kata. Setiap tempat dalam daftar mewakili label/tag unik, dan angka 1 di salah satu lokasi tersebut menunjukkan label/tag mana yang diwakili.
Terakhir, kita akan menggunakan array NumPy untuk menyimpan data dan output pelatihan kita.
7. Pengembangan Model
Kami siap untuk mulai membangun dan melatih model sekarang setelah kami memproses semua data sebelumnya. Kami akan menggunakan jaringan saraf umpan maju yang sangat mendasar dengan dua lapisan tersembunyi untuk tujuan kami.
Tujuan jaringan kami adalah untuk melihat kumpulan kata dan menetapkannya ke kelas (salah satu tag kami dari file JSON). Kita akan mulai dengan membuat arsitektur model kita. Perlu diingat bahwa Anda dapat bermain dengan beberapa angka untuk menghasilkan model yang lebih baik! Pembelajaran mesin sebagian besar didasarkan pada coba-coba.
8. Pelatihan & Penghematan Model
Saatnya melatih model kami pada data kami sekarang setelah kami menyiapkannya! Kami akan mencapai ini dengan menyesuaikan data kami dengan model. Jumlah epoch yang kami berikan adalah berapa kali model akan diekspos ke data yang sama selama pelatihan.
Kita dapat menyimpan model ke model file setelah kita selesai melatihnya. tflearn adalah skrip yang dapat digunakan di skrip lain.
9. Menggunakan chatbot
Sekarang Anda dapat mulai mengobrol dengan bot Anda.
Manfaat Chatbot
- Karena bot diharapkan beroperasi 365 hari setahun, 24 jam sehari, tanpa bayaran, meningkatkan ketersediaan dan kecepatan reaksi.
- Bot ini adalah alat yang sempurna untuk menangani tiga V kunci data besar: volume, kecepatan, dan variasi.
- Chatbots adalah perangkat lunak yang dapat digunakan untuk mempelajari dan memahami konsumen perusahaan.
- Ini memiliki kekuatan unggul yang memiliki biaya perawatan yang murah setelah manfaat atas.
- Aplikasi Chatbot membuat data yang dapat disimpan dan digunakan untuk analisis dan perkiraan.
Kasus penggunaan
- Menyelesaikan pertanyaan pelanggan
- Menjawab pertanyaan yang sering diajukan
- Menugaskan pelanggan untuk mendukung tim
- Mengumpulkan umpan balik pelanggan
- Merekomendasikan penawaran baru
- Berbelanja dengan perdagangan percakapan
- IT Helpdesk
- Pemesanan akomodasi
- Transfer uang
Kesimpulan
Chatbots, seperti teknologi AI lainnya, akan digunakan untuk meningkatkan keterampilan manusia dan membebaskan manusia untuk menjadi lebih kreatif dan imajinatif dengan memungkinkan mereka menghabiskan lebih banyak waktu untuk tugas-tugas strategis daripada taktis.
Bisnis, karyawan, dan konsumen kemungkinan akan mendapat manfaat dari fitur chatbot yang disempurnakan seperti rekomendasi dan prediksi yang lebih cepat, serta akses mudah ke konferensi video definisi tinggi dari dalam percakapan, dalam waktu dekat, saat AI digabungkan dengan pengembangan teknologi 5G.
Ini dan kemungkinan lainnya masih diselidiki, tetapi seiring dengan kemajuan konektivitas internet, AI, NLP, dan pembelajaran mesin, mereka akan menjadi lebih umum.
Cwoo
Halo,
Terima kasih untuk program ini.
Saya punya pertanyaan.
"bag_of_words" tidak didefinisikan. Saya tidak dapat memahami kesalahan ini.
Bisakah Anda memberi tahu saya bagaimana saya bisa mengatasi kesalahan ini ??
Terima kasih untuk program ini!! Semoga harimu menyenangkan
Jay
Harap tambahkan fungsi sebelum menggunakan bagian chatbot:
//////////////////////////////////////////////////////////// //////////////////////////////////////////
def bag_of_words(s, kata-kata):
bag = [0 untuk _ dalam jangkauan(len(kata-kata))]
s_words = nltk.word_tokenize(s)
s_words = [stemmer.stem(word.lower()) untuk kata dalam s_words]
untuk se di s_words:
untuk i, w di enumerate(words):
jika w == se:
tas[i] = 1
kembali numpy.array(tas)
// Ini pasti akan menyelesaikan masalahmu. //
//////////////////////////////////////////////// //////////////////////////
Saya membagikan kode lengkapnya kepada Anda, sehingga Anda akan mendapatkan gambaran yang jelas tentangnya.
//////////////////////////////////////////////////////////// //////////
impor nltk
dari nltk.stem.lancaster impor LancasterStemmer
batang = LancasterStemmer()
impor numpy
impor tflearn
impor tensorflow
impor acak
impor json
impor acar
dengan open("intents.json") sebagai file:
data = json.beban(file)
coba:
dengan open(“data.pickle”, “rb”) sebagai f:
kata-kata, label, pelatihan, output = pickle.load(f)
kecuali:
kata = []
label = []
dokumen_x = []
dokumen_y = []
untuk maksud dalam data[“niat”]:
untuk pola dalam maksud["pola"]:
wrds = nltk.word_tokenize(pola)
kata-kata.perpanjang(wrds)
docs_x.append(wrds)
docs_y.append(maksud[“tag”])
jika maksud[“tag”] tidak ada dalam label:
labels.append(maksud[“tag”])
kata = [stemmer.stem(w.lower()) untuk w dalam kata jika w != “?”]
kata = diurutkan(daftar(set(kata)))
label = diurutkan(label)
pelatihan = []
keluaran = []
out_empty = [0 untuk _ dalam rentang(len(label))]
untuk x, doc di enumerate(docs_x):
tas = []
wrds = [stemmer.stem(w.lower()) untuk w di doc]
untuk w dengan kata-kata:
jika w dalam wrds:
tas.tambahkan(1)
lain:
tas.tambahkan(0)
keluaran_baris = keluar_kosong[:]
output_row[label.indeks(docs_y[x])] = 1
pelatihan.tambahkan(tas)
keluaran.tambahkan(baris_keluaran)
pelatihan = numpy.array(pelatihan)
keluaran = numpy.array(keluaran)
dengan open("data.pickle", "wb") sebagai f:
pickle.dump((kata-kata, label, pelatihan, keluaran), f)
tensorflow.reset_default_graph()
net = tflearn.input_data(shape=[Tidak ada, len(pelatihan[0])])
bersih = tflearn.sepenuhnya_terhubung(bersih, 8)
bersih = tflearn.sepenuhnya_terhubung(bersih, 8)
net = tflearn.fully_connected(net, len(output[0]), aktivasi=”softmax”)
bersih = tflearn.regression(bersih)
model = tflearn.DNN(bersih)
coba:
model.load("model.tflearn")
kecuali:
model.fit(pelatihan, keluaran, n_epoch=1500, batch_size=8, show_metric=True)
model.save("model.tflearn")
def bag_of_words(s, kata-kata):
bag = [0 untuk _ dalam jangkauan(len(kata-kata))]
s_words = nltk.word_tokenize(s)
s_words = [stemmer.stem(word.lower()) untuk kata dalam s_words]
untuk se di s_words:
untuk i, w di enumerate(words):
jika w == se:
tas[i] = 1
kembali numpy.array(tas)
pasti obrolan():
print("Mulai berbicara dengan bot (ketik quit untuk berhenti)!")
sementara Benar:
inp = input(“Anda : “)
jika inp.lower() == "keluar":
istirahat
hasil = model.predict([bag_of_words(inp, words)])
result_index = numpy.argmax(hasil)
tag = label[results_index]
untuk tg di data["niat"]:
jika tg['tag'] == tag:
tanggapan = tg['tanggapan']
print(pilihan acak(tanggapan))
mengobrol()
////////////////////////////////////////////////// ///////////////
Terima kasih,
Selamat coding!
Lu
Halo,
Bisakah Anda memberi saya gambaran tentang proses yang harus dilakukan jika ingin membuat chatbot dengan python, tetapi informasinya diperoleh dari survei di excel. Terima kasih!