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.
Hier wird es mit "Ruby" kopiert.
isa.rb
semnet = {"portable terminal"=>"computer",
"laptop PC"=>"computer",
"stationary PC"=>"computer",
"smartphone"=>"portable terminal",
"tablet"=>"portable terminal",
"desktop PC"=>"stationary PC",
"server PC"=>"stationary PC"}
while true
puts "Behandelt die Frage "Ist A a B?" Bitte geben Sie A und B ein"
print "Geben Sie ein:"
a = gets.chomp
print "Geben Sie B ein:"
b = gets.chomp
puts "Frage: "#{a}Ist#{b}Ist es? """
puts "Inferenz starten"
if semnet[a].nil?
puts "「#{a}"Ich weiß es nicht"
next
end
obj = a
while obj != b
puts "#{obj}Ist#{semnet[obj]}ist"
if semnet[obj] == b
puts "Fazit:#{a}Ist#{b}ist"
break
end
unless semnet.keys.include?(semnet[obj])
puts "Fazit:#{a}Ist#{b}でIstありません"
break
end
obj = semnet[obj]
end
puts "Ende der Folgerung"
end
Es ist ein Problem, eine Inferenz unter Verwendung von "is-a link" zu implementieren, die eine der Verbindungen im semantischen Netzwerk ist.
python funktioniert gut mit japanischen Eingaben, aber es funktioniert nicht mit ruby, also habe ich es in Englisch geändert.
Behandelt die Frage "Ist A a B?" Bitte geben Sie A und B ein
Geben Sie A: Smartphone ein
Geben Sie B: Computer ein
Frage: "Ist das Smartphone ein Computer?"
Inferenz starten
Smartphone ist ein tragbares Terminal
tragbares Terminal ist Computer
Fazit: Smartphone ist Computer
Ende der Folgerung
Recommended Posts