如何设计出建议可行烹饪食谱的算法?


15

我的课程中曾经有一位资深人士,他创建了一种算法,可以建议烹饪食谱。首先,各种疯狂的食谱都会出现。然后,她将用真实的食谱训练烹饪算法,并最终提出非常好的食谱。

我相信她使用了与贝叶斯定理或聚类有关的东西,但是她早已不复存在,算法也是如此。我已经在互联网上搜索过,但是寻找烹饪食谱会产生任何结果,但不是我想要的结果。所以,我的问题是:

可以使用哪些技术来设计(随机地)提出可行配方的算法(不使用固定配方的数据库)?

为什么我要寻找烹饪算法呢?好吧,这是真实世界中底层概念应用的一个很好的例子,这种算法在更接近真实世界的不同设置中很有用。


1
可能值得研究各种类型的进化算法
亨利

7
...或为了减轻光线,这来自xkcd
亨利

2
@亨利:您会使用哪种功能进行健身?这是问题的重点!
拉斐尔

1
投票结束的人可以解释投票背后的原因吗?投票关闭而不给出理由并不能帮助OP改善他的问题。
亚历克斯十布林克

1
评论似乎比问题本身更具异国情调。
Oeufcoque Penteano '04年

Answers:


4

嗯,使用贝叶斯定理从旧食谱中提取出新食谱。我想您首先会希望算法将成分分解成它可以理解的形式(不确定我们是否为此使用了NLP,或者如果您自己手动输入数据,那么这里和那里都不是。) 。

我设想这样的事情。

测试数据分析。现在,我们有了一个配方清单,以及每种成分与另一种成分一起发生的概率以及数量。获得这些数据后,您将使程序随机制作新配方。首先,它循环浏览所有已知成分的列表,然后从中随机选择一种主要成分,然后使用给定另一种成分的成分的概率开始添加更多随机成分,同时匹配适当的训练数据以获取数量和兼容性配料。

可能我建议在创建新配方时向程序提供诸如以下信息:我想要甜的东西,酸的东西,或者例如主要由小麦制成的东西。

希望这会有所帮助。


3

有关以美国为中心的近2000种食谱的广泛数据集,请查看《武装部队食谱服务》。这不会回答您的问题,但会为您提供实际的培训数据。

对于大多数人来说,问题的要求可能很难表达,所选的方法可能最终会以您建议的方式隐式调整适应性。中部的食物是非常特定于文化的,如果不进行大量调整,该方法可能会很差地传播。

这还需要大量的语义和领域知识来准备更多,而不仅仅是成分列表。毕竟,咖啡风味的冰淇淋,威化饼,咖啡厅,羊角面包和意大利面将是无法区分的。


“这不能回答您的问题”-确切的说,所以应该做个评论。我看到您还不能发表评论;我标记为要转换。
拉斐尔

@Raphael:不进行转换,因为它太长了,尽管它可能不是理想的答案,但总的来说,它确实试图解决该问题。如果您觉得它没有帮助,请对其进行否决。Pekka,尽管这可能不是新烹饪艺术的最高产来源,但它是一个有趣且相关的问题...如果您可以扩展答案以讨论开发这种算法的细节,那么它可能会更受欢迎。
Shog9 2012年

3

配方生成通常用作基于案例的推理系统的示例应用程序。它甚至在Wikipedia Page上用作示例。谷歌搜索“基于案例的推理食谱”会产生大量结果。


1

您要寻找的算法类别是强盗。它们通常用于处理分类问题的探索部分。

一种基本方法是将配方表示为有限的组件包(具有最多k个非0值的布尔向量),并使用LinUCB选择一组组件。那么反馈将是“喜欢”或“不喜欢”。当然,如果您是贝叶斯人,则可能更喜欢使用Trueskill(使用Adpredictor变体)。

较不基本的东西将需要使用内核而不是线性分隔。内核ucb可以帮助处理该部分。但是在某些时候,我认为关注食物的化学成分会很有用,因为最后您可能希望在不同的基本口味之间取得平衡。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.