#### 技术背景:为什么需要分离评分?在公共资源交易系统中,技术方案评分(主观分)与资质认证评分(客观分)的混合评审一直是行业痛点。传统模式下,评审专家容易产生**晕轮效应**——用一个亮眼的方案印象去抬高或压低本应客观量化的资质得分。财政部87号令与《政府采购需求管理办法》明确要求:**评审因素应当细化和量化,商务标与技术标需分模块独立设置分值**。但政策落地时,缺乏技术手段支撑。本文分享一个在opencheck基于Python的技术实现方案。#### 核心技术架构**方案一:评分项自动识别引擎**pythonimport redef extract_scores(text):从招标文件文本中自动识别主观分与客观分项result {客观分: 0, 主观分: 0}# 匹配标准格式obj_pattern r客观分[:]\s*(\d(?:\.\d)?)subj_pattern r主观分[:]\s*(\d(?:\.\d)?)obj_match re.search(obj_pattern, text)subj_match re.search(subj_pattern, text)if obj_match:result[客观分] float(obj_match.group(1))if subj_match:result[主观分] float(subj_match.group(1))return result# 使用示例text 技术方案评审:客观分:85分,主观分:90分scores extract_scores(text)print(scores) # {客观分: 85.0, 主观分: 90.0}**方案二:五维溯源(5D JSON)数据结构**招标文件解析后,系统生成结构化JSON:json{项目基本信息: 杭州文化两中心展馆,客观分清单: [{评分项: 资质证书,分值: 10,核验规则: ISO9001认证,自动比对证书编号},{评分项: 同类业绩,分值: 12,核验规则: 近3年展馆项目,自动比对合同金额},{评分项: 设备授权,分值: 20,核验规则: 投影设备厂商授权书,自动核验有效期}],主观分清单: [{评分项: 项目整体理解,分值: 5,评审维度: 对展馆主题的理解深度},{评分项: 视频创意方案,分值: 15,评审维度: 叙事脚本、光影设计、创新性}],约束条件: {杭州非遗综述片: 时长≤60秒,整体演示视频: 时长≤15分钟}}#### 实战案例:杭州展馆项目的58分主观分拆解该项目的技术方案评分包含**11个评审维度**,传统人工核验极易遗漏约束条件:| 评审维度 | 分值 | 关键约束 | AI自动检测点 ||---------|-----|---------|-------------|| 项目整体理解 | 5分 | 无硬性约束 | 主题匹配度分析 || 径山茶宴展项分析 | 5分 | 需符合文化内涵 | 历史文献交叉验证 || 杭州非遗综述分镜 | 5分 | 视频时长≤60秒 | FFprobe提取时长 || 展陈样片整体表现力 | 5分 | 视频清晰度≥1080P | MediaInfo自动核验 || 推广传播方案 | 3分 | 需包含渠道策略 | 关键词检索 |**技术难点:视频约束条件的自动化核验**pythonimport subprocessimport jsondef check_video_constraints(video_path):使用ffprobe自动核验视频技术参数cmd [ffprobe, -v, quiet,-print_format, json,-show_format, -show_streams,video_path]result subprocess.run(cmd, capture_outputTrue, textTrue)video_info json.loads(result.stdout)duration float(video_info[format][duration])width video_info[streams][0][width]height video_info[streams][0][height]alerts []if duration 60:alerts.append(f杭州非遗综述片时长{duration:.1f}秒,超标{duration-60:.1f}秒)if height 1080:alerts.append(f视频分辨率{width}x{height},低于1080P要求)return alerts# 集成到清单引擎if check_video_constraints(demo_video.mp4):print(检测到约束违规,需优化方案)#### 双清单引擎的实现逻辑pythonclass ScoringEngine:def __init__(self, tender_doc):self.tender_doc tender_docself.objective_scores {} # 客观分存储self.subjective_scores {} # 主观分存储def process_objective_items(self, company_data):客观分:自动比对,无人工干预for item in self.tender_doc[客观分清单]:if item[评分项] 资质证书:score self.auto_check_certificates(company_data[certificates],item[核验规则])elif item[评分项] 同类业绩:score self.auto_check_projects(company_data[past_projects],item[核验规则])self.objective_scores[item[评分项]] scorereturn sum(self.objective_scores.values())def process_subjective_items(self, proposal_doc):主观分:AI辅助风险识别for item in self.tender_doc[主观分清单]:risk_score self.ai_analyze_risk(proposal_doc[item[评分项]],item[评审维度])self.subjective_scores[item[评分项]] {内容: proposal_doc[item[评分项]],风险提示: risk_score}return self.subjective_scores#### 技术方案对比:人工vs AI引擎| 维度 | 传统人工评审 | AI清单引擎 ||-----|------------|-----------|| 客观分准确率 | 85%(漏项率15%) | 99% || 主观分风险识别 | 依赖专家经验 | 对标历史废标案例库 || 评审时间 | 5-7个工作日 | 分钟级 || 合规性 | 易混评,难追溯 | 物理隔离,5D溯源 |#### 开源方案建议对于中小型项目,可采用以下技术栈快速搭建:1. **PDF解析**: PyPDF2 pdfplumber2. **规则引擎**: 自定义正则表达式或Drools(Java)3. **视频核验**: FFmpeg/FFprobe4. **数据存储**: SQLite(单机) / PostgreSQL(团队协作)大型项目建议集成NLP模型(CLS分类器)实现评分项的智能分类。---http://www.opencheck.com.cn