这是讲用 KMeans 算法做文本相关聚类(像句向量、文本向量这类)的小技巧,拆解成唠家常式的:
就好比你要整理一堆衣服,先别想着直接分成 “上衣、裤子” 这几大类,而是多设些类别,比如 “T 恤、衬衫、卫衣、牛仔裤、运动裤” 等等 。这样先细分,后面再调整,能更细致地把相似的聚到一块儿,避免一开始分太粗,把不太一样的硬凑一堆。
聚类完,每个类别里的东西(文本向量)得看看它们内部有多 “像” 。距离就代表差异,平均距离就是把一个类别里所有两两之间的距离算平均。平均距离小,说明这堆东西内部很像,抱团抱得紧;平均距离大,就是内部差异大,不太像一伙儿的。
把所有类别按平均距离排排队,那些平均距离特别长的,就像一堆衣服里,硬凑进去的 “异类” ,留着没啥用,干脆扔了,留下那些内部更相似、更紧凑的类别,这样聚类结果更干净、合理。
算两个文本向量有多 “远”(差异多大),有不同方法。欧式距离就像量直线距离,余弦距离更关注方向上的差异(比如两篇文章主题是不是一个方向) ,可以都试试,看哪种更适合你手头的文本数据,能让聚类结果更好。
要是处理短文本(像一句话、短评论),得先把重复的去掉,比如一堆 “好棒”“好棒”,留一个就行,不然重复内容会干扰聚类。另外,还得做些其他清理,像去掉没用的标点、停用词(的、地、得这些),让文本更 “干净”,聚类才更准 。
简单说,就是用 KMeans 搞文本聚类时,先多设类、再筛掉内部差异大的类,选合适的距离计算方式,处理短文本前还得清清重复和垃圾内容,这样聚类结果能更靠谱 。