Chatbot (Sohbet Robotu) Nedir ?

Furkan Alaybeg
Machine Learning Turkiye
5 min readMar 7, 2021

Chatbot (Sohbet Robotu), kullanıcıların metin veya ses aracılığıyla karşılıklı sohbet gerçekleştirdiği yapay zeka tabanlı yazılımlar olarak tanımlanabilir. Bu yazıda, chatbot’un ne olduğu, nerelerde kullanıldığı, chatbot türleri, nasıl çalıştığı ve bir chatbot tasarlarken nelere dikkat edilmesi gerektiğini anlatmaya çalışacağım.

Chatbot konusuna geçmeden önce chatbot teknolojisinin temeli NLP’ye dayandığından bunun temel tanımı üzerinde durmanın faydalı olacağını düşünüyorum.

Doğal dil işleme (Natural Language Processing — NLP), insanların konuştuğu dili bilgisayarların anlamasına yarayan bir teknolojidir. Makinelere nasıl iletişim kurduğumuzu öğretme süreci olarakta tanımlanabilir. NLP’de ilk olarak yapısal olmayan veriler bilgisayarların anlayabileceği formata dönüştürülür. Syntax analizi ve Semantic analiz NLP sürecinin ana yöntemleridir.

Syntax: Doğal dilin dilbilgisi kurallarıyla nasıl sıralandığını değerlendirmek için sözdizimi analizi kullanılır. Lemmatization, Morphological Segmentation, Word Segmentation, Part-of-Speech Tagging, Parsing, Sentence ve Stemming başlıca sözdizimi teknikleridir.

Semantic: Semantik analizi doğal dil işlemenin tam olarak çözmemiz gereken en zor kısmını oluşturur. Bir metin tarafından iletilen anlamı ifade eder. Kelime gruplarının anlamı, yorumlanması ve nasıl yapılandığını anlamak icin bilgisayar algoritmalarının uygulanmasını kapsar. Named Entity Recognition (NER), Word Disambiguation, Natural Language Generation gibi yöntemler semantik analiz yöntemleridir.

CHATBOT NEDİR ?

Chatbotlar basit anlamıyla, kullanıcıların metin veya ses aracılığıyla karşılıklı sohbet gerçekleştirdiği yapay zeka tabanlı yazılımlardır. Karşı tarafta bir kişiden ziyade yapay zeka tabanlı yazılımların cevap vermesidir. Böylece kullanıcıya karşı tarafta bir insan olduğunun hissini oluşturmaktadır.

İlk dönemlerde chatbot’lar kelime eşleştirme ile sorulan sorulara karşılık cevaplar verebiliyordu. Ancak daha sonraları gelişen NLP gibi yapay zeka ve makine öğrenmesi ile sorulan sorudan niyet (intent) anlamı çıkarıp daha insansı ve gerçeğe yakın bir iletişim kurma imkanı sağlamaktadır.

Chatbot’lar tasarlanırken belli bir amaç için tasarlanmaktadır. Sıkça Sorulan Sorulara cevap veren, sağlık bilgileri sunan, sipariş verme imkanı sağlayan... vb senaryolar örnek olarak verilebilir. Chatbot’un bir konuda uzmanlaşmasını sağlamak, üzerinde durulan konuya dair bilgi birikimini artırmak, farklı söyleşiler, eş anlamlı ya da mecazları chatbot’a öğretmek sohbet tasarımcısının sorumluluğundadır. Chatbot çalışma mantığında bilmemiz gereken temel üç kavram bulunmaktadır.

Utterance (İfade): Temel olarak bir kullanıcının bot’a söyleyebileceği veya sorabileceği sorular, girdilerdir. “Rezervasyon yapmak istiyorum”, “Bana X ürünü hakkında bilgi ver” gibi girdiler örnek olarak verilebilir.

Intent (Niyet): Kullanıcının girdilerinin ne olduğu veya ne gibi hizmet almayı hedeflediğinin belirlenmesidir. “Ürün satın almak istiyorum” gibi ürün satın alma eyleminin anlamlandırılması ve niyete göre kullanıcıyı ilgili aksiyona yönlendirilmesi gerçekleştirilebilir.

Entity (Varlık): Kullanıcının niyetini daha spesifik bir şekilde anlamayı yapan anahtar kelimelerdir. İnsan isimleri, ürünler, şehirler, marka isimleri... vb örnek olarak verilebilir. “TV satın almak istiyorum” cümlesinde satın alma işleminin TV kategorisinde olduğu anlamlandırılabilir.

NEDEN CHATBOT ?

  1. Kesintisiz Destek: 7/24 kesintisiz destek hizmeti
  2. Hızlı İletişim: Beklemeye gerek kalmadan hızlı bir şekilde işlerimizi halledebiliriz. Böylece birden fazla talebi aynı anda karşılayabilir.
  3. Operasyonel Maliyetler: Randevu alma gibi operasyon ücreti ödenmesi gereken durumlarda maliyetleri azaltacaktır.
  4. Erişim Kolaylığı: Olaylara erişim kolaylığı sağlamaktadır. Web sitesinde gezinmek yerine chatbot ile istediğimiz sayfaya gidebiliriz.
  5. Zaman Tasarrufu: Anında iletişim ile istediğimiz herşeye hızlıca ulaşabilmemiz bize zaman tasarrufu kazandırmaktadır.
  6. Kişiselleştirme: Chatbotlar ile kişilere özel hizmet veya ürün sunmamız karşı tarafın bir arkadaşa sahip hissi oluşturacaktır.

CHATBOT NERELERDE KULLANILIR

• Web sitelerinde 7/24 Canlı Destek
• Sorulara detaylı cevap bulmak
• Şikayet, öneri gibi geri bildirimleri toplamak için
• Ziyaretçilerin aradıklarını kolay bir şekilde bulmalarına yardımcı olmada
• Ürün veya hizmet tavsiyesi almak (ürün tavsiyesi)
• Sipariş ve ödeme işlemlerini gerçekleştirmek
• Randevu veya rezervasyon gerçekleştirmek

CHATBOT TÜRLERİ

  1. Kelime Bazlı Chatbot
    Kullanıcının veritabanında tanımlanmış bazı kelimeleri girmesi halinde doğrudan o kelime için önceden hazır olan cevabı sunar. Bu tür chatbot’larda NLP teknolojisinden söz edilemez.
  2. Kural Bazlı Chatbot
    Burada belirli bir karar ağaçı oluşturularak iletişim sağlanır. İnsan tarafından girilen bilgiler ile cevaplar önceden belirlenmiştir. Programlamada if-else yapısına benzetilebilir.
  3. Doğal Dil İşleme (NLP) ve AI tabanlı Chatbot
    Mevcut soru veri seti ve doğru konfigürasyonlar ile makineye öğretme işlemi gerçekleştirilir. Böylece öğretilmeye çalışılan konudan kullanıcı niyetinin anlamlandırılması beklenir.

CHATBOT NASIL ÇALIŞIR

Chatbot çalışma mantığının temelini Doğal Dil İşlemeye (NLP) bağlı algoritmalar oluşturmaktadır. Kelimelerin işlenerek doğal dilde karşılık bulması mantığına dayanır. Çalışmasında önemli olan iki aşama vardır.

- Kullanıcının girmiş olduğu isteği anlamak
- İsteğe uygun bir cevap vermek

Chatbot sistemini yapılandırmak, eğitmek ve gereken optimizasyonu yapmak için insan desteğinin rolü çok önemlidir. Yukarıdaki resmi incelediğimizde;

  1. Kullanıcı tarafından metin veya ses tabanlı bir istek (utterance) girdisi verilir.
  2. Daha sonra chatbot’un NLP mekanizması ile niyet (intent) ve varlık (entity) anlamlandırılması yapılır.
  3. Son aşamada anlamlandırılan isteğe uygun bir cevap (metin, ses, video… gibi çıktı) verilir.

CHATBOT TASARLARKEN NELERE DİKKAT ETMELİYİZ ?

Chatbot tasarlarken önemli olan kullanıcı ile nasıl diyalog kurduğumuz ve etkilediğimizdir. Çünkü kullanıcı arkadaşıyla konuşur gibi firmayla konuşmaktadır. Bu nedenle firmalar tarafından müşterinin ne istediğini anlayıp, talebini karşılayacak şekilde iletişime geçebilmek en önemlisidir. Müşteriler chatbot ile hangi konuları konuşabilir, selamlama ile nasıl başlayabilirsiniz gibi müşteri deneyimini belirlememiz gerekiyor.

1. Chatbot’umuz için spesifik bir kullanım senaryosu belirlememiz gerekir
Burada hangi spesifik problemi çözmek istediğimizle ilgili bir tanım yapmamız ve chatbot’a ne yaptırmak istediğimizi belirlemek önemli bir adımdır. Bu iş verimliliği açısından önem arz etmektedir.

2. Niyetlerimiz (Intents) eşsiz (distinct) olmalı
Chatbot’umuz insanların taleplerini anlayamadığı durumlarda, sinir bozucu kullanıcı deneyimi oluşturur. Bu nedenle belirlenen amaca hizmet eden çok spesifik niyetler (intent) oluşturmamız gerekmektedir. Kullanıcının sorduğu soruyu tanımlayarak niyetini tam olarak belirlemelidir.

3. Her niyet için bir çok soru girdisi (utterance) içermelidir
AI tabanlı chatbotumuzun kullanılabilirliği girdi olarak verilecek soru örneklerimizin gerçek konuşma dilini ne kadar iyi temsil ettiğine bağlıdır. Geliştirme ve test etme süresi boyunca her niyeti tetikleyecek bir çok farklı ifade kullanılması gerekir. Bu nedenle olası tüm deyimleri kapsayacak şekilde özelleştirilmiş değerlerin ve örnek soru girdilerinin devamlı güncellenmesi gerekiyor.

Örnek verecek olursak, #satın_almak niyetini kapsayacak sekilde, “Ürün satın almak istiyorum” ya da “Şimdi satın al” gibi soru girdileri (utterance) içermelidir.

4. Sadece metin tabanlı mesajlaşmaya bağlı kalmayın
İlgi çekici olmak adına medya içerikleri, kartlar, webview, butonlar ve diğer interaktif bileşenleri kullanmamız kullanıcılar tarafından daha fazla ilgi çekmektedir.

5. Eğitim sürecini durdurmayınız
Chatbotu yayına aldıktan sonra, nerelerde daha fazla eğitime ihtiyaç duyduğunu tespit edip kullanıcılarımızın chatbot ile nasıl iletişime geçtiğini bulmamız gerekmektedir. Burada ne kadar fazla niyete (intent) sahip olursak o kadar daha fazla fırsatımız olacaktır.

6. Eğitim sürecini yönetebilecek çeşitlilikte bir ekip oluşturun
Hedefimiz botumuzu gelebilecek tüm potansiyel girdilere/sorulara karşı eğitmektir. Bu nedenle botumuzu farklı şekilde sorular ile besleyecek ve yönetebilecek, farklı uzmanlık alanlarındaki kişilerden bir takım kurulmalıdır.

KAYNAKÇA

https://medium.com/@akanesen/chatbot-nedir-ve-%C3%A7e%C5%9Fitleri-nelerdir-1b1ca0321e65

https://www.hubtype.com/blog/how-to-train-a-chatbot-2

https://www.kerokod.com/sohbet-robotu-chatbot-nedir/

https://blog.euromsg.com/yeni-baslayanlar-icin-chatbot-nedir-nasil-calisir/

https://www.cxtoday.com/contact-centre/how-do-bots-and-chatbots-work/

Umarım faydalı bir yazı olmuştur.
Gelecek yazılarda görüşme dileğiyle…

--

--

Furkan Alaybeg
Machine Learning Turkiye

Big Data Engineer | SQL | PySpark | Hadoop | Apache Airflow | Apache Flink