Yapay zeka bana her zaman ilgi çekici gelmişti ve bende kendi Chatbot' umu yapmanın zamanının geldiğini düşündüm.
Şuan için bir arayüzü yok ama ona bir yüz siması kazandırmak için çalışmalarım devam edecek.
Python dilinde yaptığım bu chatbot; keras, nltk, numpy, pandas, stremmer ve json kütüphanlerini kullanmaktadır.
Keras : Python dilinde yazılmış açık kaynaklı bir sinir ağı kütüphanesidir.
Nltk : Doğal Dil Araç Seti veya daha yaygın olarak NLTK, Python programlama dilinde yazılmış İngilizce için sembolik ve istatistiksel
doğal dil işleme için bir kütüphaneler ve programlar paketidir.
Numpy : Python dilinde çok büyük boyutlu matrisler ve diziler için kullanılan bir kütüphanedir.
Pandas : Veri analitiği alanında, özellikle veri işleme ve analizi için sıklıkla kullanılan bir Python paketidir.
Stremmer : Snowball, Bilgi Erişimi'nde kullanılmak üzere kök belirleme algoritmaları oluşturmak için küçük bir dizi işleme dilidir
ve bunu kullanarak uygulanan bir kök belirleme algoritmaları koleksiyonudur.
Json : JSON' da oluşturulan veri setini Python' a eklemek için kullanırız.
Proje dosyalarını açıklamam gerekirse go.py dosyası bizim ana main dosyamızdır ve Yapay sinir ağı modeli, kelimeleri dizilere yerleştirme vs. aslında tüm işlemleri burda yapılır.
data.json dosyamız bizim verisetimizi barındırır. Veri setimizin temel yapısını aşağıda görebilirsiniz.
Keras ile oluşturduğumuz sinir ağında activasyon fonksiyonu ve geri besleme işlemleri gerçekleştirilir.
Kelimeleri ve json taglerini veri setimizden çekip bunları bunları dizilere atayarak kodumuzda sinir ağında öğretirken kullanacağız.
Ancak uygulamamız veri setimize eklediğimiz kadar veri öğrenecek ve öğrenebildiği kadar veriyle cevap vereceğinden şuanlık kısa bir prototiple yetindim :)
Uygulamamızdaki veri setine eklediğimiz her veriye göre main kodunu (go.py) kodundaki sinir ağı modeli oluşturduğumuz parçasında
veri setine göre güncelleme yapmamız gerekmektedir.
Yukarıdaki kodda model.add(Dense(6,activation="softmax")) bölümündeki 6 rakamı json veri setindeki tag' lerin sayısını belirtir.
Tag' lerin 6 olması demek aslında yapay zekamızın 6 konu hakkında kısa bir bilgi sahibi olduğu anlamına gelir.
model.add(Dense(36,input_shape=(len(training[0]),),activation="relu")) /// model.add(Dense(36,activation="relu")) satırlarındaki 36 sayıları da bir önceki bilgide gördüğünüz gibi
6 rakamının karesidir. Yani verisetimize yeni bir veri eklediğimizde Ana kodumuzu da ona göre güncellememiz gerekir.
Uygulamanın çalışır hali yukarıdaki gibidir. Şuanlık sadece yazışarak anlaşabiliyoruz :)
Şimdilik bu kadar. Arayüz yaptığımda, daha kompleks ve daha güzel bir çıktıyla kadar görüşmek üzere :)
Görüşleriniz benim için önemli!