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