Adım Adım Python'da Chatbot Nasıl Yapılır [Python Chatterbox Guide]

Yayınlanan: 2020-07-27

İçindekiler

Python'da Chatbot Nasıl Yapılır?

Son birkaç yılda Python'daki sohbet robotları teknoloji ve iş sektörlerinde çılgınca popüler hale geldi. Bu akıllı botlar, doğal insan dillerini taklit etme ve insanlarla sohbet etme konusunda o kadar usta ki, çeşitli endüstriyel sektörlerdeki şirketler bunları benimsiyor. E-ticaret firmalarından sağlık kurumlarına kadar herkes, ticari avantajlar sağlamak için bu şık araçtan yararlanıyor gibi görünüyor . Bu yazımızda Python kullanarak chatbot ve python'da chatbot nasıl yapılır onu öğreneceğiz.

Kariyerinizi hızlandırmak için Makine Öğrenimi'ni dünyanın en iyi Üniversiteleri - Yüksek Lisanslar, Yönetici Yüksek Lisans Programları ve Makine Öğrenimi ve Yapay Zeka alanında Gelişmiş Sertifika Programından çevrimiçi öğrenin .

Chatbot nedir?

Chatbot, insanlarla doğal dillerinde etkileşim kurmak için tasarlanmış yapay zeka tabanlı bir yazılımdır. Bu sohbet robotları genellikle işitsel veya metinsel yöntemlerle sohbet eder ve insanlarla insan benzeri bir şekilde iletişim kurmak için insan dillerini zahmetsizce taklit edebilirler. Chatbot, tartışmasız doğal dil işlemenin en iyi uygulamalarından biridir.

Chatbotlar, Kural Tabanlı ve Kendi Kendine Öğrenen olmak üzere iki ana türe ayrılabilir.

Kural tabanlı yaklaşım, bir sohbet robotunu, başlangıçta eğitildiği önceden belirlenmiş bir dizi kurala dayalı olarak soruları yanıtlaması için eğitir. Bu set kurallar ya çok basit ya da çok karmaşık olabilir. Kural tabanlı sohbet robotları basit sorguları oldukça iyi işleyebilirken, genellikle daha karmaşık sorguları/istekleri işlemede başarısız olurlar.

python'da sohbet robotları

Adından da anlaşılacağı gibi, kendi kendine öğrenen botlar, kendi başlarına öğrenebilen sohbet robotlarıdır. Bunlar, kendilerini örneklerden ve davranışlardan eğitmek için Yapay Zeka ve Makine Öğrenimi gibi ileri teknolojilerden yararlanır. Doğal olarak, bu sohbet robotları, kural tabanlı botlardan çok daha akıllıdır. Kendi kendine öğrenen botlar ayrıca iki kategoriye ayrılabilir - Alma Tabanlı veya Üretken.

1. Erişim tabanlı Chatbot'lar

Alma tabanlı bir sohbet robotu, önceden tanımlanmış girdi kalıpları üzerinde çalışan ve yanıtları ayarlayan bir sohbet robotudur. Soru/kalıp girildikten sonra, sohbet robotu uygun yanıtı vermek için buluşsal bir yaklaşım kullanır. Alım tabanlı model, müşteri deneyimini geliştirmek için botun akışı ve tonu gibi özelleştirilmiş özelliklerle hedef odaklı sohbet robotları tasarlamak için yaygın olarak kullanılır.

2. Üretken Sohbet Robotları

Alma tabanlı sohbet robotlarından farklı olarak, üretici sohbet robotları önceden tanımlanmış yanıtlara dayanmaz - seq2seq sinir ağlarından yararlanır. Bu, kaynak kodun bir dilden başka bir dile çevrildiği makine çevirisi kavramına dayanmaktadır. seq2seq yaklaşımında girdi, çıktıya dönüştürülür.

İlk sohbet robotu, Joseph Weizenbaum'un bir psikoterapistin dilini yalnızca 200 satırlık kodla taklit edebilen ELIZA'yı yarattığı 1966 yılına kadar uzanıyor. Ancak, teknolojinin hızlı gelişimi sayesinde, bugün python'da komut dosyasıyla yazılmış sohbet robotlarından sohbet robotlarına kadar uzun bir yol kat ettik.

Günümüz Nesilinde Chatbot

Bugün, insan komutlarını (metin ve ses) anlamak ve deneyimlerden öğrenmek için doğal dil işlemeyi (NLP) kullanan, yapay zeka destekli akıllı Chatbot'larımız var. Chatbotlar, aktif bir çevrimiçi varlığı olan (web sitesi ve sosyal ağ platformları) şirketler ve markalar için temel bir müşteri etkileşim aracı haline geldi.

python'da sohbet robotu

Python kullanan sohbet robotları, marka ve müşteri arasında anlık mesajlaşmayı kolaylaştırdıkları için şık bir araçtır. Apple'ın Siri'sini, Amazon'un Alexa'sını ve Microsoft'un Cortana'sını düşünün. Bunlar harika değil mi? Python'da nasıl sohbet robotu yapılacağını öğrenmek için zaten merakınız yok mu?

piton kullanan chatbot

Kaynak

Esasen, Python kullanan sohbet robotu, ona sağladığınız bilgileri alacak ve ardından karmaşık AI algoritmalarının yardımıyla analiz edecek ve size yazılı veya sözlü bir yanıt verecek şekilde programlanmıştır. Bu botlar davranış ve deneyimlerden öğrenebildikleri için çok çeşitli sorgu ve komutlara yanıt verebilirler.

python'da sohbet robotu

Kaynak

Python'daki sohbet robotu şu anda teknoloji sahnesine hakim olmaya başlamış olsa da, Gartner 2020 yılına kadar sohbet robotlarının müşteri-marka etkileşimlerinin yaklaşık %85'ini yöneteceğini tahmin ediyor .

Chatbotların sektördeki artan popülaritesi ve benimsenmesi ışığında, dünyanın en yaygın kullanılan programlama dillerinden biri olan Python'da chatbot yapmayı öğrenerek piyasa değerinizi artırabilirsiniz.

Bugün size ChatterBot Python kütüphanesini kullanarak Python'da basit bir chatbot yapmayı öğreteceğiz. Öyleyse başlayalım!

ChatterBot Kitaplığı

ChatterBot, kullanıcı girdilerine otomatik yanıtlar vermek için tasarlanmış bir Python kitaplığıdır. Birçok farklı türde yanıt oluşturmak için ML algoritmalarının bir kombinasyonunu kullanır . Bu özellik, geliştiricilerin insanlarla sohbet edebilen ve uygun ve alakalı yanıtlar verebilen python kullanarak sohbet robotları oluşturmasına olanak tanır. Sadece bu değil, ML algoritmaları botun performansını deneyimle geliştirmesine yardımcı olur.

ChatterBot'un bir başka mükemmel özelliği de dil bağımsızlığıdır. Kitaplık, botunuzu birden çok programlama dilinde eğitmeyi mümkün kılacak şekilde tasarlanmıştır.

ChatterBot nasıl çalışır?

Bir kullanıcı chatbot'a (ChatterBot'ta geliştirilmiştir) belirli bir girdi girdiğinde, bot gelecekte kullanmak üzere girdiyi yanıtla birlikte kaydeder. Bu veriler (toplanan deneyimlerin), sohbet robotunun, içine her yeni bir girdi beslendiğinde otomatik yanıtlar oluşturmasını sağlar.

Program, girdiyle eşleşen en yakın ifadeden en uygun yanıtı seçer ve daha sonra zaten bilinen ifadeler ve yanıtlar seçiminden bir yanıt verir. Zamanla, sohbet robotu daha fazla etkileşime girdikçe yanıtın doğruluğu artar.

Kaynak

Python'da Chatbot Nasıl Yapılır?

Adım adım bir yaklaşım izleyeceğiz ve bir Python sohbet robotu oluşturma sürecini anlatacağız.

Python'da bir sohbet robotu oluşturmak için, gerekli tüm paketleri içe aktarmanız ve sohbet robotu projenizde kullanmak istediğiniz değişkenleri başlatmanız gerekir. Ayrıca, metin verileriyle çalışırken, bir ML modeli tasarlamadan önce veri kümenizde veri ön işlemesi gerçekleştirmeniz gerektiğini unutmayın.

Belirteçleştirmenin metin verilerine yardımcı olduğu yer burasıdır - büyük metin veri kümesinin daha küçük, okunabilir parçalara (kelimeler gibi) bölünmesine yardımcı olur. Bu yapıldıktan sonra, bir kelimeyi lemma formuna dönüştüren lemmatizasyona da gidebilirsiniz. Ardından, botun yanıtlarını tahmin etmek için kullanılan python nesnelerini depolamak için bir turşu dosyası oluşturur.

Chatbot geliştirme sürecinin bir diğer hayati parçası da eğitim ve test veri kümelerini oluşturmaktır.

Python'da sohbet robotu geliştirmenin temellerini ele aldığımıza göre, şimdi gerçek sürece daha derine inelim!

1. Bağımlılıkları Hazırlayın

ChatterBot kitaplığı ile Python'da bir sohbet robotu oluşturmanın ilk adımı, kitaplığı sisteminize kurmaktır. Kurulum için yeni bir Python sanal ortamı oluşturup kullanmanız en iyisidir. Bunu yapmak için Python terminalinizde şu komutu yazmanız ve çalıştırmanız gerekir:

ChatterBot'un en son geliştirme sürümünü doğrudan GitHub'dan da yükleyebilirsiniz. Bunun için aşağıdaki komutu yazmanız ve çalıştırmanız gerekecek:

pip kurulumu git+git://github.com/gunthercox/ChatterBot.git@master

Komutu yükseltmek isterseniz, bunu da yapabilirsiniz:

Artık kurulumunuz hazır olduğuna göre, python kullanarak sohbet robotu oluşturmak için bir sonraki adıma geçebiliriz.

2. Sınıfları İçe Aktarma

Sınıfları içe aktarma, Python sohbet robotu oluşturma sürecindeki ikinci adımdır. Tek yapmanız gereken iki sınıfı içe aktarmaktır – chatterbot'tan ChatBot ve chatterbot.trainers'dan ListTrainer. Bunu yapmak için aşağıdaki komutu uygulayabilirsiniz:

3. Chatbot'u Oluşturun ve Eğitin

Bu, python'da chatbot oluşturmanın üçüncü adımıdır. Oluşturduğunuz sohbet robotu, “ChatBot” sınıfının bir örneği olacaktır. Yeni bir ChatterBot örneği oluşturduktan sonra, performansını artırmak için botu eğitebilirsiniz. Eğitim, botun belirli girdilere belirli yanıtlarla başlamak için yeterli bilgiye sahip olmasını sağlar. Şimdi aşağıdaki komutu uygulamalısınız:

python'da sohbet robotu

Burada argüman (parametre adına karşılık gelen) Python sohbet robotunuzun adını temsil eder. Eğitim sonrasında botun öğrenme özelliğini devre dışı bırakmak isterseniz “read_only=True” komutunu dahil edebilirsiniz. “logic_adapters” komutu, chatbot'u eğitmek için kullanılan adaptörlerin listesini belirtir.

“Chatterbot.logic.MathematicalEvaluation”, botun matematik problemlerini çözmesine yardımcı olurken, “chatterbot.logic.BestMatch”, halihazırda sağlanan yanıtlar listesinden en iyi eşleşmeyi seçmesine yardımcı olur.

Bir yanıt listesi sağlamanız gerektiğinden, bunu daha sonra Python sohbet robotunuzu eğitmek ve her sorgu için en iyi eşleşmeyi bulmak için kullanılabilecek dizelerin listelerini belirleyerek yapabilirsiniz. İşte öğrenmek için python kullanarak sohbet robotunuzu eğitebileceğiniz yanıtlara bir örnek:

python'da sohbet robotu

Ayrıca, bir "ListTrainer" örneği yazıp ona aşağıdaki gibi bir dizi listesi sağlayarak botu oluşturabilir ve eğitebilirsiniz:

Artık Python sohbet robotunuz iletişim kurmaya hazır.

4. Python Chatbot ile iletişim kurun

Python sohbet robotunuzla etkileşim kurmak için .get_response() işlevini kullanabilirsiniz. İletişim kurarken nasıl görünmesi gerektiği:

piton kullanan chatbot

Ancak, python kullanan sohbet robotunun tüm sorularınızı nasıl yanıtlayacağını bilemeyebileceğini anlamak önemlidir. Bilgisi ve eğitimi hala çok sınırlı olduğundan, daha fazla eğitmek için ona zaman ayırmalı ve daha fazla eğitim verisi sağlamalısınız.

5. Python Chatbot'unuzu bir Veri Derlemi ile eğitin

Python'da sohbet robotunun nasıl yapılacağına ilişkin bu son adımda, python sohbet robotunuzu daha da eğitmek için mevcut bir veri kümesini kullanabilirsiniz. Python sohbet robotunuzu, botun kendisi tarafından sağlanan bir veri bütünü ile nasıl eğiteceğinize dair bir örnek:

Kod parçacığı kaynağı

İşin iyi yanı, ChatterBot'un bu işlevi birçok farklı dilde sunmasıdır. Böylece, tercih ettiğiniz bir dilde bir derlemin alt kümesini de belirtebilirsiniz. Python'da bu şekilde chatbot oluşturuyoruz.

Çözüm

Burada gösterdiğimiz şey , Python'da chatbot yapmanın birçok yolundan sadece biri. Python sohbet robotu oluşturmak için başka bir becerikli Python kitaplığı olan NLTK'yı da kullanabilirsiniz. Ve burada öğrendikleriniz Python'da neredeyse hiç bilişsel beceriye sahip olmayan çok basit bir sohbet robotu olsa da, sohbet robotlarının anatomisini anlamanıza yardımcı olmak için yeterli olacaktır.

Python kullanan bir sohbet robotunun tasarımını tam olarak anladıktan sonra, onu daha da akıllı hale getirmek için farklı araçlar ve komutlar kullanarak deneme yapabilirsiniz.

Ayrıca, Makine öğrenimi hakkında daha fazla bilgi edinmek istiyorsanız, IIIT-B & upGrad'ın çalışan profesyoneller için tasarlanmış ve 450+ saat zorlu eğitim, 30'dan fazla vaka çalışması ve ödev, IIIT sunan Makine Öğreniminde Yönetici PG Programına göz atın. -B Mezunu statüsü, 5'ten fazla pratik uygulamalı bitirme projesi ve en iyi firmalarla iş yardımı.

Chatbot nedir?

Chatbot, insanlarla kendi dillerinde sohbet edebilen yapay zeka tabanlı bir yazılım parçasıdır. Bu sohbet robotları genellikle insanlarla sesli veya yazılı yollarla bağlantı kurar ve insanlarla insan benzeri bir şekilde konuşmak için insan dillerini kolayca taklit edebilir. Kural tabanlı yaklaşım, bir sohbet robotuna, ilk oluşturulduğunda öğretildiği önceden belirlenmiş bir dizi kurala dayalı olarak sorguları yanıtlamasını öğretir. Bu önceden belirlenmiş kurallar basit veya karmaşık olabilir. Kendi kendine öğrenen botlar, adından da anlaşılacağı gibi kendi kendilerine eğitim verebilen botlardır. Bunlar, örneklerden ve davranışlardan öğrenmek için Yapay Zeka ve Makine Öğrenimi gibi en son teknolojilerden yararlanır.

Bir sohbet robotu oluşturmak için hangi becerilere ihtiyacım var?

Chatbot geliştiricileri çok çeşitli becerilere sahip olmalıdır. Chatbot geliştirme üzerinde verimli bir şekilde çalışmak için platformları ve programlama dillerini tam olarak anlamaları gerekir. Chatbot geliştiricileri, Öğrenme Algoritmaları, Yapay Zeka ve Doğal Dil İşleme konularında bilgili olmalıdır. Java, PHP, Python, Ruby ve diğerleri gibi dillerde programlama deneyimine sahip çok dilli arka plan. Chatbot'un kalitesini artırmak için programcılar platformlar hakkında bilgi sahibi olmalıdır.

Kural tabanlı sohbet robotu nedir?

Yapay zeka kullanmak yerine, kural tabanlı bir bot, konuklara sorularında yardımcı olmak için ağaç benzeri bir akış kullanır. Bu, botun uygun çözüme ulaşmak için konuğu bir dizi takip sorusu boyunca yönlendireceğini gösterir. Yapıların ve yanıtların tümü önceden tanımlandığı için diyalog üzerinde tam kontrole sahipsiniz. Peki neden kuralları olan bir chatbot kullanmalısınız? Bir restoranda masa rezervasyonu yapmak veya çalışma saatleri hakkında bilgi almak gibi daha küçük sayılar ve basit sorular, kural tabanlı sohbet robotları için idealdir.