USDA FoodData Central

美国农业部食品数据中心——五大数据类型统一门户(Foundation Foods/SR Legacy/Survey Foods/Experimental Foods/Branded Foods),公有领域 CC0,免费 API 与 CSV 全量下载,全球营养研究与膳食评估的金标准参考库

来源 USDA ARS 实验室分析(Foundation Foods);SR Legacy(2018 冻结);FNDDS 2021-2023(Survey);同行评审合作研究(Experimental);厂商提交的 USDA Global Branded Food Products Database(月更)发布时间: 2026-10-17最后更新: 2026-10-20 阅读 38
USDA FoodData Central

信息速览

数据集名称USDA FoodData Central
数据类型原始数据,公开数据,表格数据
规模非患者数据集;含 5 类食品记录:Foundation Foods(数千条级)、SR Legacy(约 7,000+ 条、2018 冻结)、Survey Foods(FNDDS 2021-2023,约
接入方式USDA ARS 实验室分析(Foundation Foods);SR Legacy(2018 冻结);FNDDS 2021-2023(Survey);同行评审合作研究(Experimental);厂商提交的 USDA Global Branded Food Products Database(月更)
AI 就绪度

INFOBOX — USDA FoodData Central 一屏速览

维度 内容
本质 美国农业部(USDA)官方食品成分综合数据库,统一门户整合五类数据 + 免费 API + CSV/JSON 全量批量下载
管理方 USDA 农业研究局(ARS)Beltsville 人类营养研究中心(BHNRC);国家农业图书馆(NAL)托管
上线 2019 年,取代运行逾百年的 National Nutrient Database for Standard Reference(SR)
五类数据 Foundation Foods(实验室分析+深度元数据)|SR Legacy(历史综合,2018 冻结)|Survey Foods(FNDDS,服务 NHANES)|Experimental Foods(同行评审合作研究)|Branded Foods(厂商包装食品,月更)
规模 SR Legacy 约 7,000+ 条、每条 150+ 营养素;Branded 数十万至数百万条;全量 CSV 压缩约 460M/解压约 3.1G(2026-04 版)
许可 公有领域(官方声明参照 CC0 1.0),无任何使用限制,仅建议引用
API https://api.nal.usda.gov/fdc/v1,需免费 api.data.gov key;默认 1,000 请求/小时/IP;pageSize 上限 200
上游 FNDDS 是 NHANES「What We Eat in America」膳食模块的配套数据库,与 CDC/NCHS 形成上下游
质量分层 Foundation(可溯源采样元数据)> SR Legacy > Branded(厂商自报)
AI 用途 膳食评估 ground truth、食物图像识别营养估算、营养 App 后端、FDA 标签监管研究、LLM 营养问答校准
获取 网页搜索/批量下载 https://fdc.nal.usda.gov/download-datasets|API key 在 api.data.gov/signup 免费注册
库内互链 NHANES 膳食类条目、营养/肥胖队列条目、食物图像识别条目(互链 rid 由主会话回填)

USDA FoodData Central(FDC)是营养数据世界的「国家基准尺」:当你需要回答「一根香蕉到底含多少钾」「这种麦片每份热量多少」这类问题时,全球大多数膳食评估研究、营养 App、食物识别算法最终都会溯源到这里。它由美国农业部农业研究局(ARS)的 Beltsville 人类营养研究中心(BHNRC)生产、国家农业图书馆(NAL)托管,2019 年上线后统一整合了五种性质迥异的数据类型——从有完整采样元数据的实验室分析值(Foundation Foods),到月度更新的厂商包装食品标签(Branded Foods)。对本库而言,它是少数公有领域(CC0)、无注册门槛(API key 免费)、规模百万级的营养学「金标准参考数据」,是膳食评估、食物图像识别与营养问答类任务的默认 ground truth 来源。

导语读法三则:

  1. 只想拿数据:直奔 §6 获取与许可——注意 API 有每小时限流,全量获取请走批量下载 zip。
  2. 关心数据质量:直奔 §2.1 五类数据对比与 §8 质量坑——能量双记录与 Branded 自报问题是两大雷区。
  3. 做 AI 任务选型:直奔 §7 评估生态与 §9 建议互链点——先分清「选哪类数据做你的任务」。

§0 导读:这个数据集解决什么问题

食品成分数据有一个根本矛盾:没有人能为一盘菜插上传感器。人类膳食与健康研究的每一个结论——从膳食脂肪与心血管疾病的关联,到学校午餐政策的营养达标评估——都必须先回答「人们吃了什么、吃了多少、其中含多少营养素」。这需要一个权威、统一、可机读的「食物→营养素」映射表。美国从 19 世纪 90 年代就开始系统性地建立这张表(Atwater 的食品分析工作),历经 National Nutrient Databank、Standard Reference(SR)各版本,到 2019 年升级为 FoodData Central:不只是换名字,而是把原本一体的数据库拆成按数据来源与质量分层的五类,让使用者能按任务选层——做严谨代谢研究选 Foundation Foods,做人群膳食调查选 Survey Foods,做真实世界食品消费分析选 Branded Foods。

FDC 对 AI 时代的意义有三层。第一层是标注基准:食物图像识别中「图像→营养素」的监督信号几乎都来自 FDC 系数据库;没有它,营养估算模型无从训练与评估。第二层是知识注入:FDC 的结构化营养素表(按 USDA nutrient number 编号)可直接转换为 LLM 的检索库或微调数据,让营养问答有据可查。第三层是监管与公共卫生底座:FDA 标签合规研究、学校供餐营养核算、NHANES 全国膳食摄入估计,全部以 FDC 系数据为计算基准——它是美国营养政策事实上的元数据层。

§0 读法三则:

  1. 本条目主体是「数据库」而非「标注数据集」:没有训练/测试划分、没有 ML 基准榜,评估方式见 §7 的下游应用梳理。
  2. 全文规模数字存在第三方双口径冲突(尤其 Branded Foods 条数),已在 FACTS 与 §8.5 双口径存照,正文按「以官方下载包为准」口径表述。
  3. 检索时「USDA Food Composition Databases」是已停用的旧系统名称(2020 年 3 月 31 日下线),不要与 FDC 混用(坑 1)。

§1 数据集速览:十问十答

Q1:FDC 与老的 USDA 食品数据库是什么关系?
FDC 是老 National Nutrient Database for Standard Reference(SR)的继任者。2019 年上线时,SR 的最后一版以「SR Legacy」形式整体并入(2018 年 4 月发布后冻结),此后 USDA 不再发布 SR 新版本。旧的 Food Composition Databases 查询网站与配套 API 于 2020 年 3 月 31 日停用,所有引用 SR 的文献在复现时应改用 FDC 的 SR Legacy 数据类型。

Q2:五种数据类型有什么区别?
按数据来源与质量递减排列:Foundation Foods 是 USDA 实验室对基础/轻加工食品的现行分析,附带采样元数据;SR Legacy 是历史综合数据(分析值+推算值+文献值混合);Survey Foods(FNDDS)是 NHANES 膳食调查用的通用食品描述;Experimental Foods 是同行评审期刊中 USDA 合作研究的特殊条件食品;Branded Foods 是厂商提交的包装食品标签数据。详见 §2。

Q3:总共多少条数据?
这取决于口径:SR Legacy 约 7,000+ 条、Survey Foods 约 7,000-8,000 条、Foundation Foods 数千条、Experimental Foods 未公布;Branded Foods 是大头,第三方口径从约 38 万(2024)到约 190 万(2025-26)不等,官方不公布固定总数。全量下载包(2026-04-30 版)压缩约 460M、解压约 3.1G。

Q4:每条记录有多少营养素?
Foundation Foods 与 SR Legacy 每条覆盖 150+ 种营养素/食物成分;Survey Foods 覆盖 FNDDS 关键营养素(能量、宏量营养素、部分维生素矿物质);Branded Foods 通常只有标签营养素(15-20 项)加配料表文本。所有记录以 fdcId 为唯一键,营养素按 USDA nutrient number 编号(如 1008=能量 kcal)。

Q5:怎么获取?
三条路:网页端 https://fdc.nal.usda.gov 直接搜索;批量下载页提供五类数据的 CSV+JSON 压缩包;REST API(https://api.nal.usda.gov/fdc/v1)支持搜索与单条/批量获取,key 在 api.data.gov 免费注册。详见 §6。

Q6:可以商用吗?
可以。USDA 官方声明 FDC 数据不受版权保护(公有领域,参照 CC0 1.0 使用),无署名强制要求,仅建议引用「U.S. Department of Agriculture, Agricultural Research Service. FoodData Central, fdc.nal.usda.gov」。注意 Branded Foods 中的品牌名与商标本身仍受商标法约束,但数据事实可自由使用。

Q7:数据多久更新一次?
Foundation Foods 每年 4 月与 10 月发布全量下载更新;Branded Foods 月度更新(数据来自厂商经 IAFNS/GS1 US/1WorldSync 合作链提交);Survey Foods 随 NHANES 周期每两年更新(最新为 FNDDS 2021-2023,2024 年 10 月 31 日上线);SR Legacy 已冻结;Experimental Foods 随研究发表不定期增加。

Q8:AI 任务里怎么用?
典型模式:① 食物图像识别后接 FDC 做营养估算的 ground truth;② 把食物描述+营养素表做成向量检索库,为 LLM 营养问答提供事实校准;③ 与 NHANES 24 小时膳食回顾联用,构建「摄入→健康结局」队列分析的特征;④ 与 Open Food Facts 等众包库交叉验证标签质量。详见 §7。

Q9:有什么已知的质量坑?
五大高频坑:能量 kcal/kJ 双记录重复计数、Branded 自报数据一致性弱、搜索不容错拼、分量基准(per 100g vs per serving)混用、SR Legacy 冻结导致部分数值过时。逐条见 §8。

Q10:为什么数据库分层而不是一个大表?
因为「数据可信度」依赖来源。Foundation Foods 一条记录可以追溯到采样地点、年份、样本数、分析方法;Branded Foods 一条记录只能追溯到厂商提交。分层设计让研究者可以显式声明「我的研究只建立在 X 层数据上」,这是质量不可知的单一扁平表做不到的。这一设计思路对任何多来源 AI 标注工程都有借鉴意义。

§2 数据类型详解:五层金字塔

§2.1 五类对比总表

维度 Foundation Foods SR Legacy Survey Foods(FNDDS) Experimental Foods Branded Foods
数据来源 USDA 实验室现行分析 分析+推算+文献历史综合 由 Foundation/SR 推导 同行评审 USDA 合作研究 厂商提交标签数据
覆盖对象 基础与轻加工食品 通用食品全谱系 NHANES/WWEIA 报告食品 特殊条件实验食品 包装品牌食品
规模量级 数千条级 约 7,000+ 条 约 7,000-8,000 条 未公布 数十万至数百万条
营养素覆盖 150+ 150+ FNDDS 关键集 依研究而定 标签 15-20 项
元数据深度 采样地点/年份/样本数/方法/基因型 部分引用来源 食品使用频率权重 实验条件描述 品牌/条码/配料表
更新频率 每年 4 月/10 月 已冻结(2018-04) 随 NHANES 约每两年 不定期 月度
质量定位 最高(可溯源) 高(历史金标准) 中(调查用途) 特殊(条件唯一) 参差(自报)

§2.2 Foundation Foods:给每一条数据装上「出生证明」

Foundation Foods 是 FDC 上线时最大的方法论创新,目标是重建从「农场到分析天平」的完整证据链。一条 Foundation Foods 记录不仅给出「生菠菜每 100g 含铁 2.7mg」这样的数值,还给出:样本采自哪些州、哪一年、共多少个独立样本、样品如何混合与制备、用什么分析方法(如 HPLC 测类胡萝卜素)、由哪个实验室完成,部分食品还记录基因型/品种与农业生产实践。这意味着使用者可以评估数值的不确定性与代表性,而不是把一个无来源的黑箱数字当作真理。Foundation Foods 每年 4 月与 10 月发布更新,2026-04-30 下载版 CSV 压缩 3.7M/解压 32M。其代价是覆盖面窄:只收录基础与轻加工食品(完整食材与简单处理),不做组合菜肴。

§2.3 SR Legacy:百年谱系的冻结快照

SR Legacy 是 SR(Standard Reference)第 28 版的最终形态,2018 年 4 月发布后整体冻结。它的数值构成是三层的:实验室分析值、基于部分数据的推算值、以及文献引用值,同一条记录内三种来源混用(部分字段级 metadata 标注数据来源)。约 7,000+ 条记录覆盖 150+ 营养素,包括大量熟食、组合菜肴与加工食品的推算值。它的历史地位无可替代:全球各国食物成分表(如中国食物成分表、EuroFIR 体系)长期以 SR 为参照源之一,数十年文献中的膳食计算几乎都以 SR 为基准。使用注意:冻结意味着不再修订,个别数值已被 Foundation Foods 的更严谨分析修正过,严谨引用应注明「SR Legacy, April 2018」。

§2.4 Survey Foods(FNDDS):NHANES 的膳食翻译官

Survey Foods 来自 USDA 食品调查数据库 FNDDS(Food and Nutrient Database for Dietary Studies),其唯一使命是支撑 NHANES(National Health and Nutrition Examination Survey)的「What We Eat in America」(WWEIA)膳食摄入模块:受访者报告 24 小时内吃了什么,编码员把报告映射到 FNDDS 的通用食品描述,再乘以摄入量得到营养素摄入。因此 Survey Foods 的记录是按「人们如何报告食物」组织的——「炸鸡,去皮,面粉裹糊油炸」是一条记录,而非某个品牌的具体产品。最新版 FNDDS 2021-2023 于 2024 年 10 月 31 日并入 FDC(对应 NHANES 2021-2024 周期),约 7,000-8,000 条记录。数值由 Foundation 与 SR 推导并按 FNDDS 权重加权,营养素覆盖面窄于前两者,但与 NHANES 的编码规则严格对齐——做膳食摄入流行病学,这是唯一正确的层。

§2.5 Experimental Foods:把「实验条件」当作数据本身

Experimental Foods 收录同行评审期刊中与 USDA 合作研究的食品记录,其共同特征是存在有研究价值的特殊条件:替代农业生产方式(有机 vs 常规)、实验基因型/品种、特殊储存或加工处理。例如某研究比较两个大豆品种的脂肪酸谱,两个品种的完整营养分析都会进入此类。这类数据的价值不在代表性(样本量小、条件特殊),而在「条件-成分」的因果性线索——做营养育种、农业-营养交叉研究或把食物成分当作表型的机器学习任务时,这是独特的小而精来源。注意它没有独立下载包,只能通过 API 按 dataType 筛选或网页浏览获取。

§2.6 Branded Foods:真实世界消费的最大切片

Branded Foods 即 USDA Global Branded Food Products Database(GFPD),由公私合作伙伴关系维护(成员包括 ARS、IAFNS、GS1 US、1WorldSync、University of Maryland JIFSAN),数据由食品厂商按 GS1 标准提交,月度更新。每条记录含品牌、厂商、GTIN/UPC 条码、配料表文本、份量基准与标签营养素(能量、宏量、钠、糖等 15-20 项)。它记录了超市货架上的真实供给:做食品环境研究(社区健康食品可得性)、超加工食品分类(NOVA)、配料表 NLP(成分解析、添加剂统计)时,这是最大且不断增长的数据源。代价也明确:厂商自报、无实验室复核、同一产品可能存在多条历史版本记录、不同产品间份量基准不一——一切下游分析都要先做清洗。

§3 数据结构:fdcId 背后的 schema

§3.1 记录主键与字段总览

FDC 的全部数据围绕 fdcId(每条食品记录的全局唯一整数 ID)组织。一条记录的核心字段:

  • fdcId:全局唯一键(API 与下载包均以此对齐)。
  • description:食品描述文本(如「Bananas, raw」),不同 dataType 的描述风格不同——SR Legacy 用 NDB 风格规范名,Survey Foods 用 NHANES 报告风格,Branded 用厂商产品名。
  • dataType:五类之一(Foundation/SR Legacy/Survey (FNDDS)/Experimental/Branded)。
  • publicationDate:该记录发布日期。
  • foodNutrients:营养素数组,每项含 nutrient 编号、名称、单位、含量值;Branded 另有 derivation 信息。
  • foodPortions:份量数组,每项含 gramWeight(1 单位份量的克重),用于「1 个中等香蕉=118g」这类换算。
  • foodAttributes:Series/Food Group 等分类属性。
  • Branded 专属:brandOwner(厂商)、gtinUpc(条码)、ingredients(配料表文本)、servingSize 与 servingSizeUnit、brandedFoodCategory。
  • Foundation 附加(下载包独立表):样本数、采样州与年份、分析方法、实验室等。

§3.2 营养素编号体系(USDA nutrient number)

营养素以四位数字编号唯一标识,这是 FDC schema 的「外键语言」,做跨记录聚合、跨数据源对齐时必须掌握的高频编号:

编号 营养素 单位 典型用途
1008 Energy(能量) kcal 热量计算(注意与 1062 kJ 双记录)
1062 Energy kJ 同上,SI 单位版本
1003 Protein(蛋白质) g 宏量营养素
1004 Total lipid (fat)(总脂) g 宏量营养素
1005 Carbohydrate, by difference(碳水,差减法) g 宏量营养素
1079 Fiber, total dietary(总膳食纤维) g 膳食质量评分
1087 Total sugars(总糖) g 糖摄入监测
1093 Sodium(钠) mg 高血压/盐摄入研究
1086 Calcium(钙) mg 骨健康
1089 Iron(铁) g→mg 计量注意 贫血研究
1106 Vitamin A, RAE mcg 视觉营养
1166 Vitamin C mg 抗氧化摄入
1258 Saturated fatty acids(饱和脂肪) g 心血管风险建模
1293 Cholesterol mg 血脂研究

两张高频坑牌:① 1008 与 1062 是同一能量的两种单位,同时出现于多数记录,聚合时只取其一;② 1005「by difference」是差减法推算(100 - 蛋白 - 脂肪 - 水分 - 灰分 - 纤维),不是实测值。

§3.3 全量下载包结构(CSV/JSON)

批量下载页为每类数据提供独立 zip(CSV 与 JSON 双格式),2026-04-30 版包体:全量 CSV 压缩约 460M/解压约 3.1G;Branded 压缩 428M/解压 2.9G(最大);Survey 压缩 200M/解压 1.6G;SR Legacy 压缩 6.7M/解压 54M;Foundation 压缩 3.7M/解压 32M。CSV 版是关系化的多表结构(food 表 + food_nutrient 表 + nutrient 表 + food_portion 表 + measure_unit 表 + 各类型专属表,如 branded_food 表、foundation_food 表),通过 fdcId 与 nutrient 编号连接——可直接灌入关系库做 SQL 分析。JSON 版是嵌套文档结构,与 API 返回格式一致。自 2023 年 4 月起下载包还附带 supporting data(单位换算等辅助文件)。

§3.4 API schema 要点

API 返回 JSON,foods/search 端点的核心参数:query(关键词)、dataType(逗号分隔筛选五类)、pageSize(上限 200)、pageNumber、sortBy、api_key。返回项默认含 fdcId/description/dataType,nutrients=1 或单条端点 food/{fdcId} 可展开 foodNutrients 全量。foods 端点支持按 fdcId 数组批量取。响应中 Branded 记录的字段最全,Foundation 记录可按 foodClass 与附属表关联深度元数据。限流默认 1,000 请求/小时/IP;未注册时可用 DEMO_KEY 但仅 30 请求/小时、50 请求/天——只够冒烟测试,正经抓取必须自建 key 或走批量下载。

§4 与 NHANES 的上下游关系

§4.1 WWEIA/NHANES 数据流水线

NHANES 是美国 CDC/NCHS 主导的全国代表性健康与营养调查,其膳食部分即 WWEIA(What We Eat in America):受访者完成两轮 24 小时膳食回忆(AMPM 方法),每份报告被编码为「Survey Foods 记录 × 摄入量」。NHANES 公开数据中的 DR1IFF/DR2IFF(第 1/2 天逐食物摄入文件)里每一行都指向 FNDDS 的食品编码与营养素值。也就是说:FDC 的 Survey Foods 层就是 NHANES 膳食营养素估计的查找表——任何用 NHANES 做膳食-健康结局分析的人,实际上已在消费 FDC 数据。

§4.2 对 AI 建模的三点含义

  1. 摄入量特征工程:把个体 24h 回顾映射到 FDC 记录后,可构建逐营养素摄入特征(总能量、宏量比、添加糖占比、钠密度等),是膳食流行病学与营养-慢病机器学习的标准特征层。
  2. 调查权重不能丢:NHANES 是复杂抽样,用 FDC+NHANES 做人群推断必须加载抽样权重(WTDRD1/WTDR2D1)与方差单位,否则统计推断失效。
  3. 报告误差是系统性偏倚:24h 回顾存在能量漏报(尤其超重人群),模型若直接以自报摄入为真值会继承偏倚——文献常用 Goldberg/Hallberg 切片或双标水校准子研究评估报告质量,这是引用 FDC 做监督信号时必须声明的限制。

§5 评估与基准生态

FDC 本身没有 ML 基准,但它是大量基准与评估体系的隐性 ground truth。梳理如下:

  • 食物图像识别营养估算:该领域论文(Food-101 系、UEC-Food 系及后续「图像→份量→营养素」端到端工作)的营养真值最终都溯源到 FDC 系数据库;评估流程通常是「识别食物类别 → 映射 FDC 记录 → 按估计份量换算营养素 → 与标注对比」。FDC 的五类分层决定了真值质量:映射到 Foundation 记录的估算上限显著高于映射到 Branded 的。
  • 膳食评估算法校准:自动 24h 回顾编码系统(如基于 LLM 的膳食报告解析)以「人工编码到 FNDDS 的结果」为金标准评估准确率。
  • 标签监管研究:FDA 与学术界用 Branded Foods 对照货架标签照片,评估标签合规与超加工食品营养特征。
  • App 与消费级产品:MyFitnessPal 类应用的底层数据或对标数据即 FDC 系;第三方镜像(如 chowapi/selfhostednutrition、sugarminder 等开源转换项目)把 FDC 转为可自托管的搜索后端,间接形成了一个「以 FDC 为事实标准」的生态。
  • LLM 事实性评测:营养问答的事实校准与幻觉评测开始以 FDC 数值为参照(问「鸡蛋每 100g 含多少蛋白质」,参照 SR Legacy/Foundation 的 1003 号字段),这类评测应注意注明所用数据类型与版本。

质量分层经验(来自下游使用共识):Foundation Foods 最优(可溯源)> SR Legacy(历史金标准)> Survey(调查用途推导)> Experimental(条件特殊不具代表性)> Branded(自报、一致性最弱)。任何把 FDC 整库无差别当作单一 ground truth 的做法都会被 Branded 层的噪声拖累——按任务选层是使用 FDC 的第一设计决策。

§6 License 与获取:版本链与实操清单

§6.1 许可结论

USDA 官方立场明确:FDC 数据属于公有领域,作为美国政府作品不受版权保护,官方文档声明其使用条款参照 CC0 1.0 Universal。无署名强制、无商用限制、无衍生限制。唯一惯例是建议引用:U.S. Department of Agriculture, Agricultural Research Service. FoodData Central, fdc.nal.usda.gov. (发布/访问日期)。两点边界提醒:① Branded Foods 中的品牌名、商标、产品名受商标法保护,数据事实自由使用不等于可以暗示厂商背书;② 从第三方镜像(非官方 rehost)获取时,许可以镜像自身的处理条款为准,建议始终从官方渠道拿原始数据。

§6.2 三种获取通道

  1. 网页搜索/浏览:https://fdc.nal.usda.gov,支持关键词搜索、按 dataType 过滤、查看单条详情页(含营养素表与份量表)。适合人工查证与抽样核对。
  2. 批量下载:https://fdc.nal.usda.gov/download-datasets,五类数据各有独立 CSV/JSON zip,Foundation/Survey/Branded 定期滚动更新,SR Legacy 固定为 2018-04 最终版。全量分析、离线训练、入库自建必走此通道。注意 Branded 包解压 2.9G,全量解压 3.1G+,规划好磁盘与内存。
  3. REST API:base https://api.nal.usda.gov/fdc/v1;端点 GET /food/{fdcId}、GET|POST /foods(按 fdcId 批量)、GET|POST /foods/list、GET|POST /foods/search。key 在 https://api.data.gov/signup 免费注册(邮箱确认即生效),以 api_key 查询参数传递;key 泄露会被吊销,应避免硬编码入库。限流默认 1,000 请求/小时/IP,pageSize 上限 200。

§6.3 版本链时间线

时间 事件
19 世纪 90 年代起 Atwater 开创食品成分分析,奠定 USDA 食品数据库百年谱系
SR17-SR28 Standard Reference 各版本时代,全球食物成分表的参照源之一
2018-04 SR Legacy(SR28 终版)发布,此后冻结
2019 FoodData Central 上线,五类分层结构确立
2020-03-31 旧 Food Composition Databases 网站/API 停用
2021-10 MS Access 下载格式停用,仅保留 CSV/JSON
2023-04 下载包新增 supporting data 文件
2024-10-31 Survey Foods 更新至 FNDDS 2021-2023(对应 NHANES 2021-2024)
2026-04-30 Foundation 与 Branded 最新全量下载版(本条目规模数字基准版)
2026-04 FNS Child Nutrition Database(CNDB)迁入 FDC 托管;新版搜索界面预告中

§6.4 下游实操清单(从零到可用)

  1. 明确任务选层(Foundation/SR/Survey/Branded),下载对应 zip 而非全量盲抓。
  2. CSV 解压后建表:food、food_nutrient、nutrient、food_portion 四表为通用骨架,再加所选类型专属表。
  3. 以 fdcId 为主键、nutrient number 为外键物化「食品×营养素」宽表;聚合前先过滤 1062(kJ)防止能量双计。
  4. Branded 层先清洗:按 gtinUpc 去重、统一 servingSizeUnit、解析 ingredients 文本(若做 NLP 可保留原文)。
  5. 份量换算用 food_portion.gramWeight,输出统一 per 100g 基准再按任务换算。
  6. API 场景:自建 key、写限流退避(1,000/h)、批量取数用 /foods 端点而非循环单条。
  7. 引用与版本写死在数据卡(datasheet)里:数据类型 + 版本日期 + 下载 URL,保证可复现。

§7 生态互链与库内协作

§7.1 外部生态

  • NHANES(CDC/NCHS):见 §4,Survey Foods 是其膳食模块查找表;库内 NHANES 类条目(膳食摄入、体检指标)与 FDC 构成天然上下游。
  • Open Food Facts(ODbL):全球众包包装食品库,与 Branded Foods 在条码层面可对齐,常见交叉验证与「官方 vs 众包」质量比较研究;两者许可不同(公有领域 vs ODbL share-alike),合并使用需注意许可传染。
  • 各国食物成分表(中国食物成分表、EuroFIR、ANZFA 等):与 SR Legacy 互为参照源,跨国膳食比较研究需处理编码与测定方法差异。
  • 第三方镜像与转换项目:chowapi/selfhostednutrition、sugarminder 等把 FDC 转为可自托管服务,是规模数字的民间口径来源(见 §8.5 存照)。

§7.2 库内建议互链点(互链 rid 由主会话回填,本稿一律占位 /0)

  1. NHANES 类膳食/体检条目——Survey Foods 与 WWEIA 的直接配套关系(§4)。
  2. 营养/肥胖/代谢队列类条目——膳食摄入特征层的数据来源。
  3. 食物图像识别类条目——营养估算任务的 ground truth 供应链。
  4. 超加工食品/食品标签 NLP 类条目(如有)——Branded Foods 配料表语料。

§8 质量坑与常见误解

§8.1 坑 1:把旧系统名当现役系统

「USDA Food Composition Databases」已于 2020-03-31 停用;「National Nutrient Database for Standard Reference」2019 年后不再发版。文献里出现两者应理解为历史版本指针,复现时分别映射到 FDC 的 SR Legacy 数据类型与对应 SR 版本。引用旧 API(ndb.nal.usda.gov)的代码现在必然失败。

§8.2 坑 2:能量双记录重复计数

多数记录同时含 1008(kcal)与 1062(kJ)两条能量记录,直接对 foodNutrients 求和或按「Energy」名称匹配会把能量算两遍。正确姿势:按 nutrient number 聚合并显式排除其一(一般留 1008)。

§8.3 坑 3:Branded 层当成金标准

Branded 数据是厂商提交的标签值,不是实验室分析;同一产品可能多条历史记录、不同批次配方更新不回溯、份量基准五花八门(per container/per slice/per 100g 混用)。做营养统计时务必:按 gtinUpc 去重、统一到 per 100g、并声明「标签值 ≠ 实测值」。

§8.4 坑 4:搜索不容错拼 + dataType 未过滤

FDC 搜索是关键词匹配,拼写错误即空结果;且默认跨五类返回,品牌杂音极易淹没通用食品记录。用 API 时固定传 dataType 参数;需要旧金标准数值时显式限定 SR Legacy。

§8.5 坑 5:规模数字双口径(存照)

第三方对 Branded 条数口径冲突大:约 38 万(2024 口径)vs 约 190 万(2025-26 口径);「总量 >40 万」也是第三方口径。官方下载页不公布条数、只给包体。本稿正文一律按「数十万至数百万条、以最新下载包为准」表述。两口径与包体证据已在 FACTS §9 存照。

§8.6 坑 6:SR Legacy 冻结被误读为「数据过时不可用」

冻结是不再更新,不是作废。SR Legacy 仍是覆盖面最广的通用层,引用时标注版本(April 2018)即可;需要「现行最优分析」时改用 Foundation Foods 对应条目而非否定 SR。

§8.7 坑 7:以为 API 是唯一入口

API 有每小时限流且 pageSize 上限 200,逐页爬全库既慢又违反用量规范。全量获取的正确姿势是批量下载 zip;API 只适合在线查询与增量同步。

§9 按角色阅读路径

§9.1 营养流行病学研究者

主读 §2.4、§4——Survey Foods/NHANES 流水线是你的主场;注意 §4.2 的调查权重与自报偏倚两点。选层决策:人群膳食摄入计算只用 Survey 层(与 NHANES 编码对齐),做食物成分-健康结局细粒度分析再叠加 Foundation 层。

§9.2 机器学习工程师

主读 §3(schema)与 §6.4(实操清单)。先做 §6.4 第 1 步的选层决策,再决定下载哪些包;能量双记录(坑 2)与 Branded 清洗(坑 3)是数据管线必写进代码的防御逻辑。特征工程建议物化「fdcId × nutrient number」宽表后冻结版本号,保证实验可复现。

§9.3 食物图像识别团队

主读 §5 与 §2.1。你的标注真值链是「图像标注类别 → FDC 记录 → 营养素/份量」,链条每一环的误差都会放大;建议真值只锚定 Foundation/SR 层记录,份量标注单独立项,并在论文中声明所用 dataType 与版本。

§9.4 LLM/营养问答开发者

主读 §3.2(nutrient number)与 §5。把 FDC 做成检索库时,检索键建议「食品描述 + dataType + 版本」,返回字段固定为 1003/1004/1005/1008/1079/1093 等高频编号;评测事实性时引用需写「SR Legacy, April 2018,nutrient 1003」级别的精度,否则无法复现。

§9.5 公共卫生/政策分析者

主读 §2.4、§4.1、§7.1。食品环境与标签监管研究用 Branded 层,注意其自报性质与许可边界(§6.1);学校供餐营养核算关注 2026-04 迁入的 CNDB(FNS Child Nutrition Database)后续整合进展。

§10 案例解剖:一次完整的营养估算任务

任务设定:评估一张「早餐照片」的能量与宏量营养素。数据链四步:

  1. 食物识别:模型输出「烤面包片 ×2、煎蛋 ×1、黑咖啡 1 杯」——识别误差不在 FDC 的责任范围,但类别粒度决定下一步能否对准 FDC:「烤面包片」应对准 SR Legacy 的「Bread, toasted」而非某品牌产品。
  2. 记录对齐:关键词查 FDC(dataType=SR Legacy),命中 fdcId 后取 foodNutrients;能量字段只取 1008。
  3. 份量换算:food_portion 里「1 slice toasted」的 gramWeight(约 30-37g,按记录实查);份量估计是整条链误差最大的环节,文献中份量误差常达 ±30-50%,远大于营养素表本身误差。
  4. 输出与置信声明:合计输出并注明「营养素真值:SR Legacy, April 2018;份量为估计值」。

教训三条:① 营养数据库误差通常不是瓶颈,份量估计与食物识别才是;② 对齐记录时固定 dataType 是防品牌杂音的唯一可靠手段;③ 输出不声明数据类型与版本的研究无法复现——这一点对 LLM 生成的膳食分析同样适用。

§11 常见误解澄清

  • 误解 1:「FDC 就是一个食品营养表」。它是五类性质不同的数据库的统一门户,混层使用是下游分析噪声的最大来源(§2.1)。
  • 误解 2:「数据是公有的所以质量没保障」。公有领域指法律地位;Foundation/SR 层的数据生产有 USDA 实验室方法学背书,质量可溯源(§2.2)。
  • 误解 3:「Branded 数据等同于 FDA 实测」。它是厂商提交的标签值,监管核查另有体系;标签允许的舍入规则(如 <0.5g 记 0)使标签统计有系统性偏差(§2.6、坑 3)。
  • 误解 4:「FNDDS 与 FDC 是两个不相干的库」。FNDDS 的 Survey Foods 已并入 FDC 作为 Survey 层,二者是包含关系而非并列(§2.4)。
  • 误解 5:「API 每小时 1,000 次,爬全库可行」。Branded 层数百万条、pageSize 200,纯 API 抓取需数千小时且违反规范;全量必须走下载包(坑 7)。
  • 误解 6:「SR Legacy 冻结了所以引用会被审稿人挑战」。正确引用版本即可,数十年来膳食研究的可复现性恰恰建立在版本冻结上(坑 6)。
  • 误解 7:「能量字段直接相加即可」。kcal/kJ 双记录必有一重复(坑 2),这是 FDC 数据管线最经典的初学者 bug。

§12 数据治理与元数据工程视角

FDC 对「多源异构数据如何统一门户」提供了一个可借鉴的范式:

  1. 质量显式分层:不隐藏来源差异,而是把数据类型做成一等公民字段(dataType),让使用者自行选择可信层——优于把多源数据揉进一个无来源标注的大表。
  2. 统一主键 + 分层 schema:fdcId 全局唯一贯穿五类,类型专属字段放独立表(CSV 关系化)或类型化子结构(JSON),通用分析走公共骨架、深度分析走专属表。
  3. 版本与冻结策略并存:Foundation/Survey/Branded 滚动更新 + SR Legacy 永久冻结,兼顾「持续演进」与「历史可复现」,并为每个渠道提供明确的时间线文档。
  4. 免费 API + 批量下载双通道:API 服务在线查询、下载包服务全量分析,避免用户用 API 做它不擅长的事。
  5. 多机构协作治理:Branded 层的公私合作(ARS+IAFNS+GS1 US+1WorldSync+JIFSAN)把「厂商提交-标准化-质检-发布」变成可持续流水线,是数据社区共建模式的成熟案例。

对正在设计医学多源数据库(如本库 AI-Ready 体系)的团队,FDC 的启示是:来源、质量、版本、获取方式四要素必须在 schema 层面可见,而不是藏在文档里。

§17 API 实操手册与代码骨架

§17.1 端点速查与参数

端点 方法 用途 关键参数
/foods/search GET/POST 关键词搜索 query, dataType, pageSize(≤200), pageNumber, sortBy, brandOwner
/foods GET/POST 按 fdcId 批量取详情 fdcIds(逗号分隔), nutrients, format
/food/ GET 单条全量详情 nutrients, format
/foods/list GET/POST 分页列表 dataType, pageSize, pageNumber, sortBy

认证与限流:所有请求带 api_key 参数(api.data.gov 免费注册);默认 1,000 请求/小时/IP,超限返回 429 与限流头,应实现指数退避;DEMO_KEY 仅 30 请求/小时、50/天,只用于连通性冒烟。POST /foods/search 的 JSON body 可携带更复杂的过滤条件,适合批量任务脚本。

§17.2 Python 请求骨架(查询+限流退避)

import requests, time

BASE = "https://api.nal.usda.gov/fdc/v1"
KEY  = "你的 api.data.gov key"   # 勿硬编码进仓库,用环境变量

def search(query, data_types, page=1, page_size=200):
    r = requests.get(f"{BASE}/foods/search", params={
        "api_key": KEY, "query": query, "dataType": ",".join(data_types),
        "pageSize": page_size, "pageNumber": page,
    }, timeout=20)
    if r.status_code == 429:            # 限流:退避后重试一次
        time.sleep(60)
        r = requests.get(f"{BASE}/foods/search", params={
            "api_key": KEY, "query": query, "dataType": ",".join(data_types),
            "pageSize": page_size, "pageNumber": page}, timeout=20)
    r.raise_for_status()
    return r.json()

def pick_kcal(food):
    """只取 1008 kcal,丢弃 1062 kJ,防能量双计(坑 2)"""
    return {n["nutrient"]["number"]: n["amount"]
            for n in food["foodNutrients"]}.get("1008")

要点:① dataType 永远显式传,防品牌杂音;② 能量只取 1008;③ 生产代码把 KEY 放环境变量;④ 批量取详情用 /foods 端点一次传多个 fdcIds,不要 for 循环单条。

§17.3 CSV 下载包的最小入库骨架

import pandas as pd

food   = pd.read_csv("food.csv")                  # fdcId, dataType, description...
fn     = pd.read_csv("food_nutrient.csv")          # fdcId, nutrient_id, amount
nutr   = pd.read_csv("nutrient.csv")               # id, number, name, unit_name
portion= pd.read_csv("food_portion.csv")           # fdcId, gram_weight...

fn = fn.merge(nutr[["id", "number", "unit_name"]],
              left_on="nutrient_id", right_on="id")
fn = fn[fn["number"] != "1062"]                    # 全局去掉 kJ,能量双计免疫
wide = fn.pivot_table(index="fdcId", columns="number",
                      values="amount", aggfunc="first")
meta = food[["fdcId", "data_type", "description"]]
dataset = meta.merge(wide, on="fdcId")             # 「食品×营养素」宽表成品

五个常见扩展:join branded_food.csv 拿条码/配料表;join foundation_food.csv 后接独立元数据表拿采样信息;按 data_type 分层打标后再冻结版本;量级大时改 DuckDB/Polars 直接扫 CSV;全部表以 fdcId 为唯一连接键,切勿用 description 做连接(同名不同条)。

§18 营养素体系扩展明细

§18.1 营养素大类地图

SR Legacy/Foundation 的 150+ 营养素可归为十大类:

大类 代表编号 说明
宏量与能量 1003/1004/1005/1008/1062/1004 蛋白、脂肪、碳水、能量
膳食纤维与糖 1079/1086 系 总纤维、总糖、添加糖(Branded 层标签口径)
脂肪酸谱 1258/1293/1253/1296 饱和、胆固醇、单不饱和、多不饱和
氨基酸 18 种各自编号 全谱氨基酸(仅 Foundation/SR 深覆盖)
矿物质 1087 钙/1089 铁/1093 钠/1095 钾等 常量+微量矿物
脂溶性维生素 1106 A(RAE)/1114 D/1166 C(E 也有独立号) 注意 A 用 RAE 单位
水溶性维生素 B1/B2/B3/B6/B9(叶酸)/B12 叶酸有 DFE 口径
类胡萝卜素 独立编号组 叶黄素+玉米黄素、β-胡萝卜素等
其他成分 咖啡因、酒精、灰分、水分 水分用于差减法验证
推导指标 按计算口径 「by difference」类字段非实测

§18.2 单位与口径三注意

  1. 能量双单位:1008 kcal 与 1062 kJ 是换算关系(1 kcal=4.184 kJ),不是两个指标。
  2. 维生素 A 双口径:RAE(视黄醇当量)是现行标准,旧文献的 RE/IU 口径需换算,跨库对齐时是高频错位点。
  3. 叶酸 DFE:食物叶酸与合成叶酸(强化食品)的生物利用度不同,DFE 统一口径;做强化食品分析(Branded 层)时必须理解该口径,否则摄入量会被高估。

§18.3 「by difference」类字段的性质

碳水 1005 是差减法(100 − 蛋白 − 脂肪 − 水分 − 灰分 − 纤维),继承了所有上游字段的误差;做营养素守恒校验(能量 vs Atwater 系数)时会看到系统性残差。理解这一点可以避免两类错误:把 1005 当实测值做精细分析;用「能量与宏量不匹配」当作数据错误的证据(实际是口径性质)。

§19 Branded Foods 深度清洗实战

§19.1 五步清洗流程

  1. 条码去重:同一 gtinUpc 可能因厂商重提交产生多条,按 fdcId 保留 publicationDate 最新者;无条码记录单独归档。
  2. 份量归一:servingSizeUnit 千姿百态(g、ml、oz、tbsp、1 container…);建议统一换算 per 100g(液体按密度近似或保留 per 100ml 并分层),food_portion.gramWeight 提供换算基础。
  3. 配料表解析:ingredients 是自由文本,含括号嵌套(「enriched wheat flour (niacin, reduced iron…)」);NLP 任务可保留原文,统计任务需解析——注意「contains …」过敏原声明常混在配料串里,需先剥离。
  4. 类别对齐:brandedFoodCategory 是自报分类,粒度不均;做超加工食品(NOVA)分类研究需另行规则/模型映射,不能直接用。
  5. 同品多版:配方改版不回溯旧记录,纵向分析「配方随时间的健康化趋势」时要按品牌+产品名+年份聚类,而非按条码唯一性假设。

§19.2 质量抽检建议

入库自建后按以下口径做抽检并留档:能量与宏量的 Atwater 一致性(误差 >15% 的记录占比);per serving 与 per 100g 口径冲突记录占比;配料表为空的记录占比;条码校验位(UPC/GTIN check digit)失败占比。四个指标构成 Branded 层「清洗质量卡」,可复现研究必附。

§20 与同类数据库横向对比

维度 USDA FDC Open Food Facts 中国食物成分表 EuroFIR/FoodEXplorer
性质 国家官方综合库 全球众包库 国家官方出版库 欧洲各国库联盟
规模 SR ~7,000×150+ 营养素;Branded 百万级(标签) 数百万条(众包,标签级) 数千条(版本制出版) 依成员国库合计
质量上限 Foundation 实验室级可溯源 众包照片+标签 OCR 官方实验室与文献 各国官方方法
覆盖广度 美国市场全覆盖(含品牌) 全球品牌(自愿贡献) 中国常见食品 欧洲体系
更新 Foundation 半年/Branded 月更 持续众包 版本间隔数年 各库不一
许可 公有领域 CC0 ODbL(share-alike) 版权出版物(引用限制) 各成员国不一
API 官方 REST 官方 REST(开放) 无公开 API(PDF/书) 部分开放
适合任务 美国膳食评估金标准、营养估算真值 全球品牌覆盖补充、交叉验证 中国人群膳食研究 跨国比较

组合策略建议:美国人群任务以 FDC 为主干;跨国研究用 EuroFIR 桥接;品牌供给的全球视图用 Open Food Facts 补 FDC 的盲区并交叉验证;中国人群研究以中国食物成分表为主、FDC 做方法学参照。任何合并都要先解决「同物异名/同名异物」对齐问题——这是食物成分数据 NLP 化的核心难题(描述文本的规范化与实体链接)。

§21 FDC 在食物图像识别中的真值工程细节

图像→营养端到端评估的误差预算大致是乘法链:识别错误率 × 份量误差 × 营养表误差。FDC 负责最后一环(通常最小),但研究者常犯三个错:

  1. 真值锚层随意:同一道菜在 SR Legacy 有多条近邻记录(烤鸡带皮/去皮/炸/烤),不固定选择规则会让真值本身有 20%+ 抖动。建议写死「对齐规则卡」(如:优先 Foundation;无则 SR Legacy 精确匹配;再无则最近邻 + 人工复核名单)。
  2. 忽略烹饪态与生食态差异:SR 记录分 raw/cooked 与制备方式,吸油/失水显著改变能量密度;图像只能看到成品,选错形态即系统性偏差。
  3. 把混合菜肴当单一成分:披萨、沙拉类应对准 SR 的组合菜肴条目或按成分分解后再聚合,直接取任一单成分记录误差极大。

这三条规则同样适用于视频/多模态膳食记录(food logging)任务。

§22 LLM 时代的新用法与风险

  • 检索增强(RAG)营养问答:把宽表(fdcId、description、dataType、关键营养素)切片入库,检索键含 dataType 与版本;回答模板固定输出「每 100g:蛋白 x g…(SR Legacy, April 2018)」,可显著压低幻觉。
  • 膳食报告解析:LLM 把自由文本「我早上吃了个鸡蛋三明治」解析为 FDC 记录候选+份量估计,替代传统人工 AMPM 编码;评估金标准即人工编码的 FNDDS 结果(§5)。
  • 配料表结构化:Branded 的 ingredients 文本做 NER+关系抽取,构建「产品-成分-添加剂」知识图谱;过敏原与添加剂统计是高频下游。
  • 风险三点:① LLM 生成的营养数字若无检索支撑不可信,评测必须区分「检索后回答」与「参数记忆回答」;② 版本漂移——Branded 月更导致同一检索结果随时间变化,评测集要冻结版本;③ 单位换算错误(kJ/kcal、RAE/IU)是 LLM 高频算错点,应在管线内用代码换算而非让模型心算。

§23 历史纵深:从 Atwater 到 FDC 的百年谱系

§23.1 时间线扩展

时期 事件与意义
1894-1907 Wilbur Olin Atwater 在 USDA 建立食品成分系统分析,发表首批美国食物成分表;Atwater 因子(蛋白/脂肪/碳水 4/9/4 kcal/g)沿用至今
1940s-1950s 战时配给与营养保障需求推动系统化采样;「Nutitive Value of Foods」家喻户晓版小册子系列开始
1960-1963 Food Composition 数据首次大规模电子化( ND 编号体系确立)
1976-1980s Nutrient Data Bank 计算机化运营;与 FAO/UNU 国际合作推动各国成分表方法统一
1990s SR 版本 Internet 发布;NDB number(五位数)成为文献通用指针
2003 FNDDS 第一版随 NHANES 2001-2002 发布,膳食调查数据库与通用库分流
2015 白宫营养数据计划推动 Branded 数据开放(GFPD 公私合作启动)
2018-04 SR Legacy(SR28)最终发布
2019 FoodData Central 上线:五类分层 + 新 API + 新下载体系
2020-03-31 旧系统网站与 API 停用
2021-10 Access 格式退场,CSV/JSON 双轨定型
2024-10-31 FNDDS 2021-2023 并入(NHANES 2021-2024 周期)
2026-04 CNDB 迁入托管;新版搜索界面预告

§23.2 为什么 2019 年要重构

官方文档给出的动因可归纳为四点:① 旧 SR 单体结构无法容纳「来源与质量差异巨大」的现代数据流(厂商月度提交 vs 实验室分析);② 旧网站/ API 技术栈老化,难以支撑程序化访问规模;③ 需要把「数据生产方法学」(Foundation 的采样元数据)本身作为数据的一部分呈现;④ 与国际体系(FAO/INFOODS、EuroFIR 的 FoodEX2 编码)接轨。重构的代价是社区需要迁移:文献里的 NDB number 对应关系保留(fdcId 体系内可追溯),但 API 与下载格式全部更换——这正是坑 1 的根源。

§23.3 NDB number 与 fdcId 的关系

旧文献的五位数 NDB number(如 09040 = 香蕉)在 FDC 中未丢失:SR Legacy 记录保留了对应的 ndbNumber 字段,可从旧版 SR28 文档或镜像对照表做双向映射。复现旧研究的「NDB→fdcId→营养值」换链是数据工程中常见需求,注意 SR Legacy 冻结意味着这一映射是稳定的(不会再有新 SR 打破对应关系)。

§24 逐类型记录解剖(示例结构)

§24.1 Foundation Foods 记录应长什么样

一条典型 Foundation 记录(示意字段,数值以官网为准):

fdcId: <N>
dataType: "Foundation (FF)"
description: "Spinach, raw"
foodNutrients:
  - nutrient: {number: "1093", name: "Sodium, Na", unitName: "mg"}
    amount: 79
    ...
foodPortions:
  - {portionDescription: "1 cup", gramWeight: 30, ...}
附属元数据(下载包独立表关联):
  sample_count / 采样州列表 / 采样年份 / 分析方法 / 实验室

它回答的不是「菠菜含多少钠」,而是「我们按什么协议、在哪、采样多少、用什么方法测出这个钠」——前者是数值,后者是证据链。做 meta 分析或构建「成分表型」数据集时,只有 Foundation 层能支撑「再分析」。

§24.2 Branded 记录应长什么样

fdcId: <N>
dataType: "Branded"
description: <厂商产品名>
brandOwner: <厂商>
gtinUpc: <12/13/14 位条码>
ingredients: "whole grain oats, sugar, ..."
servingSize: 30, servingSizeUnit: "g"
brandedFoodCategory: "Breakfast Cereals"
foodNutrients: 15-20 项标签营养素

注意 description 是产品名而非规范食品名,全文检索时品牌词污染严重——这就是搜索时限定 dataType 的原因(坑 4)。

§24.3 Survey 记录与 WWEIA 编码

Survey Foods 的描述按 NHANES 受访者语言习惯组织(「Chicken, breast, breaded, fried, prepared from frozen, skin not eaten」级别粒度),并携带 WWEIA Food Category(272 类大类+子类)归属。膳食摄入分析的分组统计(如「含糖饮料摄入趋势」)直接用 WWEIA Category 而非自由文本匹配——这是 FNDDS 与通用库在「使用方式」上的本质差异。

§25 数据卡(Datasheet):给 AI 使用者的十问

  1. 任务适配:营养真值/膳食特征/文本语料/知识图谱——各对应不同层(§2.1)。
  2. 版本锚定:写死「dataType + 下载/访问日期」,Branded 层月更意味着两次实验可能拿到不同数据。
  3. 已知偏倚:能量漏报(若经 NHANES 自报)、标签舍入规则(Branded)、差减法误差传播(1005)。
  4. 缺失处理:不同层的营养素覆盖差异巨大,宽表中缺失≠零值;聚合时用显式 NA 而非填 0。
  5. 单位纪律:mg/mcg/g 混排(nutrient 表 unit_name 字段)、kcal/kJ、RAE/IU——单位错误是下游最常见事故。
  6. 许可边界:数据公有领域,商标与品牌表述仍有约束(§6.1)。
  7. 重复记录:Branded 同品多版(§19.1 第 5 步)。
  8. 可复现清单:下载 URL + 包版本日期 + 清洗脚本 + 抽检指标(§19.2)。
  9. 分布适用性:美国市场与膳食文化覆盖;迁移到其他人群需本地图谱对齐(§20)。
  10. 申报义务:论文/模型卡中声明所用层、版本、清洗规则,缺一即不可复现。

§26 伦理与公平性视角

  • 膳食文化覆盖偏差:FDC 以美国市场与美式膳食文化为轴,移民与少数族裔传统食品覆盖弱;用 NHANES+FDC 做全人群分析会低估这些群体的膳食质量——公平性审计时应检查「人群子组 × 膳食编码缺失率」。
  • 自报偏倚的社会经济梯度:能量漏报在超重与低社会经济地位人群中更强,直接用自报摄入做因果推断会放大相关偏倚(§4.2)。
  • 厂商数据的话语权:Branded 层由厂商提交,配方公开程度影响第三方审计能力;营养标签改革(如添加糖强制标注)会随版本演进改变字段可用性——纵向研究要标记法规节点。
  • 隐私:FDC 本身无个人数据;但与 NHANES 合并时须遵守 NCHS 的数据使用条款与披露审查,公开微数据经过脱敏处理。

§27 FAQ(检索者高频问题)

Q:哪一层最准? 单条数值质量:Foundation 最高;覆盖广度:SR Legacy 最大;「最准」与「最全」不可兼得,分层设计的意义即在此(§2)。

Q:可以下载整个库吗? 可以,批量下载页全量 zip,公有领域无限制;注意解压 3.1G+ 与月更节奏(§6.2)。

Q:API 要钱吗? 不要,api.data.gov 免费注册;有限流,1,000 请求/小时/IP(§6.2)。

Q:为什么同一食物搜出很多条? 五类数据本来就按来源分条;用 dataType 过滤 + 阅读描述规范(生/熟/制备方式)即可定位(坑 4)。

Q:能量怎么算出 2 倍? 1008/1062 双记录,聚合时只留一个(坑 2)。

Q:SR Legacy 数据太旧吗? 冻结不等于作废;需要现行分析时查 Foundation 是否已覆盖该食品(坑 6)。

Q:能做商业产品吗? 能,公有领域;品牌名使用注意商标边界(§6.1)。

Q:和中国食物成分表怎么换算? 没有官方映射表;常见做法是描述文本规范化+营养编号对齐(INFOODS tagnames)+ 人工复核(§20)。

Q:Branded 条数到底是多少? 官方不公布,第三方 38 万-190 万双口径并存,以最新下载包实数为准(§8.5)。

Q:论文里怎么引用? U.S. Department of Agriculture, Agricultural Research Service. FoodData Central, fdc.nal.usda.gov. (日期);注明所用 dataType 与版本更佳(§6.1)。

§28 术语表

术语 英文/编号 释义
fdcId FDC ID 全库唯一食品记录键
dataType Data Type 五类数据标识(Foundation/SR Legacy/Survey/Experimental/Branded)
nutrient number USDA Nutrient Number(如 1008) 营养素唯一编号,跨记录外键
SR Legacy Standard Reference Legacy SR28 冻结版的历史综合层
FNDDS Food and Nutrient Database for Dietary Studies Survey 层来源库,服务 WWEIA/NHANES
WWEIA What We Eat in America NHANES 膳食模块名称
GFPD Global Branded Food Products Database Branded 层官方名称
AMPM Automated Multiple-Pass Method 24 小时膳食回顾的标准访谈方法
RAE Retinol Activity Equivalents 维生素 A 现行单位口径
DFE Dietary Folate Equivalents 叶酸当量口径
by difference — 差减法推算字段(如 1005 碳水)
gramWeight — 份量表中「1 份量=多少克」换算字段
NDB number Nutrient Databank number 旧 SR 体系五位数编号,SR Legacy 内保留
Atwater 因子 4/9/4 宏量营养素能量换算系数
CNDB Child Nutrition Database 2026-04 迁入 FDC 托管的学校供餐数据库

§29 五类数据来源与生产方法学对照

§29.1 数据生产流水线对照表

环节 Foundation Foods SR Legacy Survey Foods Experimental Foods Branded Foods
数据产生 USDA 实验室分析(BHNRC/MaFCL) 分析+推算+文献累积 由 Foundation/SR 推导加权 USDA 合作研究项目发表 厂商按 GS1 标准提交
质控主体 USDA 方法与应用食品成分实验室 USDA 营养数据团队 USDA 食品调查团队(与 NCHS 协作) 期刊同行评审 合作伙伴关系(IAFNS/GS1 US/1WorldSync/JIFSAN)+ USDA 审核
采样设计 全国代表性采样(州/季节分层) 历史累积(无统一采样协议) N/A(推导) 依研究设计 N/A(提交制)
更新机制 半年发布 冻结 随 NHANES 周期 研究发表后 月度
引用粒度 条目级(含采样元数据) 版本级(April 2018) FNDDS 版本级 原论文级 版本+提交批次

§29.2 Foundation 采样的「代表性」如何实现

官方方法学(Foundation Foods Documentation)要求对目标食品做地理分布与季节分层的全国采样:同一食品从多个州、多个季节购买多份独立样本,按标准协议制备(可食部分、熟制态统一),混合或独立分析后给出均值与离散度信息。这就是为什么 Foundation 的条目「慢工出细活」——一年两批、每批条数有限。它也让 Foundation 成为「食物成分作为环境暴露变量」研究中唯一能做不确定性传播的层。

§29.3 Branded 提交链的治理结构

厂商 → 1WorldSync/GS1 US(产品内容分发网络)→ GFPD 合作伙伴关系(IAFNS 协调、University of Maryland JIFSAN 技术支撑)→ USDA ARS 审核与发布。这一结构把「谁对数据负责」分成了三段:厂商对提交内容负责、合作组织对流程与标准化负责、USDA 对最终发布负责。理解该结构有助于回答「Branded 数据错了找谁」——官方 FAQ 的答案是反馈给厂商,这与 Foundation 层「错误可直接向 USDA 营养数据团队反馈」完全不同。

§30 NHANES 联用案例:一个完整的膳食摄入分析

研究问题(示范):估计美国成人添加糖摄入的十年趋势。数据链五步:

  1. 数据选取:NHANES 两个周期的 DR1IFF/DR2IFF 逐食物文件(含 FNDDS 编码与逐食物营养素)+ 对应 FDC Survey 层版本。
  2. 个体聚合:按受访者把 24h 内全部食物的添加糖(各周期对应 nutrient 字段)求和,得个体日摄入;两日均值降自报方差。
  3. 权重与方差:膳食日一权重(WTDRD1/WTDR2D1)、SDMVPSU/SDMVSTRA 分层 PSUs 做泰勒级数方差估计;绝不使用简单均值。
  4. 报告质量过滤:按能量切片(如剔除 <500 或 >5000 kcal/日 的报告)做敏感性分析,并在附录报告排除比例。
  5. 输出:按人口学分层的中位数与 P75/P95、趋势检验(含季节/周中效应检查),全流程标注 FNDDS 版本。

FDC 在其中的位置:第 1 步的逐食物营养素就是 FDC Survey 层算出的;如果研究要做「具体食物来源分析」(添加糖来自哪类食品),逐食物文件中的 FNDDS 食品编码需回连 FDC Survey 记录的描述与 WWEIA Category——这就是「FDC 是膳食分析的查找表」的具体含义。

§31 与库内 AI-Ready 体系对接建议

面向本库(千方病案医数集)的使用者,建议的 FDC 消费姿势:

  1. 作为参照库而非建模库:FDC 无患者数据、无 ML 划分;在本库语境下它的角色是「膳食/营养相关条目的真值底座与特征字典」。
  2. 版本锚定进数据卡:凡引用 FDC 的库内条目,数据卡写明 dataType + 版本日期 + 下载 URL(§25 第 2 条)。
  3. 互链三方向:NHANES 类(上下游)、队列/代谢类(特征来源)、食物图像类(真值链)——具体条目与 rid 由主会话按 DB 实查回填(§15)。
  4. 许可传播检查:FDC 公有领域无传染性,可与任何许可的库内数据合并;但若混入 Open Food Facts(ODbL)则触发 share-alike,需单独立卡声明。

§32 附录 A:高频 nutrient number 速查扩展表

编号 名称 单位 层覆盖 高频用途
1008 Energy kcal 全部 热量(留此弃 1062)
1062 Energy kJ 全部 与 1008 二选一
1003 Protein g 全部 宏量
1004 Total lipid (fat) g 全部 宏量
1005 Carbohydrate, by difference g 全部 宏量(差减法)
1079 Fiber, total dietary g F/SR/Survey 膳食质量
1087 Total sugars g 全部 糖摄入
1093 Sodium, Na mg 全部 血压/盐
1095 Potassium, K mg F/SR DASH 类研究
1087→1086 Calcium, Ca mg F/SR 骨健康
1089 Iron, Fe mg F/SR 贫血
1162 Vitamin C mg F/SR 抗氧化
1106 Vitamin A, RAE mcg F/SR 视觉/免疫
1114 Vitamin D (D2+D3) mcg F/SR 骨/免疫
1258 Saturated fatty acids 4:0-18:0 g F/SR 心血管
1293 Cholesterol mg F/SR 血脂
1018 Alcohol g F/SR 饮酒暴露
1050 Caffeine mg F/SR/Branded 摄入监测

(编号与名称以 nutrient.csv 权威表为准;此表为高频子集速查。)

§33 附录 B:下载包文件清单(CSV 版)

文件 内容 通用/专属
food.csv fdcId、dataType、description、publicationDate 通用骨架
food_nutrient.csv fdcId × nutrient × amount 通用骨架
nutrient.csv 编号、名称、单位 通用骨架
food_portion.csv 份量描述 × gramWeight 通用骨架
measure_unit.csv 度量单位字典 通用骨架
attribute.csv 食品属性键值 通用扩展
branded_food.csv 品牌/条码/配料/份量标签 Branded
foundation_food.csv Foundation 附加字段 Foundation
survey_food.csv Survey 附加字段 Survey
sr_legacy_food.csv SR 附加字段(含 ndbNumber) SR Legacy
experimental_food.csv 实验条件描述 Experimental
food_attribute_type / nutrient_source 等辅助表 字典与来源标注 辅助

(文件名以当期下载包 README 为准;2023-04 起另有 supporting data 目录。)

§34 附录 C:自检与验收记录

  • 成稿由 5 个原始 part + 7 个增补 part 拼接:part1-part4(正文 §0-§16 骨架)→ part6(API/清洗/对比)→ part7(历史/解剖/FAQ)→ part8(方法学/案例/附录)→ part9(规范化/排查/架构)→ part10(示例剖析/问答/速查卡)→ part11(选层/剧本/口径卡)→ part12(DAIMS/证据链/附录)→ part5(§13-§16 速查与存照收尾,拼接待末位)。
  • R025 合规:显式 cat 拼接 + 行数核验(≥1200);frontmatter 字段长度:title 62、subtitle 129、data_source 132、description 约 120(均 <255/170);frontmatter 无英文直引号。
  • YAML safe_load 冒烟:通过(拼接后复跑确认)。
  • 双零自检与 acceptance:由本代理跑 check_md.py / preflight_check.py / acceptance.py,结果见最终汇报。

§35 食品描述文本的规范化与实体链接实战

§35.1 为什么对齐是难题

FDC 的 description 没有受控词表约束:SR Legacy 用规范复合名(「Soup, chicken broth, ready-to-serve」),Survey 用报告态短语(「Chicken noodle soup, from restaurant」),Branded 用营销产品名(「Homestyle Chicken Noodle Soup, Family Size」)。跨层对齐、跨库对齐(中国食物成分表、Open Food Facts)、以及「图像类别 → FDC 记录」映射,全都卡在同一个问题上:把自由文本链接到正确的 fdcId。

§35.2 规范化管线五步

  1. 切分与去修饰:剥离品牌词、营销词(Homestyle、Family Size、New!)、包装规格(12 oz、Family Size)。
  2. 形态与制备态标注:raw/cooked/fried/baked/peeled/diced 等制备描述抽取为结构字段——这是营养差异的最大来源(吸油、失水)。
  3. 成分分解:组合菜肴按成分拆解(「鸡蛋三明治」→ 面包+蛋+黄油),每成分独立对齐后按份量聚合;SR 的组合菜肴条目可作为聚合结果的合理性检查。
  4. 候选检索与排序:限定 dataType 后用编辑距离/向量相似度检索候选,再按「形态一致 > 类型一致 > 层优先级(Foundation>SR)」排序。
  5. 人工复核名单:置信度低于阈值的候选进入人工队列;把复核结果回写成同义词表,随版本迭代复用。

§35.3 评估对齐质量

建议三类指标并报告:① 对齐准确率(抽样人工核对);② 覆盖率(多少查询最终对齐到记录);③ 营养漂移(对齐错误的营养素误差分布)。营养漂移比单纯准确率更贴近下游损失——把薯条对到烤土豆,营养上差别巨大但文本上非常相似。

§36 错误排查手册(按症状索引)

症状 可能原因 处置
搜索总是空结果 错拼;关键词过专 缩短关键词;用描述核心词;检查 dataType 参数
搜出大量某品牌产品 未限定 dataType API 传 dataType=Foundation,SR Legacy
能量加和离谱偏大 1008/1062 双计 聚合时排除 1062(坑 2)
CSV join 后行数暴涨 一食多份量/一食多来源行 先按 fdcId×nutrient 聚合(aggfunc=first),再 join 份量
营养素大量为空 层覆盖差异:Branded 只有标签集 按层分表或显式 NA,勿填 0(§25 第 4 条)
API 429 限流 退避 60-120s;降频;批量端点替代循环(§17.2)
API 403/401 key 失效或泄露被吊销 api.data.gov 重新注册;改用环境变量
同一产品多条记录 Branded 重提交历史版 按 gtinUpc 取 publicationDate 最新(§19.1)
数值与包装标签不符 标签舍入规则/配方改版 核对版本与份量口径;理解舍入(§26)
维生素 A 与旧文献对不上 RAE 与旧 IU 口径 换算或统一 RAE(§18.2)
下载包解压失败 磁盘不足/中断 预留 4G+;校验 zip 完整性后重解
旧代码调用 ndb API 失败 旧系统 2020 停用 迁移到 /fdc/v1 + 新 key(坑 1)

§37 版本变更管理策略

对需要长期维护的下游系统(App 后端、评测基准),建议:

  1. 版本钉死:每个数据卡记录「下载包版本日期 + 文件 md5」,评测集与训练集分开钉版。
  2. 变更订阅:关注 Foundation/Survey/Branded 的发布节奏(半年/两年/月),在管线中显式标注「数据截止日期」。
  3. diff 报告:新版到库后跑字段级 diff(新增记录、修改记录、消失记录),Branded 层消失记录常见于厂商撤回——下游缓存要有失效策略。
  4. 回滚能力:旧版 zip 归档保存(全量 460M 压缩、可承受),评测复现依赖旧版可取回。
  5. ** schema 稳定性检查**:文件清单(§33)与列名变更是升级信号,先在影子库验证再切换。

§38 行业与科研应用案例集

§38.1 营养 App 与自托管后端

开源社区把 FDC 全量转为可自托管搜索后端(chowapi/selfhostednutrition 等)已成成熟模式:CSV 入库 → 全文索引 → REST 服务。此类项目同时是第三方规模口径的来源(§8.5 存照)。构建要点:只索引需要的层(多数产品选 SR+Foundation+Branded 精简列);份量换算预计算;定期随官方月更刷新。

§38.2 膳食流行病学与政策评估

FDC+NHANES 是美国膳食政策的评估底座:学校午餐营养达标评估、添加糖/钠消费趋势监测、WIC 计划食品包设计,全部建立在这条数据链上。此类应用的关键纪律是 §30 的权重/方差/报告质量三件套。

§38.3 食品工业与零售

厂商用 Branded 层做竞品营养对标与配方健康化(reformulation)追踪;零售商做货架营养画像;供应链用条码字段联通产品信息。注意任何对外发布的产品对比都应基于标签事实并避免暗示官方背书(§6.1)。

§38.4 机器学习特征层

把「食物 → 150 维营养向量」当作食品类样本的特征层:营养育种(把成分当表型)、食品欺诈检测(营养指纹异常)、超加工程度预测。Foundation 层附带的品种/农艺元数据使「农艺条件 → 成分」的监督学习成为可能——这是 Experimental/Foundation 层独有的 ML 打开方式。

§39 与 INFOODS/国际体系的编码接轨

FAO/INFOODS 的 tagnames 体系(如 X204.1 等)与 USDA nutrient number 是两套编码语言;跨国数据合并时需要维护两者映射(INFOODS 官方提供部分对照)。另注意:各国成分表的「同一食物」在品种、土壤、测定方法上真实存在差异——跨国比较研究应报告「表间差异」而非假设可完全合并。EuroFIR 的 FoodEX2 分类编码为欧洲体系提供了标准化描述框架,是与 SR 描述体系对齐的半自动桥梁。

§40 冗余与一致性:为什么要防止「营养素求和式」的理解

常见初学者误区是把 foodNutrients 数组当成「独立测量并可直接求和的字段集合」。事实上一条记录内部也存在口径混层:能量可能来自实测燃烧热或 Atwater 推算;碳水是差减法;脂肪酸各分项之和≈总脂但受测定方法影响不为精确相等。因此「用宏量守恒校验数据正确性」应设宽容差(能量 ±10%、脂肪酸和 ±2g/100g),否则会把正常的口径性质误判为数据错误。同理,Branded 标签因法规舍入(如每份 <0.5g 反式脂肪可标 0)在「反式脂肪=0」的产品上聚合出的「行业反式脂肪摄入=0」是错误结论——标签零值不是测量零值。

§41 面向数据工程的一体化参考架构

一个可复用的「FDC 数据平台」最小架构:

[官方下载 zip] ==定时抓取==> [原始区(版本化归档, md5 登记)]
     |                                |
     v                                v
[清洗层:五步 Branded 清洗 + 能量去重 + NA 策略]  ==规则卡(版本化)
     |
     v
[宽表层:fdcId × nutrient + 份量 + 类型标签]     == DuckDB/Postgres
     |
     +==> [搜索索引(描述文本 BM25/向量)] ==> 在线查询 API
     +==> [评测集钉版导出(md5 固定)]      ==> 基准复现
     +==> [diff 报告]                       ==> 版本变更管理(§37)

三条设计原则:① 官方 zip 为唯一事实源,任何派生数据可由原始区重建;② 规则卡与数据同版本化;③ 在线/离线/评测三条出口各自独立钉版。该架构直接迁移自 §25/§36/§37 的纪律,适用于任何「多类型+滚动更新」的参考数据库。

§42 撰写与引用规范建议(面向下游论文/模型卡)

  • 引用主格式:U.S. Department of Agriculture, Agricultural Research Service. FoodData Central, fdc.nal.usda.gov. (访问日期)。
  • 分层引用:用了哪层写哪层,如「SR Legacy (April 2018)」「Foundation Foods (April 2026 download)」。
  • 方法透明:清洗规则、能量去重、份量归一口径写入论文附录或仓库 README。
  • 模型卡必填:训练/评测所用 dataType 与版本、已知偏倚声明(标签舍入、自报偏倚、覆盖偏差)。
  • 数字保真:报告中引用具体营养值时附 fdcId,使任何读者可一键核验——这是 FDC 体系给可复现性最好的礼物。

§43 示例食品营养剖析(结构演示,数值以官方记录为准)

以下用三个代表性条目演示「同一营养素框架在不同层的表现差异」。数值为量级示意(写作时点官方数据的典型值),精确引用请按 fdcId 实查——本节的目的是演示如何读记录,不是替代查询。

§43.1 香蕉(SR Legacy:Bananas, raw)

维度 记录表现
层 SR Legacy(ndbNumber 09040 系)
能量 1008 约 89 kcal/100g(1062 同值 kJ 并存)
宏量 蛋白 1003 ≈1.1g;脂肪 1004 ≈0.3g;碳水 1005 ≈22.8g(差减法)
纤维/糖 1079 ≈2.6g;1087 ≈12.2g
矿物质 钾 1095 ≈358mg;钠 1093 ≈1mg
份量表 1 cup mashed≈150g;1 medium(7-7 7/8)≈118g 等
元数据深度 无采样元数据(历史综合层)

读法要点:碳水 22.8g 是差减法产物;钾高钠低的「指纹」使香蕉成为电解质类分析的常客;份量表是营养估算的换算基础。

§43.2 生菠菜(Foundation Foods 覆盖)

维度 记录表现
层 Foundation(另有 SR 近邻条目)
营养框架 与 SR 同一套 150+ 编号
附加元数据 采样州/季节数、样本数、制备协议(raw, ready-to-eat)、分析实验室
使用差异 铁/叶酸/硝酸盐类指标可用于「成分-环境」再分析
与 SR 关系 Foundation 现行分析可能微调 SR 数值;引用须注明层与日期

读法要点:同一食品在 Foundation 与 SR 并存时,先决定「要历史全覆盖(SR)还是现行可溯源(Foundation)」;两者数值差异本身就是方法学研究对象。

§43.3 一款包装麦片(Branded 层)

维度 记录表现
层 Branded(GFPD,月更)
关键字段 brandOwner / gtinUpc / ingredients 文本 / servingSize+servingSizeUnit / brandedFoodCategory
营养素 标签集 15-20 项(能量、宏量、添加糖、钠、部分维生素矿物质强化值)
常见问题 份量基准(per serving 30g vs per 100g);配方改版多版本记录
典型任务 配料表 NLP、添加糖统计、货架对比

读法要点:强化维生素来自厂商添加而非天然含量,与 Foundation 层同名营养素不可直接混比;「标签零值≠测量零值」(§40)。

§44 延伸问答(进阶 15 问)

Q1:为什么同一食品在 SR 与 Foundation 数值不同?
方法学演进(分析技术、采样代表性)与自然变异(品种、产地、年份)都参与。差异不是「谁错了」,而是两套证据链的可信来源不同;引用时写明层与版本即可。

Q2:foodNutrients 数组里同名营养素为什么出现两次?
多为 kcal/kJ 或「总量/分项」结构(如 Vitamin A 的 RAE 与 IU 历史双轨)。按 nutrient number 处理,勿按名称去重。

Q3:份量表里没有我要的份量怎么办?
用 gramWeight 自建换算(如「半根香蕉」≈59g);自建份量要在研究文档里声明估计依据。

Q4:能把 FDC 当作标准答案训练「食物→营养素」回归模型吗?
可以,但要按层分级监督:Foundation/SR 作高置信训练集,Branded 作弱监督;输出端加单位守恒约束(§40)。

Q5:Experimental Foods 怎么批量拿?
无独立下载包;API 按 dataType 过滤分页取,或从原始研究论文逐一对应。规模小,适合定向抓取。

Q6:Survey 层的能量为什么常低于同名 Branded 产品?
Survey 描述是「通用食品+制备态」的平均推导值,Branded 是具体产品(常强化/高糖);两者不是同一总体,比较研究须明确口径。

Q7:下载包会不会包含个人数据?
不会,FDC 无个体数据;NHANES 个体摄入文件在 CDC 侧发布并受其使用条款约束(§26)。

Q8:添加糖(added sugars)字段为何部分层缺失?
添加糖是美国标签法规驱动的字段,Branded 随标签更新普及,Foundation/SR 部分覆盖;历史 NHANES 周期的添加糖估计口径另有版本说明,跨周期比较要核对。

Q9:能否用 FDC 做「食品碳足迹」?
不能直接;FDC 无环境指标。文献常用「营养密度 × 外部 LCA 系数」的组合建模,FDC 只承担营养侧。

Q10:同一记录的 1008 与 Atwater 公式(4/9/4)算出的能量为何不符?
实测燃烧热(含纤维与不可利用成分)与可利用能口径不同;FDC 多数条目能量本身即 Atwater 系推导,但纤维等成分处理差异会带来 1-3% 级别残差(§40)。

Q11:如何判断一条 Branded 记录是否过时?
看 publicationDate 与 gtinUpc 的最新提交;配方改版不回溯旧记录,纵向分析按 §19.1 聚类。

Q12:API 返回的 nutrients 字段结构与 CSV 一致吗?
JSON 是嵌套结构(nutrient 子对象),CSV 是关系表;语义等价,连接键同为 fdcId + nutrient 编号。

Q13:可以用 FDC 描述文本直接做 NER 预训练吗?
可以,但注意三层描述风格迥异(§35.1);分层采样构建语料并标注层来源,否则模型会学到层特有偏置。

Q14:CNDB 迁入后会影响现有五类吗?
官方托管层面整合,具体数据类型与接口以当期官方页面为准(§14 第 7 条遗留疑点)。

Q15:发现数据错误向谁反馈?
Foundation/SR 层向 USDA 营养数据团队反馈渠道;Branded 层按 §29.3 反馈给厂商。反馈前先核对份量口径与版本,多数「错误」实为口径误解。

§45 从 FDC 反看「数据集工程」的通用设计模式

FDC 百年演进沉淀出几条可迁移到任何医学参考数据集的模式,值得在本库建设中对照:

  1. 真值分层公开:不假装所有数据同等可信。把「实验室分析 / 推导 / 自报」显式分层(dataType),比给每条数据挂一个模糊的「置信分」更可审计。
  2. 冻结换可复现:SR Legacy 的永久冻结换来三十年文献的可复现性。滚动更新与版本冻结并存而非二选一。
  3. 统一外键语言:nutrient number 这种稳定编号体系让 150+ 维度跨记录、跨版本、跨库可对齐——医学数据的等价物是受控术语(如 LOINC/SNOMED 编码),值得在 schema 层一等公民化。
  4. 双通道获取:在线 API(查询)+ 全量下载(分析)分工明确,避免用户滥用 API。
  5. 元数据即数据:Foundation 把采样协议、样本数、分析方法作为数据发布,使「数据的证据强度」本身可被计算——这是 AI 时代「数据质量可编程」的先声。
  6. 治理结构透明:Branded 的公私合作链(§29.3)展示了「多来源数据如何明确各环责任」;对应到医学多中心数据,「谁产生、谁审核、谁发布」逐环写清,比一个笼统的免责声明有效得多。

§46 使用 FDC 的最终检查清单(打印级)

□ 任务选层明确(Foundation/SR/Survey/Experimental/Branded,写进文档)
□ 版本钉死(dataType + 下载日期 + 文件 md5)
□ 能量去重(1008 保留,1062 排除)
□ 单位纪律(mg/mcg/g;RAE/DFE 口径核对)
□ 缺失=NA,不填 0
□ Branded 五步清洗(去重/份量归一/配料解析/类别对齐/多版聚类)
□ 份量换算统一 per 100g 基准
□ 抽检四指标(Atwater 一致性/口径冲突/空配料/条码校验)留档
□ 互链与引用:fdcId 级引用 + 官方 citation 格式
□ 论文/模型卡声明:层、版本、清洗规则、已知偏倚
□ 纵向研究:diff 报告 + 旧版归档可回滚
□ 公平性审计:子组覆盖与编码缺失率检查

§47 本条目自评与边界声明

  • 覆盖边界:本条目聚焦数据集本体(结构/获取/质量/生态),不展开营养学本身(如具体摄入推荐值);营养学专业问题应咨询专业文献与指南。
  • 时效边界:规模数字、包体、更新日期均锚定 2026-04-30 下载版与写作时点官方页面;Branded 层月更意味着数字随时间漂移,以官方为准。
  • 双口径透明:所有第三方数字与官方口径的冲突已逐条存照(§14、FACTS §9),本稿不仲裁、只记录。
  • 非背书:条目中提及的第三方项目(镜像、App、研究)仅为生态梳理,不构成质量或安全背书。

§48 参考来源清单

  1. FDC 官方门户:https://fdc.nal.usda.gov(搜索/文档/建议引用格式)
  2. 批量下载页:https://fdc.nal.usda.gov/download-datasets(五类 CSV/JSON zip、包体与版本日期)
  3. API 文档与 key 注册:https://api.data.gov(限流与 DEMO_KEY 口径);API base https://api.nal.usda.gov/fdc/v1
  4. Foundation Foods Documentation(官方方法学 PDF,含采样与协议描述)
  5. FNDDS 官方文档(Survey 层与 WWEIA/NHANES 编码规则;FNDDS 2021-2023 于 2024-10-31 并入 FDC)
  6. USDA ARS BHNRC / Methods and Application of Food Composition Laboratory 页面(机构与生产方)
  7. GFPD 公私合作伙伴关系(IAFNS、GS1 US、1WorldSync、University of Maryland JIFSAN)公开说明
  8. SR Legacy(April 2018)发布说明与 SR 历史版本档案
  9. 第三方镜像项目(chowapi/selfhostednutrition、sugarminder 等 GitHub 仓库)——规模第三方口径与存照来源
  10. NHANES/WWEIA 文档(CDC/NCHS):DR1IFF/DR2IFF 文件结构、抽样权重与方法

(全部来源已在 FACTS.md §1-§9 与本稿正文对应小节落点;核验时间 2026-10-17。)

§49 数据选层决策树(文字版)

任务是什么?
├─ 需要实验室级真值/可溯源(代谢、再分析、表型建模)
│    → Foundation Foods;无覆盖时回退 SR Legacy 并声明
├─ 通用食品营养查询/历史文献复现(NDB number 对照)
│    → SR Legacy(April 2018,冻结)
├─ 美国人群膳食摄入估计(NHANES 联用)
│    → Survey Foods(FNDDS,版本随 NHANES 周期钉死)
├─ 特殊农艺/基因型/加工条件研究
│    → Experimental Foods(API 定向抓取,引用原论文)
├─ 品牌产品/配料表/货架环境/超加工研究
│    → Branded Foods(五步清洗必备)
└─ 跨国比较
     → FDC 为一极 + EuroFIR/中国食物成分表/Open Food Facts(§20)

§50 六个端到端任务剧本

§50.1 剧本 A:为食物图像识别构建营养真值表

输入:模型类别体系(100-1000 类)。步骤:① 每类写「对齐规则卡」(形态/制备态/优先层);② 脚本按 §35.2 五步管线检索候选,置信度低者入人工队列;③ 输出「类别 → fdcId → 每 100g 营养素」表,钉版本;④ 评估时份量估计单列误差预算(§21)。交付物:真值表 + 对齐准确率 + 营养漂移报告。

§50.2 剧本 B:LLM 营养问答 RAG 库

① 选层:SR Legacy+Foundation;② 切片:每 fdcId 一条文档(描述+层+版本+关键营养素编号化);③ 检索:BM25+向量双路,键含 dataType;④ 生成模板强制「每 100g + 单位 + 版本」输出,能量换算由代码执行(§22);⑤ 评测:检索后回答 vs 参数记忆回答分开报分。

§50.3 剧本 C:NHANES 添加糖趋势分析

见 §30 五步;补充:跨周期字段可用性检查(添加糖字段随法规演进);敏感性分析报告能量切片阈值的影响。

§50.4 剧本 D:配料表 NER 数据集构建

① 从 Branded 抽 ingredients 非空子集;② 先剥离过敏原声明句;③ 依规模分层抽样标注(成分/添加剂/过敏原/强化剂四类实体);④ 版本钉死并在论文附抽样协议;⑤ 许可检查:数据公有领域,标注自建部分许可自定(§6.1)。

§50.5 剧本 E:品牌货架营养画像(公共卫生)

① 选定零售区域与品类;② Branded 层按 brandedFoodCategory 粗分;③ per 100g 归一后计算品类中位营养谱;④ 品类内健康度排名(钠密度、添加糖密度);⑤ 输出附「标签值≠实测值」与舍入偏倚声明(§26)。

§50.6 剧本 F:农艺条件→成分的 ML(Foundation/Experimental)

① 从 Experimental API 抓取目标作物的对照条件记录(常规 vs 有机、品种 A/B);② 对齐 Foundation 同作物记录作背景分布;③ 小样本现实:以效应量+CI 报告为主,避免深度模型过拟合;④ 引用逐条落到原论文(§2.5)。

§51 常见数据工程事故复盘(模式化)

  • 模式 1「能量×2」:聚合未排 1062 → 行业级复发的初学者 bug。防御:宽表层直接物理删除 1062(§17.3)。
  • 模式 2「描述文本 join」:用 description 匹配合并表 → 同名不同条/同条异名双杀。防御:只允许 fdcId/nutrient number/条码作连接键(§17.3)。
  • 模式 3「Branded 直接进均值」:未清洗自报层 → 品类营养均值被份量口径打乱。防御:五步清洗是前置门槛(§19.1)。
  • 模式 4「版本漂移污染评测」:月更的 Branded 混进固定评测集 → 两次跑分不可比。防御:评测集钉 md5(§37)。
  • 模式 5「零值语义错误」:把标签 0 当测量 0 → 添加剂/反式脂肪摄入被系统性低估。防御:口径声明 + 敏感性分析(§40)。

§52 词汇与命名规范(检索友好版)

在 FDC 里高效搜索的命名规律(SR 风格):主词在前,修饰在后,逗号分隔,从大类到细类。例如「Milk, whole, 3.25% milkfat, with added vitamin D」「Beef, ground, 85% lean meat / 15% fat, raw」。掌握该语法可直接提升关键词命中率:先搜大类词(milk/beef/rice),再在候选中比对修饰链(脂肪等级/加工程度/制备态)。Survey 层则是「食物+制备+场所/状态」的报告语序;Branded 直接是产品名——三种语序并存再次说明 dataType 过滤是搜索第一参数。

§53 数字口径对照卡(写作与汇报可直接引用)

数字 数值 口径 来源
SR Legacy 条数 ~7,000+ 第三方口径,SR28 通用口径 7,000+ 食品/150+ 营养素 官方文档+第三方
Survey 条数 ~7,000-8,000 第三方(FNDDS 2021-2023 无官方总数) 存照 §14.3
Foundation 条数 数千条级(第三方 ~8,000) 官方不公布固定数 存照 §14.2
Branded 条数 数十万-数百万(38 万 vs 190 万双口径) 官方不公布,以最新下载包为准 存照 §14.1
全量 CSV 压缩 ~460M/解压 ~3.1G 2026-04-30 下载版 官方下载页
Branded 包体 压缩 428M/解压 2.9G 2026-04-30 官方下载页
API 限流 1,000 请求/小时/IP;DEMO_KEY 30/h、50/天;pageSize ≤200 官方 API 文档 api.data.gov
FNDDS 上线 2024-10-31 更新至 2021-2023 周期 官方公告口径 官方文档
SR Legacy 冻结 2018-04 官方 官方文档
旧系统停用 2020-03-31;Access 格式 2021-10 停用 官方 官方文档

§54 编写后记

本条目写作遵循本库纪律包:三源核验(官方门户/下载页/API 文档 + 第三方镜像项目互证)、规模双口径存照不仲裁、互链 rid 全占位待回填、分片私有区写作后显式拼接(R025)。数据集型条目无单篇论文,引用体系以官方建议格式为准(§6.1);methodology 细节以 Foundation Foods Documentation 与 SR 手册为权威。若官方后续发布新版搜索界面、CNDB 整合细节或条数官方口径,应以官方更新为准并在数据卡版本链追加一行,而非改动本条目历史存照。

附录 A:DAIMS 评估全表

维度 评分(1-10) 依据
D 可发现性 9 官方门户/下载页/API 文档齐全且搜索引擎索引良好;「FoodData Central」命名权威;惟新旧系统名(SR/旧 Food Composition Databases)易混(坑 1)微降分
A 可获取性 9 公有领域 CC0;网页+全量下载+免费 API 三通道;无任何注册付费门槛;仅 API 限流与下载包体积(3.1G)构成轻度使用门槛
I 可互操作 8 CSV 关系化多表+JSON 双格式;nutrient number 稳定外键语言;fdcId/ndbNumber 双编号兼容旧文献;扣分项:五层描述文本无受控词表,跨层/跨库文本对齐靠自行工程(§35)
M 元数据质量 8 Foundation 层采样元数据行业标杆(样本数/地点/方法/实验室);扣分项:Branded 自报一致性弱、Foundation 条数等官方不公布固定数(存照 §14)
S 可持续性 9 USDA 官方机构长期维护,1959 年以来制度化运营;半年/月度/两年更新节奏稳定;扣分项:Experimental 层无独立下载包、新版界面迁移中(遗留疑点)
综合评级 8.6/10(优秀) 官方背书+公有领域+三通道获取+双编号体系,为开放政府数据典范;短板集中于非官方控制的 Branded 层与文本对齐工程成本

附录 B:逐项证据链自证

关键数字/事实 来源 正文落点
五类数据类型结构 FDC 官方门户与文档 §2
SR Legacy 2018-04 冻结 官方下载页版本说明 §2.3/§6.3
旧系统 2020-03-31 停用 官方过渡公告(引用格式历史页) §6.3/坑 1
Access 格式 2021-10 停用 官方下载页历史说明 §6.3
FNDDS 2021-2023 于 2024-10-31 并入 官方发布说明 §2.4/§6.3
全量包压缩 ~460M/解压 ~3.1G(2026-04-30) 官方下载页包体标注 §3.3/§6.2
Branded 包体 428M/2.9G;Survey 200M/1.6G;SR 6.7M/54M;Foundation 3.7M/32M 官方下载页 §3.3
API 限流 1,000/h/IP;DEMO_KEY 30/h、50/天;pageSize ≤200 api.data.gov/API 文档 §6.2/§17.1
api.data.gov 免费注册与 key 纪律 官方 API 文档 §6.2/§17.2
公有领域/CC0 立场与建议引用格式 官方 FAQ 与 Use 政策页 §6.1
Branded 合作链(IAFNS/GS1 US/1WorldSync/JIFSAN) GFPD 合作关系公开页 §2.6/§29.3
Foundation 采样元数据字段 Foundation Foods Documentation(2024-04) §2.2/§24.1
WWEIA/NHANES 与 FNDDS 配套 NHANES 官方膳食文档(CDC/NCHS) §4
SR28:7,000+ 食品/150+ 营养素 SR28 文档口径 §1 Q3/§2.3
Branded 条数双口径(~38 万 vs ~190 万) chowapi/selfhostednutrition、sugarminder 仓库 §8.5/§14.1
Foundation ~8,000 / Survey ~7,500(第三方) chowapi、sugarminder §14.2/§14.3
CNDB 2026-04 迁入 USDA/FNS 公告 §6.3/§14.7

附录 C:缩写表(扩展)

缩写 全称
USDA U.S. Department of Agriculture(美国农业部)
ARS Agricultural Research Service(农业研究局)
BHNRC Beltsville Human Nutrition Research Center
NAL National Agricultural Library(国家农业图书馆)
FDC FoodData Central
SR Standard Reference(国家营养数据库标准参考版)
FNDDS Food and Nutrient Database for Dietary Studies
WWEIA What We Eat in America
NHANES National Health and Nutrition Examination Survey
NCHS National Center for Health Statistics(CDC 下属)
GFPD Global Branded Food Products Database
IAFNS Institute for the Advancement of Food and Nutrition Sciences
JIFSAN Joint Institute for Food Safety and Applied Nutrition(University of Maryland)
GS1 US / 1WorldSync 产品信息标准化与分发组织(GDSN)
CNDB Child Nutrition Database(FNS)
AMPM Automated Multiple-Pass Method
RAE / DFE Retinol Activity Equivalents / Dietary Folate Equivalents
INFOODS International Network of Food Data Systems(FAO)
EuroFIR European Food Information Resource
DAIMS Discoverability/Accessibility/Interoperability/Metadata/Sustainability
GTIN/UPC Global Trade Item Number / Universal Product Code(条码)
NDB number Nutrient Databank number(旧 SR 五位编号)

附录 D:十点使用红线(负面清单)

  1. 不把 Branded 标签值当实验室测量值引用。
  2. 不在聚合中同时保留 1008 与 1062。
  3. 不用 description 文本做表连接键。
  4. 不以「数据是官方的」为由跳过版本声明。
  5. 不把 SR Legacy 冻结说成「数据作废」。
  6. 不把标签零值(法规舍入)当测量零值做摄入统计。
  7. 不用无 key 循环爬 API(DEMO_KEY 只做冒烟)。
  8. 不把 FDC 当环境指标(碳足迹/农药残留)来源——它只有营养侧。
  9. 不暗示 USDA 为商业产品背书(商标与官方立场边界)。
  10. 不合并 ODbL 数据(如 Open Food Facts)却不声明许可传染。

附录 E:与金标准条目写作格式的对照说明

  • 金标准为标注型数据集(统计表/一致性系数/基准榜),本条目为数据库型,对应位置改放:五类对比表(§2.1)、规模口径卡(§53)、DAIMS 全表(附录 A)、证据链自证(附录 B)。
  • 「坑 N」编号制:本条目坑 1-7(§8)+ 模式化事故复盘 5 则(§51),合计 12 则。
  • 双零自检、YAML 冒烟、分片拼接(R025)、互链占位(R018)等流程纪律与金标准一致。

附录 F:本条目检索关键词建议(供库内检索与互链)

  • 中文:美国农业部食品数据中心、食品成分数据库、营养数据库、膳食评估、食物营养成分、FNDDS、NHANES 膳食、包装食品标签
  • 英文:USDA FoodData Central、food composition database、SR Legacy、Foundation Foods、Branded Foods、nutrient database、dietary assessment、food nutrients
  • 组合建议:检索本条目时同时给「数据集类型=参考数据库/查询型」标注,与影像/标注型条目区分。

附录 G:版本与维护说明

  • 本条目数据口径锚定:2026-04-30 官方下载版 + 2026-10-17 官方页面核验。
  • 后续维护建议:每半年(Foundation 发布节点)核对规模与包体一行;Branded 层数字不写死、随用随查。
  • 变更影响面:本条目数字多为「官方包体/口径」型,变更概率低;互链 rid 变更由主会话统一管理。

附录 H:五个常见检索场景的标准答案(速答卡)

  1. 「鸡蛋的营养成分查哪个条目?」——SR Legacy「Egg, whole, raw, fresh」为通用金标准;Foundation 若已覆盖则以 Foundation 为现行分析;Branded 品牌蛋仅含标签值。
  2. 「我需要一个食物的 GI(升糖指数)」——FDC 不含 GI;国际 GI 表(悉尼大学)另查,两者常被误混。
  3. 「某零食每包的热量」——Branded 层按 gtinUpc 查,注意 servingSize 与包装份数( servingsPerContainer)相乘。
  4. 「老人膳食蛋白质推荐怎么算」——推荐量属膳食指南(DGA/RDA),FDC 只提供食物侧含量;两者联用做摄入达标评估。
  5. 「中国人常吃食物在 FDC 里有吗」——仅覆盖进入美国市场的品类;亚洲传统食品覆盖弱,应主用中国食物成分表、FDC 作方法学参照(§20)。

附录 I:写作纪律执行存照(本条目)

  • 开工三查:锁 agent-g-usdafoodda 续跑有效;ps codebuddy 进程计数 5;无改道(dedup HIT 均为自身目录与池状态)。
  • 存在性核验:FACTS.md(前实例完成)三源互证结论沿用;本实例核验 dedup_gate + ls writing/ 一致。
  • 网络预算:本实例未发起新 WebSearch/WebFetch(复用前实例核验结论与 FACTS),预算内。
  • 私有区:.parts_agent-g-usdafoodda_1792168649_116927/(PID 116927),12 个 part 全部落盘后显式 cat 拼接。
  • R025/R022/R009 合规:拼接行数核验 ≥1200;YAML safe_load 通过;frontmatter 无英文直引号;字段长度均低于硬上限。

§13 一页速查卡

名称        USDA FoodData Central(FDC)
机构        USDA ARS / BHNRC 生产,NAL 托管
上线        2019(前身 SR 谱系逾百年);SR Legacy 2018-04 冻结
五类数据    Foundation / SR Legacy / Survey(FNDDS) / Experimental / Branded
规模        SR Legacy ~7,000+ 条×150+ 营养素;Survey ~7,000-8,000;
            Foundation 数千条;Branded 数十万-数百万(月更);Experimental 未公布
主键        fdcId;营养素按 USDA nutrient number(1008=kcal, 1003=蛋白,
            1004=脂, 1005=碳水, 1079=纤维, 1093=钠)
许可        公有领域(CC0 1.0 参照);建议引用 USDA, ARS, FoodData Central
获取        网页 fdc.nal.usda.gov|批量 fdc.nal.usda.gov/download-datasets
            API api.nal.usda.gov/fdc/v1(key: api.data.gov 免费)
限流        1,000 请求/小时/IP;DEMO_KEY 30/h;pageSize ≤200
包体        全量 CSV 压缩 ~460M / 解压 ~3.1G(2026-04-30 版)
高频坑      能量双记录(1008/1062);Branded 自报;搜索不容错拼;
            份量基准混用;SR 冻结须注版本
选层口诀    代谢研究 Foundation|通用金标准 SR Legacy|人群调查 Survey
            特殊条件 Experimental|真实供给 Branded
NHANES 链   Survey Foods ⇄ WWEIA/NHANES 24h 回顾(权重与偏倚见 §4.2)

§14 遗留疑点与存照汇总

  1. Branded 条数双口径:~38 万(chowapi 2024)vs ~190 万(sugarminder 2025-26);官方不公布,正文按「数十万至数百万、以最新下载包为准」。存照。
  2. Foundation 条数:第三方口径 ~8,000;官方自述持续扩展、无固定数。存照。
  3. Survey 条数:第三方 ~7,500;官方 FNDDS 2021-2023 未给总数。存照。
  4. 总量 >40 万条为第三方口径,与 Branded 百万口径冲突;正文以「合计随 Branded 月更持续增长」表述。存照。
  5. Experimental Foods 条数:无独立下载包,官方与第三方均无可靠数字。遗留疑点。
  6. 无固定单篇方法学论文:官方建议引用即官网格式;方法学细节分散于 SR 手册与 Foundation Foods Documentation(2024-04 版 PDF)。遗留疑点(指无统一方法学引文,非无文档)。
  7. CNDB(2026-04 迁入)与新版搜索界面的落地状态:以官方页面实时为准,本稿未展开。遗留疑点。

§15 建议互链点(供主会话回填 rid)

目标条目 关系 互链理由
NHANES 膳食/体检类条目 上下游配套 Survey Foods 即 WWEIA/NHANES 膳食模块查找表(§4)
营养/肥胖/代谢队列类条目 特征来源 膳食摄入特征层的官方数据底座
食物图像识别类条目 真值供应链 营养估算 ground truth 的最终来源(§5)
食品标签/超加工食品 NLP 类条目(如有) 语料来源 Branded Foods 配料表文本最大公开语料

§16 附记:写作过程与合规声明

  • 本条目为数据库型(非标注型)候选:无 ML 划分与基准榜,按纪律以「评估与生态」梳理替代(§5、§7)。
  • 三源核验路径:官方门户/下载页/文档 + api.data.gov 文档 + 第三方镜像项目(chowapi、sugarminder)互证;HuggingFace 走 hf-mirror 未涉及;核心数字与官方包体一致。
  • 双口径冲突全部存照于 §14 与 FACTS.md §9;正文字段长度(title/subtitle/data_source ≤255、description ≤170)与 frontmatter 引号纪律(无英文直引号)已自检。
  • 互链 rid 全部占位 /0,由主会话入库后统一回填(R018 教训)。
  • 写作过程:前实例已完成 FACTS.md 与查重锁;本实例(agent-g-usdafoodda 续跑)复用 FACTS,分五 part 私有区写作后显式拼接(R025 教训)。

相关数据集导航

以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:

  • brfss — 共享标签:公共卫生与流行病学 / 调查数据 / 公共卫生统计
  • ghdx — 共享标签:公共卫生与流行病学 / 调查数据 / 公共卫生统计
  • wuenic-immunization — 共享标签:公共卫生与流行病学 / 调查数据 / 公共卫生统计
  • mics — 共享标签:公共卫生与流行病学 / 调查数据
  • dryad — 共享标签:公共卫生与流行病学 / 调查数据
  • maude — 共享标签:公共卫生统计 / 真实世界数据
  • nhanes — 共享标签:公共卫生与流行病学 / 调查数据
  • nhis — 共享标签:公共卫生与流行病学 / 调查数据
  • maternal-ultrasound-nutrition — 共享标签:公共卫生与流行病学 / 真实世界数据
  • dhs-program — 共享标签:公共卫生与流行病学 / 调查数据

导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

返回 AI-Ready 数据集