Ruby Twitterを使ってBotを試作しました。

こんにちは

このブログを読んでもらえて嬉しいです。

 

早速ですが、今回作ったものの紹介をします。

今回作ったのは、Twitterのタイムラインからツイートを拾ってきて、品詞分解した後マルコフ連鎖で文章を作ってツイートする、というものです。

 

実際に稼働しているのがこちらのアカウントになります。

わくわくBot (@wakubot) | Twitter

Botとありますが、まだ手動で動かしている段階です)

 

ソースコードGitHubで公開しています。

github.com

 

Rubyを使っているのですが、私の開発環境はWindowsマシンなので少し苦労しました。winでのRuby使いに人権はないみたいな風潮ありませんか?

 

マルコフ連鎖で文章を作るというと難しく聞こえるかもしれませんが、単純に言ってしまえば「直前の単語と繋がる単語をくっ付けて文章を作る」って感じです。

具体例を考えてみましょう。「私はコーヒーが好きだ」という文章と「私はオレンジジュースが飲みたい」という2つのサンプルがあったとします。

すると、文のスタートは「私」になり、「私」に繋がるのは「は」となるので、「私は」という文字列ができます。

ここで、直前に追加した「は」に繋がるのは「コーヒー」か「オレンジジュース」となります。仮に、「コーヒー」を選んだとすると、「コーヒー」に続くのは「が」となります。すると、「私はコーヒーが」という文字列ができます。

ここで、さらに「が」に続く単語を探すと、「好きだ」か「飲みたい」となり、「飲みたい」を選ぶと、最終的に完成した文章は「私はコーヒーが飲みたい」となります。

 

実際にわくわくBotで使われているアルゴリズムは、直前とそのもう一つ前の単語に繋がる単語を追加するというものになっています。このようにすることで、より文脈を維持した形で文章を生成することができます。

 

実装などの話はまた別記事にして公開したいと考えています。

最後まで読んでいただきありがとうございました。