COOKPADのレシピのカロリーを測定するWebサービス(FoodMeter)作った

最近良く自炊をしていてCOOKPADが欠かせないのですが、各レシピのカロリー等が見れたらもっと嬉しいだろうという事で、COOKPADに掲載されているレシピの栄養成分を計測するWEBサービスを作りました。食品を測定するので、FoodMeterという名前にしました。まぁそのまんまですね。環境はGoogleAppEngine+app-engine-patchです。

Foodmeter ScreenShot
Foodmeter ScreenShot

FoodMeterへアクセス!

やっている事は単純でして、Cookpadのレシピと文科省の食品データベースを無理矢理マッシュアップしています。例えば先ほどのスクリーショットのレシピを例にとって説明しますと、

  1. まずCookpadに記述されている鶏もも肉や醤油と言った材料一覧を取得し、
  2. 材料の一つ一つについて食品データベースのと照合して、材料と栄養データを関連づけて、
  3. その後トータル値を算出し、結果をGoogleChartで描画しています。

何をCookpadのレシピを料理する際に、どんな栄養を摂取する事になるのかが見れて割と面白いです。もちろん参考程度ではありますが、もしかするとダイエットや健康な食生活に少し役に立つかもしれません。まだアイデアベースですが、色々と便利な機能が思い浮かぶので徐々に育てて行きたいなぁと思っています。良かったら使って下さいませ。

さて、少し苦労した点について書きます。
2つのデータソースを結びつけるだけの単純なサービスですが、えらく作るのに時間がかかりました。延べ1ヶ月半くらい掛かっています。何が問題だったか、一言で言うと日本語の表現の多様性です。例えば「鶏もも肉」という材料一つとっても「鶏肉もも」や「とり肉のもも」、「鳥モモ」など多様な表現があります。
平仮名、カタカナ、漢字の組合せはまさに無限大なわけです。そこで、1000件程度のレシピを解析して、多く見られる表現から順に一つ一つ、手でマッピングデータを作りました。このマッピングデータの作成に実際工数の8割くらいかけてしまった計算です。なので現状では解析できないデータが多く存在しています。食品データベースにそもそも登録されていない場合もあるのですが、マッピングデータが足りていないのが主な原因です。もちろん解析できなかった情報は全てログに残しており、少しずつ改善していきますが、手作業に嫌気がさしていて、何か上手い方法は無いのかなぁと思案しているところです。

たかが料理の材料でこの様でして、もっと広いドメインの情報を一括で処理するとなると今回の方法は破綻しています。処理対象として日本語を扱う人達は一体どうやって、表現のぶれを吸収してるのか気になります。誰か知ってたら教えて下さいませ。

1 thought on “COOKPADのレシピのカロリーを測定するWebサービス(FoodMeter)作った”

Leave a Reply

Your email address will not be published. Required fields are marked *