EduAdmin主观题自动化评估系统是一个基于微服务架构的智能教育评估平台,集成了先进的NLP算法,能够自动评估主观题答案并提供详细的反馈。系统采用BCHS + REWT + CAMF算法组合,实现高精度、可解释的主观题自动评分。
- 自动评分: 对主观题(简答/论述)在学生提交后自动打分
- 多维度分析: 语义相似度、关键词匹配、表达连贯性三维评估
- 实时反馈: 提供详细的评估说明和改进建议
- 评分管理: 查看系统分与子项得分详情
- 关键词分析: 显示核心、相关、辅助关键词命中情况
- 人工干预: 支持教师覆盖系统评分,实现人机协作
- 统计分析: 提供评分分布、趋势分析等统计功能
- 成绩查询: 查看总分与详细反馈
- 学习建议: 基于评估结果提供个性化学习建议
- 进度跟踪: 记录学习进度和成绩变化
- 多语言支持: 支持中文、英文、乌克兰语等多种语言
- 动态优化: 基于人工反馈的权重自适应优化
- 高可用性: 微服务架构,支持水平扩展
- 可解释性: 提供详细的评估过程和解释
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ 前端管理端 │ │ 前端学员端 │ │ eval-service │
│ (Vue 3) │ │ (Vue 3) │ │ (Python+FastAPI)│
│ Port: 8080 │ │ Port: 8081 │ │ Port: 8000 │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
└───────────────────────┼───────────────────────┘
│
┌─────────────────┐
│ Go 后端服务 │
│ Port: 8080 │
└─────────────────┘
│
┌─────────────────┐
│ MySQL 数据库 │
│ Port: 3306 │
└─────────────────┘
│
┌─────────────────┐
│ Redis 缓存 │
│ Port: 6379 │
└─────────────────┘
- eval-service: Python + FastAPI 微服务,实现NLP算法
- go-backend: Go 后端服务,处理业务逻辑和API
- frontend: Vue 3 前端,提供管理端和学员端界面
- database: MySQL 数据库,存储评估数据和配置
- cache: Redis 缓存,提升系统性能
- Docker 20.10+
- Docker Compose 2.0+
- 至少 4GB 可用内存
- 至少 10GB 可用磁盘空间
# 克隆项目
git clone <repository-url>
cd eduadmin-subjective-evaluation
# 启动所有服务
./run.sh
# 或者使用 Docker Compose
docker-compose up -d- 前端管理端: http://localhost:8080
- 前端学员端: http://localhost:8081
- eval-service API: http://localhost:8000
- API 文档: http://localhost:8000/docs
# 运行演示脚本
python demo.pyeduadmin-subjective-evaluation/
├── eval-service/ # Python 微服务
│ ├── app/
│ │ ├── api/ # API 路由
│ │ ├── core/ # 核心模块
│ │ └── main.py # 应用入口
│ ├── tests/ # 测试文件
│ ├── config/ # 配置文件
│ ├── requirements.txt # Python 依赖
│ └── Dockerfile # Docker 配置
├── go-backend/ # Go 后端服务
│ ├── internal/
│ │ ├── config/ # 配置管理
│ │ ├── database/ # 数据库操作
│ │ ├── handlers/ # 请求处理
│ │ ├── models/ # 数据模型
│ │ ├── services/ # 业务逻辑
│ │ └── middleware/ # 中间件
│ ├── go.mod # Go 模块文件
│ └── Dockerfile # Docker 配置
├── frontend/ # Vue 前端
│ ├── src/
│ │ ├── admin/ # 管理端
│ │ ├── student/ # 学员端
│ │ └── api/ # API 客户端
│ ├── package.json # 前端依赖
│ └── Dockerfile.* # Docker 配置
├── database/ # 数据库脚本
│ └── init.sql # 初始化脚本
├── docs/ # 文档
│ ├── API.md # API 文档
│ ├── ALGORITHM.md # 算法详解
│ └── DEPLOYMENT.md # 部署指南
├── docker-compose.yml # Docker Compose 配置
├── run.sh # 启动脚本
├── stop.sh # 停止脚本
├── demo.py # 演示脚本
└── README.md # 项目说明
- 计算参考答案与学生答案的余弦相似度
- 使用贝叶斯校正提高相似度计算的准确性
- 考虑历史评分分布的先验知识
- 基于人工反馈动态调整评估权重
- 公式:
w_new = 0.7 × w_initial + 0.3 × (HumanScore / SystemScore) × w_initial - 避免全局漂移,保持系统稳定性
- 综合语义、关键词、连贯性三个维度
- 公式:
FinalScore = 0.6 × Semantic + 0.3 × KeyTerm + 0.1 × Coherence - 提供可解释的最终评分
- TF-IDF × Word2Vec 融合: 结合词频和语义信息
- 动态阈值: 自适应过滤低重要性词汇
- 关键词分级: 核心、相关、辅助三级关键词体系
- 评估准确率: 与人工评分相关性 > 0.85
- 响应时间: 单次评估 < 3秒
- 并发处理: 支持 100+ QPS
- 可用性: 99.9% 服务可用性
# 数据库配置
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_USER=eduadmin
MYSQL_PASSWORD=eduadmin123
MYSQL_DATABASE=eduadmin
# Redis 配置
REDIS_HOST=localhost
REDIS_PORT=6379
# 评估服务配置
EVAL_SERVICE_URL=http://eval-service:8000algorithm:
weights:
semantic: 0.6 # 语义权重
keyterm: 0.3 # 关键词权重
coherence: 0.1 # 连贯性权重
tfidf_threshold_factor: 0.15 # TF-IDF 阈值因子
rewt:
learning_rate: 0.3 # 学习率
momentum: 0.7 # 动量# 运行 Python 测试
cd eval-service
python -m pytest tests/
# 运行 Go 测试
cd go-backend
go test ./...
# 运行前端测试
cd frontend
npm test- Fork 项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开 Pull Request
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情
- FastAPI - 现代、快速的 Web 框架
- Vue.js - 渐进式 JavaScript 框架
- Gin - Go Web 框架
- Element Plus - Vue 3 组件库
- Gensim - 主题建模和文档相似性分析
- 项目主页: [GitHub Repository]
- 问题反馈: [GitHub Issues]
- 邮箱: [your-email@example.com]
⭐ 如果这个项目对您有帮助,请给我们一个 Star!