# myExpertise
**Repository Path**: openminds/my-expertise
## Basic Information
- **Project Name**: myExpertise
- **Description**: 基于《DSM-5鉴别诊断手册》实现的精神障碍鉴别诊断专家系统,使用 CLIPS 规则引擎构建决策树,支持 29 种主诉症状的鉴别诊断。
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-06-27
- **Last Updated**: 2026-06-28
## Categories & Tags
**Categories**: Uncategorized
**Tags**: CLIPS, Python, DSM-5
## README
# DSM-5 鉴别诊断专家系统
基于《DSM-5鉴别诊断手册》实现的精神障碍鉴别诊断专家系统,使用 CLIPS 规则引擎构建决策树,支持 29 种主诉症状的鉴别诊断。
## 项目概述
本系统采用**专家系统**架构,将《DSM-5鉴别诊断手册》(Michael B. First, 2016)中的鉴别诊断决策树转化为 CLIPS 规则,通过交互式问答引导用户完成精神障碍的鉴别诊断流程。
### 核心特性
- **29 种主诉症状**:覆盖从儿童行为问题到老年认知损害的完整精神障碍谱系
- **决策树驱动**:基于临床诊断逻辑的树状推理流程
- **双语言支持**:规则文件包含中英文对照
- **多输出格式**:支持控制台输出和 JSON 文件输出
- **可打包部署**:支持 PyInstaller 打包为独立可执行文件
## 技术架构
```mermaid
flowchart TB
subgraph 应用层
A["dsm5_expert_system.py
Python 主程序 / 入口"]
end
subgraph 推理层
B["CLIPS
规则引擎 / 推理核心"]
end
subgraph 规则层
C["dsm5_expert_system.clp
CLIPS 规则文件 / 29 个子系统 / 鉴别诊断决策树"]
end
A --> B
B --> C
```
### 技术栈
| 组件 | 技术 | 版本要求 |
|------|------|----------|
| 规则引擎 | clipspy | - |
| 语言 | Python | >= 3.8 |
| 打包工具 | PyInstaller | >= 6.21.0 |
## 支持的主诉症状
系统支持以下 29 种主诉症状的鉴别诊断:
| 编号 | 主诉症状 | 编号 | 主诉症状 |
|------|----------|------|----------|
| cc1 | 不良学校表现 | cc16 | 病因涉及创伤或心理社会应激源 |
| cc2 | 儿童或青少年中的行为问题 | cc17 | 躯体主诉或疾病/外貌焦虑 |
| cc3 | 言语紊乱 | cc18 | 食欲改变或异常的进食行为 |
| cc4 | 随境转移 | cc19 | 失眠 |
| cc5 | 妄想 | cc20 | 嗜睡 |
| cc6 | 幻觉 | cc21 | 女性性功能失调 |
| cc7 | 紧张症症状 | cc22 | 男性性功能失调 |
| cc8 | 高涨或膨胀的心境 | cc23 | 攻击行为 |
| cc9 | 易激惹心境 | cc24 | 冲动性或冲动控制问题 |
| cc10 | 抑郁心境 | cc25 | 自伤或自残 |
| cc11 | 自杀观念或行为 | cc26 | 过度物质使用 |
| cc12 | 精神运动性迟滞 | cc27 | 记忆丧失 |
| cc13 | 焦虑 | cc28 | 认知损害 |
| cc14 | 惊恐发作 | cc29 | 躯体疾病作为病因 |
| cc15 | 回避行为 | | |
## 安装与运行
### 方式一:Python 源码运行
```bash
# 克隆项目
git clone
cd my-expertise
# 创建虚拟环境并安装依赖
uv venv
uv pip install -e .
# 运行系统
python dsm5_expert_system.py
```
### 方式二:直接运行可执行文件
Windows 用户可直接运行 `dist/dsm5_expert_system.exe`。
### 方式三:重新打包
```bash
# 安装开发依赖
uv pip install pyinstaller
# 打包
pyinstaller dsm5_expert_system.spec
```
## 使用说明
1. 运行程序后,系统将显示 29 种主诉症状列表
2. 输入症状编号(如 `cc1`)选择主诉症状
3. 根据系统提示,依次回答 `yes/no` 问题
4. 系统根据回答沿决策树推理,最终输出鉴别诊断结果
5. 诊断结果同时保存至 `dsm5_expert_system.json` 文件
### 输出格式
```json
{
"主诉症状": "抑郁心境",
"鉴别诊断": "重性抑郁障碍"
}
```
## 项目结构
```
my-expertise/
├── dsm5_expert_system.py # Python 主程序
├── dsm5_expert_system.clp # CLIPS 规则文件(核心诊断逻辑)
├── dsm5_expert_system.json # 诊断结果输出
├── dsm5_expert_system.spec # PyInstaller 打包配置
├── pyproject.toml # Python 项目配置
├── dist/ # 打包输出目录
│ └── dsm5_expert_system.exe
└── build/ # 打包中间产物
```
## 参考文献
- 《DSM-5鉴别诊断手册》,Michael B. First,北京大学出版社,2016年3月
## 声明
⚠️ **重要声明**:本系统仅供**学术研究和学习目的**使用,不能替代专业精神科医生的诊断。精神障碍的诊断需要结合临床访谈、病史采集和专业评估,请务必咨询合格的医疗专业人员。
## 许可证
MIT License