(間が空いてしまった上にネタが違うのは仕事のせいです…ぐすん)
分かち書きとマルコフ連鎖というアルゴリズムを組み合わせると、ある文章をバラバラに分解してからメチャクチャに再構築してカオスな文章を生成できるようです。
長門有希さんのセリフをサンプルにして試してみましょう。
生み出されてから3年間、私はずっとそうやって過ごしてきた。
この3年間は特別な不確定要素がなく、いたって平穏。
でも最近になって無視出来ないイレギュラー因子が涼宮ハルヒの周囲に現れた。
それが、あなた。
これを先ほどのロジックで処理してみると、次のような文章が生成されます。生成結果は不定です。
生み出されて平穏。
生み出されて過ごしてから3年間、あなた。
でも最近になって無視出来ないイレギュラー因子がなく、私はずっとそうやって過ごして平穏。
この3年間は特別な不確定要素が、あなた。この3年間、あなた。
長門さん、普通にコクっちゃってますね…。
今回はこのような文章を生成するまでの一貫した手順をご紹介します。
※マルコフ連鎖に関しては、らんたそ氏のブログ「あたまがうにになる」で勉強させていただきました。続きに掲載しているコードも、マルコフ連鎖部分は9割方ソースのままです。
まず分かち書きですが、MeCabかkakasiを使用します(ChaSenは導入に手間がかかるので割愛)。
どちらかをローカル環境にインストールしてください。サンプルコードではMeCabを使用しているので、MeCabの方が簡単です。なお、ここでは実行環境にWindowsを想定しています。
MeCabのインストール手順は下記の通り。
1.
MeCabの公式HPにアクセス。
2.「ダウンロード」をクリック。
3.「Binary package for MS-Windows」の「ダウンロード」をクリック。
4.「mecab-win32」の「Download」をクリック。
5.ページ下部の「mecab-X.X.exe」をダウンロード。
6.ダウンロードファイルを実行してインストール。
※フォルダ名を「mecab」としてCドライブ直下に生成してください。
kakasiのインストール手順は下記の通り。
1.
kakasiの公式HPにアクセス。
2.「Win32用 バイナリパッケージ」の「Web」をクリック。
3.「kakasi-X.X.X.zip」をダウンロード。
4.ダウンロードファイルを解凍。
5.フォルダ名を「kakasi」としてCドライブ直下に移動。
次に.phpファイルを用意します。
名前は任意です。中身は続きに掲載しているサンプルコードを貼り付けてください。文字コードと改行コードはUTF-8とCR+LFを想定しています。
以上の用意が整ったら、.phpファイルを実行してください。
正常に動作すれば、ローカルに「result.txt」が生成され、自動的にテキストエディタで表示されるはずです。