You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何匹配用户输入与Firebase存储数据实现疾病预测功能?

症状匹配预测疾病的简易实现方案

你这个场景数据量很小(单疾病仅关联2-3个症状),完全不需要上机器学习、向量检索这类复杂方案,用规则匹配就能快速上线,步骤如下:

1. 先调整Firebase存储结构,降低匹配难度

不要做多层嵌套的复杂结构,选下面两种结构之一就行:

  • 建diseases集合:每个文档对应一种疾病,包含两个核心字段:diseaseName(疾病名,字符串)、relatedSymptoms(关联标准症状,数组类型)
  • 如果疾病总数不超过100种,直接单独存一个全局配置文档,用键值对形式存「疾病名: 关联症状数组」的映射,一次就能拉取全量数据,查询成本极低。

必须提前做症状词标准化:单独存一个同义词映射表,把口语化的症状表述和你存量数据里的标准症状做绑定,比如“嗓子疼”“喉咙痛”统一映射为“咽痛”,“咳得厉害”“咳嗽”统一映射为“咳嗽”,避免因为用户输入表述差异导致匹配失效。这个表前期整理100条左右常见症状的同义词就能覆盖90%以上的输入场景,不用搞复杂NLP。

2. 匹配逻辑实现(两种方案按需选)

方案1:前端本地计算(最省事,适合小数据量)

如果疾病总数少,直接在端上算就行,响应最快还省云资源:

  • 应用启动时一次性拉取Firebase里的疾病-症状映射、同义词映射,存在本地缓存,不用每次用户输入都发请求
  • 用户提交症状后,先做文本预处理:把用户输入的内容拆成关键词,过同义词表转换成你定义的标准症状词,去重后生成用户症状集合
  • 遍历所有疾病计算匹配度:每匹配到一个该疾病的关联症状记1分,最终匹配度 = 命中的症状数 / 该疾病的总关联症状数(这种加权方式能自动适配你每个疾病关联2-3个症状的情况,比如2个症状全中匹配度100%,优先级高于3个症状中2个的66%匹配度)
  • 把所有疾病按匹配度从高到低排序,过滤掉匹配度低于阈值(比如设为30%,避免完全不相关的疾病出现在结果里)的条目,返回Top3-5的结果即可。
    核心计算逻辑参考代码:
// 预处理得到的用户标准症状集合
const userSymptoms = new Set(["咳嗽", "低烧"])
// 从Firebase拉取的疾病-症状映射
const diseaseMap = {
  "普通感冒": ["咳嗽", "流鼻涕", "低烧"],
  "急性支气管炎": ["持续咳嗽", "胸闷", "咳痰"],
  "病毒性流感": ["高烧", "肌肉酸痛", "乏力"]
}
const matchResults = []
for (const [diseaseName, diseaseSymptoms] of Object.entries(diseaseMap)) {
  const hitCount = diseaseSymptoms.filter(sym => userSymptoms.has(sym)).length
  const matchRate = hitCount / diseaseSymptoms.length
  if (matchRate > 0.3) { // 过滤匹配度过低的结果
    matchResults.push({ diseaseName, matchRate })
  }
}
// 按匹配度降序排序
matchResults.sort((a, b) => b.matchRate - a.matchRate)

方案2:云函数计算(适合不想把全量疾病数据暴露给前端的场景)

逻辑和前端计算完全一致,只是把计算步骤移到Firebase Cloud Function里:用户端把预处理好的症状关键词传给云函数,云函数拉取Firebase里的存量映射表完成匹配计算,排序后只返回TopN的预测结果给前端即可。不用折腾Firebase自带的复杂数组查询语法,直接遍历计算的开发成本低很多。

注意事项

  • 前期别盲目上复杂技术栈,你当前的数据规模下规则匹配的准确率完全能满足需求,后续单疾病关联症状扩充到10个以上、疾病总量过千的时候再考虑升级方案就行
  • 结果页必须加明确提示:本结果仅为参考,不能替代专业医师的诊断,身体不适请及时就医,避免合规风险
  • 同义词表可以根据用户实际输入持续迭代,遇到没覆盖到的口语化表述直接补到映射表里就行,维护成本很低

内容的提问来源于stack exchange,提问作者Mfaisal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 12:57:17