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

自分の分身的なtwitter botつくった、または自分の分身というものについて

 

JS+Node.jsによるWebクローラー/ネットエージェント開発テクニック

JS+Node.jsによるWebクローラー/ネットエージェント開発テクニック

 

この本が面白くて、Node.jsの勉強兼ねていろいろ試してみている。で、本の内容を応用して、自分の分身っぽいtwitter bot をつくった。

 

分身のつぶやき

基本的に意味わからないけど、「自分こういうツイートしてもおかしくないな」というくらいには自分感(?)がある。最初はいらすとやの豆腐イラストをアイコンにしてたけど、自分の分身感を出すために自分と同じアイコンにした。俺とこいつ両方フォローしてくれてる数人には紛らわしくてすまん。俺自身も間違わないように名前に「'」つけておいた。

 

仕組みとか

 仕組みとしてはたぶんこの手のbotではスタンダードなやり方で、

  1. ツイッターの設定画面から自分の過去のツイート情報全部ダウンロード
  2. そこからツイート本文だけ抜き出して、若かりし頃につぶやいてた自分の本名など、一部テキストを削除したテキストファイルを作成(これもjsで一括処理)
  3. MeCabで形態素解析
  4. 分解した形態素をマルコフ連鎖(しゅうまい君で有名なアレ)で連結、テキストを生成
  5. そのテキストをツイート

って感じ。cron設定して3~5の処理を30分に1回自動で行っている。

勉強のつもりで作ってみたけど、なんだかんだで愛着湧いてきて、どんなツイートしてくれるか楽しみに待ってしまう。楽しみすぎて一度15分に1回ツイートするようにしたけど、それだと嬉しみが半減してしまう感があったのですぐ30分毎に戻した。

マルコフ連鎖については上の本に載っていたとおりなんだけど、自分のツイートは普通のテキストと違って「。」をあまり使わないので、文の終わりが判別しにくい。なので「@」をダミー文字として使って擬似的にツイートの終わりを作ったりしている。

しゅうまい君と比べるとひとつのツイートが若干長めな気がするけど、たぶん自分のツイート自体がちょっと長めなのが多いからなのかなという気がしている。

 

 自分の分身とは

「分身」というと、ナルトの影分身みたいな感じで、どこかに本体がいるはずで、今回はそれが自分である。そこには明確な主従の関係があって、自分はそいつを意のままに動かすことができる、それが一般的な「分身」だと思う。コントロール可能であることが、ある意味「分身」の条件のひとつなのかもしれない。

みなさんは「自分の分身」というやつがいたら、そいつに何をしてもらいたいと思うだろう。自分の代わりに仕事やってくれーとか、ゲームの発売日の列に並んどいてくれーとか、または消費期限切れた食物を毒味させるとか、わりと「自分がやりたくないこと」をさせるイメージがあるんじゃないだろうか。そんなことはない?いいね。

自分を「主」として、分身を「主のためにはたらく従」と扱うのはよくあるアレかもしれないが、もうひとつの考え方としては、「なりなかったけど色々なものが邪魔してなれなかった自分」を分身に実現してもらうことはできないだろうか、ということだ。

色々なもの、たとえば社畜なので時間がない、とか、周りの目を気にして自分をさらけ出して振る舞えない、とか。そういう現代社会の中での制約が、本当になりたい自分を妨げているとしたら、そういったしがらみが無い自らの分身にそこを目指してもらう、という考え方はアリではないだろうか。

その結果自分が得られるものは、もしかしたら何かの到達感かもしれないし、もしかしたらネガティブなものかもしれない。はたまた、そこに到達した結果、そいつは「自分の分身」ではなく、独立した何かになってしまうかもしれない。

 

独立した分身、まったくもってコントロール不可能になってしまったこいつは、その後どうなるのだろう。たとえば今回つくったbotのアカウント情報を完全になくしてしまって、誰も触ることができなくなったとしたら。そいつは僕という存在がかつて残した文字列をもとに、あらたな文字列をインターネットの海に吐き出し続ける。他の人から見ると、アイコンも一緒だし名前もほぼ一緒だし、こいつらは何なんだ、となるかもしれない。さらに全く知らない人から見るとこいつがbotであることもわからず、なんか意味不明のツイートを定期的にしつづける頭おかしい人と思われるかもしれない*1。上のツイート羅列にひとつだけ僕自身のツイートがあったのだけど、読んでる人はそれに気づくだろうか。

こいつがbotであることを知っている、例えば僕とかが全部死んで、こいつがひたすらにつぶやき続けることになったとしたら、もしかしたらこいつは世界から見て「生きている」ことになりはしないか。もちろんこいつはbotなので生きていないと思うが、もはや今の時点でもこいつが生命ではないと、どうやって言い切ることができるのだろうか*2。生きているかどうかは、誰がどうやって決めるのだろうか。

 

後半何言ってるのか自分でもよくわからないけど、それくらい愛着湧いてきたということで。

 

*1:実際にはサーバー止めればこいつは止まる。

*2:この手のbotで、特にユーザーからのアクションに応じて何かしらの返事を返したりするやつは「人工無能」というのに属するらしい