話題を見つける・理解する(とりあえず分類してみるか)


隔週刊uran.blogのお時間です。

っていうかひどいね!更新頻度がすごいね!

せめて週刊にしたいです。

 

さて、あんまり考えすぎてプログラムを作る前に熱が冷めてしまうとアレなので

とりあえずてきとーな形でもいいので早めに実装してみることにします。

 

前回人力で話題抽出をやってみて、あんまりなんも分からなかったので

とりあえず「ひとかたまりの会話」を分類することにしてみまうす。

 

とりあえず普通の文書分類と同じ方向で考えてみます。

 

 

みじけぇ。



話題を見つける・理解する(人力でやってみた)


というわけで前回シンプルすぎて困っちゃうモデルを考えたので

それを前提に、最初の切り口としてまず話題を見つけるにはどうしたらいいか考えてみた。

 

…けど一切思いつかなかったので、とりあえず実際に人力で話題抽出をやってみることにした。

あ、publicに公開されて困る内容がある人は申し出てくれたら修正しまふ。

誰も見てないですね、わかります。

 

topic

 

こんな感じになりました。

きれいですね。そうでもないですね。

 

表示してませんけど、横線に沿って縦にチャットの発言が並んでます。

それぞれの発言がどういう話題に属しているかをボクの独断で判断して

同じ話題を同じ色で色づけしてみました。

例えばオレンジにした「遅刻」の話題はこんな感じ。

この一連のやりとりの中に関係なさげに含まれていた

「R*****_あいさつ」に属する発言「おはよう」は外しました。

 

14:07 (R*****_) あれ
14:07 (R*****_) まと遅刻したの
14:07 (R*****_) ざまぁ
14:07 (u***) w
14:07 (u***) ひどいw
14:07 (R*****_) 人の不幸を笑わずにはいられない
14:08 (u***) みんなで笑いあおう
14:12 (j*****) 俺も昨日の仕事遅刻したけどな! 2分だけ!!
14:13 (u***) w
14:14 (j*****) 腹痛で新宿駅のトイレに篭もってましたって言う。

 

色がグラデーション?になってるところは

ある発言がきっかけで話題が別物に推移し始めたところ。

例えばオレンジの「年号」の話題の始めから

レッドの「人工眼」の話題の終わりまでの発言を拾ってくると

 

15:15 (j*****) 免許確認した 今平成何年かよくわからなかった。
15:15 (e**_) うちの実家の方ってスピード違反の取り締まり多いから本気で焦るよ
15:15 (e**_) 21年です
15:15 (u***) w
15:15 (j*****) thx!!
15:15 (j*****) 西暦でかけばいいのに・・
15:15 (e**_) だよねー
15:16 (j*****) あと1年もないじゃないか俺の免許・・・
15:16 (j*****) いい加減視力で引っかかりそうで怖い
15:16 (e**_) 勘で答えたら通ったよ!
15:16 (j*****) д
15:16 (u***) q
15:16 (u***) わしは両目1.5
15:17 (j*****) 俺その1/100ぐらい
15:17 (u***) ww
15:17 (e**_) 学校の視力検査で一番上が見えなくて、2~3つくらい前に出てた記憶がある
15:17 (j*****) ええい人工眼まだか
15:17 (u***) www
15:17 (u***) まだまだ実用レベルじゃないみたいっすよ

 

こんな感じ。

15:16のj*****さんの「いい加減~」で「視力」の話題に推移しているのがわかります。

ちなみにこの「視力」の話題は

15:24にR*****_さんがメタファー的な意味での視力の話題を振ることでさらに推移します。

 

15:24 (R*****_) 俺は
15:24 (R*****_) 心が曇りすぎて乙女心がわかりません、こんばんは
15:27 (e**_) なにがあった……
15:27 (u***) 心の眼鏡をふきふきなさい
15:27 (R*****_) いやぁ
15:27 (R*****_) 昔よりは分かるようになってると思いたいなぁ
15:27 (R*****_) はっはっは
15:27 (j*****) 超音波洗浄機にかければいい

 

 こんな感じ。

 

実際に人力でやってみたら、なにかしら発言のつながりとか共通点とか見えるかと思ったけど、

まったく見えませんね!

 

「デジカメの動画」の話題なんかはまだマシで

 

14:18 (j*****) 手持ちのデジカメで動画取ってみたけど
14:18 (j*****) 撮影中液晶のバックライトが消えないから電池絶対もたない罠
14:18 (R*****_) www
14:19 (j*****) 歩きながら一秒置きぐらいに写真撮りまくってあとから合成するとか非常にめんどくさい方法考えた。
14:19 (j*****) 絶対やだ
14:19 (R*****_) だるwwwwwwwwww
14:20 (R*****_) ちょっとデジカメもってる人全員で
14:20 (R*****_) キャメラもっていけばいいね
14:20 (j*****) それが無難
14:24 (j*****) おおお
14:24 (j*****) 一定時間枚に写真自動で取ってくれるモードあった
14:24 (R*****_) www
14:24 (j*****) ぱしゃぱしゃうるさい

 

から、まぁゴミもあるけど、結構繋がりあってそうな名詞が取り出せて

 

「手持ち」、「デジカメ」、「動画」、「撮影中」、「液晶」、「バックライト」、「電池」

「罠」、「一秒」、「写真」、「自動」、「合成」、「方法」、「キャメラ」

 

という感じのものが出てきました。人力だけど。

 

これなら、なんとかプログラムでも繋がりが見えるんじゃないかなと期待ができたけど

さっき出てきた「遅刻」の話題なんかは殆ど繋がりが見えない・・・。

 

 「遅刻」、「人」、「不幸」、「俺」、「昨日」、「仕事」、「2分」

 

遅刻が不幸かとか、遅刻といえば学校や仕事とか、そういう常識を持ち合わせろということですね、

たぶん無理です。

 

 

さて、いきなり先行きがまっくらだぜ!



話す仕組み。


どのようにして人工無脳にお話をさせるかを考えてみまふ。

…いや、考える前にまずちょっとだけ調べてみました。

 

「人工無脳」で検索すると上位にでてくる人工無脳は考えるでは、

「人間らしさとは」やら「世界を知覚する」など

心をもっているかのような発言ができる人工無脳を作成するための

様々なアプローチが書いてあるようです。

しかし、ボクには難解で理解できませんでした。

つーか、頭が理解しようとしませんでした。

項目が多すぎると思います。

 

 

 こまけぇこたぁいいんだよ!!(AA略

 

 

というわけで、もっと簡単で(ボクが)直感的に分かる仕組みを考えることにしました。

 

 model

 

こんな感じでどうだっ。

 

人が人の話に反応をするとき、人は「話題のタネ」や「話題(話の流れ)」を見つけて、

それを伸ばすのに適当な発言をしているのだろうという、

ボクがたったいまテキトーに考えた仮説を元にしたモデル。

 

だから会話を聞いてから発言するまではきっとこんな感じ。

 

model2

 

例に当てはめるとせっかく簡単な仕組みにしたふりをしたのに、

めんどくささ爆発なのがばれてしまいますが、たぶん以下のようになります。

こまけぇこたぁいいんだよ!!(AA略 という方はさっきまでの図だけで納得してくれたら幸いだと思います。

 

chat

 

上のような会話があったとき、話題の開始地点(タネ)は「みんなAIONやるんかい?」です。

開始地点からしか抜粋してないから開始地点もクソもないけど。

 

今20:39だとすると、「聞く」というのは

「みんなAIONやるんかい?」、「PC的にきつそう」、「だよねー」を入力すること。

もっと前の発言があればそれも入力します。

 

「話題抽出」は20:39までの発言に繋がりがあることを見つけること。ここでは3行全部。

「話題理解」はこの3行の発言から「あっ、AIONのプレイ予定の話をしているっ!」と読み取ること。

「話題抽出」と「話題理解」は同時だと思います。

内容をみないで繋がりなんて見つけられるわけないし、

繋がりを認識しなければそもそも話題という概念がなくなってしまうから。

 

「発言作成」は「AIONのプレイ予定」の話が伸びるような発言を

自分の知識や経験、感情から作成すること。

「AIONって課金高すぎだろ死ね!」と思っているので、

その旨を含む発言を作成したことにする。きっとあってるはず!

 

そして「課金unkだからやらない」というプレイ予定を実際に「発言」する。

結果として「AIONのプレイ予定」の話題はちゃんと伸び、めでたしめでたしというわけです。

そして「AIONのプレイ予定」の話題は、AIONについて否定的な見解を示すユーザが目立ったために

「AIONはアカン」という話題に変質しています。

 

 

というわけで、まぁ例外もあるでしょうけど一応このモデルで説明できる例も多い気がするので

これに合わせた仕組みを持つ人工無脳をつくっていきたいと思います(´∀`*)



どんな人工無脳にしようカナ。


ん、あ・・・目標でしたね、目標。

レポートやっててすっかり忘れてた☆ミ

 

じゃあ目標~。

  1. 人々の会話から半自動学習を行えるようにする
  2. 時々でもいいので人をクスリとさせる発言を行えるようにする
  3. チャットだけでない何か一芸を持たせる

抽象的だけど、大体こんな感じを目指してゆるくがんばります。

 

何もかも新しいことをしなければいけないので

たぶん完成までまっすぐ進めず、ぐねぐね迷うと思いますが。

勉強ってことで。

 

だれも期待してないはずだけど、自分だけワクテカして完成を待ちたいと思います。

hehe…



人工無脳つくるお…!


なんとなく関係なくもない研究してるし

人工無脳つくってみようかな・・・っ!

 

人工無脳(じんこうむのう)とは、人工知能に対応する用語で、英語圏ではchatterbot、もしくはchatbotと呼ばれ、その訳語として会話ボットあるいはおしゃべりボットとも呼ばれることがある。 (wikipedia – 人工無脳)

 

(´・ヮ・`)へぇ

まぁ、人間様みたいに考えてるわけじゃないけど、何かしゃべって面白いものです。たぶん。

有名なものに、uzuraとかがあります。

六ヶ月くらいuzuraを生身の人間だと勘違いしていた人が出るくらい頭よさげです。

 

 というわけでどんなのを作ろう。

目標を決めないと進めない体質なのでアバウトでもいいから決めてみるヨ。

 

・・・明日ね!




うらんさん備忘録 , WordPress - Daydream 2.0 , Entries (RSS) , Comments (RSS).