|
@@ -0,0 +1,185 @@
|
|
|
|
|
+# 个性化描述性信息提取分析
|
|
|
|
|
+
|
|
|
|
|
+> 基于 PDF 报告原文,分析哪些个性化描述性信息需要补充提取
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+## 一、当前已提取的(结构化数据)
|
|
|
|
|
+
|
|
|
|
|
+| 模块 | 已提取 | 描述性信息 |
|
|
|
|
|
+|------|-------|-----------|
|
|
|
|
|
+| 报告概述 | ✅ 数值 | ❌ 缺少描述 |
|
|
|
|
|
+| 疾病风险评估 | ✅ 值+状态 | ❌ 缺少个性化解读 |
|
|
|
|
|
+| 营养/氨基酸/维生素/微量元素 | ✅ 值+状态 | ❌ 缺少个性化解读 |
|
|
|
|
|
+| 肠道屏障/SCFA/神经递质 | ✅ 值+状态 | ❌ 缺少个性化解读 |
|
|
|
|
|
+| 抗生素风险评估 | ✅ 值+状态 | ❌ 缺少个性化解读 |
|
|
|
|
|
+| 菌群分类 | ✅ 丰度+范围 | ❌ 缺少菌种说明 |
|
|
|
|
|
+| 食物推荐表 | ✅ 完整 | ✅ 已包含 |
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+## 二、需要补充提取的描述性信息
|
|
|
|
|
+
|
|
|
|
|
+### 2.1 整体评估描述(P0 — 高价值)
|
|
|
|
|
+
|
|
|
|
|
+| 描述类型 | PDF 原文示例 | 提取方式 |
|
|
|
|
|
+|---------|-------------|---------|
|
|
|
|
|
+| 肠道年龄评估 | `您的肠道菌群出现了紊乱、存在疾病风险或发育滞后...` | 提取"肠道年龄评估"后的段落文本 |
|
|
|
|
|
+| 菌群健康状况评估 | 整体菌群健康评估文本 | 提取"菌群健康状况评估"后的段落 |
|
|
|
|
|
+| 健康总分解读 | `个别疾病高风险或多疾病提示注意...` | 提取"健康总分"后的评分解读文本 |
|
|
|
|
|
+| 报告总结 | 报告总结段落 | 提取"报告总结"后的段落 |
|
|
|
|
|
+
|
|
|
|
|
+### 2.2 各指标个性化解读(P0 — 高价值)
|
|
|
|
|
+
|
|
|
|
|
+每个指标都有个性化的描述文本,格式为:
|
|
|
|
|
+```
|
|
|
|
|
+您的[指标名]状况评估分值为[XX]分,[描述]。
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+**示例**:
|
|
|
|
|
+- `您的苏氨酸营养状况评估分值为10分,有些偏低,建议在现有饮食中适当增加苏氨酸的摄入`
|
|
|
|
|
+- `您的丙氨酸营养状况评估分值为1分,表明您的丙氨酸摄入不足`
|
|
|
|
|
+- `您的碳水化合物营养状况评估分值为96分,表明您的碳水化合物摄入充足`
|
|
|
|
|
+- `您的丁酸盐状况评估分值为14分,有些偏低,建议注意饮食,适当增加丁酸盐的摄入`
|
|
|
|
|
+- `您的丙酸盐状况评估分值为71分,属于正常范围,保持现有饮食即可`
|
|
|
|
|
+
|
|
|
|
|
+**涉及指标**:30+个指标(营养5项 + 氨基酸15项 + 维生素10项 + 微量元素2项 + 屏障/SCFA/神经递质)
|
|
|
|
|
+
|
|
|
|
|
+**提取方式**:正则 `您的[指标名]状况评估分值为[\d.]+分[,。][描述]`
|
|
|
|
|
+
|
|
|
|
|
+### 2.3 疾病风险个性化解读(P1 — 中价值)
|
|
|
|
|
+
|
|
|
|
|
+每个疾病风险都有详细的个性化解读,格式为:
|
|
|
|
|
+```
|
|
|
|
|
+根据您的肠道菌群中[疾病]患者与健康人之间的差异菌群,分析了您的[疾病]风险,显示分值为[XX]
|
|
|
|
|
+您的风险值在0.3以下,风险较低,如果分值接近0.3仍然需要注意...
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+**示例**:
|
|
|
|
|
+- `根据您的肠道菌群中心脑血管血栓患者与健康人之间的差异菌群,分析了您的心脑血管疾病风险 您的风险为注意,该分值段可能是近期生活方式不当导致风险上升...`
|
|
|
|
|
+- `根据您的肠道菌群中抑郁症患者与健康人之间的差异菌群,分析了您抑郁症的疾病风险 您的风险值在0.3以下,风险较低...`
|
|
|
|
|
+
|
|
|
|
|
+**提取方式**:正则 `根据您的肠道菌群中[疾病]患者与健康人之间的差异菌群,分析了您的[疾病]风险[,。][描述]`
|
|
|
|
|
+
|
|
|
|
|
+### 2.4 菌种说明(P1 — 中价值)
|
|
|
|
|
+
|
|
|
|
|
+每个菌种都有说明文本,当前已提取,但格式需要优化:
|
|
|
|
|
+- 当前:`说明:多导致人体炎症;致病;导致菌群失衡;产丁酸...`
|
|
|
|
|
+- 需要:保持完整文本,但可拆分出关键信息(如"产丁酸"、"益生菌"等标签)
|
|
|
|
|
+
|
|
|
|
|
+### 2.5 营养建议/饮食建议(P2 — 低价值)
|
|
|
|
|
+
|
|
|
|
|
+报告末尾有通用的营养建议和饮食建议说明,这些是模板化内容而非个性化内容,优先级较低。
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+## 三、提取方案
|
|
|
|
|
+
|
|
|
|
|
+### 3.1 在 `extract_pdf_to_json()` 中新增字段
|
|
|
|
|
+
|
|
|
|
|
+在 `extract_pdf_to_json()` 函数的 `result` 字典中增加以下字段:
|
|
|
|
|
+
|
|
|
|
|
+```python
|
|
|
|
|
+result['报告解读'] = {
|
|
|
|
|
+ '肠道年龄评估': '...', # 肠道年龄个性化描述
|
|
|
|
|
+ '菌群健康评估': '...', # 菌群整体健康评估
|
|
|
|
|
+ '健康总分解读': '...', # 健康总分评分解读
|
|
|
|
|
+ '报告总结': '...', # 报告总结
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+# 每个疾病风险增加解读字段
|
|
|
|
|
+result['疾病风险评估'] = [
|
|
|
|
|
+ {
|
|
|
|
|
+ '名称': '心脑血管疾病',
|
|
|
|
|
+ '数值': '0.37',
|
|
|
|
|
+ '状态': '注意',
|
|
|
|
|
+ '解读': '根据您的肠道菌群中心脑血管血栓患者与健康人之间的差异菌群...'
|
|
|
|
|
+ },
|
|
|
|
|
+ ...
|
|
|
|
|
+]
|
|
|
|
|
+
|
|
|
|
|
+# 每个指标增加解读字段
|
|
|
|
|
+result['氨基酸评估'] = [
|
|
|
|
|
+ {
|
|
|
|
|
+ '名称': '苏氨酸',
|
|
|
|
|
+ '数值': '10',
|
|
|
|
|
+ '状态': '偏低',
|
|
|
|
|
+ '解读': '您的苏氨酸营养状况评估分值为10分,有些偏低,建议在现有饮食中适当增加苏氨酸的摄入'
|
|
|
|
|
+ },
|
|
|
|
|
+ ...
|
|
|
|
|
+]
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+### 3.2 新增函数 `extract_interpretation()`
|
|
|
|
|
+
|
|
|
|
|
+```python
|
|
|
|
|
+def extract_interpretation(full_text, indicator_name, pattern_type='nutrition'):
|
|
|
|
|
+ """提取指标的个性化解读文本"""
|
|
|
|
|
+ if pattern_type == 'nutrition':
|
|
|
|
|
+ # 营养/氨基酸/维生素类解读
|
|
|
|
|
+ pat = rf'您的{re.escape(indicator_name)}状况评估分值为[\d.]+分[,。][\u4e00-\u9fff\s,、;:,.;:()()、/a-zA-Z0-9\-%]+'
|
|
|
|
|
+ elif pattern_type == 'disease':
|
|
|
|
|
+ # 疾病风险解读
|
|
|
|
|
+ pat = rf'分析了您的{re.escape(indicator_name)}[\u4e00-\u9fff,。\s]{{0,30}}风险[,。][\u4e00-\u9fff\s,、;:,.;:()-]+'
|
|
|
|
|
+ m = re.search(pat, full_text)
|
|
|
|
|
+ return m.group() if m else ''
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+### 3.3 在 `extract_pdf_to_json()` 中调用
|
|
|
|
|
+
|
|
|
|
|
+```python
|
|
|
|
|
+# 在疾病风险评估后,补充解读
|
|
|
|
|
+for r in result['疾病风险评估']:
|
|
|
|
|
+ r['解读'] = extract_interpretation(all_full_text, r['名称'], 'disease')
|
|
|
|
|
+
|
|
|
|
|
+# 在氨基酸/维生素等评估后,补充解读
|
|
|
|
|
+for section in ['主要营养评估', '氨基酸评估', '维生素评估', '微量元素评估']:
|
|
|
|
|
+ for r in result.get(section, []):
|
|
|
|
|
+ r['解读'] = extract_interpretation(all_full_text, r['名称'], 'nutrition')
|
|
|
|
|
+
|
|
|
|
|
+# 肠道屏障/SCFA/神经递质解读
|
|
|
|
|
+for section in ['肠道屏障及代谢物', '短链脂肪酸', '神经递质及激素']:
|
|
|
|
|
+ for r in result.get(section, []):
|
|
|
|
|
+ r['解读'] = extract_interpretation(all_full_text, r['名称'], 'nutrition')
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+## 四、优先级排序
|
|
|
|
|
+
|
|
|
|
|
+| 优先级 | 内容 | 工作量 | 价值 |
|
|
|
|
|
+|-------|------|-------|------|
|
|
|
|
|
+| P0 | 各指标个性化解读(30+指标) | 小(正则提取) | 高(AI解读报告可引用) |
|
|
|
|
|
+| P0 | 肠道年龄评估描述 | 小 | 高 |
|
|
|
|
|
+| P0 | 健康总分解读 | 小 | 高 |
|
|
|
|
|
+| P1 | 疾病风险个性化解读 | 中(不同疾病格式不同) | 中 |
|
|
|
|
|
+| P1 | 菌种说明优化 | 小 | 中 |
|
|
|
|
|
+| P2 | 报告总结/整体评估 | 小 | 低 |
|
|
|
|
|
+| P2 | 营养建议/饮食建议模板 | 小 | 低 |
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+## 五、JSON 输出格式变更
|
|
|
|
|
+
|
|
|
|
|
+当前输出:
|
|
|
|
|
+```json
|
|
|
|
|
+{
|
|
|
|
|
+ "氨基酸评估": [
|
|
|
|
|
+ {"名称": "苏氨酸", "数值": "10", "状态": "偏低"}
|
|
|
|
|
+ ]
|
|
|
|
|
+}
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+修改后输出:
|
|
|
|
|
+```json
|
|
|
|
|
+{
|
|
|
|
|
+ "氨基酸评估": [
|
|
|
|
|
+ {
|
|
|
|
|
+ "名称": "苏氨酸",
|
|
|
|
|
+ "数值": "10",
|
|
|
|
|
+ "状态": "偏低",
|
|
|
|
|
+ "解读": "您的苏氨酸营养状况评估分值为10分,有些偏低,建议在现有饮食中适当增加苏氨酸的摄入"
|
|
|
|
|
+ }
|
|
|
|
|
+ ]
|
|
|
|
|
+}
|
|
|
|
|
+```
|