]> git.netwichtig.de Git - user/henk/code/ruby/rbot.git/commitdiff
markov: refactor triplet learning
authorGiuseppe Bilotta <giuseppe.bilotta@gmail.com>
Sat, 28 Feb 2009 10:59:17 +0000 (11:59 +0100)
committerGiuseppe Bilotta <giuseppe.bilotta@gmail.com>
Sat, 28 Feb 2009 11:00:30 +0000 (12:00 +0100)
data/rbot/plugins/markov.rb

index 46f78c930922e1c8b68b9cc6107d533db6439a72..d03b6edef58248c43d531021c0e20c63aed4f856 100755 (executable)
@@ -307,18 +307,21 @@ class MarkovPlugin < Plugin
     random_markov(m, message) unless m.replied?
   end
 
+  def learn_triplet(word1, word2, word3)
+      k = "#{word1} #{word2}"
+      @registry[k] = @registry[k].push(word3)
+  end
+
   def learn_line(message)
     # debug "learning #{message}"
     wordlist = message.split(/\s+/)
     return unless wordlist.length >= 2
     word1, word2 = :nonword, :nonword
+    wordlist << :nonword
     wordlist.each do |word3|
-      k = "#{word1} #{word2}"
-      @registry[k] = @registry[k].push(word3)
+      learn_triplet(word1, word2, word3)
       word1, word2 = word2, word3
     end
-    k = "#{word1} #{word2}"
-    @registry[k] = @registry[k].push(:nonword)
   end
 
   # TODO allow learning from URLs