Als Studie über maschinelles Lernen lese ich "* Lernen aus den Grundlagen: Lehrbuch für künstliche Intelligenz *".
Das Merkmal dieses Buches ist, dass das Problem am Ende des Kapitels ein einfaches Programm von Python
enthält.
ELIZA.rb
LIMIT = 20
CYCLE = 5
count = 0
endcount = 0
puts('Dr>Ich bin Doktor, rede mit dir')
while endcount < LIMIT
print('Sie>')
inputline = gets.chomp.encode("UTF-8", "CP932", :invalid => :replace)
if count >= CYCLE
puts 'Dr>' << inputline << ',? .. ..'
count = 0
elsif inputline.include?('Lehrer')
puts 'Dr>Lass uns über dich reden, nicht über mich'
elsif inputline.include?('Mutter')
puts 'Dr>Sprechen Sie über Ihre Mutter'
elsif inputline.include?('Vater')
puts 'Dr>Sprechen Sie über Ihren Vater'
elsif inputline.include?('Meinung')
puts 'Dr>Willst du meine Meinung hören?'
elsif inputline.include?('Ich bin besorgt')
puts 'Dr>' << inputline.sub(/Ich bin besorgt/, 'Bist du besorgt?')
else
puts 'Dr>Bitte fahre fort'
end
count += 1
endcount += 1
end
puts('Dr>Lass es uns jetzt beenden. Danke für Ihre Unterstützung.')
Dies ist ein Problem beim Erstellen einer vereinfachten Version von ELIZA.
CP932.rb
inputline = gets.chomp.encode("UTF-8", "CP932", :invalid => :replace)
Im Fall von "Windows10" ist das Konvertieren des Zeichencodes erforderlich.
AtCoder
ist frisch, weil es keine solche Verarbeitung gibt.
Es ist jedoch erforderlich, die Legacy-Konsole auszuwählen, um den Fehler in der Eingabeaufforderung zu beheben.
Recommended Posts