最近因为看到 FishCat233’s Blog 上的文章乱七八糟成一团,于是思考了一下如何去整理文章,随着思考深入,逐渐有了些眉目,我认为可以写下来记录一下,并给出我的分类办法。

分类的两种功能

分类有必然条件,那就是一篇文章最多只能有一个类别。

理由很简单:如果一篇文章能够同时被分为多个类别,同时也能有多个标签,问题来了——标签和分类有什么区别呢?

因此分类通常都是一篇文章只能有一个分类,而这就导致必须现有分类,然后才有分类的文章。

反过来思考,如果没有分类而是通过先有文章进行聚类产生的类别,会带来很多坏处。

新加入的任何一个文章都会影响类别的纯净度,起初认为「写底层逻辑门的是计算机原理,可以分计算机类别。」,过了一阵子发现「好像比起其他前后端软件开发之类的文章,这篇逻辑门更应该待在隔壁新出的『电子硬件』类」。从而导致一篇文章在两个类别间卡住。不管分哪类,总会有一个类别的访客会少看那篇相近但是被分到另一类的文章,降低了检索效率。

因此分类只能是自上而下的分类,建立类别不能依赖文章,而是靠作者自己先建立类别,然后才有文章。听着可能有点绕,但是可以换个主动性更强而非被动分类的词来形容,那就是——「专辑」。

没错,实际上分类功能的有效使用应该是「专辑」或者「选集」形式的。

因此引出了「静态归档」和「动态连载」两种用法,在后面会进一步谈及如何操作。

自下而上的标签

而标签不同,标签极具灵活性,标签和文章是多对多的关系,这也带来了问题——容易被误用。

在使用标签的时候,很常见的情况就是刚写了一篇文章就马上打起了标签,然而这个标签下就只有一篇文章。

这会带来很多问题,同样以反例来说:如果文章刚有一篇就随意打上新标签,那么随着后续文章的加入,这个标签是否还会被再次打到其他文章上连你也说不准。制造过多这样细碎的小标签会让标签列表冗长,从而降低检索效率。

实际上视频网站也是类似的——b 站视频也会限制标签上限数不超过 6 个,并且在填写标签时会提供补全供用户选已经存在的标签,从而提升推荐系统的效率。

因此,标签应该反过来像是「聚类」一样,等到文章数量足够的时候再进行分配标签。

检索的平衡

因此博客系统实际上是手工进行分类和标签的管理,而且内容的产出量并不是 b 站那种互联网大站点那么庞大的量,方案不能搞太复杂。

我综合思考,最后想出的办法是:

其一,把分类功能当「合集」或者「选集」用。进行「静态归档」或者「动态连载」。

先写文章而不分类。 等到有很多文章未分类时,认为哪些文章可以串编「XXX 选集」并且具有不错的质量的时候再对其进行分类——这个做法就像是给故人整理手稿一样,需要注意这个做法制作出的分类应该默认之后不会加入新内容。

先创建分类再写文章。 在遇到故意连载的系列比如说「每日一题」时,可以创建「每日一题」分类,然后再为其写系列文章。因为是「根据分类写文章」而不是「根据文章分类」,分类内的文章必然是最适合这个分类的。

其二,把标签功能当「聚类」结果。

先写足够多文章,然后再打标签。 一个文章涉及到的东西很多,全打完会让标签列表很乱,标签功能本身是用来差异化文章来提升检索效率,所以可以先攒够多没有标签的文章,然后找到文章间的不同,对显著的不同进行标签化。比如说「计算机」「生活」就是两个截然不同的标签。

美中不足

这个办法的当然是有美中不足的。

话说回来,分类和标签本身不是目的。读者打开博客,不是为了欣赏分类多工整,而是为了最快找到那篇他隐约记得看过的文章 或者 可能能够让他感兴趣的文章 。分类太粗,找不到;分类太细,记不住。

但由于是人工分类,因此我在寻找办法时,要在「作者整理成本」和「读者查找效率」之间寻找平衡。最终得到的这些办法都关注于静态的工作,需要根据动态的情况不断修改,但这也是检索系统本身面临的大难题。至少我看来,目前方法对我的产出速度已经够用了。