Algorithm-MarkovChain
view release on metacpan or search on metacpan
lib/Algorithm/MarkovChain.pm view on Meta::CPAN
Seeds the markov chains from an example symbol stream.
Takes two parameters, one required C<symbols>, one optional C<longest>
C<symbols> presents the symbols to seed from
C<longest> sets an upper limit on the longest chain to
construct. (defaults to 4)
=item $obj->spew()
Uses the constructed chains to produce symbol streams
Takes four optional parameters C<complete>, C<length>,
C<longest_subchain>, C<force_length>, C<stop_at_terminal> and
C<strict_start>
C<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.
C<length> specifies the minimum number of symbols desired (default is 30)
C<stop_at_terminal> directs the spew to stop chaining at the first
terminal point reached
C<force_length> ensures you get exactly C<length> symbols returned
(note this overrides the behaviour of C<stop_at_terminal>)
C<strict_start> makes the spew operation always take a known start
state rather than selecting a sequence at random
=item $obj->increment_seen($sequence, $symbol)
Increments the seeness of a symbol following a sequence.
=item $obj->recompute($sequence)
Recompute the probabilities for a branch of the tree. Called towards
the end of the seed operation for 'dirty' sequences.
=head2 $obj->get_options($sequence)
Returns possible next symbols and probablities as a hash.
=back
=head1 TODO
=over 4
=item Documentation
I need to explain Markov Chains, and flesh out the examples some more.
=item Fix bugs/respond to feature requests
Just email me <richardc@unixbeard.net> and I'll hit it with hammers...
=back
=head1 BUGS
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 :)
=head1 AUTHOR
Richard Clamp <richardc@unixbeard.net>
=head1 SEE ALSO
perl(1).
=cut
( run in 1.963 second using v1.01-cache-2.11-cpan-df04353d9ac )