読者です 読者をやめる 読者になる 読者になる

会話テキストデータを大量に突っ込めばそれだけで人工知能はできるか?

計算言語学/自然言語処理

無理だと思っている。段階を追って説明しよう。なお、ここでいう人工知能とは会話ボットとか人工無脳とかそっち系のあれである。

本当に何も考えていないタイプ

マルコフ連鎖による生成

会話文からマルコフ連鎖を学習して、それを使って自動生成するタイプ。クエリ中の適当な単語を利用することもある。

性能が半端なく悪く、わざわざ説明するまでもなさそうでもある。一応言ってみると、やるとわかるが、文あるいは単語が長くなりがちである。これは、適正な長さに制限する機構が入っていないこともあるが、あなたの学んだ文法は直前数語で次の語が決まるようなものではなかったはずということも忘れないでほしい。あくまでこれはおもちゃなのだ。

ところで、マルコフ連鎖としての近似って可能なのかと思うかもしれないが、自分がやってみたところだと、おおよそ近似できるが、マッチする文字列の長さはマルコフ連鎖の確率から見積もられるものより長くなるなど、確率が低い部分の扱いに気をつけないといけないようである。

全文検索

会話文をデータベースに全て放り込んで、クエリ文を検索して対応する回答を引いてくるタイプ。学習量が半端なく必要である。対応できる文字列長に対して指数オーダーだし。そんな大量のクエリも回答も誰が作るというのか、工学的に無理である。テンプレートにするなり、もう少し賢くしなければならない。

なんか学習するタイプ

生テキストデータから完全に教師なし学習

生テキストデータをたくさん食べさせたら単語とか文法とか、さらにはもっとすごいところまでできてしまうのではないかと淡い期待を抱いているだけで実際には作っていない脳内妄想タイプ。

ちょっとまってほしい。外国語教育で全くの初学者に訳どころか挿絵も何もない生の文章だけ渡してそこから学べと言われたらどう思うだろうか。実際、単語あるいは文の分割くらいならできるようになる方法があるが、品詞を推定したり、構文解析したりするのは非常に難しい。時間をかけたってできないことはあるのである。

自然言語処理系のツールをたくさん持ってくる

生データではさすがに無理ゲーだったので、 MeCab とか CaboCha とか自然言語処理の解析器を持ってきたタイプ。

努力は認める。しかし、さっきと同じ論理で、上のレイヤーの学習をするには生テキストでは全然ダメで、やはりもうちょっと色々しなくて、目的に見合った形式で正解情報を手作業で与える必要がある。フィードバックをそれ以外の方法で得られれば、手作業で与える必要もなくなるのだろうが、どちらにしろ生テキストデータは使いものになるか怪しい。

会話テキストデータを利用できるようにするまでには、結局、それ以上に複雑なデータを手に入れる必要があって本末転倒になる。

結論

物書きさん、そんな甘い認識で自然言語処理を乗り越えられたりはしないんです。。