Bu kişisel C++ projem var ve şu anda takılıyorum. Pek çok insanın bu konuyla ilgili sorular sorduğu ve tekrarlanan bir soru ise şimdi özür dilemek istediği anlaşılıyor.C++ sohbet sıralaması tabanlı cevaplama?
Her neyse, bu proje kullanıcı girdisini temel alarak yanıtlayacak bir sohbet botudur. Şu anda olduğu gibi, tüm sorguyu alır ve if
ifadelerinin uzun, verimsiz satırlarını kullanarak bir eşleşme arar. Bir eşleşme bulursa, belirli bir cevap ile cevap verecektir.
Buraya gelmemin sebebi, aynı sorunun tüm varyasyonlarını bile yakalamayan çok zaman alıcı ve verimsiz if
ifadeleri yazmaktan bıktım. Vikipedi'den veri alan ya da böyle bir şey alan kod veya çözümler aramıyorum. İstediğim şey, sohbet botunun sadece bazı basit soruları yanıtlamasıdır.
Zamanlarımda if ifadeleriyle uğraşırken, bir fikir buldum. Neden arama motoru gibi web sayfalarını sıralarken anahtar kelimeleri kullanmıyorum?
Sorguda bir anahtar kelimenin (veya birkaç farklı seçeneğin) kaç kez sayılacağını yazmak için kod yazdım. Sorun, en iyi cevabı bulmak için onları sıralamaktan nasıl geçilir? Cevapların ve anahtar kelimelerin özel bir şekilde saklanması gerekeceğini varsayardım.
benim ana sorunun cevaplarından listem şu ana kadar şunlardır:
bir sorgu alınır1., bu anahtarında anahtar kelime (ler) olan bir ini dosyası yoluyla rütbe ve bunun değeri olarak cevap verin. Birden fazla cevap varsa, başka bir anahtar kelime seçin ve bunun yanı sıra orijinali de (kapsamı azaltarak) arayın. Bu yeterli zamanı yapmak doğru cevabı vermelidir.
Artıları: Yapmam gerekeni yerine getiriyor ve C++'da kavrayabildiğim bir şey.
Eksileri: neredeyse yine eğer ifadeleri içine dalma gibi, uzun ve verimsiz görünüyor ...
2. SQL veritabanını kullanarak, yürürlükteki cevap bulmak için bunu söylemek. Bunun nasıl yapılacağından emin değilim.
Artıları: Veritabanı bilgisayarı arama işlemek ve oldukça ayrıntılı olabilir, hafif olurdu.
Cons: C++ ile oldukça yüksek suları treading ettiğim için benim için oldukça acıya neden olabilir. Bununla birlikte, sanırım bunun ifadeler gibi gerçekleşeceğini düşünmeye başladım.
3. Birisinin burada önerebileceği en iyi cevap AIML'dir ( discussed here).Artılar: Akıllı sohbet botları geliştirmek için kullanılır ve oldukça güçlüdür.
Eksiler: Basit projem için çok "ağır" görünüyor ve AIML alan bir bot için kolay anlaşılır bir kod bulmayı sağlayan bir aramayı bozamam.
Umarım birileri gerçekten C++ hayranı olmadığım için aldığım akıllıca bir rota önerebilir ve bu projeyle zaten derin bir su akıtıyormuş gibi hissediyorum. Ancak bu yaz için dilimi ısırmak, konfor bölgemden çıkmak ve bir zamanlar C++ 'da yararlı bir şeyler yapmak gibi hissettim. Bunu PHP'de hızlı bir şekilde yapabilirdim, ancak mesajları göndermek için C++ kullanmalıyım.
Eğer php ile yapmış olsaydınız, C++ 'da bunu yapmanın sizi durduran şey nedir? Ayrıca, akıllı görünmesini istiyorsanız, muhtemelen anahtar kelime sıralamasından daha çok içeriğe odaklanmalısınız. – gcochard
En azından bir şekilde "akıllı" yapay zeka yapmak söz konusu olduğunda, çok fazla iş olacak. Yasanın ilk aşaması kabul edilir. –
Bağlam basit bir şey olurdu, şimdiden düşündüm. Doğru ya da en iyi cevabı nasıl bulabiliriz. Alex'in ortaya çıkardığı gibi, herhangi bir yapay zekanın yapılmasının kolay olmayacağından korkuyorum. C++ 'da en iyi ben değilim, ama aynı zamanda emeklemiyorum. Ben C++ için alışkın değilim ve hala bazı kavramlar etrafında kafamı sarar. –