Sha256: 5c375fac312aa9c7a9460811e559a8829666171a1fddc844c6e5a5b1da124dc1
Contents?: true
Size: 1.2 KB
Versions: 1
Compression:
Stored size: 1.2 KB
Contents
require 'yaml' module JohnDoe class Aiml 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 @default = data['default'] @knowledge = data['knowledge'] normalise_default end protected def collect_data(data) data.keys.each do |category| next if category == "default" || category == "knowledge" collection = data[category] responses = collection['responses'].collect{|k,v| v} @responses.push(responses) 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("$","([^\n\?!.$]*)") end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
john-doe-0.1.0 | lib/johndoe/aiml.rb |