AI Detection

什么是句长波动性?为什么整齐划一的句子会被标记

句长波动性衡量的是一段文本中句子长度的变化幅度,而不是平均句子有多长。本文解释该术语的来源、实际如何计算这种离散程度,以及为什么语言模型的输出往往会收敛到较窄的长度范围。

6 min
What is burstiness? A chart comparing uniform AI-generated sentence lengths to varied human sentence lengths.

大声读出一段文字时,一种特定的平板感会先于其可命名性被听出来, 每个句子落下时所占用的呼吸次数大致相同, 就像一台没人记得关掉的节拍器。读者在能够说出问题所在之前就会注意到这种模式,而为捕捉生成文本而构建的检测器也正是为了注意到这一点。对这种模式的名称是 burstiness,这个词比任何 AI detector 都更早出现。

那么,按 detector 所指的特定含义,burstiness 是什么?它是衡量一段文字中句子长度波动范围的指标,计算时依据的是该段文字自身的平均值,而不是任何固定数值。当短促、简洁的句子与冗长、曲折的句子并列时,一段文字就具有 burstiness。当每个句子的长度都接近相同,不论这个长度是六个词还是二十六个词,一段文字就具有较低的 burstiness。

这个统计量用手工在短段落上也足以计算,一旦它变得可见,平淡的页面就不再只是模糊印象,而会变成一个可以指认的数值。它与一个更早出现、且无关的统计量几乎没有任何关系,只是碰巧共享同一个名称。

什么是 burstiness?

如果一篇文档中的句子长度存在变异性,AI detector 就被称为具有 burstiness。按 AI detector 的用法,burstiness 指的是一篇文档中句子长度的离散程度,用一个单一数值表示, 即这些长度的标准差除以它们的均值。数值高表示句子围绕平均值的变化很大。数值低表示句子紧密聚集在平均值附近,而不论这个平均值具体是多少。

这个词本身属于更早的统计学词汇。研究者用 burstiness 来描述地震、疾病暴发和网络流量,以及任何在时间上聚集而不是均匀分布的现象,而在这些领域中,一种常见的测量方式是 Fano factor, 即计数方差与其均值之比。

自然语言处理本身内部还有第二种、更早的含义,这很容易与本文所讨论的句子长度统计混淆。语料库语言学家在 1990s 年代使用 burstiness 来描述单个词语如何聚集:一旦某个文档提到一个不常见的词,它再次提到这个词的可能性就会远高于第一次、独立出现所暗示的程度。Kenneth Church 和 William Gale 在 1995 年用 Poisson mixtures 对这一模式作了统计处理,而信息检索系统在对重复词应当占多大权重进行加权时,至今仍会对此加以调整。那一统计量跟踪的是一个词的重复。本篇文章中的测量跟踪的是别的东西, 整个句子的形状,与其中由哪些词填充无关。

本文其余部分只在第二种意义上使用这个词, 即句子形状,而不是词语重复。

为什么离散程度比平均值更重要

两篇文档可以具有完全相同的平均句长,却读起来毫不相似。平均 12 个词可以属于这样一段文字, 每个句子都接近 12 个词, 也可以属于这样一段文字, 6 个词的句子与 18 个词的句子交替出现,而均值无法区分这两段文字。只有围绕均值的离散程度才能做到这一点。

统计学家会把只比较均值称为没有超出分布的一阶矩去看问题。检测器,或者细心的读者,实际上也在检查二阶矩, 即中心周围的形状,而均值本身永远无法揭示这一点。

可以考虑两种报告同一结果的方式。'The intervention reduced symptoms in most participants. The effect was consistent across age groups. The finding supports further investigation into the mechanism.' 三个句子,每个句子 8 到 9 个词,这种节奏几乎没有任何离散程度。现在比较一下:'Symptoms dropped in most participants. That held up whether the person was twenty-two or sixty-eight, which nobody on the team expected going in, and it is the reason the next study needs to look at mechanism rather than outcome alone.' 结论是相同的。承载这一结论的节奏却不同。

均值将两个段落都视为相同。读者,显然还有检测器,并不如此。

Humanize your own paper

Transform your AI-assisted text and make it sound human, without touching important words or citations.

Get started free

爆发度如何计算

计算很简单。统计每个句子的词数,求出这组数值的标准差,然后除以均值。例如,如果你看一段文字,其中句子的长度分别是八、三十一、十一、二十四和九个词,那么你会得到大约相当于均值五十六百分比的离散度,这是一种较大的爆发。如果你看另一段文字,其中句子的长度分别是十五、十六、十四、十七和十五个词,那么你会得到大约七百分比的离散度,尽管这两段文字的平均长度几乎相同。

单独使用原始标准差并不能完成同样的工作。八个词的离散度,在一段平均每句十二个词的文字中,与在一段平均每句四十个词的文字中,含义并不相同,因此除以均值,才使这个数值能够在不同段落之间进行比较。

正是这种相对性的表述,使得这一统计量对简短的新闻文体和密集的理论文体都以同样方式发挥作用。由短而整齐的句子构成的技术部分,和由短而整齐的句子构成的随意段落,都可能显示为低爆发度,因为这种测量从不询问句子的绝对长度,只看每个句子与其邻近句子的平均值相差多远。

这与本网站上的free burstiness checker对粘贴稿件所进行的计算完全相同,它把每个句子都绘制为一个点,而不是把整段文字压缩成一个数值。在这一尺度上,低于大约二十百分比的内容会被视为紧密而均匀的分布,而高于大约四十五百分比的内容会被视为较大的分布,大多数经过编辑的学术散文则落在两者之间。

页面上的低方差段落是什么样子

把这两种模式并排放在一起,一旦你知道要看什么,它们就很容易区分。

特征低变异段落高变异段落
句长模式几乎每个句子都落在段落平均长度上下几词之内短促、简洁的句子与冗长、包含多个分句的句子并列出现
朗读时的感觉稳定、均匀的节奏,没有自然的停顿来强调一种时快时慢的节奏,跟随真正的强调落点变化
典型原因模型未经过编辑的输出,模型一次预测一个最可能的下一个句子,或者是一份没人回读过的初稿作者为了效果把一个句子截短,或者把两个较短的句子合并成一个足以配得上其长度的句子

这两栏本身都不代表好的写作。方法部分如果列出五个步骤,并且用五个短句来写,本来就应该看起来像左栏,而把一个冗长曲折的句子放进编号步骤中,也不会让它更好。只有在你知道所看的是哪一类段落之后,这种模式才会变得有信息量。

为什么均匀的句子会被标记

检测器把平稳的节奏视为一种信号,是因为文本生成的工作方式如此,而不是因为均匀的句子本身就可疑。关于AI 检测器究竟如何工作的更广泛机制,另有说明, 简短地说,模型一次预测一个 token,其中也隐含地包括句子可能何时结束。根据目前已有的文本,在任何给定时刻,某种句长在统计上都比其他长度更可能出现,而持续选择最可能续写的模型,会在整篇文档中一再落在那个相同的可能长度附近,句句如此。

单独一段平直的段落本身并不能证明任何事情, 短小的程序性部分本来就应该长成那样。检测器真正衡量的是整篇文档中的模式, 也就是某一段中的平直,是局部的、有意选择,还是整篇文章每一段都呈现出的节奏。

逐词可预测性是一种相关但独立的测量,在本网站其他地方已单独讨论,它关注的是单个词语的选择,而不是句子的形态。

这些都不能证明一份文档是由模型生成的,把平直的节奏本身当作 निर्ण定性依据,会重复把单一困惑度数值当作 निर्ण定性依据的同样错误。一份匆忙写成、无人朗读过的初稿,和生成文本一样容易变得平直。这也是 TextPulse 自己估算的 Human Score 将句子层面的变化与其他几种信号结合起来,而不是依赖其中任何一种的原因,也是为什么本网站上的免费诊断工具被设计为需要合并阅读,而不是孤立使用。

有两个后续问题比定义本身更重要。检测器是否仍像 2023 年那样对 burstiness 赋予权重是其中之一,如何在自己的草稿中提高它而不破坏行文是另一个。

一段平直的段落,一旦其背后的机制可见,就不再是谜。它发生在每个句子都以同样的方式构建时,就像单个下一个词那样,通过以最小阻力去抓取接下来最可能出现的内容。是否这种压力占上风,取决于作者,或模型,是否逐句对其加以抵抗。

Frequently Asked Questions

写作中的句长波动性是什么?它是句子长度在一段文本中变化的幅度,通常表示为句子长度标准差除以其均值。短句和长句之间起伏很大的文本具有较高的句长波动性。每个句子长度都接近相同的文本具有较低的句长波动性,无论这种长度是短还是长。

Moe

PhD in natural language processing, with years spent building NLP applications end to end. Moe works on text analysis: lexical and syntactic structure, and what separates machine-generated prose from human prose statistically. He has been experimenting with computational linguistics since the early days of NLTK, spaCy and WordNet, and still writes most of his tooling in Python.