Soru - Sohbet Robotlarının Çalışma Prensibi


import java.util.Random;
import java.util.Scanner;

public class sohbetrobotu {
	static String[] selamlama = {"Merhaba","Selam","Naber","Nasılsın?"};
	static Scanner scan = new Scanner(System.in);
	static String a ;
	static Random r = new Random();
	
	public static String robot() {
		String x = selamlama[r.nextInt(selamlama.length)];
		
		if (a == "Merhaba" || a == "Selam" || a == "Naber" || a == "Nasılsın?") {
			return x;
		}
		return x;
	}
	
	
	public static void main(String[]args) {
		
		while(true) {
			System.out.print("> ");
			a = scan.nextLine();
			System.out.println(robot());
			
			
			
			
			
			
			
		}
	}
}

Basitçe sohbet robotlarının çalışma prensibi böyle midir ?

“Sohbet Robotu” derken ne demek istediğinizi anlamasam da google asistan, siri, alexa gibi teknolojileri kastettiğinizi tahmin ediyorum. Bu sistemler böyle hard-coded şekilde kodlanmamıştır. Arkasında farklı yapay zeka algoritmaları var. Yani siz siriye “Bugün hava nasıl ?” diye sorduğunuzda arkaplanda

if (input.equals("Bugün hava nasıl?")) {...}

gibi bir if bloğu çalışmıyor.

3 Beğeni

sohbet robotları, siri, google asistan, hatta yüz tanıma sistemleri, cisim tanıma programları falan bunların hepsinin çalışma şekli benzerdir. bu tarz yazılımlar yapay zeka yazılımları kapsamındadır. yapay zekanın farklı dallarını kullanır. örneğin chat robotları natural language processing (NLP), google asistan ve siri: ses tanıma sistemiyle sesi yazıya çevirir ve NLP ile yazıdan komut çıkartır, yüz tanıma ve cisim tanıma sistemleri ise farklı yöntemler olmakla beraber en profesyonel olanları Yapay sinir ağları (Artificial Neural Network ANN) kullanır.

NLP ve ANN kendi içlerinde de dallara ayrılır fakat NLP, ANN’i kullanması gerektiği yerler olabilir. sinir ağı programlamayı python ile öğrenmek ve yapmak kolaydır. NLP ile ilgili de projeler var. bu ikisini birleştirirsen işte o zaman gerçek bir sohbet botu yapmış olursun. ANN ile geliştirilmiş bir yazılım için aşağıdaki ifadeleri yazan bir müşteri için yapacağı işlemler aynıdır yani bir fark yoktur:
kredi iadesi yapmak istiyorum
lütfen kredi iademi yapar mısınız
kredi iademi ne zaman yapacan
kredi ıademı yap
krediiademiyap
krediiademi yaparmisin
KREDI IADEMIYAP

çünkü yazılım eğitilmiştir. eğitim demek temel bir data setini verip her girdi için belirlenen bir çıktıyı vermesini sağlamak ve sonra eğitim setinde olmayan girdiler girildiğinde beklenen çıktıları sağlamaktır. klasik yazılımlarda herşey belirlidir, yazılımlar kodlanan kodu çalıştırır, girdi bellidir çıktı bellidir. fakat gerçek hayatta her zaman girdi belli olmayabilir. bu durumları ele alabilmek için yapay zeka ve yapay zekanın bence en iyi dalı olan ANN ortaya çıkmıştır.

benzer sistem bazı bankalarda da kullanılmaktadır. örneğin bankayı aradığınızda “lütfen yapmak istediğiniz işlemi birkaç cümleyle söyler misiniz” diyen bir ses kaydı çıkıyor. sonra siz oraya sesli olarak
arkadaşıma havale yapmak istiyorum
arkadaşıma para göndermek istiyorum
para transferi yapacağım
para transferi yapmak istiyorum
50 tl göndereceğim
para göndereceğim
havale yapmak istiyorum

bunlardan birini söylediğinizde sizi havale yapan birime yönlendirir. girdilerin sınırı yok ama belli başlı ifadeleri yazılıma “ÖĞRETİRSENİZ” işte o zaman girdilerin çoğu için doğru sonuç verecektir.

toparlarsak sohbet botlarının çoğu bir yapay zeka yazılımıdır.

2 Beğeni

emeğinize sağlık :slight_smile: