実行可能な調理レシピを提案するアルゴリズムを考案する方法は?


15

私はかつて、料理のレシピを提案するアルゴリズムを作成したベテランを私のコースにいました。最初は、あらゆる種類のクレイジーなレシピが出てきました。その後、彼女は実際のレシピで調理アルゴリズムを訓練し、最終的には非常に良いレシピを提案します。

彼女はベイズの定理やクラスタリングに関連するものを使用したと思いますが、彼女はずっといなくなっており、アルゴリズムもそうです。私はインターネットを検索しましたが、料理のレシピを探すとどんな種類の結果も得られますが、私が探しているものではありません。だから、私の質問は:

どのアルゴリズムを使用して、実行可能なレシピを(ランダムに)提案するアルゴリズムを考案できますか(固定レシピのデータベースを使用せずに)。

なぜ調理アルゴリズムを探しているのですか?まあ、それは基礎となる概念の現実世界のアプリケーションの非常に良い例であり、そのようなアルゴリズムは現実世界により近いさまざまな設定で役立つ可能性があります。


1
さまざまなタイプの進化的アルゴリズムを
ヘンリー

7
...またはライトレリーフのために、これはxkcdから
ヘンリー

2
@Henry:フィットネスにはどの機能を使用しますか?それが質問の要点です!
ラファエル

1
閉会に投票した人は、投票の背景にある理由を説明できますか?理由を説明せずに閉会するという投票は、OPが質問を改善するのに役立ちません。
アレックス10ブリンク

1
コメントは質問自体よりもエキゾチックに見えます。
ウーフコックペンテアーノ

回答:


4

うーん、ベイズの定理を使用して古いレシピから新しいレシピを作成します。最初に、アルゴリズムが成分を理解できる形式に分解することを望むと想像します(そのためにNLPを使用しているかどうか、または自分でデータを手動で入力した場合、それはここにもそこにもありません)。 。

私はこのようなものを思い描いています。

分析されたテストデータ。これで、レシピのリストと、各成分が別の成分と一緒にどのような量で発生するかがわかります。このデータを取得したら、プログラムで新しいレシピをランダムに作成します。まず既知のすべての材料のリストを循環し、次に主要な材料をランダムに選択し、そこから別の材料を与えられた材料の確率を使用して、よりランダムな材料の投入を開始します。材料。

新しいレシピを作成するとき、プログラムに次のような情報を与えることをお勧めします。甘いもの、酸っぱいもの、または例えば小麦でできたものが欲しい。

うまくいけば、これが少し役立つでしょう。


3

ほぼ2000のレシピの広範な米国中心のデータセットについては、軍隊のレシピサービスをご覧ください。これはあなたの質問には答えませんが、実際のトレーニングデータを提供します。

問題の要件はおそらくほとんどの人にとって明確にするのが難しく、選択されたアプローチはおそらくあなたが提案した方法で暗黙的にフィットネスを調整することになります。geenralの食品は非常に文化固有のものであり、このアプローチはおそらく大規模な調整なしでは非常に不十分に移動するでしょう。

これには、単なる成分のリスト以上のものを準備するために、実質的なセマティックな領域の知識も必要です。結局のところ、コーヒー風味のアイスクリームとウエハース、カフェオレ、クロワッサン、ティラ味uは区別できません。


「これはあなたの質問に答えません」-正確に、それはコメントでなければなりません。まだコメントすることはできません。変換のフラグを立てました。
ラファエル

@Raphael:これは変換されません。長すぎるためです-理想的な答えではないかもしれませんが、全体として問題に対処しようとします。役に立たないと思われる場合は、投票してください。ペッカ、これは新しい料理の芸術の最も生産的なソースではないかもしれませんが、それは興味深い-そして関連する-問題です...そのようなアルゴリズムの開発の詳細を議論するためにあなたの答えを広げることができれば、それはより受け入れられるかもしれません。
-Shog9

3

レシピ生成は、ケースベースの推論システムのサンプルアプリケーションとして一般的に使用されます。ウィキペディアページの例としても使用されています。「ケースベースの推論レシピ」をグーグルで検索すると、多くの結果が得られます。


1

探しているアルゴリズムのクラスは盗賊です。これらは通常、分類問題の探索部分を処理するために使用されます。

基本的なアプローチは、レシピをコンポーネントの限られたバッグ(最大でk個の非0値を持つブール値のベクトル)として表現し、LinUCBを使用してコンポーネントのセットを選択することです。フィードバックは「いいね」または「好きではない」になります。もちろん、あなたがベイジアンなら、Trueskill(Adpredictorバリアントを使用)の使用を好むかもしれません。

それほど基本的ではないものは、線形分離の代わりにカーネルを使用する必要があります。カーネルucbは、その部分の処理に役立ちます。しかし、ある時点で、栄養素の化学組成に注意を払うことが有用になると思います。なぜなら、最終的には、異なる基本的な味のバランスを取りたいと思うからです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.