http://qs321.pair.com?node_id=352648


in reply to Tolstoy Chains

Where's the code?

Replies are listed 'Best First'.
Re: Re: Tolstoy Chains
by andyf (Pilgrim) on May 12, 2004 at 07:25 UTC
    #!/usr/bin/perl use strict; use Algorithm::MarkovChain; my $mc = Algorithm::MarkovChain->new(); unless (scalar(@ARGV) gt 0) { die "usage: file [longest_chain(int)] [longest_output(int)]" }; my $infile = shift; my $longest = shift; my $outlength = shift; unless ($longest > 2 and $longest < 10) {$longest = 3}; # sensible constraints unless ($outlength > 2 and $outlength < 20) {$outlength = 10}; if ($infile) { $| = 1; print "seeding from $infile\n"; open IN, $infile; while (<IN>) { $mc->seed(symbols => [m/(\S+)/g], longest => $longest); print "\r$. "; } print "\nSeeded, chain length $longest. Hit enter for random ut +terings of $outlength words.\n"; } while (<>) { print join(' ', $mc->spew(length => $outlength)),"\n"; }