Twitter BOT開発日記 Part4
マルコフ連鎖アルゴリズムの構築、2語の接頭語と1語の接尾語からなる3階層マルコフ連鎖が一般的とされてます。しかし、どうもこれだとTwitterにおけるマルコフBOTには適していないのです。3語の接頭語と1語の接尾語という組み合わせだと、元の文章とほぼ変わらないものが出来上がるし…はて、どうしたものか、と悩みながらこんなの書きました。
<?php // $markov{接頭語前}{接頭語後}[no]={接尾語前} の形式 for ($i = 4 ; $i < count($words) ; $i++) { if ($i < count($words)) { $markov{$words[$i-3]}{$words[$i-2]}{$words[$i-1]}[] = $words[$i]; } } // $markov2{接頭語後}{接尾語前}[no]={接尾語後} の形式 for ($i = 6 ; $i < count($words) ; $i++) { if ($i < count($words)) { $markov2{$words[$i-3]}{$words[$i-2]}{$words[$i-1]}[] = $words[$i]; } }
(追記)
書き直しました。3階層マルコフ連鎖テーブル改良版です。