ラーメンレビューからの自動採点 - やってみる理由

ラーメンデータベースのレビュー

私事ではあるのだけど、数年前からラーメンを食べてラーメンデータベース - レビューとランキングで探す。全国ラーメン屋さんデータベースというサイトにレビューをアップしています(ちなみに私のページはこれ)。
最初はラーメンのレビューをどう書いていいのか勝手がわからず、好き勝手に書いていたのだけど数百回くらいレビューを書いたあたりから、自分の中で

  • ラーメンのレビューに必要な構成要素とは何か。
  • どう書けば内輪受けにならない、汎用的な価値を持つレビューとは何か。

ということを考えるようになってきました。
で、今のところ

  • 点数の基準をきちんと決めておく。
  • 定型的なフォーマットを使う。
  • レビューの構成要素を分けて箇条書きにする。
  • 不必要な造語、一般の人が理解しづらいジャーゴンを使用しない。
  • (日記ではないので)ラーメンや店舗に関する情報以外は極力記述しない

といった自分なりの規則を作ってレビューを作成することにしています。
(そのためか、ラーメンデータベース内でも目立ってはいないし、人気もそんなに高くはない。目立ちたくもないのでそれでいいのだけど)

レビューと点数

そして定型的なレビューをそこから1000回以上サイトにアップしたのですが、最近思ったのは
「同一の人間が書いたラーメンのレビュー文章と点数はきちんと相関関係にあるのか?」
「もし相関関係があれば、レビュー文章から点数を推論できるのではないか?」
ということです。
そして、そこに機械学習が使えないか、というのが動機です。

どうやって実現する?

しかし、私は機械学習なんか今までやってみたこともない、データサイエンティストのように理論を知っているわけでもない。とても自分で機械学習のロジックを実装なんてできないのですが、幸い、ここ数年で機械学習を使うことのできるフレームワークやライブラリがあるようなので、それを使わせてもらうことにする。
とりあえず、ぱっと調べて思いつくのは

  • Jubatus
  • Mahout

なんだが、たかだか自分の持っているレビューの学習と推論をさせるだけなので、あまり大掛かりなフレームワークを使いたくはない。それに自分の使える環境はただのノートパソコン(Let's Note)にしかないので、分散化とかそんなことまでとても考えられない。
リアルタイムな分析をしたいわけではないので、Jubatusだとオーバースペック。そうなるとMahoutということになる。
できればHadoop環境も面倒だから構築したくないので、Mahoutの逐次実行で実現できればいいのだが・・・

おわりに

  • やる気があればつづく・・・
  • しかしなあ、ラーメンデータベースのユーザって12万人以上いるはずなのに、こういうプロジェクトをやろうという人っていままでいなかったのかなぁ。
    • もしいれば是非ともノウハウを教えてほしい。