Desain ChatBot Berbasis AI dan Python
Desain ChatBot Berbasis AI dan Python
LAPORAN PROYEK
Diajukan oleh
Abhishek Verma(00414902018)
Archit Kr. Singh(01414902018)
Jatin Bagga(03814902018)
dari
ChatBot
INSTITUT MAHARAJA SURAJMAL
Dijamin bahwa laporan proyek ini ChatBot adalah karya yang sah dari ABHISHEK
VERMA, ARCHIT KR. SINGH, JATIN BAGGA yang melaksanakan pekerjaan proyek
TANDA TANGAN
Asisten Profesor
2|C h a t B o t
3|C h a t B o t
Abstract
Chatbot adalah program perangkat lunak komputer yang melakukan percakapan melalui suara atau teks.
metode. Perangkat lunak ini digunakan untuk melakukan tugas-tugas seperti merespons pengguna dengan cepat, memberi tahu
mereka, membantu untuk membeli produk dan memberikan layanan yang lebih baik kepada pelanggan. Chatbot adalah program
yang bekerja pada Platform Kecerdasan Buatan (AI) & Pembelajaran Mesin. Chatbot telah menjadi lebih
populer di kelompok bisnis saat ini karena dapat mengurangi biaya layanan pelanggan dan menangani beberapa
pengguna pada satu waktu. Namun, untuk menyelesaikan banyak tugas masih perlu membuat chatbot menjadi efisien
possible. In this project, we provide the design of a chatbot, which provides a genuine and accurate
jawaban untuk setiap pertanyaan menggunakan Bahasa Markup Kecerdasan Buatan (AIML) dan Semantik Tersembunyi
4|C h a t B o t
DAFTAR ISI
5|C h a t B o t
PENGANTAR
Chatbot adalah aplikasi perangkat lunak yang menggunakan kecerdasan buatan dan pemrosesan bahasa alami untuk
memahami apa yang diinginkan manusia, dan membimbing mereka menuju hasil yang diinginkan dengan sedikit usaha untuk mereka
pengguna akhir sebanyak mungkin. Seperti asisten virtual untuk titik sentuh pengalaman pelanggan Anda.
1. Gunakan data percakapan yang ada (jika tersedia) untuk memahami jenis pertanyaan yang diajukan orang-orang.
2. Analisis jawaban yang benar untuk pertanyaan tersebut melalui periode 'pelatihan'.
3. Gunakan pembelajaran mesin dan NLP untuk memahami konteks, dan terus-menerus menjadi lebih baik dalam menjawabnya.
Adopsi chatbot dipercepat pada tahun 2016 ketika Facebook membuka platform pengembangnya.
dan menunjukkan kepada dunia apa yang mungkin dilakukan dengan chatbot melalui aplikasi Messenger mereka. Google juga mendapatkan
dalam permainan segera setelah dengan Asisten Google. Sejak itu, telah ada jumlah yang sangat besar dari
aplikasi chatbot yang dibangun di situs web, di aplikasi, di media sosial, untuk dukungan pelanggan, dan tak terhitung banyaknya
contoh lain.
1. Chatbot Berbasis Aturan – Chatbot ini mengikuti aturan yang telah dirancang sebelumnya, sering kali dibuat menggunakan
antarmuka pengguna grafis di mana pembuat bot akan merancang jalur menggunakan pohon keputusan.
2. Chatbot AI –Chatbot AIakan belajar secara otomatis setelah periode pelatihan awal oleh bot
pengembang.
6|C h a t B o t
METODOLOGI
7|C h a t B o t
PERPUSTAKAAN PYTHON YANG DIGUNAKAN
Dalam proyek ini, kami telah menggunakan Bahasa Pemrograman Python (Versi 3.7) bersama dengan HTML, CSS,
Pembelajaran Mesin dan Kecerdasan Buatan. Kami juga telah menggunakan sejumlah modul python untuk
mengimplementasikan berbagai fitur dan fungsionalitas. Modul dan pustaka ini mencakup yang berikut:
dengan serangkaian pustaka pemrosesan teks untuk klasifikasi, tokenisasi, stemming, penandaan, parsing,
dan penalaran semantik, pembungkus untuk perpustakaan NLP yang kuat untuk industri, dan diskusi aktif
forum.
TensorFlow:
TensorFlow 2 adalah platform pembelajaran mesin sumber terbuka dari ujung ke ujung. Anda dapat menganggapnya sebagai sebuah
lapisan infrastruktur untuk pemrograman yang dapat dibedakan. Ini menggabungkan empat kemampuan kunci:
Menjalankan operasi tensor tingkat rendah secara efisien di CPU, GPU, atau TPU.
8|C h a t B o t
Keras:
Keras adalah API jaringan saraf tingkat tinggi untuk Python: mudah diakses, sangat produktif
antarmuka untuk menyelesaikan masalah pembelajaran mesin, dengan fokus pada pembelajaran mendalam modern. Ini menyediakan
abstraksi esensial dan blok bangunan untuk mengembangkan dan mengirim solusi pembelajaran mesin
dengan kecepatan iterasi yang tinggi.
Numpy:
NumPy adalah sebuah pustaka untuk bahasa pemrograman Python, menambahkan dukungan untuk array besar, multi-
array berdimensi dan matriks, bersama dengan koleksi besar fungsi matematis tingkat tinggi
untuk mengoperasikan array ini.
Flask:
Flask adalah kerangka aplikasi web WSGI yang ringan. Ini dirancang untuk memudahkan memulai dengan cepat.
dan mudah, dengan kemampuan untuk meningkat menjadi aplikasi yang kompleks. Ini dimulai sebagai pembungkus sederhana di sekitar
Werkzeug dan Jinja telah menjadi salah satu kerangka aplikasi web Python yang paling populer.
9|C h a t B o t
DIAGRAM MODUL SISTEM
10|C h a t B o t
ChatBot
KODE
Latih_chatbot.py
impor nltk
dari [Link] import WordNetLemmatizer
lemmatizer = WordNetLemmatizer()
impor json
impor pickle
words=[]
classes = []
documents = []
ignore_words = ['?', '!']
data_file = open('[Link]').read()
intents = [Link](data_file)
[Link](intent['tag'])
kata = diurutkan(lista(set(kata)))
# urutkan kelas
kelas = disortir(list(set(kelas)))
dokumen = kombinasi antara pola dan niat
cetak (len(dokumen), "dokumen")
# classes = intents
print (len(classes), "kelas", classes)
# words = all words, vocabulary
print (len(kata), "kata lemmatisasi unik", kata)
# keluaran adalah '0' untuk setiap tag dan '1' untuk tag saat ini (untuk setiap pola)
output_row = list(output_empty)
output_row[[Link](doc[1])] = 1
[Link]([tas, output_row])
# acak fitur kita dan ubah menjadi [Link]
[Link](training)
training = [Link](training)
# create train and test lists. X - patterns, Y - intents
train_x = list(training[:,0])
train_y = list(training[:,1])
cetak("Data pelatihan dibuat")
Buat model - 3 lapisan. Lapisan pertama 128 neuron, lapisan kedua 64 neuron dan lapisan keluaran ketiga.
mengandung jumlah neuron
sama dengan jumlah maksud untuk memprediksi keluaran maksud dengan softmax
model = Sequential()
[Link](Dense(128, input_shape=(len(train_x[0]),), activation='relu'))
[Link](Dropout(0.5))
[Link](Dense(64, aktivasi='relu'))
[Link](Dropout(0.5))
[Link](Dense(len(train_y[0]), activation='softmax'))
Kompilasi model. Latihan gradien stokastik dengan gradien terakselerasi Nesterov memberikan hasil yang baik
untuk model ini
14|C h a t B o t
sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
[Link](loss='categorical_crossentropy', optimizer=sgd, metrics=['accuracy'])
model dibuat
[Link]
impor nltk
dari [Link] impor WordNetLemmatizer
lemmatizer = WordNetLemmatizer()
impor pickle
impor numpy sebagai np
def bersihkan_kalimat(kalimat):
# tokenisasi pola - membagi kata menjadi array
sentence_words = nltk.word_tokenize(teks)
# pangkas setiap kata - buat bentuk singkat untuk kata
15|C h a t B o t
sentence_words = [[Link]([Link]()) untuk word dalam sentence_words]
kembali kalimat_kata
kembalikan array tas kata: 0 atau 1 untuk setiap kata dalam tas yang ada dalam kalimat
16|C h a t B o t
def getResponse(ints, intents_json):
tag = ints[0]['niat']
list_of_intents = intents_json['intents']
untuk i dalam daftar_intensi:
jika(i['tag']== tag):
result = [Link](i['responses'])
istirahat
return result
def chatbot_response(msg):
ints = prediksi_kelas(msg, model)
res = dapatkanRespon(ints, intents)
mengembalikan res
def kirim():
msg = [Link]("1.0",'end-1c').strip()
[Link]("0.0", AKHIR)
[Link](state=NORMAL)
[Link](END, "Kamu: " + msg + '\n\n')
[Link](foreground="#442265", font=("Verdana", 12 ))
res = respons_chatbot(msg)
[Link](END, "Bot: " + res + '\n\n')
17|C h a t B o t
[Link](state=DINONAKTIFKAN)
[Link](AKHIR)
base = Tk()
[Link]("Halo")
[Link]("400x500")
[Link](lebar=FALSE, tinggi=FALSE)
[Link](state=NON-AKTIF)
[Link]()
[Link]
{"intents": [
{"tag": "greeting",
"patterns": ["Hi there", "How are you", "Is anyone there?","Hey","Hola", "Hello", "Good day"],
"responses": ["Hello, thanks for asking", "Good to see you again", "Hi there, how can I help?"],
"context": [""]
},
{"tag": "goodbye",
"patterns": ["Bye", "See you later", "Goodbye", "Nice chatting to you, bye", "Till next time"],
"responses": ["See you!", "Have a nice day", "Bye! Come back again soon."],
"context": [""]
},
{"tag": "thanks",
"patterns": ["Thanks", "Thank you", "That's helpful", "Awesome, thanks", "Thanks for helping me"],
"responses": ["Happy to help!", "Any time!", "My pleasure"],
"context": [""]
},
{"tag": "noanswer",
"patterns": [],
"responses": ["Sorry, can't understand you", "Please give me more info", "Not sure I understand"],
"context": [""]
},
{"tag": "options",
19|C h a t B o t
"patterns": ["How you could help me?", "What you can do?", "What help you provide?", "How you
can be helpful?", "What support is offered"],
"responses": ["I can guide you through Adverse drug reaction list, Blood pressure tracking, Hospitals
and Pharmacies", "Offering support for Adverse drug reaction, Blood pressure, Hospitals and
Apotek
"context": [""]
},
{"tag": "adverse_drug",
"patterns": ["How to check Adverse drug reaction?", "Open adverse drugs module", "Give me a list
["obat yang menyebabkan perilaku merugikan","Daftar semua obat yang cocok untuk pasien dengan reaksi merugikan"]
21|C h a t B o t
ChatBot- DEMO
22|C h a t B o t
TANGKAPAN LAYAR
23|C h a t B o t
24|C h a t B o t
KEUNTUNGAN
Ada banyak keuntungan dari chatbot; mulai dari resepsionis hingga tenaga penjual dan asisten online, mereka
dapat melakukan hampir segala sesuatu yang dapat membantu Anda memuaskan pelanggan sambil menghasilkan lebih banyak pendapatan.
Terlihat bahwa pengalaman pelanggan menjadi semakin baik ketika mereka memiliki agen pendukung bersama mereka.
Chatbot Anda dapat membantu klien dalam berbelanja sambil menyelesaikan pertanyaan mereka secara bersamaan.
25|C h a t B o t
BATASAN
Ada beberapa batasan chatbot yang telah menghentikan berbagai organisasi untuk menerapkannya
chatbot di aplikasi dan situs web mereka.
Keterbatasan lain dari chatbot adalah mereka tidak memiliki kemampuan pengambilan keputusan. Mereka tidak memiliki pengetahuan yang tepat.
Ya, chatbot menghemat banyak uang dalam jangka panjang, tetapi biaya instalasinya bisa sangat mahal.
perlu mempekerjakan profesional yang telah memprogram chatbot dengan benar untuk mencocokkan integritas Anda
bisnis.
Sebagian besar pelanggan tidak melanjutkan percakapan ketika mereka tahu bahwa mereka sedang ngobrol dengan chatbot.
Chatbot mudah dikenali karena mereka memiliki jawaban yang sama untuk berbagai pertanyaan.
Kenyataan pahit tentang chatbot adalah bahwa mereka tidak memiliki keterampilan penelitian. Bot ini hanya memiliki jawaban.
untuk kueri yang tersedia; mereka tidak dapat mencari topik baru di web.
berarti chatbot tidak dapat pernah menjalin koneksi dengan pelanggan, yang sangat penting untuk apa pun
pertumbuhan bisnis.
26|C h a t B o t
RUANG LINGKUP MASA DEPAN
Sebagai pekerjaan di masa depan, kita dapat membuat chatbot yang berbasis AIML dan LSA. Teknologi ini akan memungkinkan
seorang klien untuk berinteraksi dengan chatbot dengan cara yang lebih alami. Kita dapat meningkatkan diskusi dengan
termasuk dan mengubah pola serta templat untuk pertanyaan umum klien menggunakan AIML dan yang tepat
respons diberikan lebih sering daripada LSA.
27|C h a t B o t
KESIMPULAN
Dalam proyek ini, kami telah memperkenalkan chatbot yang dapat berinteraksi dengan pengguna. Chatbot ini dapat
menjawab pertanyaan dalam input teks pengguna. Untuk tujuan ini, AIML dengan program-o telah digunakan. Yang
chatbot hanya dapat menjawab pertanyaan yang ia memiliki jawaban dalam dataset AIML-nya. Jadi, untuk
meningkatkan pengetahuan chatbot, kita dapat menambahkan API Wikipedia, Peramalan Cuaca
Departemen, Olahraga, Berita, Pemerintah dan banyak lagi. Dalam kasus seperti itu, pengguna akan dapat berbicara
dan berinteraksi dengan chatbot di berbagai domain. Menggunakan API seperti Cuaca, Olahraga, Berita dan
Layanan Pemerintah, chatbot akan dapat menjawab pertanyaan di luar dataset-nya dan
yang saat ini terjadi di dunia nyata.
Langkah selanjutnya untuk membangun chatbot adalah membantu orang untuk memfasilitasi pekerjaan mereka dan berinteraksi.
dengan komputer yang menggunakan bahasa alami atau menggunakan seperangkat aturan mereka. Masa Depan Chatbot semacam itu, didukung oleh
teknologi pembelajaran mesin, akan dapat mengingat percakapan sebelumnya dan belajar darinya untuk
jawab yang baru. Tantangannya adalah berbicara dengan berbagai pengguna bot yang berbeda dan
beberapa pengguna.
28|C h a t B o t
REFERENCES
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
29|C h a t B o t