Ingredient-Parser 2.0.0版本发布:食材解析工具的重大升级

Ingredient-Parser 2.0.0版本发布:食材解析工具的重大升级

项目简介

Ingredient-Parser是一个专注于解析食谱食材列表的Python工具库。它能够将自然语言描述的食材用量信息(如"2汤匙黄油或橄榄油")转换为结构化的数据格式,包括数量、单位、食材名称等关键信息。这个工具在食谱管理、营养计算、购物清单生成等场景中非常有用。

2.0.0版本核心变化

1. 数据结构重大调整

新版本对解析结果的数据结构进行了重要调整:

  • ParsedIngredient.name字段从单一值改为IngredientText对象列表。当解析器识别出多个备选食材时(如"黄油或橄榄油"),会返回包含多个元素的列表;如果未识别出食材名称,则返回空列表。

  • 移除了quantity_fractions参数,现在IngredientAmount.quantityIngredientAmount.quantity_max直接返回fractions.Fraction对象。开发者可以通过float()函数将其转换为浮点数,如round(float(quantity), 3)进行四舍五入。

2. 新增依赖项

新版本引入了floret库作为依赖项,这是一个高效的词嵌入工具,用于提升模型的特征表示能力。

功能增强

1. 备选食材识别

解析器现在能够智能识别并分离出配方中的备选食材选项:

# 简单示例
parse_ingredient("2 tbsp butter or olive oil").name
# 返回两个IngredientText对象:butter和olive oil

# 复杂示例
parse_ingredient("2 cups chicken or beef stock").name
# 返回chicken stock和beef stock

开发者可以通过设置separate_ingredients=False来禁用此功能,此时将只返回一个食材名称。

2. 预处理标记增强

新增了PREPARED_INGREDIENT标记,用于标识处理后的食材量(如"可产出2杯..."中的量)。

3. 单位转换功能

新增了convert_to()方法,支持在IngredientAmountCompositeIngredientAmount对象间进行单位转换:

p = parse_ingredient("1 8 ounce can chopped tomatoes")
# 将8盎司转换为克
p.amount[1].convert_to("g")  # 返回226.80克

注意:当数量或单位是字符串时无法进行转换。

模型改进

新版本在模型层面引入了自定义词嵌入作为特征,这得益于新加入的floret库。词嵌入技术能够更好地捕捉食材名称和烹饪术语的语义关系,从而提升解析准确率。

升级建议

对于现有项目升级到2.0.0版本,开发者需要注意:

  1. 检查所有使用ParsedIngredient.name的代码,适应新的列表结构
  2. 移除对quantity_fractions参数的依赖
  3. 考虑是否需要安装新的floret依赖项
  4. 评估是否启用备选食材分离功能

这个版本通过更精细的数据结构和更强大的解析能力,为食谱管理和食品分析应用提供了更专业的技术支持。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值