Presentation is loading. Please wait.

Presentation is loading. Please wait.

Markov Chain Algorithm in Perl Yu-Chung Chau CS 265.

Similar presentations


Presentation on theme: "Markov Chain Algorithm in Perl Yu-Chung Chau CS 265."— Presentation transcript:

1 Markov Chain Algorithm in Perl Yu-Chung Chau CS 265

2 Markov Chain Origins Andrey Markov (1856-1922)  Russian mathematician  Notable for theory on stochastic (random) processes, later known as Markov chains  Many real world applications

3 Markov Text Generator  Generate superficial “real-looking” text using sample document  Mark V Shaney  Used by spammers to inject “real-looking” hidden paragraphs into emails

4 Markov Chain Algorithm in Perl $MAXGEN = 10000; $NONWORD = "\n";$w1 = $w2 = $NONWORD; while (<>) { foreach (split) { push(@{$statetab{$w1}{$w2}}, $_); ($w1, $w2) = ($w2, $_); } push(@{$statetab{$w1}{$w2}}, $NONWORD); $w1 = $w2 = $NONWORD; for ($i = 0; $i < $MAXGEN; $i++) { $suf = $statetab{$w1}{$w2}; $r = int(rand @$suf); exit if (($t = $suf->[$r]) eq $NONWORD); print "$t\n"; ($w1, $w2) = ($w2, $t); }

5 Markov Chain Algorithm in Perl Two Phases 1. Build 2. Generate Initialization $MAXGEN = 10000; #max words to generate $NONWORD = “\n”;#non-word variable $w1 = $w2 = $NONWORD; #initializing prefix variables

6 Markov Chain Algorithm - Build … while (<>) { foreach (split) { push(@{$statetab{$w1}{$w2}}, $_); ($w1, $w2) = ($w2, $_); } push(@{$statetab{$w1}{$w2}}, $NONWORD); …

7 Markov Chain- Behind the Build Building Word List “It is a good day to die. It is a nice day to live.” %statetab = (‘It is‘ => [a, a], ‘is a’=>[good, nice], ‘a good ’=>[day], ‘good day’=>[to], ‘day to’=>[die., live.], … );

8 Markov Chain Algorithm - Generate … for ($i = 0; $i < $MAXGEN; $i++) { $suf = $statetab{$w1}{$w2}; $r = int(rand @$suf); exit if (($t = $suf->[$r]) eq $NONWORD); print "$t\n"; ($w1, $w2) = ($w2, $t); }

9 Markov Chain – Behind the Generate %statetab = (‘ It is ‘ => [a, a], ‘ is a ’=>[good, nice], ‘ a good ’=>[day], … ); Original: “It is a good day to die. It is a nice day to live.” Sample Output: “It is a nice day to die. It is a good day to die.”

10 The End “I spent an interesting evening recently with a grain of salt” - Mark V Shaney


Download ppt "Markov Chain Algorithm in Perl Yu-Chung Chau CS 265."

Similar presentations


Ads by Google