小语种SEO翻译痕迹识别:正文特征跨语言失效,页面壳层信号更稳定
本文目录
- 如何用已知答案的样本给翻译痕迹特征打分?
- 先有正负样本,才谈得上判别力
- 为什么选这9门语言做标定?
- 正样本很硬,负样本有瑕疵
- 测量哪六个正文特征?
- 判别力怎么算?
- 为什么红链率只能算下限?
- 六个正文翻译特征在9门语言上方向一致吗?
- 合并起来看,方向都对
- 按语言拆开后,特征方向为什么会翻转?
- 红链率的方向是齐的,但齐在反方向
- 引用标记数为什么是唯一没翻车的特征?
- 正文特征测到的是翻译内容还是搬运工具?
- 正文特征当译文分类器用,判别力能到多少?
- 最好的两个也只有65.9%
- 为什么组合多个特征也救不回来?
- 拉丁残留这把尺子在拉丁语言上直接归零
- 为什么换一门语言就得重新标定?
- 负样本不纯,这一层要说清楚
- 正文特征失效后,页面壳层还有哪些翻译痕迹?
- 换个地方找:不看正文,看壳
- 什么样的翻译痕迹才能跨语言稳定?
- 抽样框:最有钱做本地化的那批公司
- 先把没有本地语言内容的站挑出去
- 本地化几乎没有中间状态
- 英文界面词跟着占比走
- 页面语言声明:17家里写对6家
- 本地文字只有零星几个的13家站,这些字出现在哪里?
- 数量都落在4到49之间,太巧了
- 是那个“切换到本地语言”的按钮
- 本地文字的出现位置怎么当判据用?
- 多语言标注的覆盖率低得离谱
- 页面壳层的三处信号怎么串成一套判定流程?
- 哪三处是壳层硬信号?
- 哪两处是辅助的软信号?
- 半天能跑完的最小版本
- 三档判定结果分别说明什么?
- 什么时候该重跑判定流程?
- 壳层翻译痕迹判断在小语种SEO决策里怎么用?
- 这套判断不能用来做什么?
- 这套判断能用来做什么?
- 壳层判断与母语审校有什么区别?
- 这套判据在中文市场用得上吗?
- 这批数据上我犯过哪些错?
- 解码方式用错,结论被测反
- 把两种“没有”混在一起算
- 抓不到本地文字,先怀疑自己的工具
- 差点把标定结果讲反
- 常见问题解答
- 用维基数据标定的结论能搬到商业站上吗?
- 为什么不直接用现成的AI检测工具?
- 65.9%的判别力,是不是特征选得不好?
- 负样本里混有半自动批量创建的短条目,结论还成立吗?
- 壳上那三处,对方改一下不就没了?
- 只做一个市场,值得跑这套流程吗?
- 权威参考资料
摘要:用一批已知答案的样本做标定:9门语言各取译入页面和本地撰写页面两组,逐条测量六个正文特征,看哪个能把两组分开。结果没有一个分得开。判别力最高的是首版体量和外链条数,各65.9%,比抛硬币好不了多少。方向也不稳定:首版体量在缅甸语上译文大11.95倍,在格鲁吉亚语上只有0.68倍;拉丁字母残留在蒙古语上是5.58倍,在僧伽罗语上是0.43倍;红链率在四门语言上都是译文更低,与直觉相反,原因是翻译工具会自动处理链接。
你以为在测“是不是搬来的”,测到的其实是“用什么工具搬的”。稳定的痕迹在页面的壳上:2019年8个市场56家商业站的快照中,确有本地语言内容的17家里,页面语言声明写对的只有6家。本文给出六个特征的完整标定表、壳上的三处硬信号,以及一套半天能跑完的判定流程。
上一篇测量了一门语言的公共内容里有多少是从别处搬来的,依据是维基媒体那个会自报家门的标记。那套办法有个前提:样本自己承认来源。
真实市场上没有这个前提。竞争对手的站不会告诉你哪些页面是翻译的,只能从页面上找痕迹。
按直觉,痕迹应该不难找:译文读着别扭、专有名词没换、链接指向不存在的页面、上线后无人维护。这几条几乎是行业共识,我自己也讲了好几年,讲的时候相当笃定。
这次决定逐条测量。手上正好有一批带答案的样本,标定完就知道这些直觉值多少钱。
结论是:值不了多少钱。不过测完之后,我知道了该去哪里找痕迹,这比原本想要的结果更有用。
如何用已知答案的样本给翻译痕迹特征打分?
先有正负样本,才谈得上判别力
一个判定方法好不好,要用已知答案的样本来检验,讲道理不算数。做法是给它一批确定是译文的样本和一批确定不是译文的样本,看它能分对多少。
这批带答案的样本来自维基媒体。2019年新建的条目中,带官方翻译工具标记的记为正样本,不带任何标记的记为负样本。该工具在创建条目时自动打标记,编辑者无法绕开。
正样本的答案很可靠,标记由工具自动生成,不会有假。负样本弱一些,只能证明“没用那个工具”,理论上仍可能是手工翻译的。这个缺陷后面单独讨论。
9门语言各取60条正样本、60条负样本,样本池不足的按实际数量取,合计415条正样本、540条负样本。
为什么选这9门语言做标定?
选语言有两条考虑。一是正样本要够多,译文条数太少的语言标定不出结果;二是书写系统要有对照,如果全部选非拉丁语言,得出的结论就只在非拉丁语言上成立。
最终选定缅甸语、高棉语、蒙古语、泰米尔语、尼泊尔语、僧伽罗语、格鲁吉亚语、希腊语,外加越南语。
越南语是特意加入的。它使用拉丁字母,译入率又是全表最高的47.43%,适合检验那些依赖“非拉丁书写系统”的特征在拉丁语言上还剩多少效力。越南语的声调符号那一层虽然复杂,但字母本身仍是拉丁字母,字符统计分辨不出来。
高棉语和蒙古语的正样本只有10条和16条,明显少于其他语言,因为这两门语言2019年一共只有14条和29条译入条目。这两门的结论只作参考,不纳入主要判断。
其余七门每门都是60对60,样本量足够。东南亚那几个市场在这批语言里占了四个,是本站写得比较多的一片区域,用它们做标定更有把握。
正样本很硬,负样本有瑕疵
这批样本两侧的可信度不对称,需要先说明。
正样本由工具自动标记,不存在误标。一条记录带有该标记,就一定是用该工具创建的,这一侧的答案是确定的。
负样本弱得多。它的定义只是“没带任何标记”,完全可能有人把英文页面复制进编辑框,手工改一改就发布了。这种情况在数据上看不出来。
因此严格来说,这次标定的是“用工具翻译的”与“其余全部”之间的差别,不是“翻译的”与“原创的”之间的差别。负样本里混进译文,只会让两组更相似,也就是让判别力被低估。这个缺陷影响的是具体倍数,改变不了“方向在各语言之间不一致”这个结论。
测量哪六个正文特征?
六个特征全部取自从外部可见的指标:首版字节数、拉丁字母在全部字母中的占比、内链条数、引用标记数、红链率,以及首版之后到截断日为止的修订次数。
选择依据是每个特征都对应一条常见直觉。首版字节大对应“一次性粘贴”,拉丁占比高对应“专名没跟着译”,红链率高对应“带着源语言的链接结构”,修订次数少对应“搬进来就无人维护”。
另外两个是内链条数和引用标记数,对应的直觉是“译文继承了源语言那套密集的交叉引用”。这一条我把握最小,但既然一起测了,就一起报告。
六个数值全部取自首版的原始文本,不看当前版本。当前版本包含了后来所有人的修改,测到的就不是“它创建时的样子”了。
字符统计只计字母,数字和标点一律排除。否则各语言标点习惯的差异会直接混入拉丁占比,而这种差异与内容来源毫无关系。
判别力怎么算?
判别力的算法是:对每个特征遍历所有可能的阈值,每个阈值试两个方向,取分对比例最高的那一组。
这个算法对特征相当宽容,阈值和方向都是在知道答案之后反向挑选的。实际使用时这两样都拿不到,结果只会比这个数更差。
还需要一个基线作参照。正负样本比为415比540,不做任何判断、一律判为“本地撰写”,正确率就有56.5%。所有特征都要跟这个数比,不能跟50%比。
为什么红链率只能算下限?
红链指内链指向的目标页面不存在。问题在于我只能查到“今天仍不存在”的页面,2019年不存在、后来被补上的查不出来。
所以红链率是个下限。好在正负样本用的是同一把尺子、同一个时点,两边低估的方向一致,比较依然成立。
这类右侧删失问题在历史数据上几乎无法避免。能做的是公开说明,并确保它不会单方向地偏向某一组。
另外,删失在小语种上比在大语种上轻,因为小语种的红链被补上的概率本来就低,没那么多人在填坑。所以在本文关注的这几门语言上,这个下限反而更接近真值。
六个正文翻译特征在9门语言上方向一致吗?
合并起来看,方向都对
先看9门语言合并后的中位数。译文首版3237字节,本地撰写1660字节,相差1.95倍。拉丁占比0.426对0.200,相差2.13倍。截断前编辑者数为2人对1人。
只看这几个数,直觉基本得到了印证:译文体量更大、拉丁残留更多、经手的人更多。
我当时挺高兴,觉得可以直接进入“怎么用”的部分了。
随后按语言拆开看了一眼,前面那份高兴就没了。
这一步原本可做可不做。合并中位数已经足够支撑一篇文章,方向也符合预期。之所以拆开,是因为上一批数据吃过亏:当时算出的方向恰好符合预期,换一个变量重算就反转了。
按语言拆开后,特征方向为什么会翻转?
| 语言 | 首版字节 | 拉丁占比 | 内链条数 | 截断前修订数 |
|---|---|---|---|---|
| 缅甸语 | 11.95 | 3.18 | 1.67 | 3.00 |
| 高棉语 | 3.48 | 3.72 | 6.00 | 1.50 |
| 蒙古语 | 2.79 | 5.58 | 2.50 | 0.75 |
| 泰米尔语 | 2.13 | 0.72 | 1.27 | 1.00 |
| 越南语 | 2.12 | 1.00 | 0.71 | 0.75 |
| 尼泊尔语 | 1.23 | 1.16 | 1.50 | 1.00 |
| 希腊语 | 0.81 | 1.54 | 0.83 | 1.00 |
| 僧伽罗语 | 0.86 | 0.43 | 0.50 | 2.00 |
| 格鲁吉亚语 | 0.68 | 2.77 | 0.12 | 2.25 |
表中数值为译文中位数除以本地撰写中位数。大于1表示译文更大,小于1表示本地撰写更大。
首版字节一列:6门语言译文更大,3门更小。缅甸语11.95倍,格鲁吉亚语0.68倍,同一把尺子在两个方向上都能读出结果。
拉丁占比:6门更高,2门更低,1门持平。蒙古语5.58倍,僧伽罗语0.43倍。
内链条数更分散:5门更多,4门更少,格鲁吉亚语只有0.12倍,即译文的内链条数只有本地撰写的八分之一。
截断前修订数一列同样不齐:4门译文更多,2门更少,3门持平。这一列对应“搬进来就无人维护”的直觉,实测连方向都确定不了。
四列放在一起,找不出任何规律。问题不在某一门语言特别反常,每门语言都有各自的偏差。
红链率的方向是齐的,但齐在反方向
六个特征中只有红链率方向一致:可比较的4门语言全部是译文红链率更低。缅甸语0.38倍、越南语0.37倍,希腊语和僧伽罗语的译文中位数直接为0。
这与直觉正好相反。我原先预期译文红链率至少高出2倍,理由是译文会带着源语言的链接结构进来,落到本地语言里全是空链。
实际情况是:翻译工具会自行处理链接。它逐个检查源语言中的内链,能对应本地已有条目的就映射过去,对应不上的直接去掉链接,只保留文字。
译文红链更少,原因在于工具替它清掉了红链,与译得好坏无关。这跟内容质量、作者身份都没有关系,只是一段代码的默认行为。
这条发现单独就值得写一篇,尽管它否定了我原来想写的那篇。锚文本在屈折语上的形态问题我写过,当时默认链接目标是稳定的、变化的只是锚文字;这次才发现,连链接目标都会被工具改动。
引用标记数为什么是唯一没翻车的特征?
六个特征里有一个表现相对稳定:引用标记数,即正文中挂了多少条出处。可比较的三门语言里,两门是译文更多,一门持平,没有反向。
原因不难推测:源语言条目本来就带出处,翻译时这些标记会一并带过来,而本地随手写的短条目往往一条出处都不挂。
但它的判别力也只有63.9%,而且可比较的语言只有三门,另外六门的负样本中位数为0,算不出比值。一个在多数样本上分母为零的特征,稳定也没有实际意义。
正文特征测到的是翻译内容还是搬运工具?
想清楚这一点,整篇的结论就变了。
红链率反映的不是“这段内容是否来自其他语言”。它反映的是“搬运工具会不会处理链接”。换成不处理链接的工具,或者直接手工复制粘贴,同一个特征就会反向。
你以为在测内容的来源,实际测到的是搬运的方式。两者在这批样本上碰巧相关,换一批样本就不相关了。
其余五个特征多少都有这个问题。首版字节大,是因为这个工具一次性提交整篇;改成边译边存,首版就小。拉丁占比高,是因为工具会保留未翻译的模板参数;换一个工具可能就清掉了。
放到商业站上,影响更大。同一家公司先后用过三套翻译流程,它站上三批页面的“痕迹”就完全不同。用其中一批标定出的规则去判断另一批,会产生大量假阴性。
正文特征当译文分类器用,判别力能到多少?
最好的两个也只有65.9%
只看倍数不够,还要算判别力。做法是为每个特征找一条最优阈值,使分对的比例最高,再看这个最高值是多少。
首版字节65.9%,外链条数65.9%,引用标记数63.9%,截断前编辑者数62.0%,拉丁占比60.8%,红链率60.0%,内链条数58.4%。
正负样本比为415比540,全部猜“本地撰写”就能得到56.5%。最好的特征只比闭眼猜高出9.4个百分点。
而且这还是阈值按结果反向挑选的情况,实际使用时不知道最优阈值在哪里,结果只会更差。
这几个数放在一起还能看出一个细节:最好的两个特征中,外链条数与首版字节高度相关(内容多的页面外链自然多),它们是同一条证据的两种表现,不能算两条独立证据。
为什么组合多个特征也救不回来?
常见的下一步是把几个特征组合起来投票。但组合的前提是各特征在样本内方向一致,否则组合只会叠加噪声。
这批数据中,首版字节在3门语言上反向,拉丁占比在2门上反向,内链条数在4门上反向。组合时必须先知道每个特征在当前语言上该往哪个方向算,而这恰恰要靠标定才能知道。
只要能标定,就不需要组合;不能标定,组合也没用。
所以我没有做组合模型。做出来会得到一个好看的数字,但那来自过拟合,换一门语言就会下跌。
拉丁残留这把尺子在拉丁语言上直接归零
越南语提供了一个清楚的例子。它使用拉丁字母,译文和本地撰写的拉丁占比都是1.000,比值正好是1.00。
这个特征在越南语上完全没有信息量,判别力弱都谈不上,相当于一把没有刻度的尺子。
泰米尔语的情况更麻烦:译文0.363,本地撰写0.504,比值0.72,方向相反。泰米尔语的本地条目中有大量矿物名和化学名,这些名称本身就带拉丁写法,数量反而比译文多。
因此这把尺子有三种状态:好使、不好使、和反着使。使用前无法判断遇到的是哪一种,只有事后对照答案才知道。
这一点与编码遗留问题类似:看似通用的技术判断,落到具体语言上都得重新验证前提。
为什么换一门语言就得重新标定?
综合以上结果,操作层面的结论很简单:这些特征可以用,但不能跨语言用。
在缅甸语上,首版体量相差11.95倍,作为判据效果很好;把同一条判据用到格鲁吉亚语上,方向就反了。这是正负号的问题,精度高低改变不了它。
要在一门新语言上确定方向,得先在这门语言上拿到一批带答案的样本。而拿到了带答案的样本,也就不需要这些特征了。这是个死循环。
所以我的结论不是“这些特征无效”,是“在你实际会遇到的场景里,它们用不上”。两句话听起来接近,落到操作上差别很大。
负样本不纯,这一层要说清楚
负样本是“没有任何标记的新建页面”,理论上可能混入手工翻译的内容。我检查了一遍创建者分布,情况比预想的更特殊。
缅甸语60条负样本中有57条出自同一个账号,中位字节515,标题大多是日本铁路车站;僧伽罗语60条中有32条出自同一个账号,中位字节276。
这不是机器人,是真人在做半自动的批量小条目。所谓“本地撰写”,在好几门语言上实际是“本地一两个人批量创建的短条目”。缅甸语那个11.95倍,一大半由此而来。
但这个缺陷不影响主结论。方向翻转出现在僧伽罗语、格鲁吉亚语、希腊语三门上,其中后两门的负样本集中度并不高:格鲁吉亚语60条负样本出自31个账号,产出最多的账号只占13%。
商业站上的情况也一样:竞争对手站里的“本地撰写内容”,本来就混有大量程序化生成的模板页。这批页面有没有人读是另一个问题,但它们确实会以“本地内容”的身份参与你的每一次比较。
正文特征失效后,页面壳层还有哪些翻译痕迹?
换个地方找:不看正文,看壳
正文这条路到这里走不通了,但走不通的只是正文这一层。
回看红链率的反转,它其实给出了一条正面线索:特征不稳定,是因为它反映的是搬运工具的行为。反过来推,如果一个痕迹反映的是模板的来历,它就应该跨语言稳定,因为模板的来历与语言无关。
页面的壳正好属于这一层:语言声明、语言切换、多语言标注。它们由模板决定,不经过译员之手,也不随书写系统变化。
于是我把同一个问题转到壳上,换了一批真实商业站来验证。这一步也顺带回应了另一个疑问:前面的样本毕竟来自维基,商业站上的实际情况还得亲自看。
什么样的翻译痕迹才能跨语言稳定?
换地方之前,先要确定判据,否则只是换个地方碰运气。
正文层特征之所以不稳定,是因为它们全部取决于“谁在搬、用什么工具搬”。每门语言的搬运者和工具都不同,特征自然跟着变。
因此稳定的痕迹应满足一个条件:它由模板决定,而不是由内容决定。模板是一套代码,无论写的是哪门语言,它在40个语言版本上的行为都相同。
按这个判据筛选,剩下三项:页面开头那行语言声明、页面上的语言切换入口,以及多语言标注。这三项都写在模板里,都不经过译员之手。
抽样框:最有钱做本地化的那批公司
抽样覆盖8个市场:斯里兰卡、柬埔寨、缅甸、老挝、蒙古、尼泊尔、格鲁吉亚、亚美尼亚。每个市场选取电信运营商、商业银行、国家航空公司、头部电商与零售企业各若干家,共87家。
这是个有意设计的抽样框,不是随机抽样。这批公司是各市场里预算最充足、最有理由把本地化做完整的,如果它们都留有痕迹,其他站只会更多。
数据取自2019年12月前后的网页存档快照,接口返回离目标时间最近的一份,时间戳落在2019年之外的一律弃用。
87家中拿到窗口内快照的有56家,其余31家分三种情况:根本没有存档、有存档但时间不在窗口内、接口当时取不到。这三种情况要分开统计,不能都记为“没有”。
先把没有本地语言内容的站挑出去
测量前要先分档,因为整站都是英文的公司,谈不上有没有翻译痕迹。
按可见文本中本地书写系统字母的数量分档:200个以上为确有本地语言内容,17家;1到49个为只有零星几个字,13家;50到199个之间,5家;一个都没有的,21家。
后续只看那17家。这一步很关键:把没有本地内容的站混进来算比例,会得出虚高的结论,因为这些站本来就是英文站,语言声明写英语是正确的。
分档还显示出一个地理差异。斯里兰卡9家、柬埔寨8家,没有一家有本地语言内容;而格鲁吉亚7家里有5家、亚美尼亚5家里有3家、蒙古6家里有3家有本地语言内容。做语言优先级排序时,这个差异比人口数据有用得多。
本地化几乎没有中间状态
把56家站按本地文字占比排序,分布明显集中在两端。
占比超过0.88的一组:亚美尼亚两家银行0.90和0.96、格鲁吉亚一家银行0.955、蒙古两家0.96、老挝一家银行0.905。占比低于0.05的另一组多达39家。
落在0.5到0.8中间区间的,56家里只有5家。实际操作中,本地化要么整站做,要么只做一个入口,中间状态很少见。
这对预算判断有直接帮助:不必纠结“做到什么程度”,市场上实际只有两种选择。
英文界面词跟着占比走
再看边角文案。本地文字占比在0.88以上的几家,首页上可识别的英文界面词是0到1个;占比0.5到0.8的几家是2到4个;占比只有0.049的那家尼泊尔银行,英文界面词有11个。
从数值上看这是同义反复:本地语言多,英文自然少。值得看的是分布形状:从0直接跳到11,中间几乎没有过渡。
边角文案不是一点一点翻完的,是跟着整站一起翻或者一起不翻。这与前面两端集中的分布是同一现象的两个侧面。
页面语言声明:17家里写对6家
第一个硬信号是页面开头那行语言声明是否与正文实际使用的语言一致。
17家中写对的6家,写错的3家,完全没写的8家。写对率35.3%。
写错的三家很典型。格鲁吉亚一家电信运营商的正文88.4%是格鲁吉亚字母,语言声明却写俄语;尼泊尔一家银行48.9%是天城文,声明写英语;另一家尼泊尔银行正文里有227个天城文字符,声明写美式英语。
这一行是模板里的常量,译员接触不到,测试也不会覆盖。按页面语言声明的规范说明,它应标注本页内容的主要语言,而不是整个站的默认语言,很多站恰恰错在把它当成了后者。
这条痕迹的优点是与书写系统无关。无论正文是天城文、格鲁吉亚字母还是西里尔字母,判断方法都一样:比对声明的语言和正文实际使用的语言。
本地文字只有零星几个的13家站,这些字出现在哪里?
数量都落在4到49之间,太巧了
分档时我注意到一个异常:13家站的本地字母数分别是4、6、6、7、8、12、14、16、21、26、26、27、33,全部落在一个很窄的区间里。
这些站分布在5个国家,使用5种不同的书写系统,行业也各不相同。数量如此接近,多半不是巧合,而是这些站上的本地文字是同一类东西。
于是重新抓取这几个站的快照,把每一段非拉丁文字连同上下文提取出来逐一查看。
是那个“切换到本地语言”的按钮
结果比预想的还要一致。
斯里兰卡三家电信运营商和一家银行,页面上全部的僧伽罗文和泰米尔文,就是语言菜单里的两个词:僧伽罗语和泰米尔语。链接指向本地语言版本,而那些版本大多是空页或者跳回英文。
两家电商平台上是“切换语言”这四个字,尼泊尔那家是“语言切换”,缅甸那家是“语言”。一家尼泊尔银行是“尼泊尔语”,柬埔寨一家电信运营商是“高棉语”,老挝航空是“老挝语”。
整个站上唯一用本地语言写的文字,就是让你切换到本地语言的那个按钮。
其余几家情况略有不同:蒙古两家和格鲁吉亚一家,本地文字出现在标题标签中的公司名和标语上,正文里一个字都没有。原因是页面用脚本渲染,静态内容里只剩一个壳。
本地文字的出现位置怎么当判据用?
这个现象可以直接当信号用:如果一个站上的本地语言文字少到能数清,先看它们出现在什么位置。
出现在语言切换菜单里,说明本地化只做了入口,没做内容。出现在标题标签里,说明可能是脚本渲染,静态抓取拿不到真实内容,需要换工具。
还有第三种位置:零星出现在某条新闻标题或某个促销活动文案里。这种通常是市场部临时发布的一条本地语言内容,与整站本地化程度无关,看一下日期就能确认。
前两种情况的判断完全不同,但在字符统计表上看起来一样,都是“本地字母十几个”。前一种是本地化只做了入口,后一种是我的抓取方式有问题。
区分方法很简单:看这些文字出现在什么标签里。挂在导航或链接文字上的是入口,出现在标题标签里的是渲染问题。锚文本在小语种上会长出多少种形态那篇讨论的是同一位置的不同写法,这里看的是同一个词只出现在一个位置。
多语言标注的覆盖率低得离谱
第三处是多语言标注。56家中有该标注的只有9家,而在17家确有本地语言内容的站里,只有1家有。
在这9家中,几家跨国电商平台把5个市场全部标成英语的地区变体,没有标注任何一个本地语言;一家赌场使用了一个不属于任何合法语言代码的写法;另一家把地区子标签写成与语言码相同的两个字母,结果指向一个完全不相干的国家。
这几种错误的共同点是格式合法、取值错误。语言标签的格式标准把语法正确和取值有效区分为两件事,校验工具通常只检查前者,所以这些写法一路绿灯。
要发现这类错误,只有一个办法:把每个语言代码放回注册表,反查出语言全称,再人工核对。格式校验永远发现不了“把柬埔寨写成科摩罗”这类错误。
页面壳层的三处信号怎么串成一套判定流程?
哪三处是壳层硬信号?
第一处,页面语言声明与正文实际语言是否一致。不一致或缺失,记一分。
第二处,本地语言文字的数量与位置。少到能数清,且集中在语言切换入口上,记一分。
第三处,多语言标注是否存在、是否指向本地语言。缺失或只标注了英语的几个地区变体,记一分。按多语言站点的官方规范,这组标注应成对出现并相互指回,实测中大多数站连单向标注都没有。
三处全部命中,判为“壳是从其他语言版本复制来的”。这个判断比“内容是翻译的”弱一些,但结果稳定,对应的商业结论也相同:本地版本不是本地团队从零做的,选题不会按本地需求排。
三处的检查成本不同:语言声明最容易查,看一眼源码开头即可;本地文字的数量与位置需要跑脚本;多语言标注用正则就能直接提取。如果想省事,只查第一处和第三处也能用,准确率会下降一些,但方向不会错。
哪两处是辅助的软信号?
软信号不单独计分,只在结果存疑时用于加权。它们与内容策略关联较深,有可能是主动选择,不是疏忽。
一是地址结构:本地语言页面用英文单词构成地址,说明这批页面是从主站复制后再翻译的。地址用本地字母还是拉丁转写那篇讨论的是主动选择,这里看的是被动留下的痕迹。
二是边角文案:站内搜索提示、错误页、表单校验这类文字通常不在翻译稿范围内。在17家有本地内容的站里,本地文字占比超过0.88的几家,英文界面词是0到1个;占比在0.5到0.8之间的,是2到4个。
另外还有一个观察:本地文字占比的分布集中在两端。56家中超过0.88的和低于0.05的各占一大批,落在0.5到0.8之间的只有5家。实际操作中,本地化几乎没有中间状态,要么整站做,要么只做一个入口。
半天能跑完的最小版本
选20个核心词,每个词取搜索结果前10条,去重后大约100到150个页面。
逐个页面检查三处硬信号,每处命中记一分。3分判为“壳是复制的”,0分判为“本地制作的”,1到2分单列为存疑,不要强行归类。
最后统计三档各占多少。这个分布比任何单个数字都有用,因为存疑档的大小本身就反映了该市场的本地化成熟度。
如果连搜索结果都拿不全,小语种上工具没数据时的那几条替代路子可以用来补充样本,把行业目录、本地媒体的外链页面都算进来,凑够100个页面就能跑。
三档判定结果分别说明什么?
三分档,判为壳从其他语言版本复制而来。这意味着该站的本地版本很可能是主站的投影,选题跟着主站走。
零分档,判为本地团队自主制作。这类对手最难缠,因为它的选题按本地需求确定,你拿不到结构性优势。
一到两分的存疑档信息量最大。它通常说明该站正在从第一种状态向第二种过渡,或者不同栏目由不同团队负责。存疑档占比越高,说明该市场的本地化正在变化,需要持续关注。
什么时候该重跑判定流程?
改版会让壳上的所有信号一次性失效或一次性修正,所以竞争对手改版后必须重跑。
另外两种情况也需要重跑:对手接入了新的翻译流程,或者存疑档突然变大。后一种通常说明市场上出现了新玩家,采用的做法与原有那批不同。
频率上建议半年一次,比语言层那个数据的更新频率高一倍。原因是语言层的构成依赖一批人的长期习惯,变化慢;单个站的壳一次改版就会全部改变。
壳层翻译痕迹判断在小语种SEO决策里怎么用?
这套判断不能用来做什么?
它不能用来判断内容质量。壳是复制的,正文可能翻译得很好;壳做得规范,正文也可能是机器直出。这两层之间没有必然联系。
它也不能用来计算精确比例。前面的标定已经表明正文层测不准,壳这一层只能给出站点级别的定性判断,给不了页面级别的判断。
还有一点:它判断的是“壳的来历”,不是“内容的来历”。两者高度相关但不等同,遇到本地团队用总部模板自行撰写内容的情况,会出现误判。
这种误判有明显特征:壳的三处全部命中,但内容全是本地话题、本地人名、本地时间。遇到这种情况就作废壳的结论,直接按本地原生对手处理。结构证据与内容证据冲突时,以内容为准。
这套判断能用来做什么?
最直接的用途是判断竞争对手的选题清单从哪里来。壳是从主站复制的,内容大概率也跟着主站的话题走,本地特有的需求就是空白。
第二个用途是估算工作量。如果整个市场的站都只做了入口、没做内容,说明该市场的本地化基础设施还没建立:没有成熟的译员供给,也没有做过这类项目的本地代理,进入时需要自己从零搭建,预算要相应上调。
反过来,如果该市场已有几家完成了整站本地化,说明供应链已经打通,执行成本会低不少,但选题上的机会也少了。
第三个用途是选择进入时机。一门语言的公共内容里有多少是搬来的那篇给出的是语言层的构成,壳这一层给出的是站点层的实际状况,两个数据结合起来,能判断该市场是刚起步还是竞争已经激烈。
还有一个用途是自查。你自己的多语言站上,这三处大概率也没改过。我按同样的标准检查过几个客户的站,三处全部命中的不在少数。看流量报表里机器占多少的时候,顺便把这三处也查一遍,几乎没有额外成本。
壳层判断与母语审校有什么区别?
需要说明:本文讨论的是从外部判断来源,不涉及质量判断。母语者审校该验哪几层那篇讲的是自己的稿件如何验收,属于内部视角,能看到原文和译文的对照。
外部视角看不到对照,只能退而检查结构。两套方法解决的是不同问题,不要混用。
如果说两者有什么联系,那就是:验收清单里最容易遗漏的项,恰好也是从外部最容易看出来的项。省掉审校那道工序的代价在两个视角下是同一笔账。
这套判据在中文市场用得上吗?
用得上,而且适用面更广。中文站的多语言版本普遍存在同样的问题:中文主站做得很细,英文和其他语言版本的壳直接复制,语言声明和多语言标注多年不改。
反过来,中文站被别人抄袭时也会留下同样的痕迹。抄袭者会复制结构,但不会修改这三处,所以这三处也可以作为溯源线索。
不过中文市场的内容搬运更多发生在中文内部,也就是站与站之间的转载,这一层与语言无关,需要用其他方法排查。壳层判据只对跨语言复制有效。
这批数据上我犯过哪些错?
解码方式用错,结论被测反
抓取存档快照时,有两家站的网页没有声明字符集。工具库遇到这种情况默认按西欧编码解码,而我写的判断分支恰好永远走不到编码猜测那一步。
结果这两家站的西里尔文和格鲁吉亚文被解成乱码,而乱码中的每个字符都被计为“非拉丁字母”,于是被统计成了本地文字。
蒙古一家航空公司的本地文字被算成109个,真实值是5268,相差48倍;格鲁吉亚一家银行被算成12个,真实值是792,相差66倍。按错误数字写出的结论会是“蒙古航空的官网基本是英文的”,与事实正好相反。
正确的解码顺序是:先看响应头里的字符集声明,再看页面内的声明,然后尝试通用编码,最后才进行猜测。这个顺序不能颠倒,颠倒一次就可能把一门语言判成另一门。
更需要记住的是错误的方向:乱码字符全都不是拉丁字母,所以它污染的始终是“本地文字”这一列,而且始终是往多的方向污染。朝固定方向出错的故障,比随机出错的故障危险得多。
把两种“没有”混在一起算
87家站中有31家没拿到窗口内的快照。第一版把它们统一记为“没数据”,比例按56除以87计算。
后来分开统计才发现,20家是有存档但时间不在2019年,4家是根本没有存档,7家是接口当时连不上。这三种情况含义完全不同:第一种说明站点仍在,只是快照时间不巧;第二种说明该站当时几乎没有影响力;第三种纯粹是我这边的问题。
把第三种算作“没有”,等于让自己的网络故障参与了对市场的判断。这听起来荒唐,但在批量采集中很容易发生,因为失败记录和空值在数据表里看起来完全一样。
抓不到本地文字,先怀疑自己的工具
还有两家站的静态页面几乎没有正文,本地文字只出现在标题标签里。第一版把它们与“只做了语言开关”的那批归为一类。
实际情况完全不同:这两家用脚本渲染页面,正文在浏览器中生成,我抓取的静态文件里自然没有。把工具的局限当成对方的问题,是这类测量中最容易犯的错误。
判据是看文本总量。如果整页可见文字只有几十个字符,多半不是页面真的这么空,而是抓取方式不对。这一条与编码那条道理相同:先排查自己,再怀疑对象。
差点把标定结果讲反
合并9门语言的中位数时,六个特征中有五个方向符合直觉。如果在那一步停下,这篇文章就会变成一份“教你识别翻译内容的五个特征”,读起来顺畅,实际使用却会出问题。
结果符合预期时,最该做的就是再往下拆一层。按语言拆开后,才发现三门语言的方向是反的。
这条规矩我已经固定下来:任何符合预期的结论,至少要在一个更细的维度上重算一遍再采信。这次是按语言拆,下次可能按时间或按站点拆。
成本很低,通常十几分钟;收益是避免把错误的结论发布出去,再被人当作常识引用好几个月。
常见问题解答
用维基数据标定的结论能搬到商业站上吗?
正文层的结论可以迁移,因为它是否定性结论:在有官方标记、格式统一的样本上都分不开,商业站上只会更混乱。壳层的结论本来就是在商业站上测得的,不存在迁移问题。抽样框有偏差,偏向大公司,这一点前文已经说明。
为什么不直接用现成的AI检测工具?
这类工具判断的是“像不像机器生成的”,与“是不是从其他语言翻译过来的”是两个问题。一篇人工精心翻译的稿子在这类工具上通常检测不出问题,一篇本地人用生成工具写的原创反而会被标红。而且这类工具在小语种上的表现没有公开的验证数据,用一个未经标定的工具去解决一个需要标定的问题,只会再叠加一层不确定性。
65.9%的判别力,是不是特征选得不好?
有可能。我选的六个特征都是从外部可见、不需要读懂语言的。如果允许用语言模型阅读正文,判别力肯定会更高。但那样就不属于“从外部看”了,成本也完全不同。本文要回答的是:在不懂这门语言、不进入对方后台的情况下能做到什么程度,答案就是这个数。
负样本里混有半自动批量创建的短条目,结论还成立吗?
受影响的是具体倍数,方向不一致这个结论不受影响。方向翻转出现在僧伽罗语、格鲁吉亚语、希腊语上,其中格鲁吉亚语和希腊语的负样本集中度并不高。此外,商业站上的情况也一样:竞争对手站上的“本地撰写内容”里,本来就混有大量批量生成的模板页。样本不纯本身就是现实的一部分。
壳上那三处,对方改一下不就没了?
会消失,但这正说明它有用。修改这三处的成本很低,愿意修改的团队通常也会把内容做好;一直不改的团队,多半是因为没人负责这个市场。所以这三处更适合看作投入程度的代理指标,而不只是技术痕迹。
只做一个市场,值得跑这套流程吗?
值得,但可以简化。单一市场不需要做标定,直接检查三处硬信号即可,20个词、100来个页面,半天就能完成。标定那一套是为需要在多种语言之间比较的场景准备的。只做一个市场时,你需要的是绝对判断,不需要排序。
权威参考资料
本文标题:《小语种SEO翻译痕迹识别:正文特征跨语言失效,页面壳层信号更稳定》
本文链接:https://zhangwenbao.com/minor-language-translation-trace-shell-not-text.html
版权声明:本文原创,转载与引用请注明作者与原文链接。许可协议: CC BY 4.0