- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
人工知能を作りたいなぁと漠然と考えていました。(今もですけど)
まことにSF的な話ではあるが、学習し、自分で考えて行動するようなもの。
さて、メカな部分はおいておいたとして、そいういう思考ルーチンは記述できるのでしょうか
とりあえず適当に相づちをうつプログラムを書こうと思って最近手をつけはじめたのですが、
コードを書くにつれて最初に思い描いていたものが到底不可能なことのように思えてきます。
現段階では、いくつかの文章を入力すると、それに従って、
尋ねかえしてきたり、喜んだり(喜んだ風な文章を出力したり)、怒ったり、
ふんふん、と聞きながしたりしてくれます。
データは会話(入力)をくりかえしていく毎に増えていき、
一応そこから抽出した単語のデータを利用して、その単語や、
以前に一緒に使われたことのある単語、単語に付随する属性などを利用して、
返答文を生成しています。
しかし、その返答文のパターンはやっぱり僕がコードとして埋めこんだもの...
適切そうな単語はプログラムが選んでくるとはいえ、返答のタイプは僕がつくったものなのです。
まぁ、当初の目的の「相づちをうつプログラム」には近づいたのですが
なんかちょっと寂しい。
(いやプログラム相手に相づちをうってもらっている自分が、ではなく)
返答する文章のパターンをプログラムに生成させるために、
単語のデータだけではなく、会話のログを保存しておき、
似たような会話の流れを参照しながら、文を生成することも、まあできるでしょう。
それでもやっぱり「似たような」という判定ルーチンは記述しなければいけなくて、
なんか違う気が...どこで妥協するか、なのでしょうか?
とりあえず「あいづちを打つ、たまごっち」程度で妥協かな、とか思います。