|
Algorithm::MarkovChain - Object oriented Markov chain generator |
Algorithm::MarkovChain - Object oriented Markov chain generator
use Algorithm::MarkovChain;
my $chain = Algorithm::MarkovChain::->new();
# learn about things from @symbols
$chain->seed(symbols => \@symbols,
longest => 6);
# attempt to tell me something about the sky
my @newness = $chain->spew(length => 20,
complete => [ qw( the sky is ) ]);
Algorithm::MarkovChain is an implementation of the Markov Chain algorithm within an object container.
It is implemented as a base class, Algorithm::MarkovChain::Base,
with storage implementations of a hash (Algorithm::MarkovChain),
and an fairly memory efficent implementation using glib
(Algorithm::MarkovChain::GHash). DBI and MLDBM-friendly versions
are planned.
Deriving alternate representations is intended to be straightforward.
new() or $obj->new()Takes one optional parameter: recover_symbols
recover_symbols has meaning if your symbols differ from their true
values when stringifyed. With this option enabled steps are taken to
ensure that the original values for symbols are returned by the
spew method.
seed()Takes two parameters, one required symbols, one optional longest
symbols presents the symbols to seed from
longest sets an upper limit on the longest chain to
construct. (defaults to 4)
spew()Takes four optional parameters complete, length,
longest_subchain, force_length, stop_at_terminal and
strict_start
complete provides a starting point for the generation of output.
Note: the algorithm will discard elements of this list if it does not
find a starting chain that matches it, this is infinite-loop avoidance.
length specifies the minimum number of symbols desired (default is 30)
stop_at_terminal directs the spew to stop chaining at the first
terminal point reached
force_length ensures you get exactly length symbols returned
(note this overrides the behaviour of stop_at_terminal)
strict_start makes the spew operation always take a known start
state rather than selecting a sequence at random
recompute($sequence)
get_options($sequence)Returns possible next symbols and probablities as a hash.
Hopefully not, though if they probably arise from my not understanding Markov chaining as well as I thought I did when coding commenced.
That or they're jst stupid mistakes :)
Richard Clamp <richardc@unixbeard.net>
perl(1).
|
Algorithm::MarkovChain - Object oriented Markov chain generator |