2020年12月2日水曜日

5分でわかる!文章の自動生成の話(マルコフ連鎖編)

 こんばんは。PULSaです。

突然ですが皆さん、こちらをご存知でしょうか?

Tweet generator


こちらは少し前にTwitterで話題になった、「自分のツイートを学習して、文章を自動生成する」サイトです。

このサイトではマルコフ連鎖という方法で文章が生成されています。

今回はこちらについて簡単に説明していこうと思います。

難しいと思うかもしれませんが、実は確率が理解できれば簡単に理解できるほどシンプルなのです。


文章を学習させるということですが、例えばこのような文章があったとします。

「私はじゃんけんが好きだ

   じゃんけんが異様に強い私は友人に変態と呼ばれている

   私はこの呼び名を気に入っている」


この文章をまず、文節ごとに区切っていきます。

「私は/じゃんけんが/好きだ/

   じゃんけんが/異様に/強い/私は/友人に/変態と/呼ばれて/いる

   私は/この/呼び名を/気に入って/いる」


この中でも、「私は」という文節に注目していきます。

私は/じゃんけんが/好きだ/

   じゃんけんが/異様に/強い/私は/友人に/変態と/呼ばれて/いる

   私は/この/呼び名を/気に入って/いる」


この文章で、「私は」に続く文節は、

「じゃんけんが」「友人に」「この」の3つです。

言い換えると、

この文章で、「私は」の後には

「じゃんけんが」「友人に」「この」の3つが

それぞれ33%の確率で続く、ということになります。

「じゃんけんが」に注目すると
その次に続くのは「好きだ」「異様に」の2つなので、
それぞれ50%の確率で続きます

このように、それぞれの文節に関してこのように確率を調べていきます。


これにて準備は完了です。

文章を生成するためにはまず最初の文節を決めます。
今回は「私は」にしてみましょう。
そうしたら、「私は」の後に続く「じゃんけんが」「友人に」「この」の3つからランダムに一つ選択し、またその文節に続くものからランダムに、またそこからランダムに......
というように繋げていき、続けられなくなったところで終了です。
(文章の生成例)
今回の例では、「私はじゃんけんが異様に強い」という文章が出来上がりました。
かなり自然な文章ができましたね。

今回の例では説明のために学習用の文章に短いものを用意しましたが、さらに多くの文章を学習させることでより多種の、より長いより精度のいい文章が出来上がります


いかがだったでしょうか。少しでも興味を持ってもらえたのであれば幸いです。
もちろん文章の自動生成方法は今回紹介したマルコフ連鎖以外にも存在します。
ぜひ他の方法についても調べてみてはいかがでしょうか。
それでは。

0 件のコメント:

コメントを投稿

冬ごもりにピッタリ!ボドゲ好きが語るお勧めボドゲ3選!

こんばんは。PULSaです。 明けましておめでとうございます。 皆さん、お正月をどうお過ごしでしょうか? このようなご時世の下、家で過ごす時間が長いという人も多いのではないでしょうか? そこで今回は今まで僕が実際にプレイした中でおすすめのボドゲを3つご紹介します。 ぜひ冬ごもりの...