soft-tags-v4 · 2026-07-25
推荐主要比较数学知识点、定理和方法 Tag。页面中的 N/100 是可解释的排序得分,不是题目相似的概率。
共同的具体 Tag 越多、越重要、在题库中越少见,得分通常越高。精确 canonical Tag、已合并别名和高度近似的具体 Tag 都可参与;近似 Tag 按 0 到 1 的匹配度贡献,而不是被误当作完全相同。
学校、来源、考试、年份、学习阶段、难度、评分、热度和发布时间不参与相似度或同分排序。没有足够证据时,结果可以少于 6 道。
| 类型 | 基础权重 |
|---|---|
| 定理、概念 | 1.35 |
| 知识点 | 1.30 |
| 方法 | 1.20 |
| 性质、公式 | 1.10 |
| 学科大类 | 0.42 |
| 学校、来源、考试、年份、阶段、难度 | 0 |
稀有度使用 IDF,并限制在 0.8 到 3.2。作者已接受的 AI Tag 与人工公开 Tag 同权;高置信待确认 AI signal 仅作内部证据,状态权重为 0.72,隐藏信号为 0.08,拒绝、标错或过期信号为 0。
p(a,b) = Tag 对的匹配度(精确/别名为 1;高阈值近似为 0..1)
M = Σ p(a,b) × min(a(A,a), a(B,b))
U = WA + WB - M
WA = Σ a(A,t), WB = Σ a(B,t)
J = M / U
O = M / min(WA, WB)
G = min(1, M / 1.0)
W = G × (0.70 × J + 0.30 × O)
C = 双方可靠且具体的共同 Tag 数
R = C / min(双方可靠具体 Tag 数)
K = R × (1 - exp(-C / 2.5))
TagScore = 100 × max(W, K)每个 Tag 在一次评分中最多匹配对方一个 Tag,按贡献从高到低配对,避免一个宽泛词重复抬分。近似比较只接受长度至少 3、数字签名一致、匹配度至少 0.86 的具体 Tag;它用于处理接近的规范写法,不把不同中文术语擅自宣布为同义词。K 用来纠正同一知识点在一侧是公开 Tag、另一侧是高置信待确认 AI Tag 时的重复降权。单个共同 Tag 的 K 最高约 33 分,不会仅凭一个 Tag 获得高相似度。
系统先通过精确 Tag 反向索引和受限的高近似 Tag 片段召回,再精排最多 500 个候选,返回最多 6 道。较长题干在统一 LaTeX 包装、空白和标点后若字符二元组相似度至少为 0.78,会得到 94 到 96 分的近重复题保护;短题、长度差异明显或低于阈值的题仍只按 Tag 评分。新增或编辑题目只更新当前题的 Tag 并创建一个幂等 AI 任务,不计算全库两两相似度;AI 标注完成后,刷新任意相关题详情即可自动重排。
读取:O(k log E + R)
精排:O(500 × k)
写入:O(k log E) + O(1) 入队AI 结果按题目内容哈希、提示词版本和 taxonomy 版本持久化。AI 不会直接覆盖公开 Tag;作者可以接受、拒绝或标错。高置信、较重要的待确认信号可以参与内部召回和可靠 Tag 覆盖率;隐藏、拒绝、标错、过期、低置信或启发式信号不会进入该覆盖率。推荐理由仍只展示双方已经公开的共同 Tag;若显示 “≈”,表示两个公开 Tag 是高阈值近似匹配。
权限过滤先于排序。删除、审核中、下架、受限分类和当前用户无权查看的题不会进入结果;等级锁定公开题只返回已有公开元数据,不返回题面和答案。