一般的な2語の接頭語と1語の接尾語のマルコフ連鎖の場合。
「酢鶏は好きですが、鶏は嫌いかも。」を形態素解析します。
すると「酢/鶏/は/好き/です/が/、/鶏/は/嫌い/かも/。/EOS」と分解されます。
(EOS は End Of Sentence の頭文字で文の終わりと言う意味)
分解された文章から、マルコフ連鎖の為に参考テーブルを作ります。
| 接頭語前/接頭語後 | → | 接尾語 |
| 酢/鶏 | → | は |
| 鶏/は | → | 好き |
| は/好き | → | です |
| 好き/です | → | が |
| です/が | → | 、 |
| が/、 | → | 鶏 |
| 、/鶏 | → | は |
| 鶏/は | → | 嫌い |
| は/嫌い | → | かも |
| 嫌い/かも | → | 。 |
| かも/。 | → | (EOS)文章の終わり |
マルコフ連鎖のアルゴリズムに当てはめる為に、とりあえず文章の出だしの「酢/鶏」を接頭語として選択します。
で、ここからがマルコフ連鎖のメインの部分です。
作成した参考テーブルから、接頭語が「酢/鶏」に当てはまるものを探し、そこから接尾語を選択します。
上記テーブルには「酢/鶏→は」しかありませんので、接尾語は「は」になります。
これで「酢鶏は」と言う文章がとりあえず出来ます。
同じように、前回の接頭語後ろの「鶏」と接尾語の「は」を組み合わせたもの「鶏/は」を新しい接頭語とし、参考テーブルから次に来る接尾語を探します。
すると「鶏/は→好き」と「鶏/は→嫌い」と言う二つの結果が見つかります。
何らかの方法(ランダムなど)でどちらかを選択します。
今回は「鶏/は→嫌い」を選択します。
すると「酢鶏は嫌い」と言う文章が出来ます。
同じように「(EOS)文章の終わり」が出るまで続けて行くと「は/嫌い→かも」「嫌い/かも→。」「かも/。→EOS」と続き
最終的に「酢鶏は嫌いかも。」と言った文章が完成します。
これで、マルコフ連鎖による文章作成の一連の流れが完了です。
ちなみに途中の選択で、もしも「鶏/は→好き」を選んでいると
「は/好き→です」「好き/です→が」「です/が→、」「が/、→鶏」「、/鶏→は」と続き
「酢鶏は好きですが、鶏は」まで生成した所で、又「鶏/は→好き」「鶏/は→嫌い」と言う選択肢にまた辿りつきます。
この参考テーブルを使うと、単純な選択をするマルコフ連鎖の場合、結果的に「鶏/は→嫌い」を選択しない限りループは終わりません。
「酢鶏は好きですが、鶏は好きですが、鶏は好きですが、鶏は好きですが、鶏は好きですが、鶏は嫌いかも。 」といった暗号みたいな文章になる場合もあります。
有限ではありますが、参考テーブルによっては無限に近いループになる事もあるので、プログラムを組む場合はループ回数の制御をしたほうが良いですね。