lib/johndoe/aiml.rb in john-doe-0.0.2 vs lib/johndoe/aiml.rb in john-doe-0.1.0
- old
+ new
@@ -1,16 +1,17 @@
require 'yaml'
module JohnDoe
class Aiml
- attr_accessor :rules,:patterns,:responses, :default, :knowledge
+ attr_accessor :rules,:patterns,:responses, :default, :knowledge, :emotions
def initialize
@rules = []
@patterns = {}
@responses = []
@default = []
@knowledge = []
+ @emotions = {}
end
def load(filename)
data= YAML::load_file(filename)
collect_data data
@@ -25,20 +26,22 @@
data.keys.each do |category|
next if category == "default" || category == "knowledge"
collection = data[category]
responses = collection['responses'].collect{|k,v| v}
@responses.push(responses)
- collection['patterns'].each{|k,v| @patterns[normalise_pattern(v)] = @responses.size - 1}
+ emotions = (collection["emotion"].split("|") rescue ["none"])
+ puts emotions.inspect
+ collection['patterns'].each{|k,v| @patterns[normalise_pattern(v)] = { :resp => (@responses.size - 1), :emotions => emotions}}
end
end
def normalise_default
@default.keys.each do |key|
@default[key]= @default[key].map{|k,v| v}
end
end
def normalise_pattern(pattern)
- pattern.gsub("*",".*").gsub("$","(.*)")
+ pattern.gsub("*",".*").gsub("$","([^\n\?!.$]*)")
end
end
end