Chatbot berbasis NLP di PyTorch. Bonus Flask dan penyebaran JavaScript

Node Sumber: 1123050
Victoria Maslova

Di antara berbagai cara Anda dapat meningkatkan kepuasan pelanggan, chatbots adalah solusi ampuh untuk membantu basis pelanggan. Chatbots terjangkau, membantu skala bisnis Anda, sepenuhnya dapat disesuaikan, membantu pelanggan Anda menemukan produk/layanan yang tepat, dan membantu membangun kepercayaan untuk bisnis Anda. Untuk membuktikan ini saya akan melalui konten berikut:

  1. Apa itu chatbot pembelajaran mesin?
  2. Mengapa chatbot penting di berbagai bidang bisnis?
  3. Bangun chatbot berbasis NLP Anda sendiri menggunakan PyTorch.
  4. Menyebarkan chatbot di Javascript dan Flask.

Chatbot (AI Percakapan) adalah program otomatis yang mensimulasikan percakapan manusia melalui pesan teks, obrolan suara, atau keduanya. Ia belajar melakukan itu berdasarkan banyak masukan, dan Pemrosesan Bahasa Alami (NLP).

Demi semantik, chatbots dan asisten percakapan akan digunakan secara bergantian dalam artikel ini, mereka memiliki arti yang sama.

Business Insider melaporkan bahwa pasar chatbot global diperkirakan akan tumbuh dari $2.6 miliar pada 2019 menjadi $9.4 miliar pada 2024, memperkirakan tingkat pertumbuhan tahunan gabungan sebesar 29.7%. Laporan yang sama juga menunjukkan bahwa pertumbuhan tertinggi dalam implementasi chatbot akan terjadi di industri ritel dan e-niaga, karena meningkatnya permintaan untuk menyediakan pengalaman omnichannel yang mulus kepada pelanggan.

Itu saja sudah cukup untuk meyakinkanmu bahwa chatbots adalah cara untuk menangani hubungan pelanggan bergerak maju, tetapi mereka juga akan terus tumbuh sebagai alat internal untuk alat perusahaan dan hampir setiap industri akan mengadopsi teknologi jika belum.

Di bawah ini adalah alasan utama mengapa semakin banyak bisnis yang mengadopsi strategi chatbot dan bagaimana mereka menjadi formula win-win untuk mendapatkan & mempertahankan pelanggan.

  • Kurangi waktu tunggu pelanggan - 21% konsumen lihat chatbots sebagai cara termudah untuk menghubungi bisnis. Bot adalah cara yang lebih cerdas untuk memastikan bahwa pelanggan menerima tanggapan langsung yang mereka cari tanpa membuat mereka menunggu dalam antrean.
  • Ketersediaan 24 × 7 — Bot selalu tersedia untuk melibatkan pelanggan dengan jawaban langsung atas pertanyaan umum yang diajukan oleh mereka. Manfaat potensial utama menggunakan chatbots adalah layanan pelanggan 24 jam.
  • Keterlibatan pelanggan yang lebih baik — Bot percakapan dapat melibatkan pelanggan sepanjang waktu dengan memulai konservasi proaktif dan menawarkan rekomendasi yang dipersonalisasi yang meningkatkan pengalaman pelanggan.
  • Hemat biaya layanan pelanggan — Chatbots akan membantu bisnis menghemat lebih dari $ 8 miliar per tahun. Bot dapat dengan mudah diskalakan yang menghemat biaya dukungan pelanggan untuk menyewa lebih banyak sumber daya, biaya infrastruktur, dll.
  • Otomatiskan kualifikasi & penjualan prospek — Anda dapat mengotomatiskan saluran penjualan Anda dengan chatbots untuk melakukan prakualifikasi prospek dan mengarahkan mereka ke tim yang tepat untuk pembinaan lebih lanjut. Mampu melibatkan pelanggan secara instan meningkatkan jumlah prospek dan tingkat konversi.

1. Bagaimana AI Percakapan dapat Mengotomatiskan Layanan Pelanggan

2. Obrolan Otomatis vs Langsung: Seperti Apa Masa Depan Layanan Pelanggan?

3. Chatbots Sebagai Asisten Medis Dalam Pandemi COVID-19

4. Chatbot Vs. Asisten Virtual Cerdas — Apa bedanya & Mengapa Peduli?

Ada banyak platform di mana pengembang, ilmuwan data, dan insinyur pembelajaran mesin dapat membuat dan memelihara chatbot seperti Dialogflow dan AmazonLex. Tetapi tujuan saya dalam artikel ini untuk menunjukkan kepada Anda cara membuat chatbot dari awal untuk membantu Anda memahami konsep Jaringan Feed-Forward untuk Pemrosesan Bahasa Alami.

Mari kita mulai!

Anda dapat dengan mudah menemukan kode lengkap di my GitHub repo.

Berikut adalah rencana singkat yang ingin saya ikuti untuk membangun model.

  1. Teori + konsep NLP (Stemming, Tokenization, bag of words)
  2. Buat data pelatihan
  3. Model dan pelatihan PyTorch
  4. Simpan/muat model dan terapkan obrolan

Kami akan membangun chatbot untuk kebutuhan Pemasok Kopi dan Teh untuk menangani pertanyaan sederhana tentang jam operasi, opsi reservasi, dan sebagainya.

Kerangka kerja chatbot membutuhkan struktur di mana maksud percakapan didefinisikan. Salah satu cara bersih untuk melakukannya adalah dengan file JSON, seperti ini.

maksud chatbot

Setiap maksud percakapan berisi:

  • a label (nama unik)
  • pola (pola kalimat untuk pengklasifikasi teks jaringan saraf kami)
  • tanggapan (satu akan digunakan sebagai tanggapan)

Jadi pipa NLP kami terlihat seperti ini

  • Dipatenkan
  • Bawah + batang
  • Kecualikan karakter tanda baca
  • Kantong Kata

Kami membuat daftar dokumen (kalimat), setiap kalimat adalah daftar kata-kata bertangkai dan setiap dokumen dikaitkan dengan maksud (kelas). Kode lengkap ada di file ini.

Kemudian kita perlu mengatur data pelatihan dan hyperparameter.

Setelah semua langkah pra-pemrosesan yang diperlukan, kami membuat model.py file untuk mendefinisikan FeedForward Neural Network.

Jaringan saraf umpan maju adalah jaringan saraf tiruan dimana hubungan antar unit tidak membentuk a siklus. Jaringan saraf feedforward adalah jenis pertama dari jaringan saraf tiruan yang ditemukan dan lebih sederhana daripada rekan mereka, jaringan saraf berulang. Mereka disebut umpan maju karena informasi hanya bergerak maju dalam jaringan (tidak ada loop), pertama melalui node input, kemudian melalui simpul tersembunyi (jika ada), dan akhirnya melalui node keluaran.

Hati-hati! Pada akhirnya kita tidak membutuhkan fungsi aktivasi karena nantinya kita akan menggunakan cross-entropy loss dan secara otomatis menerapkan fungsi aktivasi untuk kita.

Mengapa kami menggunakan ReLU?

Mereka sederhana, cepat untuk dihitung, dan tidak mengalami penurunan gradien, seperti fungsi sigmoid (logistik, tanh, erf, dan sejenisnya). Kesederhanaan implementasi membuatnya cocok untuk digunakan pada GPU, yang sangat umum saat ini karena dioptimalkan untuk operasi matriks (yang juga diperlukan untuk grafik 3D).

Setelah mendefinisikan CrossEntropy Loss dan Adam, kami menerapkan langkah mundur dan pengoptimal.

Apa maksud semua garis ini?

Kami menetapkan zero_grad() ke pengoptimal karena di PyTorch, untuk setiap mini-batch selama fase pelatihan, kami perlu secara eksplisit mengatur gradien ke nol sebelum mulai melakukan backpropragation (yaitu, pembaruan Bobot dan bias) karena PyTorch mengakumulasi gradien pada umpan mundur berikutnya.

Memanggil .backward() beberapa kali mengakumulasi gradien (dengan tambahan) untuk setiap parameter. Inilah sebabnya mengapa Anda harus memanggil optimizer.zero_grad() setelah setiap panggilan .step(). Perhatikan bahwa setelah panggilan .backward pertama, panggilan kedua hanya dimungkinkan setelah Anda melakukan forward pass lainnya.

optimizer.step melakukan pembaruan parameter berdasarkan gradien saat ini (disimpan dalam atribut .grad dari parameter) dan aturan pembaruan.

Akhirnya, setelah menjalankan skrip train.py, kami mendapatkan hasil yang luar biasa!

Dan di bagian terakhir kita perlu menyimpan model kita. Berikut cara yang saya lakukan dengan mudah.

Saya memutuskan untuk melangkah lebih jauh dan membuat visualisasi ChatBot yang menakjubkan ini.

Semua skrip HTML, CSS, dan JavaScript saya akan Anda temukan di repo GitHub saya.

Menikmati!

Sekarang, seperti yang Anda ketahui tentang apa itu chatbot dan betapa pentingnya teknologi bot untuk segala jenis bisnis. Anda pasti akan setuju bahwa bot telah secara drastis mengubah cara bisnis berinteraksi dengan pelanggan mereka.

Teknologi Chatbot akan menjadi bagian penting dari strategi keterlibatan pelanggan ke depan. Dalam waktu dekat bot akan maju untuk meningkatkan kemampuan manusia dan agen manusia menjadi lebih inovatif, dalam menangani kegiatan strategis.

Source: https://chatbotslife.com/nlp-based-chatbot-in-pytorch-bonus-flask-and-javascript-deployment-474c4e59ceff?source=rss—-a49517e4c30b—4

Stempel Waktu:

Lebih dari Kehidupan Chatbots