Tekrardan selamlar ben supp.
Fazla vaktim olmadığı için konuyu hızlı açtım kusura bakmayın ama yine hangi kodun ne işe yaradığı yazıyor
Python:
import json
from difflib import get_close_matches as find_close_matches
# Veritabanını yükleme fonksiyonu
def load_database():
with open('database.json', 'r') as file:
return json.load(file)
# Veritabanına veriyi kayıt etme fonksiyonu
def write_to_database(data):
with open('database.json', 'w') as file:
json.dump(data, file, indent=2)
# Verilen soruya en yakın eşleşmeyi bulma fonksiyonu
def find_close_match(question, questions):
matched = find_close_matches(question, questions, n=1, cutoff=0.6)
return matched[0] if matched else None
# Verilen sorunun cevabını bulma fonksiyonu
def find_answer(question, database):
for question_answers in database["questions"]:
if question_answers["question"] == question:
return question_answers["answer"]
return None
# Sohbet botu fonkisiyonu
def chat_bot():
# Veritabanını yükle
database = load_database()
while True:
user_input = input("You: ")
if user_input == 'exit':
break
# Kullanıcının girişine en yakın eşleşmeyi bul
matched_result = find_close_match(user_input, [question_answers["question"] for question_answers in database["questions"]])
if matched_result:
# Eşleşme varsa cevabı bul ve ekrana yazdır
response = find_answer(matched_result, database)
print(f"Suppressor_bot: {response}")
else:
# sonuç yoksa yeni bir şey öğretmek için soru sor
print("Suppressor_bot: Bilmiyorum, ne anlama geldiğini öğretebilir misin?")
new_answer = input("Anlamını açıklayabilir veya öğretmeyi geçmek için 'exit' yazabilirsin: ")
if new_answer.lower() != 'pass':
# Yeni bilgiyi veritabanına ekle
database["questions"].append({
"question": user_input,
"answer": new_answer
})
write_to_database(database)
print("Suppressor_bot: Yeni bir şey öğrendim :)")
# Botu Başlat
if __name__ == '__main__':
chat_bot()
database.json isimli dosyanın içeriği:
JSON:
{
"question": []
}
@Bunjo İçin Ruby Hali
Ruby:
require 'json'
require 'did_you_mean'
# Veritabanını yükleme fonksiyonu
def load_database
JSON.parse(File.read('database.json'))
end
# Veritabanına veriyi kayıt etme fonksiyonu
def write_to_database(data)
File.write('database.json', JSON.pretty_generate(data))
end
# Verilen soruya en yakın eşleşmeyi bulma fonksiyonu
def find_close_match(question, questions)
DidYouMean::SpellChecker.new(dictionary: questions).correct(question)
end
# Verilen sorunun cevabını bulma fonksiyonu
def find_answer(question, database)
question_answers = database['questions'].find { |qa| qa['question'] == question }
question_answers ? question_answers['answer'] : nil
end
# Sohbet botu fonksiyonu
def chat_bot
# Veritabanını yükle
database = load_database
loop do
print 'You: '
user_input = gets.chomp
break if user_input.downcase == 'exit'
# Kullanıcının girişine en yakın eşleşmeyi bul
matched_result = find_close_match(user_input, database['questions'].map { |qa| qa['question'] })
if matched_result
# Eşleşme varsa cevabı bul ve ekrana yazdır
response = find_answer(matched_result, database)
puts "Suppressor_bot: #{response}"
else
# Sonuç yoksa yeni bir şey öğretmek için soru sor
puts "Suppressor_bot: Bilmiyorum, ne anlama geldiğini öğretebilir misin?"
print "Anlamını açıklayabilir veya öğretmeyi geçmek için 'pass' yazabilirsin: "
new_answer = gets.chomp
unless new_answer.downcase == 'pass'
# Yeni bilgiyi veritabanına ekle
database['questions'] << { 'question' => user_input, 'answer' => new_answer }
write_to_database(database)
puts "Suppressor_bot: Yeni bir şey öğrendim :)"
end
end
end
end
# Botu Başlat
if __FILE__ == $PROGRAM_NAME
chat_bot
end