合理化建议重复提交查重分析工具。用于对合理化建议Excel报表进行语义相似度比对,检测是否存在重复提交、换说法重复提交、同一套路换对象等"偷奸耍滑"行为。当用户需要检查某月份合理化建议是否与历史数据重复、排查重复提交人员、对比建议名称/申报原因/建议方案的相似度时使用。
---
name: suggestion-duplicate-check
label: 合理化建议查重
description: 合理化建议重复提交查重分析工具。用于对合理化建议Excel报表进行语义相似度比对,检测是否存在重复提交、换说法重复提交、同一套路换对象等"偷奸耍滑"行为。当用户需要检查某月份合理化建议是否与历史数据重复、排查重复提交人员、对比建议名称/申报原因/建议方案的相似度时使用。
---
# 合理化建议查重分析
## 概述
本Skill用于对合理化建议报表进行查重分析,通过**字符级N-gram + Jaccard相似度 + 核心参数比对 + 交叉比对**的多层算法,综合比对建议名称、申报原因、建议方案三个维度,识别重复提交和"换汤不换药"的同质化建议。
支持 **5 种查重模式**,覆盖不同排查场景。
## 适用场景
| 场景 | 使用模式 |
|------|---------|
| 每月例行查重:新提交的建议是否与历史重复 | `monthly` 月度对比模式 |
| 怀疑某个领域有重复(如"搓齿板""夹具") | `keyword` 关键词专项模式 |
| 排查某个人是不是一直在重复提交 | `person` 同一人全量模式 |
| 发现"同一套路被多人反复提"的现象 | `cluster` 套路化聚类模式 |
| 当月内部有没有人重复提交 | `internal` 当月内部模式 |
## 数据要求
### Excel文件格式
- Sheet名称:`原数据`(或第一个sheet)
- 第2行为表头(第1行为报表标题)
- 必须包含以下列:
- `制单时间`:用于筛选指定月份数据
- `建议名称`:查重核心字段
- `申报原因或理由`:查重字段
- `建议方案或措施`:查重字段
- `第一完成人`:用于识别同一人重复提交
- `制单部门`:辅助信息
## 5 种查重模式
### 模式1:月度对比(monthly)— 默认模式
**用途:** 检查目标月份的新建议 vs 所有历史数据,找出重复。
```bash
python3 duplicate_check.py --file 数据.xlsx --mode monthly --month 2026-06 --threshold 0.40
```
**参数:**
- `--month`:目标月份,格式 `YYYY-MM`,默认 `2026-06`
- `--threshold`:相似度阈值,默认 `0.40`(40%)
- 输出:`monthly_duplicate.json`
---
### 模式2:关键词专项(keyword)
**用途:** 针对某个具体主题/关键词深挖,比如怀疑"搓齿板"相关建议有重复,直接按关键词筛选后全量两两比对。
```bash
python3 duplicate_check.py --file 数据.xlsx --mode keyword --keyword 搓齿板 --threshold 0.35
```
**参数:**
- `--keyword`:关键词(必填)
- `--threshold`:相似度阈值,默认 `0.35`
- 输出:`keyword_{关键词}.json`
**特点:**
- 从名称、原因、方案三个字段中搜索关键词
- 筛选后的数据做全量两两比对(不做粗筛,最全面)
- 自动标记"待复核":同一人 + 名称相似度≥55%,即使综合分不够也标记出来
---
### 模式3:同一人全量(person)
**用途:** 按人分组,对每个人的所有建议做内部全量比对,找出"自己抄自己"的惯犯。
```bash
python3 duplicate_check.py --file 数据.xlsx --mode person --threshold 0.40
```
**参数:**
- `--threshold`:相似度阈值,默认 `0.40`
- 输出:`person_duplicate.json`
**特点:**
- 只处理提交≥3条的人员(避免噪音)
- 开启"同一人加成"权重,对同一人的建议更敏感
- 输出重复提交排行榜
---
### 模式4:套路化聚类(cluster)
**用途:** 发现"同一类问题被多人反复提交"的套路化现象,比如9个人各提了一条"搓齿板存放架改善"。
```bash
python3 duplicate_check.py --file 数据.xlsx --mode cluster --threshold 0.35
```
**参数:**
- `--threshold`:聚类相似度阈值,默认 `0.35`
- 输出:`pattern_clusters.json`
**特点:**
- 用并查集算法做聚类,自动发现相似建议的"簇"
- 只展示≥3条的聚类(小簇噪音多)
- 耗时较长(全量两两比对),9000条数据约需5-10分钟
---
### 模式5:当月内部(internal)
**用途:** 检查同一个月内有没有人重复提交(可能是误操作或故意刷量)。
```bash
python3 duplicate_check.py --file 数据.xlsx --mode internal --month 2026-06 --threshold 0.50
```
**参数:**
- `--month`:目标月份,默认 `2026-06`
- `--threshold`:相似度阈值,默认 `0.50`(当月内部阈值设高一些)
- 输出:`internal_{月份}.json`
---
## 算法说明
### 多层相似度计算
| 层级 | 方法 | 说明 |
|------|------|------|
| 基础层 | 字符级 2-gram + 3-gram 加权 | 捕捉字面相似度 |
| 增强层 | 核心参数比对 | 提取数字+单位、技术术语,这些最不容易"换说法" |
| 增强层 | 交叉比对(原因vs方案) | 应对"把方案写在原因里"的情况 |
| 加成层 | 同一人加权 | 同一人重复的先验概率更高,名称权重提升 |
### 综合权重
- **名称**:10%(粗筛用,权重不高但作为第一道门)
- **原因**:50%(最能体现问题是否相同)
- **方案**:40%(最能体现解决方案是否雷同)
- **参数比对 + 交叉比对**:名称相似度>50%时权重提升至 40%
### "待复核"机制
以下情况即使综合相似度低于阈值,也会标记为 **🔍待复核**:
- 同一人提交 + 名称相似度 ≥ 55%
> 原因:同一人重复提交同一主题的建议,即使表述差异大,也大概率是"换个说法再提一遍",值得人工看一眼。
### 为什么用字符级N-gram
- 中文无需分词,直接按字符切分
- 能有效识别"换说法不换内容"的语义重复
- 纯Python标准库实现,无需额外依赖
- 对短文本(建议标题、方案)效果好
## 人工判断标准
算法输出的是疑似列表,必须经过人工判断确认:
| 类型 | 判断标准 | 处理建议 |
|------|---------|---------|
| **完全重复** | 标题+原因+方案相似度均≥95%,且同一人 | 实锤重复提交,驳回 |
| **换汤不换药** | 同一人 + 名称高相似 + 核心思路一致 | 属于换说法重复,标记警告 |
| **套路化提交** | 不同人不同部门,但都是"X摆放乱→做架子→省时间"套路 | 同类改进可合并,不算作弊但质量不高 |
| **巧合同名** | 标题相同但原因/方案内容完全不同 | 排除,不算重复 |
| **不同人独立发现** | 不同部门不同人发现了同一个问题 | 排除,属于正常现象 |
| **🔍待复核** | 同一人+名称高相似但内容差异大 | 人工逐条判断 |
## 性能说明
| 模式 | 数据规模 | 耗时 |
|------|---------|------|
| monthly | 历史9000条 × 当月200条 | 约1-2分钟 |
| keyword | 筛选后约50条 | 几秒钟 |
| person | 9000条按人分组 | 约2-3分钟 |
| cluster | 9000条全量 | 约5-10分钟 |
| internal | 当月200条 | 几秒钟 |
> 已做名称粗筛优化,名称差异大的直接跳过,大幅减少计算量。
## 输出文件说明
所有模式运行后都会生成 JSON 结果文件,包含:
### monthly / keyword / internal 模式
- 每条疑似重复的详细对比
- A/B 两条建议的标题、提交人、部门、时间、原因摘要、方案摘要
- 三个维度的相似度百分比
- 是否同一人、间隔天数
- flag: `normal`(正常阈值内)/ `suspect`(待复核)
### person 模式
- person_stats:重复提交人员排行榜(每人重复对数、总提交数、最高相似度)
- all_pairs:所有重复对详情
### cluster 模式
- cluster_count:聚类总数
- clusters:每个聚类的大小、涉及人员、所有标题、时间跨度
## 注意事项
1. **阈值不是绝对标准**:40%阈值是经验值,需结合人工判断
2. **标题太泛的不算**:如"夹具改善""工序优化"这类通用标题,内容完全不同不算重复
3. **不同人独立发现的不算**:同一问题被不同人先后发现,属于正常现象
4. **同一人短时间内重复提交需重点关注**:间隔几天就重复提交,嫌疑最大
5. **方案高度雷同但对象不同的**:属于"一招鲜吃遍天"式的套路化提交,也应标记
6. **🔍待复核不是实锤**:只是"值得看一眼",很多可能是同一主题的不同阶段改进
7. **聚类模式较慢**:9000条数据全量比对需要几分钟,耐心等待
don't have the plugin yet? install it then click "run inline in claude" again.