public function testQuery() { $sentences = ['my blue car', 'red and blue flowers', 'his blue car']; $chain = new MarkovChain(); foreach ($sentences as $sentence) { $tokens = explode(" ", $sentence); $chain->train($tokens); } $this->assertEquals(['car' => 0.66666666666667, 'flowers' => 0.33333333333333], $chain->query("blue")); }
if (isset($argv[3])) { if (is_numeric($argv[3])) { $degree = intval($argv[3]); } else { $start = $argv[3]; } if (isset($argv[4])) { if (is_numeric($argv[4]) && !isset($degree)) { $degree = intval($argv[4]); } else { $start = $argv[4]; } } } if (!isset($degree)) { $degree = 1; } if (!isset($start)) { $start = HMM_START_TOKEN; } if (!is_readable($train)) { die("Training file <{$train}> is not readable."); } $string = file_get_contents($train); $mm = new MarkovChain(); $mm->train($string, $degree); $generated = $mm->generate($length, $start); while ($generated[0] == HMM_START_TOKEN) { array_shift($generated); } echo "\n" . implode("", $generated);