形態素解析エンジンMeCabにて文章中から短歌を抽出
概要
偶然57577になっている文章を短歌としてつぶやく Twitter の bot を作りました。
フクロウが鳴くと明日は晴れるので洗濯物を干せという意味 #tanka
ウィキペディア日本語版「フクロウ」より http://t.co/Dm1uHcQdzR
— 偶然短歌bot (@g57577) 2014, 12月 31
再帰的アルゴリズムが有効な問題として有名であり #tanka
ウィキペディア日本語版「ハノイの塔」より http://t.co/vm2ZqwImKi
— 偶然短歌bot (@g57577) 2014, 12月 31
文章はウィキペディア日本語版を対象としました。
作り方
- jawiki-latest-pages-articles.xml.bz2 をダウンロード。
- WP2TXT で上記を扱いやすい形式に変換。
- このスクリプト で57577になっている文を抽出。数時間かけて(遅い)、1万くらい見つかる。ここまでローカルの作業。
- 上記で抽出したもの中から適当につぶやく。Heroku を使っている。
制作記
以前、誰か(たぶん nai さん)がツイートで偶然57577になっている文章を短歌として紹介していて、面白いなと思ったのがきっかけで作りました。
MeCab を使って文字数数えれば簡単にできるだろうと思っていたんですが、単純に57577で抽出しても短歌になっていないと思われるものが多くて、そこからが苦労しました。なので、抽出しては抽出ルールを見直して、抽出してはまた抽出ルールを見直して…、というのを繰り返す作業が主でした。この作業である程度ましなものが残るようになりましたが、まだイマイチなのも残ってしまっています。
地味に困ったのが、ウィキペディアには本当の短歌そのものも載っているので、それも引っかかってしまうことです。本物の短歌は除いたほうがよいと思うんですが、自動で弾くいい方法を思いつかず、残念ながら抽出済みのものから自分が気づいたものを手作業で除いています。
あと、Twitter でつぶやく頻度は、5・7・5・7・7時間おきにしました。
感想
抽出されたものを眺めると、たまに「おっ」となるのがあるので、まあまあ面白いのができたかなと思います。 現状 7,000 くらいあるので全部は見てないですが、以下のが気に入ってます。
ある道を右に曲がれば東大で、まっすぐ行けば公園なのね
今回これを作っていて思ったのが、抽出の仕方は個人の意向が入るところなので、別の方がやればまた違ったものが出てくると思います。対象となる文章も、ウィキペディア以外にもあります。なので、いろんな人が各々探し出した偶然の短歌を披露しあう歌会みたいなのがあれば面白いかな…と思いました。