相似度报告上的诚信标记:隐藏文字与被替换的字符

报告上还有第二个标签页,和你的文本匹配了多少完全无关。在你把一份即将提交的稿子交给任何工具之前,值得先搞清楚它。

HumanPen 团队

· 7 分钟

先说结论

相似度报告上有一个和百分比分开的 Flags(标记)标签页。它标的是两类有文档记载的手法:隐藏文字——白底白字、看不见的引号——以及被替换的字符,也就是把字母换成别的字母表里长得一样的那些。文档写明,这类替身字符在扫描前会被自动换回去,所以相似度该匹配还是会匹配上。一条标记明确不等于认定你有问题,但它确实会在你的提交件上放一个红色记号,请人去那里多看两眼。

Flags 标签页是什么

文档用一句话说明了它:"Turnitin's algorithms look deeply at a document for any inconsistencies that would set it apart from a normal submission. If we notice something strange, we Flag it for you to review."(我们的算法会深入查看文档,找出任何让它区别于正常提交件的不一致之处。如果发现异常,我们会把它标记出来供你审阅。)

一旦检出,提交件上方的 Flags 标签旁会出现一个数字——只有一类标记时是 1,两类都有时是 2。点开是一个待审诚信标记面板,而在文档正文里则会看到 "a red flag with a number inside indicating the flag type and red boxes around all suspicious text related to that flag."(一面带数字的红旗,数字表示标记类型,并在与该标记相关的所有可疑文字外画上红框。)

那句限定就写在同一页上,而且它是双向起作用的:"A flag is not necessarily an indicator of a problem. However, we recommend you focus your attention there for further review."(一条标记不一定意味着存在问题。不过我们建议你把注意力集中在那里做进一步审阅。)

所以它不是一项指控。它是在你稿子的某一部分外面画了个红框,同时告诉审阅的人:就盯着这一块多看。

隐藏文字

关于这类手法从哪来,文档说得罕见地直接:"Paper mills and authors looking to hinder similarity matching abuse text manipulation techniques by trying to pass plagiarized content off as genuine. These techniques are commonly found on YouTube and social media platforms as ways of 'cheating Turnitin'."(论文工厂和想妨碍相似度匹配的作者会滥用文本操纵手法,试图把抄袭内容伪装成原创。这些手法在 YouTube 和社交平台上常被当作「骗过 Turnitin」的办法流传。)

文档给了两个例子。

隐藏的引号。文件里确实有引号,但渲染出来看不见。写明的后果很具体:它们 "could influence the amount of quoted material recognized in a document. When a user excludes well-referenced matches using the Exclude Quotes functionality, in a manipulated document this would also hide plagiarized content."(可能影响文档中被识别为引用材料的数量。当使用者用「排除引号」功能排除掉出处齐全的匹配时,在一份被做过手脚的文档里,这同时也会把抄袭内容藏起来。)

白底白字。 "A user may set the color of a block to text to white rendering it invisible on the white background of the paper. This can be to manipulate the word count or break up plagiarized text with hidden characters."(使用者可能把一块文字设成白色,使其在白色纸面背景上不可见。这样做可能是为了操纵词数,或者用看不见的字符把抄袭文本打断。)

注意这句话的后半截。看不见的字符,被用来把文本打断,好让匹配引擎看不见一串连续的词。原页没有说这些字符具体落在哪里,我们也不打算替它补上。它说了的是:这是软件正在找的东西,不是它会漏掉的东西。

被替换的字符,以及这招为什么会失败两次

这一节值得慢慢读,因为这种手法最有可能藏在某个工具里,而不是由人一个个敲进去的。

"Some characters in different alphabets can look similar enough that to the naked eye, it is difficult, if not impossible, to tell them apart."(不同字母表里的某些字符长得足够像,肉眼很难甚至不可能分辨。)一个渲染出来和拉丁字母一模一样的西里尔字符,塞进一个单词中间,就能打断匹配引擎正在找的那串字符,而页面看上去毫无异样。

文档给出的应对有两半,而第一半是没人提的:

"Turnitin automatically swaps these characters out when scanning a submission so they will not affect the Similarity Report. However, by replacing characters, the intent is to try and interrupt a similarity match."(我们在扫描提交件时会自动把这些字符换回去,因此它们不会影响相似度报告。不过,替换字符这个动作本身,意图就是试图打断相似度匹配。)

也就是说,替换在比对之前就被还原了——该匹配的照样匹配——并且这个尝试本身被提成一条标记。这种手法既没有降低它想降的那个数字,还额外添了一个原本不存在的记号。

这是很少见的、能带着出处而不是凭观点说出来的一句话:一种有文档记载的绕过手法,被文档记载着不管用。

为什么这是一个关于工具的问题,不是关于人的

绝大多数作者不会真的坐下来,每隔三个词就粘一个西里尔字母 о 进去。但一段程序会——无声无息、一秒钟、整篇稿子铺满——而你看不出来,因为这种手法存在的全部前提就是它渲染出来一模一样。

所以在把文件交给任何东西之前,该问的是这么一个问题:拿回来的东西里,有没有交出去的时候没有的字符?

这件事不需要任何特殊工具就能查。不过先把那个听起来很显然、实际不成立的查法排除掉。

数某个常用字母出现了多少次,什么也说明不了。改写往往会让文本变长,字母数跟着一起涨。在我们自己的改写前后文件上,纯拉丁字母 "a" 从 4,631 变成 5,092,"e" 从 6,970 变成 8,005,而全程没有任何一个字符被替换过。数字母、发现变多了,你唯一学到的事情是:文档变长了。

该比的不是次数,是种类。把你发出去的那份文件和拿回来的那份各自导出纯文本,分别列出里面出现过的不重复字符,然后看第二份名单里有没有第一份里没有的。长得像拉丁字母的西里尔字母和希腊字母。零宽空格。软连字符。次数变化是正常的;出现一个你文件里从来没有过的字符,不正常。

还有两点关于「后果落在谁身上」的结构性事实。标记落在提交件上,而提交件上写的是你的名字。至于那个塞进字符的工具,报告被人读的时候它不在场。

我们对你的字符做什么、不做什么

我们就在这种手法所属的那个品类里,所以老实的做法是把它挑明,而不是让它含混过去。

HumanPen 改写的是句子。它不插入不可见字符,不把字母换成别的字母表里的替身,也不把文字设成白色。这么做没有意义:上面那份文档说了,替换在匹配之前就被还原,路过时还会被标出来——所以这类手法唯一能稳定产出的东西,就是你稿子上的一个红框。

发这篇之前,我们把上面那套「比对字符种类」的办法跑在了自己的输出上,四对改写前后的文件。每一对里,输出中出现过的不重复字符集合都是输入集合的子集。没有新增,没有西里尔,没有希腊,没有任何零宽字符。非 ASCII 字符的数量不升反降:某个文件里长破折号从 58 个降到 13 个,弯撇号从 41 个降到 6 个。我们也验了一下这个比对能不能看见它要找的东西——往输出的一份副本里种进一个西里尔 "о" 和一个零宽空格,同一段代码把两个都列了出来。

这些是我们自己的文件,语料我们不公开,所以请把数字当成我们的、把过程当成你的。拿你自己的那一对文件跑一遍。包括跑在我们交还给你的东西上。

常见问题

出现标记是不是意味着我被指控了? 不是。文档写明一条标记 "is not necessarily an indicator of a problem"(不一定意味着存在问题),同时也建议审阅者把注意力放在那里。它是一个「请看这里」的提示,不是一项认定。

替身字符能把相似度降下来吗? 按文档不能。文档说这些字符在扫描提交件时会被自动换掉,因此不会影响相似度报告。而这个尝试本身还会被提成一条标记。

一共有几类标记? 有文档的是两类——隐藏文字和被替换的字符——标签页上显示 1 还是 2,取决于检出了几类。

提交之前我自己能查吗? 通过报告不行,报告是在审阅方那边生成的。但你可以检查文件本身:分别列出你发出去那一版和拿回来那一版里出现过的不重复字符,看第二份里有没有第一份里没有的。别改成数字母:改写会让文本变长,字母数自己就会涨。另外也查一下有没有被设成白色、或与背景同色的文字。

继续阅读