gpt4 book ai didi

regex - 解析食谱的自然语言成分数量

转载 作者:数据小太阳 更新时间:2023-10-29 06:37:25 27 4
gpt4 key购买 nike

关闭。这个问题需要更多focused .它目前不接受答案。












想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post .

去年关闭。




Improve this question




我正在构建一个 ruby​​ 配方管理应用程序,作为其中的一部分,我希望能够将成分数量解析为可以比较和缩放的形式。我想知道这样做的最佳工具是什么。

我最初计划使用复杂的正则表达式,然后使用其他一些代码来转换人类可读的数字,例如 twofive转换成整数,最后的代码将转换为 1 cup3 teaspoons进入一些基础测量。我控制输入,所以我将实际成分分开。但是,我注意到用户输入了抽象测量值,例如 to taste1 package .至少对于抽象的测量,我想我可以忽略它们并进行缩放,然后抓取它们之前的任何数字。

这里还有一些例子

1 tall can
1/4 cup
2 Leaves
1 packet
To Taste
One
Two slices
3-4 fillets
Half-bunch
2 to 3 pinches (optional)

这有什么技巧吗?我注意到用户似乎对什么是数量有些困惑。我可以尝试执行更严格的规则并插入诸如 tall can 之类的事情。和 leaves进入成分部分。但是,为了强制执行,我需要能够传达无效的内容。

我也不确定我应该将数量转换成什么“基础”度量。

这些是我的目标。
  • 能够扩展食谱。 任意测量单位,如packages不必缩放,而是精确的,如 cups或者ounces需要。
  • 找出“主要”成分。 在这个问题的背景下,这主要是通过弄清楚配方中最大的成分是什么来完成的。在生产中,必须有某种基于成分类型的修饰符,因为很明显,flour几乎从未被认为是“主要”成分。然而,chocolate可以少用,还可以说是chocolate cake .
  • 标准化输入。 为了在网站上保持一些一致性,我想保持一致的缩写。例如,代替 pounds ,应该是 lbs .
  • 最佳答案

    您提出了两个问题,识别/提取数量表达式(语法)并弄清楚它们的含义(语义)。

    在弄清楚正则表达式是否足以 之前认识 数量,你应该让自己对它们的样子有一个很好的模式(语法)。您的示例如下所示:

    <amount> <unit> [of <ingredient>]

    哪里 <amount>可以采取多种形式:
    whole or decimal number, in digits (250, 0.75)
    common fraction (3/4)
    numeral in words (half, one, ten, twenty-five, three quarters)
    determiner instead of a numeral ("an onion")
    subjective (some, a few, several)

    金额也可以表示为两个简单的范围 <amount> s:
    two to three
    2 to 3
    2-3
    five to 10

    然后你有单位本身:
    general-purpose measurements (lb, oz, kg, g; pounds, ounces, etc.)
    cooking units (Tb, tsp)
    informal units (a pinch, a dash)
    container sizes (package, bunch, large can)
    no unit at all, for countable ingredients (as in "three lemons")

    最后,有一种表达式的特殊情况,永远不能与数量或单位组合,因此它们可以有效地作为两者的组合:
    a little
    to taste

    我建议将此作为 处理一个小型解析器,您可以根据需要进行详细或粗略的制作。如果这是您选择的工具,那么为所有这些编写正则表达式应该不会太难,但正如您所见,这不仅仅是文本替换的问题。拉出零件并将每种成分表示为三重 (amount, unit, ingredient) . (对于可数,使用特殊单位“件”或其他单位;对于“一点”等,我会将它们视为特殊单位)。

    这留下了 的问题转换或比较 数量。单位换算已经在很多地方进行了,所以至少对于官方单位,您应该可以轻松获得换算表。例如,如果您输入“将 4 盎司转换为克”,Google 就会执行此操作。请注意,一汤匙是 either three or four tsp ,取决于国家。

    对于定义明确的单位,您可以很容易地标准化为您喜欢的单位,但非正式单位有点棘手。对于“捏”、“短划线”等,我建议找出近似重量,以便您可以正确缩放(十捏 = 2 克,或其他)。 jar 头之类的东西是没有希望的,除非你能查到特定产品的尺寸。

    另一方面,主观数量是最简单的:如果你“品尝”十倍,它仍然是“品尝”!

    最后一个想法: 还需要某种成分数据库。识别主要成分,因为大小很重要:“一个鸡蛋”可能不是主要成分,但“一只小山羊,四等分”很可能是。我会考虑将其用于版本 2。

    关于regex - 解析食谱的自然语言成分数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12413705/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com