contenttaichino.com永遠のネバーランドCOOKPADのレシピのカロリーを測定するWebサービス(FoodMeter)作った最近良く自炊をしていてCOOKPADが欠かせないのですが、各レシピのカロリー等が見れたらもっと嬉しいだろうという事で、COOKPADに掲載されているレシピの栄養成分を計測するWEBサービスを作りました。食品を測定するので、FoodMeterという名前にしました。環境はGoogleAppEngine+app-engine-patchです。ScreenShotFoodMeterへアクセス!やっている事は単純でして、Cookpadのレシピと文科省の食品データベースを無理矢理マッシュアップしています。材料の一つ一つについて食品データベースのと照合して、材料と栄養データを関連づけて、その後トータル値を算出し、結果をGoogleChartで描画しています。何をCookpadのレシピを料理する際に、どんな栄養を摂取する事になるのかが見れて割と面白いです。参考程度ではありますが、もしかするとダイエットや健康な食生活に少し役に立つかもしれません。アイデアベースですが、色々と便利な機能が思い浮かぶので徐々に育てて行きたいなぁと思っています。良かったら使って下さいませ。苦労した点について書きます。2つのデータソースを結びつけるだけの単純なサービスですが、えらく作るのに時間がかかりました。延べ1ヶ月半くらい掛かっています。何が問題だったか、一言で言うと日本語の表現の多様性です。「鶏もも肉」という材料一つとっても「鶏肉もも」や「とり肉のもも」、「鳥モモ」など多様な表現があります。平仮名、カタカナ、漢字の組合せはまさに無限大なわけです。そこで、1000件程度のレシピを解析して、多く見られる表現から順に一つ一つ、手でマッピングデータを作りました。このマッピングデータの作成に実際工数の8割くらいかけてしまった計算です。現状では解析できないデータが多く存在しています。食品データベースにそもそも登録されていない場合もあるのですが、マッピングデータが足りていないのが主な原因です。解析できなかった情報は全てログに残しており、少しずつ改善していきますが、手作業に嫌気がさしていて、何か上手い方法は無いのかなぁと思案しているところです。たかが料理の材料でこの様でして、もっと広いドメインの情報を一括で処理するとなると今回の方法は破綻しています。処理対象として日本語を扱う人達は一体どうやって、表現のぶれを吸収してるのか気になります。誰か知ってたら教えて下さいませ。