White scenery @showyou, hatena

If you have any comments, you may also send twitter @shsub or @showyou.

根本的な問題

http://twitter.com/ha_maで相変わらずしゃべらせてるのですが、いろいろ気になることもあります
面白いセリフは面白いけど、文の繋がりが悪いセリフの方が、よく目立ちます。一番酷いのが、"「"がないのに"」"があるとか。そもそもマルコフ連鎖の時点でつながり薄いのは当たり前なんですけど。でももうちょっと文法的にまともな文を生成したいですね。それもこちらで明示的にルールを与えるのではなく、ha_ma内部でパラメータ空間を形成することで。

文章の生成だとどんなモデルが一番自然なんですかねぇ。


これは現行のマルコフモデル。実際はP(は|今日)だなんていう確率は扱わず、次の単語[今日]=(は)といった風にやってるわけですが。次の単語[いい]=(さいたま、天気、天気、気分)とか。



で、私の思うイメージ。ニューラルネットバックプロパゲーションに近い感じ?むしろQ-Learnか?
文章生成時に各単語を通ると報酬をもらう。最終的に出力された文章に対してユーザがアリかナシか判定してもらう。その結果に応じて各単語間の報酬を変える。文章生成時、報酬が一定以下ならなしと判定し通らないようにする。

これをすることで、例えば『"「"以外の単語だけで構成され、"」"が入っている文章を生成しない』ようにしたい・・(プログラミング的にいうならValue(^「,^「,^「,^「,^「,^「,」)<0 とかいう風にできたらいいな、と。)
まあこんなことしてもコンピュータが言語ルールを理解したといえるのかどうかは疑問ですが
別にパラメータモデルにしなくったって、コンピュータ側で正規表現による判定文のスクリプトを、文章の学習時に自動生成させればいいのかも。

自分自身よく理解してないで書いてるので、何書いてるか分からないと思いますが・・コンピュータに言葉学ばせる前に自分に言葉学ばすべきですね。

私の専門外の話なので、この手の話に詳しい方、ぜひコメントをお願いします。