Skip to content

fix: refine calorie estimation - #1847

Open
neverbiasu wants to merge 12 commits into
Anduin2017:masterfrom
neverbiasu:feature/calorie-estimation-system
Open

fix: refine calorie estimation#1847
neverbiasu wants to merge 12 commits into
Anduin2017:masterfrom
neverbiasu:feature/calorie-estimation-system

Conversation

@neverbiasu

@neverbiasu neverbiasu commented Jul 26, 2026

Copy link
Copy Markdown

变更说明

本 PR 展示热量估算系统在 HowToCook 菜谱数据上的应用结果,主要更新 dishes/ 目录下菜谱的预估卡路里字段,不提交估算系统的完整实现代码。

本次结果按菜品分类拆分提交,便于审核、定位和回滚。

计算方法

  1. 解析菜谱中的食材、数量和单位。
  2. 将常用单位换算为克重,并处理可食部比例。
  3. 使用香港 CFS、新加坡 HPB、日本 MEXT 等营养数据进行食材匹配。
  4. 按每 100 克热量计算食材热量,再根据份数得到每份估算值。
  5. 通过主料、份数、食材数量和待复核比例等质量门槛后,才允许写回菜谱。

这些数值是基于菜谱文本和公开营养数据的估算,不应视为营养标签或实验室测量结果。

0 值说明

当前输出中发现 108 道菜谱得到 0 大卡:

  • 99 道没有成功计入任何食材,主要涉及食材解析、单位换算或营养数据库匹配失败。
  • 9 道只成功解析出水、盐或冰块等零热量项,不能据此判断整道菜没有热量。

因此,0 大卡不作为真实热量结果。后续处理原则是:阻止 0 值自动写回,暂时保留原有值,并在修复解析、单位和匹配问题后重新计算;不直接用人工猜测值替换。

注意

Pull Request 提交后,预计 1 分钟内将会得到自动化格式检查的结果。只有通过自动化代码检查的 Pull Request 才会被人工审核。

  • 请确保此 Pull Request 能够通过自动化代码检查。

签署

必须签署下面的对话框才能开始审核。

HowToCook 仓库采用了 The Unlicense 协议

菜谱在签入前,必须确保其可以直接声明进入 "公共领域"(public domain)。这意味着一旦合并后,任何人都可以自由复制、修改、发布、使用、编译、出售或以菜谱的形式或菜的形式分发,无论是出于商业目的还是非商目的,以及通过任何手段。

  • 我确保了我的内容不涉及版权内容,并且授权它 The Unlicense 协议。

@neverbiasu
neverbiasu force-pushed the feature/calorie-estimation-system branch from d24f5e3 to df7b9ee Compare July 27, 2026 00:51
@neverbiasu neverbiasu changed the title feat: calorie estimation system with quality gate fix: refine calorie estimation Jul 27, 2026
@Anduin2017

Copy link
Copy Markdown
Owner

话说这是啥算法算的,为什么很多0?

我需要一些材料支撑证明这个新数据真的比老算法可靠

@neverbiasu

Copy link
Copy Markdown
Author

@Anduin2017 这个算法是基于食材明细的规则计算:先从菜谱中解析食材、数量和单位,再统一换算成克重;然后匹配营养数据库中的每 100 克热量和可食部比例,计算每种食材的热量,最后汇总并按份数折算
现在出现的 0,不是算法判断这道菜没有热量,而是相关食材没有被成功解析或匹配,系统又把“没有计算结果”默认成了 0。这个问题后续需要优化解析逻辑;如果暂时修不好,应该先回退
另外,关于你提到的材料,想确认一下:是否有必要把全部代码都提交上去?还是只需要提交核心算法代码、营养数据库说明、运行结果和验证报告?如果只是为了说明原理和证明结果可靠,可能不需要提交全部辅助脚本和中间文件

@Anduin2017

Copy link
Copy Markdown
Owner

想确认一下:是否有必要把全部代码都提交上去?还是只需要提交核心算法代码、营养数据库说明、运行结果和验证报告?如果只是为了说明原理和证明结果可靠,可能不需要提交全部辅助脚本和中间文件

不用完全checkin。在这个pr里介绍一下即可。因为如果计算差异过大,我担心后续社区可能会质疑数据来源。

@neverbiasu
neverbiasu force-pushed the feature/calorie-estimation-system branch from e7a97f8 to 2ce91a1 Compare July 28, 2026 18:18
@neverbiasu
neverbiasu force-pushed the feature/calorie-estimation-system branch from 2ce91a1 to 9769763 Compare July 28, 2026 18:21
@neverbiasu

Copy link
Copy Markdown
Author

不用完全checkin。在这个pr里介绍一下即可。因为如果计算差异过大,我担心后续社区可能会质疑数据来源。

热量根据菜谱原料、用量和份数计算:统一换算原料重量,匹配营养数据库,按每 100g 热量及可食部比例汇总,再折算为每份热量

数据参考香港食物营养数据、新加坡卫生促进局数据、日本文部科学省数据、中国食物成分查询平台和 USDA FoodData Central,无法可靠解析或匹配的菜谱保留原值

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants