From 2cacc7bc792a06f3ba716a980a9d5992e475140f Mon Sep 17 00:00:00 2001 From: Giuseppe Bilotta Date: Sun, 29 Jul 2007 00:24:13 +0200 Subject: [PATCH] Methods to get a previous word --- mark2.rb | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/mark2.rb b/mark2.rb index 779c746..ab3c38b 100644 --- a/mark2.rb +++ b/mark2.rb @@ -196,5 +196,24 @@ class MarkovChainer raw_next(syms) end + def raw_prev(syms) + ar = syms.first([MAX_ORDER, syms.size].min) + ord = ar.size + if ord == 0 + @mkv[0].random + else + if @mkv[ord].key?(ar) + @mkv[ord][ar][:prev].random + else + raw_next(ar.first(ord-1)) + end + end + end + + def prev(text) + syms = text.scan(WNW).map { |w| w.intern } + raw_prev(syms) + end + end -- 2.32.0.93.g670b81a890