献立を提案するようなものを作りたいなと思ったので、
料理どうしの距離を計算したり、近い料理が分かるといいなあと思いました。
そこで、料理の情報をネットで拾って色々試してみました。
今回は「味の素パーク」さんの情報を使ってみました。
料理名と料理の材料がたくさん載っています。
料理の材料が似ていれば料理も似ているだろうな、と思ったので、
材料が似ているものどうしが距離が近くなるようにマッピングしようと思いました。
自然言語処理的なアプローチとして レーベンシュタイン距離を使おうかな、
ととりあえず考えましたが、
レーベンシュタイン距離は2つの材料が同じか・違うかという情報のみに基づいて計算されるため、勿体無い感じがします。
ブロッコリーとカリフラワーが似てるとかいった情報も学習モデルに組み込みたいところです。
そこで今回はdoc2vecを使ってみることにしました。
これなら材料間の類似性もうまく扱えそうです。
doc2vecは文書をベクトルにする技術ですが、
今回は料理を文書、材料を単語とみなして扱い、料理をベクトルにします。
学習結果
おすすめレシピがツイートされていましたので、これらに近い料理を抽出してみます。
☆今日のおすすめレシピ☆
— 味の素パーク (@AJINOMOTOPARK) 2019年12月14日
\寒い日の朝に♪/
パンにしみたほうれん草ポタージュが絶品😋
「ほうれん草のひたパン」
⇒https://t.co/V6Nut18Nlu
#クノール #ほうれん草のポタージュ
#パン #朝食 pic.twitter.com/4nJX15a1IB
3位 ひたパン
まあまあそのままであんまり面白くないですけど、学習はうまくいってそうです。
もうひとつやってみます。
☆今日のおすすめレシピ☆
— 味の素パーク (@AJINOMOTOPARK) 2019年12月10日
油揚げにロールキャベツの具材をイン☆
簡単!ボリューム満点😋
「油揚げのロールキャベツイン」
⇒https://t.co/FSlAv0f7C0
#コンソメ #顆粒タイプ #油揚げ pic.twitter.com/z1NcDCug7j
1位 豆腐とコンビーフのピカタ
2位 豚じゃがのポトフ
こちらは少し変わった感じのものも出てきました。
油揚げ→豆腐、ロールキャベツ→コンビーフ みたいな組み合わせでしょうか・・・・
2つの料理の合成
ベクトルにしましたので、合成ができます。
足して2分の1にして中間点を出してみます。
(ハンバーグステーキ + カレーピラフ) / 2
= カレーフライドポテト
ハンバーグカレーを期待しましたが、付け合わせのポテトに反応してしまいました。
感想
合成がなかなか面白そうなので、この辺を使って献立提案できたら新しいなと思いました。