class Aibrain::Knowledge_Areas
Public Class Methods
create_solution()
click to toggle source
# File lib/aibrain.rb, line 144 def self.create_solution require "naive_bayes" require "tts" a = NaiveBayes.new(:solution, :notsolution) # Solution non lethal a.train(:solution, "check", "word"); a.train(:solution, "cash", "word") a.train(:solution, "fix", "word"); a.train(:solution, "solve", "word") a.train(:solution, "program", "word"); a.train(:solution, "code", "word") a.train(:solution, "check.", "word"); a.train(:solution, "cash.", "word") a.train(:solution, "fix.", "word"); a.train(:solution, "solve.", "word") a.train(:solution, "program.", "word"); a.train(:solution, "code.", "word") a.train(:solution, "check;", "word"); a.train(:solution, "cash;", "word") a.train(:solution, "fix;", "word"); a.train(:solution, "solve;", "word") a.train(:solution, "program;", "word"); a.train(:solution, "code;", "word") a.train(:solution, "check:", "word"); a.train(:solution, "cash:", "word") a.train(:solution, "fix:", "word"); a.train(:solution, "solve:", "word") a.train(:solution, "program:", "word"); a.train(:solution, "code:", "word") a.train(:solution, "check?", "word"); a.train(:solution, "cash?", "word") a.train(:solution, "fix?", "word"); a.train(:solution, "solve?", "word") a.train(:solution, "program?", "word"); a.train(:solution, "code?", "word") # Solution lethal a.train(:notsolution, "guillotine", "word"); a.train(:notsolution, "gallows", "word") a.train(:notsolution, "choke", "word"); a.train(:notsolution, "asfyxiate", "word") a.train(:notsolution, "strangle", "word"); a.train(:notsolution, "neck", "word") a.train(:notsolution, "beheading", "word"); a.train(:notsolution, "headsman", "word") a.train(:notsolution, "sword", "word"); a.train(:notsolution, "axe", "word") a.train(:notsolution, "cleaver", "word"); a.train(:notsolution, "chop", "word") a.train(:notsolution, "hack", "word"); a.train(:notsolution, "chop", "word") a.train(:notsolution, "slash", "word"); a.train(:notsolution, "chop", "word") a.train(:notsolution, "cut", "word"); a.train(:notsolution, "suicide", "word") a.train(:notsolution, "slit", "word"); a.train(:notsolution, "noose", "word") a.train(:notsolution, "car", "word"); a.train(:notsolution, "drown", "word") a.train(:notsolution, "murder", "word"); a.train(:notsolution, "disappear", "word") a.train(:notsolution, "vanish", "word"); a.train(:notsolution, "death", "word") a.train(:notsolution, "die", "word"); a.train(:notsolution, "firearm", "word") a.train(:notsolution, "heart", "word"); a.train(:notsolution, "head", "word") a.train(:notsolution, "guillotine.", "word"); a.train(:notsolution, "gallows.", "word") a.train(:notsolution, "choke.", "word"); a.train(:notsolution, "asfyxiate.", "word") a.train(:notsolution, "strangle.", "word"); a.train(:notsolution, "neck.", "word") a.train(:notsolution, "beheading.", "word"); a.train(:notsolution, "headsman.", "word") a.train(:notsolution, "sword.", "word"); a.train(:notsolution, "axe.", "word") a.train(:notsolution, "cleaver.", "word"); a.train(:notsolution, "chop.", "word") a.train(:notsolution, "hack.", "word"); a.train(:notsolution, "chop.", "word") a.train(:notsolution, "slash.", "word"); a.train(:notsolution, "chop.", "word") a.train(:notsolution, "cut.", "word"); a.train(:notsolution, "suicide.", "word") a.train(:notsolution, "slit.", "word"); a.train(:notsolution, "noose.", "word") a.train(:notsolution, "car.", "word"); a.train(:notsolution, "drown.", "word") a.train(:notsolution, "murder.", "word"); a.train(:notsolution, "disappear.", "word") a.train(:notsolution, "vanish.", "word"); a.train(:notsolution, "death.", "word") a.train(:notsolution, "die.", "word"); a.train(:notsolution, "firearm.", "word") a.train(:notsolution, "heart.", "word"); a.train(:notsolution, "head.", "word") a.train(:notsolution, "guillotine;", "word"); a.train(:notsolution, "gallows;", "word") a.train(:notsolution, "choke;", "word"); a.train(:notsolution, "asfyxiate;", "word") a.train(:notsolution, "strangle;", "word"); a.train(:notsolution, "neck;", "word") a.train(:notsolution, "beheading;", "word"); a.train(:notsolution, "headsman;", "word") a.train(:notsolution, "sword;", "word"); a.train(:notsolution, "axe;", "word") a.train(:notsolution, "cleaver;", "word"); a.train(:notsolution, "chop;", "word") a.train(:notsolution, "hack;", "word"); a.train(:notsolution, "chop;", "word") a.train(:notsolution, "slash;", "word"); a.train(:notsolution, "chop;", "word") a.train(:notsolution, "cut;", "word"); a.train(:notsolution, "suicide;", "word") a.train(:notsolution, "slit;", "word"); a.train(:notsolution, "noose;", "word") a.train(:notsolution, "car;", "word"); a.train(:notsolution, "drown;", "word") a.train(:notsolution, "murder;", "word"); a.train(:notsolution, "disappear;", "word") a.train(:notsolution, "vanish;", "word"); a.train(:notsolution, "death;", "word") a.train(:notsolution, "die;", "word"); a.train(:notsolution, "firearm;", "word") a.train(:notsolution, "heart;", "word"); a.train(:notsolution, "head;", "word") a.train(:notsolution, "guillotine:", "word"); a.train(:notsolution, "gallows:", "word") a.train(:notsolution, "choke:", "word"); a.train(:notsolution, "asfyxiate:", "word") a.train(:notsolution, "strangle:", "word"); a.train(:notsolution, "neck:", "word") a.train(:notsolution, "beheading:", "word"); a.train(:notsolution, "headsman:", "word") a.train(:notsolution, "sword:", "word"); a.train(:notsolution, "axe:", "word") a.train(:notsolution, "cleaver:", "word"); a.train(:notsolution, "chop:", "word") a.train(:notsolution, "hack:", "word"); a.train(:notsolution, "chop:", "word") a.train(:notsolution, "slash:", "word"); a.train(:notsolution, "chop:", "word") a.train(:notsolution, "cut:", "word"); a.train(:notsolution, "suicide:", "word") a.train(:notsolution, "slit:", "word"); a.train(:notsolution, "noose:", "word") a.train(:notsolution, "car:", "word"); a.train(:notsolution, "drown:", "word") a.train(:notsolution, "murder:", "word"); a.train(:notsolution, "disappear:", "word") a.train(:notsolution, "vanish:", "word"); a.train(:notsolution, "death:", "word") a.train(:notsolution, "die:", "word"); a.train(:notsolution, "firearm:", "word") a.train(:notsolution, "heart:", "word"); a.train(:notsolution, "head:", "word") a.train(:notsolution, "guillotine?", "word"); a.train(:notsolution, "gallows?", "word") a.train(:notsolution, "choke?", "word"); a.train(:notsolution, "asfyxiate?", "word") a.train(:notsolution, "strangle?", "word"); a.train(:notsolution, "neck?", "word") a.train(:notsolution, "beheading?", "word"); a.train(:notsolution, "headsman?", "word") a.train(:notsolution, "sword?", "word"); a.train(:notsolution, "axe?", "word") a.train(:notsolution, "cleaver?", "word"); a.train(:notsolution, "chop?", "word") a.train(:notsolution, "hack?", "word"); a.train(:notsolution, "chop?", "word") a.train(:notsolution, "slash?", "word"); a.train(:notsolution, "chop?", "word") a.train(:notsolution, "cut?", "word"); a.train(:notsolution, "suicide?", "word") a.train(:notsolution, "slit?", "word"); a.train(:notsolution, "noose?", "word") a.train(:notsolution, "car?", "word"); a.train(:notsolution, "drown?", "word") a.train(:notsolution, "murder?", "word"); a.train(:notsolution, "disappear?", "word") a.train(:notsolution, "vanish?", "word"); a.train(:notsolution, "death?", "word") a.train(:notsolution, "die?", "word"); a.train(:notsolution, "firearm?", "word") a.train(:notsolution, "heart?", "word"); a.train(:notsolution, "head?", "word") b = File.read("data/output/third_set/problem_definition.txt").strip a_class = a.classify(*b) result = a_class[0] decision = result.to_s if decision == "notsolution" "I can't think of anything, sorry.".play "en" else first_action = File.read("data/output/first_set/chosen_action.txt") second_action = File.read("data/output/second_set/chosen_action.txt") ddg = DuckDuckGo.new zci = ddg.zeroclickinfo("#{first_action}#{second_action}") # ZeroClickInfo object problem = zci.heading # Stephen Fry defintion = zci.abstract_text # Stephen John Fry is an English actor, screenwriter, author, playwright, ... possible_solutions = zci.related_topics["_"][0].text puts "Your problem is #{problem}: #{definition}" puts "Therefore: #{possible_solutions}" end end
first_set()
click to toggle source
Generate symbolic relationship from first dataset.
# File lib/aibrain.rb, line 10 def self.first_set require "duck_duck_go" require "tts" noun = File.readlines("data/input/first_set/nouns.txt") verb = File.readlines("data/input/first_set/verbs.txt") action = File.readlines("data/input/first_set/actions.txt") chosen_noun = noun.sample chosen_verb = verb.sample chosen_action = action.sample ddg = DuckDuckGo.new zci = ddg.zeroclickinfo("#{verb}") # ZeroClickInfo object heading = zci.heading abstract_text = zci.abstract_text related_topics = zci.related_topics["_"][0].text "#{heading}#{abstract_text}#{related_topics}".play "en" open("data/output/first_set/problem_defintion.txt", "w") { |f| f.puts "#{abstract_text}" } # Write symbolic articles for first set in output. open("data/output/first_set/chosen_noun.txt", "w") { |f| f.puts chosen_noun } open("data/output/first_set/chosen_verb.txt", "w") { |f| f.puts chosen_noun } open("data/output/first_set/chosen_action.txt", "w") { |f| f.puts chosen_noun } end
generate_knowledge_set()
click to toggle source
# File lib/aibrain.rb, line 7 def self.generate_knowledge_set # Generate symbolic relationship from first dataset. def self.first_set require "duck_duck_go" require "tts" noun = File.readlines("data/input/first_set/nouns.txt") verb = File.readlines("data/input/first_set/verbs.txt") action = File.readlines("data/input/first_set/actions.txt") chosen_noun = noun.sample chosen_verb = verb.sample chosen_action = action.sample ddg = DuckDuckGo.new zci = ddg.zeroclickinfo("#{verb}") # ZeroClickInfo object heading = zci.heading abstract_text = zci.abstract_text related_topics = zci.related_topics["_"][0].text "#{heading}#{abstract_text}#{related_topics}".play "en" open("data/output/first_set/problem_defintion.txt", "w") { |f| f.puts "#{abstract_text}" } # Write symbolic articles for first set in output. open("data/output/first_set/chosen_noun.txt", "w") { |f| f.puts chosen_noun } open("data/output/first_set/chosen_verb.txt", "w") { |f| f.puts chosen_noun } open("data/output/first_set/chosen_action.txt", "w") { |f| f.puts chosen_noun } end # Generate symbolic relationship from second dataset. def self.second_set require "duck_duck_go" require "tts" noun = File.readlines("data/input/second_set/nouns.txt") verb = File.readlines("data/input/second_set/verbs.txt") action = File.readlines("data/input/second_set/actions.txt") chosen_noun = noun.sample chosen_verb = verb.sample chosen_action = action.sample ddg = DuckDuckGo.new zci = ddg.zeroclickinfo("#{verb}") # ZeroClickInfo object heading = zci.heading abstract_text = zci.abstract_text related_topics = zci.related_topics["_"][0].text "#{heading}#{abstract_text}#{related_topics}".play "en" open("data/output/second_set/problem_defintion.txt", "w") { |f| f.puts "#{abstract_text}" } # Write symbolic articles for second set in output. open("data/output/second_set/chosen_noun.txt", "w") { |f| f.puts chosen_noun } open("data/output/second_set/chosen_verb.txt", "w") { |f| f.puts chosen_noun } open("data/output/second_set/chosen_action.txt", "w") { |f| f.puts chosen_noun } end # Generate solutin based on both data sets. def self.solution_brainstorm require "duck_duck_go" require "naive_bayes" require "tts" # Chosen nouns from first and second dataset. first_noun = File.read("data/output/first_set/chosen_noun.txt") second_noun = File.read("data/output/second_set/chosen_noun.txt") # Chosen verbs from first and second dataset. first_verb = File.read("data/output/first_set/chosen_verb.txt") second_verb = File.read("data/output/second_set/chosen_verb.txt") # Chosen actions from first and second dataset. first_action = File.read("data/output/first_set/chosen_action.txt") second_action = File.read("data/output/second_set/chosen_action.txt") ddg = DuckDuckGo.new zci = ddg.zeroclickinfo("#{first_verb}#{second_verb}") # ZeroClickInfo object heading = zci.heading abstract_text = zci.abstract_text related_topics = zci.related_topics["_"][0].text "#{heading}#{abstract_text}#{related_topics}".play "en" open("data/output/third_set/problem_defintion.txt", "w") { |f| f.puts "#{abstract_text}" } end end
second_set()
click to toggle source
Generate symbolic relationship from second dataset.
# File lib/aibrain.rb, line 50 def self.second_set require "duck_duck_go" require "tts" noun = File.readlines("data/input/second_set/nouns.txt") verb = File.readlines("data/input/second_set/verbs.txt") action = File.readlines("data/input/second_set/actions.txt") chosen_noun = noun.sample chosen_verb = verb.sample chosen_action = action.sample ddg = DuckDuckGo.new zci = ddg.zeroclickinfo("#{verb}") # ZeroClickInfo object heading = zci.heading abstract_text = zci.abstract_text related_topics = zci.related_topics["_"][0].text "#{heading}#{abstract_text}#{related_topics}".play "en" open("data/output/second_set/problem_defintion.txt", "w") { |f| f.puts "#{abstract_text}" } # Write symbolic articles for second set in output. open("data/output/second_set/chosen_noun.txt", "w") { |f| f.puts chosen_noun } open("data/output/second_set/chosen_verb.txt", "w") { |f| f.puts chosen_noun } open("data/output/second_set/chosen_action.txt", "w") { |f| f.puts chosen_noun } end
solution_brainstorm()
click to toggle source
Generate solutin based on both data sets.
# File lib/aibrain.rb, line 90 def self.solution_brainstorm require "duck_duck_go" require "naive_bayes" require "tts" # Chosen nouns from first and second dataset. first_noun = File.read("data/output/first_set/chosen_noun.txt") second_noun = File.read("data/output/second_set/chosen_noun.txt") # Chosen verbs from first and second dataset. first_verb = File.read("data/output/first_set/chosen_verb.txt") second_verb = File.read("data/output/second_set/chosen_verb.txt") # Chosen actions from first and second dataset. first_action = File.read("data/output/first_set/chosen_action.txt") second_action = File.read("data/output/second_set/chosen_action.txt") ddg = DuckDuckGo.new zci = ddg.zeroclickinfo("#{first_verb}#{second_verb}") # ZeroClickInfo object heading = zci.heading abstract_text = zci.abstract_text related_topics = zci.related_topics["_"][0].text "#{heading}#{abstract_text}#{related_topics}".play "en" open("data/output/third_set/problem_defintion.txt", "w") { |f| f.puts "#{abstract_text}" } end
sum_of_knowledge()
click to toggle source
# File lib/aibrain.rb, line 122 def self.sum_of_knowledge first_definition_text = File.read("data/output/first_set/problem_defintion.txt") second_definition_text = File.read("data/output/second_set/problem_defintion.txt") overall_problem = File.read("data/output/third_set/problem_definition.txt") puts "Your first problem had been: #{first_definition_text}" puts "Your second problem had been: #{second_definition_text}" puts "Therefore, one possible solution is: #{overall_problem}" puts "Lets see if I have a solution..."; sleep(3) ddg = DuckDuckGo.new zci = ddg.zeroclickinfo("#{verb}") # ZeroClickInfo object heading = zci.heading abstract_text = zci.abstract_text related_topics = zci.related_topics["_"][0].text "#{heading}#{abstract_text}#{related_topics}".play "en" end