写作指纹
写作指纹 · 帮助 / 技术文档
指标说明表
| 指标 | 公式(一行) | 数值范围 | 解读 |
|---|---|---|---|
| 基础计数 | chars=N 字符;N=token 数;V=词形数;L=lemma 数 | 0+ | 文本规模和词汇基础,不直接代表质量。 |
| TTR | V / N | 0-1 | 越高表示词形越丰富;短文会天然偏高。 |
| Guiraud | V / sqrt(N) | 0+ | 比 TTR 更抗篇幅影响的词汇丰富度。 |
| Herdan | log(V) / log(N) | 约 0-1 | 观察词汇增长速度,篇幅越长越稳定。 |
| MTLD | N / TTR 低于 0.72 的片段因子数 | 0+ | 越高表示词汇多样性越稳定,适合比较长文。 |
| Yule's K | 10000 * (Σ i² fᵢ - N) / N² | 0+ | 越高通常表示重复越集中,词汇多样性越低。 |
| CEFR_score | Σ CEFR_index(level) * share(level),A1=1…C2=6 | 0-6 | 越高表示已命中词汇更偏高阶;词表外不加分。 |
| CEFR 分布 | 各等级词数 / 总 lemma 数 | 0-1,总和约 1 | 展示 A1-C2 与词表外的词汇层级占比。 |
| 句长统计 | counts, μ, σ, max, p95;从句比例=含连接词句数/句数 | 0+ | 看句子复杂度、波动和超长句;长句用 μ+2σ 标出。 |
| 段落统计 | P, μ_p, σ_p, P/chars*1000, 重复段首率 | 0+ | 观察段落组织、篇章长度和段首重复习惯。 |
| 标点熵 | -Σ p(mark) log2 p(mark) | 0+ | 越高表示标点类型更分散;也会显示每千字符密度。 |
| n-gram | 连续 n 个 token 的频次排序 | count ≥ 1 | 列出高频 bigram/trigram,帮助发现固定表达。 |
| AI_score | 平均(AI tell 分, Burstiness 分, 可选 Perplexity 分) | 0-100 | 越高越像 AI;只是参考指标,不作为评判依据。 |
| Burstiness | 句长方差 / 平均句长 | 0+ | >10 偏人类波动;<5 常见于过于平滑的 AI 文本。 |
| Perplexity | exp(avg negative log likelihood) | 0+ | <5 偏 AI;>10 偏人类或更有个人风格。 |
| AI tell phrases | 命中特征短语次数 / 词数 * 1000 | 0+ | 统计常见 AI 套话,如 furthermore、in conclusion 等。 |
技术架构
浏览器(教师界面)
|
v
Cloudflare Worker (Hono)
|
+-- D1:学生 / 作文 / 指纹存储
|
+-- leonardpc RTX 5060 Ti
FastAPI + llama-cpp-python
qwen2.5:1.5b perplexity
① 教师界面:浏览器端使用 Alpine.js + Tailwind CDN,无构建步骤。
② 鉴权:PBKDF2 校验密码,HMAC session cookie 维持登录状态。
③ 指纹计算:词典查表 + 公式计算,不调用 LLM 生成 TTR/MTLD/CEFR 等指标。
④ Perplexity:远程 GPU 服务异步调用;失败时降级为本地启发式 AI 检测。
隐私与限制
作文文本只存入 D1,并按登录用户隔离。
Perplexity 服务只接收待评分文本,不存储作文内容。
作文不会被用作 AI 训练。
当前词典、句法和 Perplexity 模型只识别英文;中文内容会保留,但不进入英文指纹指标。