En tant qu'étude de l'apprentissage automatique, je lis "* Apprendre des bases: manuel d'intelligence artificielle *".
La particularité de ce livre est que le problème de fin de chapitre contient un programme simple de Python.
Ici, il est copié avec Ruby.
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 "Traite la question "Est-ce que A est B?" Veuillez saisir A et B"
  print "Entrez A:"
  a = gets.chomp
  print "Entrez B:"
  b = gets.chomp
  puts "Question: "#{a}Est#{b}C'est ça? ""
  puts "Commencer l'inférence"
  if semnet[a].nil?
    puts "「#{a}"Je ne sais pas"
    next
  end
  obj = a
  while obj != b
    puts "#{obj}Est#{semnet[obj]}est"
    if semnet[obj] == b
      puts "Conclusion:#{a}Est#{b}est"
      break
    end
    unless semnet.keys.include?(semnet[obj])
      puts "Conclusion:#{a}Est#{b}でEstありません"
      break
    end
    obj = semnet[obj]
  end
  puts "Fin de l'inférence"
end
C'est un problème d'implémenter l'inférence en utilisant «est-un lien» qui est l'un des liens dans le réseau sémantique.
python fonctionne bien avec l'entrée japonaise, mais il ne fonctionnait pas avec ruby, donc je l'ai changé en anglais.
Traite la question "Est-ce que A est B?" Veuillez saisir A et B
Entrez A: smartphone
Entrez B: ordinateur
Question: "Le smartphone est-il un ordinateur?"
Commencer l'inférence
le smartphone est un terminal portable
le terminal portable est un ordinateur
Conclusion: le smartphone est un ordinateur
Fin de l'inférence
Recommended Posts