Erlangで人工知能に挑戦してみるよ日記

2008-07-21

[]やりたいことをメモ。 やりたいことをメモ。 - Erlangで人工知能に挑戦してみるよ日記 を含むブックマーク はてなブックマーク - やりたいことをメモ。 - Erlangで人工知能に挑戦してみるよ日記

Erlang関連ではないんですが、このブログをはじめるうえで、作りたいもののイメージを記しておきます。

作りたいもののイメージ

 チャットボットが大好きです。

 形態素解析器を使ったチャットボットは、比較的自然な日本語を話しますが、おもしろさという観点でいうと

 N-gram方式の解析器を使ったほうが可能性が広がるように思います。

  • ログから学習して辞書を生成し、辞書から発言を生成する方式のチャットボットにする。

 ログ学習型のチャットボットは大好きです。

  • フロントエンドの部分は作らない、あくまで「チャットボットエンジン」のみをつくる。

 エンジン単体で作った方が、いろいろと使いまわしがしやすいのでそうします。

  • 外部との入出力は、HTTP(REST)にする。

 たとえ、なんちゃってRESTだとしても、とりあえRESTっぽく作っておけば他の言語からも制御できるから。

  • 文章を生成するロジックは複数もって、それらを評価して組み合わせるようなイメージ。

 せっかく、1からチャットボットを作るのだからいろいろやってみたい。

  • 文章を解析するパーサは、特定の言語や環境に依存しないようなものにしたい。

 日本語でも英語でも一行AAでもパースできるのが理想。何を入力されてもパースできるパーサを作りたい。

RubyistなのにErlangで作ろうと思った理由。

  • 並列という概念をチャットボットに取り入れることで、おもしろいものが作れそう。

構想

  • 入力された文章をパースして構文にする部品を作る。
    • N-gramパースするパーサを作る。
    • パーサの最適化を行う部品を作る。
    • パーサの評価を行う部品を作る。
    • パースした構文を辞書に格納する。
  • 文章を生成する部品を作る。
    • 種となる構文と近似する構文を選ぶ部品を作る。
    • 構文の近似性を判定するロジックをいくつか作る。
    • 構文から文章を生成する部品を作る。
    • 構文から文章を生成するロジックをいくつか作る。
    • 外部からの評価を受けて何らかの形で反映させてみたい。
  • 異なる環境で成長させたチャットボット同士で情報の並列化をさせてみたい。

作りたいもののイメージ。

攻殻機動隊に登場するAIタチコマのような「並列化されたしゃべるロボット」を作りたい。

Erlangならなんか作れそうな気がした。

たぶん、ゴーストは宿らないと思うけど^^;