# xiangqin_data **Repository Path**: powercs12/xiangqin_data ## Basic Information - **Project Name**: xiangqin_data - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-18 - **Last Updated**: 2026-06-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 相亲角信息卡数据结构化项目 将线下相亲角的纸质征婚信息卡,通过 AI 视觉识别技术提取为结构化 JSON 数据,并导入 MySQL 数据库,实现相亲信息的数字化管理和分析。 ## 项目背景 苏州桂花公园相亲角是一个传统的线下相亲场所,征婚信息以手写/打印卡片的形式张贴在展架上。本项目通过手机拍照 + AI 多模态识别的方式,将这些纸质信息转化为可查询、可分析的结构化数据。 ## 项目成果 | 指标 | 数值 | |------|------| | 原始图片数 | 885 张 | | 结构化 JSON 文件 | 859 条 | | 女士信息 | ~450 条 | | 男士信息 | ~370 条 | | 混合展架信息 | ~39 条 | | 数据采集耗时 | 约 1.5 小时 | | AI 处理耗时 | 约 1.5 小时(5 轮并行) | | 总项目耗时 | 约 7 小时 | ## 目录结构 ``` 相亲角/ ├── README.md # 项目说明文档(本文件) ├── 相亲数据/ # 数据汇总目录(待填充) │ └── 苏州/ # 按城市分类 └── 苏州桂花公园/ # 具体相亲角地点 │ ├── 数据清洗方案_SQL与策略.md # 数据清洗方案文档 ├── 文档二_整体流程与经验总结.md # 项目流程与经验总结 ├── insert_data.py # MySQL 数据导入脚本 ├── analyze_json_quality.py # JSON 数据质量分析脚本 │ ├── 结构化数据/ # AI 提取后的结构化 JSON │ ├── 女士/ # 女士征婚信息 │ │ ├── 女士-第01组/ # 按展架分组 │ │ │ └── MVIMG_xxx.json # 单条征婚信息 │ │ ├── 女士-第02组/ │ │ ├── ... │ │ └── 女士-第11组/ # 共 11 个展架组 │ │ │ ├── 男士/ # 男士征婚信息 │ │ ├── 男士-第01组/ │ │ ├── ... │ │ └── 男士-第14组/ # 共 14 个展架组 │ │ │ └── 混合/ # 女士男士混合展架 │ └── MVIMG_xxx.jpg.json │ └── 结构化数据_备份_20260601_213805/ # 数据备份 ├── 女士/ ├── 男士/ └── 混合/ ``` ## 数据字段说明 每条征婚信息包含以下 21 个字段: | 字段名 | 数据库字段 | 说明 | 示例 | |--------|-----------|------|------| | 文件名 | file_name | 原始图片文件名 | MVIMG_20260531_195601.jpg | | 编号 | bianhao | 唯一编号(F=女士, M=男士) | F260710, M260855 | | 姓名 | xingming | 姓名(含称谓) | 沈女士、左先生 | | 性别 | xingbie | 性别 | 男 / 女 | | 出生年月 | chusheng_nianyue | 出生年月 | 1978年01月 | | 民族 | minzu | 民族 | 汉 | | 身高体重 | shengao_tizhong | 身高体重 | 158cm、55kg | | 婚姻状况 | hunyin_zhuangkuang | 婚姻状况 | 未婚 / 离异 / 丧偶 | | 子女状况 | zinv_zhuangkuang | 子女情况 | 有 / 无 | | 出生地 | chushengdi | 出生地 | 江苏苏州 | | 现住址 | xianzhuzhi | 现居住地 | 姑苏区 | | 文化程度 | wenhua_chengdu | 学历 | 大专 / 本科 / 硕士 | | 职业 | zhiye | 职业 | 销售 / 教师 / 工程师 | | 个人资产 | geren_zichan | 个人资产 | 房、车 / 有车 | | 年收入 | nian_shouru | 年收入 | 8+万元 / 10+万元 | | 个人优势 | geren_youshi | 自我介绍/优势 | 性格开朗,喜欢运动 | | 择偶标准 | zeou_biaozhun | 择偶要求 | 人品正,有责任心 | | 联系电话 | lianxi_dianhua | 联系方式 | 15995874662 | | 联系类型 | lianxi_leixing | 联系方式类型 | 本人电话 / 家长电话 / 微信 / 未标注 | | 有效期至 | youxiaoqi | 信息卡有效期 | 2026年7月26日 | | 是否需修正 | shifou_xiuzheng | AI 标记是否需要人工复核 | 是 / 否 | ## JSON 数据示例 ```json { "文件名": "MVIMG_20260531_195601.jpg", "编号": "M260855", "姓名": "左先生", "性别": "男", "出生年月": "2003年12月", "民族": "汉", "身高体重": "180cm、90kg", "婚姻状况": "未婚", "子女状况": "无", "出生地": "江苏连云港", "现住址": "姑苏区", "文化程度": "大专", "职业": "销售", "个人资产": "有车", "年收入": "10+万元", "个人优势": "喜欢旅游,运动,苏州有房,父母都有退休金", "择偶标准": "最好年龄相仿,未婚女孩,身高160以上", "联系电话": "13402577281", "有效期至": "2026年7月26日", "是否需修正": "否" } ``` ## 项目流程 ### 阶段一:数据采集 - 前往苏州桂花公园相亲角,手机拍摄所有展架上的征婚信息卡 - 按展架位置整理照片,建立初步目录结构 - 产出:885 张原始图片,按"女士"、"男士"、"女士男士-混合"三个目录分类 ### 阶段二:AI 批量处理 - 使用 AI 视觉识别技术(多模态大模型)批量提取图片中的结构化数据 - 启动 7 个 Agent 并行处理,每个 Agent 负责 2-3 组图片 - 跳过每组最后一张展架标识图片 - 分 5 轮完成,从 470 条逐步提升至 859 条(100%) ### 阶段三:数据质量检查与修复 - JSON 格式检查:修复 1 条格式错误(未转义引号) - 重复文件清理:删除 8 个根目录重复文件 - 编号唯一性检查:确认 23 个重复编号为同一信息卡多次拍摄(正常现象) ### 阶段四:字段补充 - 新增"联系类型"字段,区分本人电话、家长电话、微信 - 批量更新所有 JSON 文件 ### 阶段五:数据库导入 - 设计 MySQL 数据库表结构(`xiangqin_data.zhenghun_info`) - 编写 Python 导入脚本 `insert_data.py` - 成功导入 859 条记录,数据对账完全一致 ### 阶段六:数据清洗规划 - 编写数据清洗方案文档,覆盖 859 条数据的全量探查 - 制定分优先级的清洗策略(高/中/低三级) ## 数据质量概况 | 维度 | 数量 | 优先级 | |------|------|--------| | 总记录数 | 859 | - | | 标记"是否需修正=是" | 45 | 需人工复核 | | 空编号 | 27 | 高 | | 年收入无法识别 | 17 | 高 | | 联系类型为空 | 34 | 中 | | 联系电话非标准格式 | 10 | 中 | | 职业碎片化(466 个唯一值) | 待标准化 | 低 | ## 脚本说明 ### insert_data.py 将结构化 JSON 数据导入 MySQL 数据库。 ```bash # 前置条件:已创建 xiangqin_data 数据库和 zhenghun_info 表 cd 苏州/苏州桂花公园 python3 insert_data.py ``` **依赖**:`pymysql` ### analyze_json_quality.py 对 JSON 数据进行质量分析,生成报告。 ```bash cd 苏州/苏州桂花公园 python3 analyze_json_quality.py ``` **功能**: - 抽样分析各字段缺失率 - 统计枚举值分布(婚姻状况、性别、联系类型等) - 分析年龄、身高分布 - 检测异常数据 ## 数据库表结构 数据库:`xiangqin_data`,表名:`zhenghun_info` ```sql CREATE TABLE zhenghun_info ( id INT AUTO_INCREMENT PRIMARY KEY, file_name VARCHAR(100) NOT NULL COMMENT '原始图片文件名', bianhao VARCHAR(20) COMMENT '编号', xingming VARCHAR(50) NOT NULL COMMENT '姓名', xingbie VARCHAR(10) NOT NULL COMMENT '性别', chusheng_nianyue VARCHAR(30) COMMENT '出生年月', minzu VARCHAR(20) COMMENT '民族', shengao_tizhong VARCHAR(50) COMMENT '身高体重', hunyin_zhuangkuang VARCHAR(20) COMMENT '婚姻状况', zinv_zhuangkuang VARCHAR(20) COMMENT '子女状况', chushengdi VARCHAR(50) COMMENT '出生地', xianzhuzhi VARCHAR(50) COMMENT '现住址', wenhua_chengdu VARCHAR(30) COMMENT '文化程度', zhiye VARCHAR(50) COMMENT '职业', geren_zichan VARCHAR(100) COMMENT '个人资产', nian_shouru VARCHAR(50) COMMENT '年收入', geren_youshi TEXT COMMENT '个人优势', zeou_biaozhun TEXT COMMENT '择偶标准', lianxi_dianhua VARCHAR(100) COMMENT '联系电话/微信', lianxi_leixing VARCHAR(20) COMMENT '联系类型', youxiaoqi VARCHAR(30) COMMENT '有效期至', shifou_xiuzheng VARCHAR(10) DEFAULT '否' COMMENT '是否需修正', zujuan_leixing VARCHAR(20) COMMENT '展架类型', zujuan_group VARCHAR(30) COMMENT '展架分组', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ); ``` ## 经验总结 ### 成功经验 1. **需求明确**:开始前定义所有字段和格式要求 2. **并行处理**:多 Agent 并行,大幅缩短 AI 处理时间 3. **备份意识**:关键操作前备份数据 4. **对账验证**:确保数据完整性和一致性 ### 踩过的坑 1. **AI "偷懒"**:AI 可能跳过部分 OCR 识别,需后置校验 2. **JSON 格式错误**:AI 输出可能包含未转义字符,需格式校验 3. **重复文件**:不同 Agent 处理时文件命名不一致 4. **数据对账**:导入脚本遗漏目录导致数量不一致 5. **备份不足**:项目初期未建立备份机制 ### 优化方向 - 自动目录整理:根据图片内容自动分类 - 自动校验:AI 处理后自动校验 JSON 格式 - 自动清洗:自动识别和修复脏数据 - 质量评分:建立质量评分体系 ## 技术栈 - **AI 识别**:多模态大模型(视觉理解 + OCR) - **数据处理**:Python 3 - **数据库**:MySQL 8.x - **依赖库**:pymysql ## 项目时间线 | 日期 | 里程碑 | |------|--------| | 2026-05-31 | 数据采集(苏州桂花公园) | | 2026-05-31 | AI 批量处理完成(859 条) | | 2026-06-01 | 数据质量检查与修复 | | 2026-06-01 | 联系类型字段补充 | | 2026-06-01 | MySQL 数据库设计与导入 | | 2026-06-01 | 数据备份(结构化数据_备份_20260601_213805) | | 2026-06-11 | 数据清洗方案制定 |