文风测试
开始测试

这套测试是怎么算的

没有模型,没有云端接口,没有偷偷训练。全部是字符串统计加一次加权距离比较。下面把每一步写清楚,你甚至可以照着改一版。

最后更新:2026 年 10 月 28 日

总览

一段文字进来,先去掉多余空格和空行,然后切句。每个句子统计汉字数,每个分句也统计一次。接着用六张词表去数词,用一组正则去数标点。所有原始计数都换算成每百字频次,避免长短样本不可比。

频次经过归一化,得到八个可以展示的刻度,再加两个只参与匹配的维度(文言浓度、引语浓度),凑成十维坐标。36 位作家各有一套自己的十维坐标,按重要程度加权算距离,最近的胜出。坐标是手写的近似值,不是对全集做统计。

整个过程在一瞬间完成,不请求网络。分析代码就是页面上加载的那个 analyzer.js,没有压缩混淆,可以直接查看。

01句子怎么切

先按“。!?…”切句,再按“,、;:”切分句。引号里的内容照样算进去,不单独处理。

02词怎么算

用词表做匹配,一个词每次出现计一次。像“了”这种到处都是的字,权重压到三成,避免把所有人都算成口语。

03比例怎么来

所有词频换算成“每百字出现几次”,这样长短样本可以放在一起比。

04刻度怎么定

每个指标都有一个日常范围,落在范围下限记 0,上限记 100,中间线性折算。超出就截断,不让极端值带跑结果。

05作家怎么对

36 位作家各有一套语言坐标,共十维,由 8 个文风族的基准加个人偏移合成。计算你的坐标与每一套的加权距离,距离最近的排第一。

06匹配度是什么

由距离换算成百分数,方便看。它只表示接近程度,不表示质量。

十个维度

作家匹配用的坐标

其中前八个会显示成刻度条,后两个只在后台参与计算,因为它们的含义太技术化,放在结果页容易让人误读。

维度取值依据说明
句子长度平均汉字数8 字以下记 0,42 字以上记 1,中间线性。
句长起伏句长标准差 / 平均句长变异系数,0.15 以下算平,1.0 以上算跳。
口语浓度口语词频次 − 文言词频次 × 1.1两类词此消彼长,放在一个轴上比。
意象浓度自然物象 + 身体感受身体词乘 1.3,因为它们同样具体。
抽象浓度抽象名词频次减去一部分意象分,避免“既具体又抽象”的误判。
对话感引号对数 + 第二人称 + 破折号三个都指向“有人在说话”。
情绪外露感叹号、问号、反问、比喻、情绪词不是测情绪多少,是测情绪写在纸上的程度。
论理倾向连接词、分号、冒号、抽象词论证型写作的典型标记。
文言浓度矣、焉、兮、之、其、而等只参与匹配,不显示刻度。
引语浓度引号对数的频次只参与匹配,不显示刻度。

匹配时不是所有维度一样重要。比如老舍把引语浓度和口语浓度的权重调到三倍,因为这两项最能把他和别人分开;木心把文言浓度加权到三倍。权重写在作家库的数据里,和坐标放在一起。

需要说明的是,这八套坐标是我按他们的语言习惯手写的,不是把全集丢进去算出来的。它抓的是大方向:句长、虚实、口语与书面、标点密度。别把它当成作家指纹。

距离用加权均方根,越接近 0 越像。百分数是把距离线性映射到 52 到 95 之间,纯粹为了好读,不用当真。两位作家只差一两分,就说明你的文字确实在两者之间。36 位里有不少邻居,这种并列很常见。

局限

它做不到的四件事

  • 读不懂意思

    它只数形式,不知道你在写什么。反讽、留白、双关,它一概看不见。一段充满反话的文字,可能会被判成“情绪外露”。

  • 分不清好坏

    句长偏短不等于写得碎,句长偏长也不等于写得深。指标是中性的,好坏要靠人判断。

  • 不认词性

    没有分词,靠词表匹配。“想起来”里的“想”和“思想”里的“想”,在统计上可能被算成一类。误差不大,但不是零。

  • 样本敏感

    同一作者写小说和写邮件,结果会差很多。少于 200 字的样本尤其容易失真,页面会给出提示。

知道这些之后,再看结果,会踏实一点。它是一把卷尺,不是一个评委。

回到首页测一次,或者先看看24 位中文作家和12 位外文作家分别是什么样。