ページ

2012-06-19

形態素解析からのマルコフ連鎖を可視化してみた


”形態素解析”=”分かち書き”と勝手に解釈して記述します。

以前、"ろぐほー"の技術紹介で、Twitterのボットがつぶやく、つぶやきの生成に形態素解析とマルコフ連鎖を使っていると書きました(記事)。

でも、結局どうなってるのか、よくわかんなかったと思います。

自分でもうまく説明できたとは思えませんでした…


どうしたら解りやすいかな??と考えた結果、下のサイトが完成しました!
『蜘蛛の糸』で”形態素解析”からの”マルコフ連鎖”

芥川龍之介の『蜘蛛の糸』を形態素解析した結果が、青いブロックでタイル状に並んでいます。

適当に1つ青いブロックをクリックすると、青いブロックの数が減ると思います。

この青いブロックがマルコフ連鎖により計算された、文の候補となる単語(形態素)なのです。

今、青くなっているブロックの一つ前の単語を見ると、さっきクリックした単語になっていると思います。


マルコフ連鎖は、一つ前の状態に影響されて現在の状態が決まります。
言い換えれば、現在の状態(今、青いブロック)は、一つ前の状態(さっきクリックした、ブロック)によって決定されます。

これを何回も何回も繰り返していくことにより、それっぽい文章がつくれます。

頑張れば、アレンジ版『蜘蛛の糸』が出来るかもしれません。良い感じのができたら、Tweetしてみてください。


あと、"次数"というのは、現在からいくつ前の単語を気にするかという度合いです。

1だと、1つ前の単語のみ
2だと、2つ前の単語を
3だと、3つ前の単語を気にします。

一般に、次数が高くなると、元の文章に近い文章が生成されます。
一方、次数が低いと元の文章からかけ離れた文章が生成されます。

形態素解析した形態素の集まりを、マルコフ連鎖を用いて文章を作るプログラムでは、"青いブロックをクリックする"という動作を乱数を用いて決定しています。

それにより、毎回違った文章が作成できます。



なお、形態素解析には、Javascriptだけで書かれたコンパクトな分かち書きソフトウェア
TinySegmenter
を使用させて頂いています。

有難うございます。

私は形態素解析の方法に関しては無知なのですが、TinySegmenterでは解析の為の辞書を使用せず、機械学習のみで行なっているそうです。


辞書を使わずにどうやって??と思いましたが、すごい精度で解析できているので技術力の高さに驚きました。



また、解析対象の文章として、芥川龍之介の『蜘蛛の糸』を使用させて頂いています。

著作権の切れた文章を公開している、青空文庫から頂戴いたしました。

有難うございます。



この記事により、世の中にカオスな文章があふれることを願います。

0 件のコメント:

コメントを投稿