一次城市租房者调查收回三千条开放题回答,题目是租房中遇到的最大困难。有人说房租一年涨了两次,有人说退租时押金被扣了一半,有人说中介隐瞒了房子漏水,还有人说热水器坏了三个月房东也不修。一条一条读完再归类,要花上好几天,而且读到后面,前面定下的类别往往又要改。
聚类(Clustering)就是用来做这件事的。它事先不给类别,只按内容的相近程度,把回答自动分成几堆,每堆里的回答彼此相近,不同堆之间差得远。研究者拿到这几堆,再读每堆的关键词和代表回答,给它们起名字,就得到一版可以讨论的类别框架。
在 TATOOLS 的【高级文本聚类】里【上传文档】,TATOOLS 先把材料切成片段,再把每个片段表示成一个向量,然后按向量之间的距离分组。报告为每个簇列出关键词和建议簇名,写明它占多大比例,再挑出三类代表片段;还画出聚类散点图,并可以把分类数上下各调一个再聚一次,看簇的关键词稳不稳。
这篇教程先讲聚类要解决什么问题,再讲文本怎样切成片段,片段怎样变成向量。接着讲 K-means 怎样分组,分类数怎样选,DBSCAN 怎样按疏密分组。最后讲簇名和代表片段怎样核对,敏感性对比和质量指标怎样看,以及报告的读法和论文里的写法。
01
聚类要解决什么问题
分类(Classification)是先有类别、再把文本放进去;聚类反过来,先看文本彼此有多像,再从相像的程度里长出类别。统计学上前者叫有监督学习,需要人先标好一批样本;后者叫无监督学习,不需要任何标注。
聚类的算法由来已久。Lloyd 1957 年在贝尔实验室写出按最近中心反复分配的算法,1982 年正式发表;MacQueen 1967 年给它起名 K-means(K 均值聚类)。Ester 等人 1996 年提出 DBSCAN,按点的疏密分组,不用事先定类数。社会科学里,Grimmer 和 Stewart 2013 年总结政治学的文本分析方法时,把聚类归为发现类别的工具,适合在还没有编码框架的阶段,先从材料里找出可能的类别,再交给研究者判断和命名。
TATOOLS 的【高级文本聚类】就放在这个位置上。开放题回答和网络评论可以先聚一遍,访谈逐字稿和政策文本也一样,得到一版初始框架,再在它上面做人工编码。
02
分析单位:切成片段
分词和过滤
TATOOLS 先按工具页的分词设置切词。【自定义词典】保证领域术语不被切碎,比如把长租公寓当成一个词;【使用系统停用词】和【自定义停用词】去掉的、了这类没有实际内容的词;【分词模式】决定切分方式;【词形合并】把几种写法并成一种再计数,比如把 AI 和人工智慧都并到人工智能。
切完以后还有三道筛选。【词性过滤】只留选定的词性,默认留名词、动词和形容词;【最短词长度】和【最长词长度】去掉太短或太长的词;【最小词频】要求一个词在全部材料里至少出现这么多次。一个片段的词如果全被筛掉,这个片段就不参加聚类,报告的【参数有效性提示】会写明因此移除了几条。
按窗口切片段
聚类的分析单位(Unit of Analysis,一次统计针对的对象)是片段。TATOOLS 按【窗口大小】把文本切成大约这么多字的片段,切点优先落在句末标点上,一句话不会被拦腰切断。窗口取 100 时,一段三百来字的回答大约切成三个片段。上传多个文件时,所有文件的片段放在一起聚类。
窗口小,一条长回答里谈到的几件事会被分到不同的簇;窗口大,一个片段代表一条回答的整体意思。开放题的短回答和网络评论适合小窗口,政策文本和访谈逐字稿适合大一些的窗口。
03
把片段变成向量
计算机比较两个片段有多像,要先把片段变成一串数字,也就是向量。TATOOLS 的【嵌入方法】提供两种做法。
TF-IDF
TF-IDF(词频–逆文档频率,一个词在这段常见、在别处少见的程度)给每个片段里的每个词一个权重,一个词就是向量的一维。
tfidf(t, d) = tf(t, d) × idf(t)
idf(t) = ln((1 + n) / (1 + df(t))) + 1
n:片段总数;df(t):含有词 t 的片段数
每个片段的向量再缩放到长度为 1
n = 100 时,只出现在 9 个片段里的词,idf = ln(101 / 10) + 1 ≈ 3.31;出现在 99 个片段里的词,idf = ln(101 / 100) + 1 ≈ 1.01。到处都有的词权重被压低,只在一部分片段里集中出现的词权重被抬高,这正是区分不同话题要靠的词。【最大特征数】给参与计算的不同词设一个上限。
Word2Vec
TF-IDF 把每个词当成独立的一维,开心和快乐是两个毫不相干的维度。Word2Vec(从上下文学词义的模型)由 Mikolov 等人 2013 年提出,它看每个词前后出现什么词,出现在相似上下文里的词,得到相近的向量。TATOOLS 用这次上传的材料现学一套词向量,再把片段里所有词的向量取平均,作为片段的向量。【向量大小】是每个词向量的维数。
用一个只有两维的例子比较两种做法。片段甲的实词是开心和出游,片段乙是快乐和出游。
词向量:开心 (0.8, 0.2),快乐 (0.7, 0.3),出游 (0.5, 0.6)
片段甲 = (开心 + 出游) / 2 = (0.65, 0.40)
片段乙 = (快乐 + 出游) / 2 = (0.60, 0.45)
余弦相似度 = (0.65×0.60 + 0.40×0.45) / (0.763 × 0.750) ≈ 0.996
用 TF-IDF 表示,两个片段只共享出游一个词,三个词权重相同的话,余弦相似度只有 0.5。Word2Vec 看出开心和快乐意思相近,把两个片段放得很近。它从材料本身学词义,材料越多学得越准,访谈逐字稿这类篇幅长、说法多变的材料最能发挥它的长处。
降维和标准化
TF-IDF 向量的维数等于词数,常常上万。TATOOLS 按【降维方法】把它压到【组件数量】设定的维数,维数不超过片段数减一。PCA(主成分分析)找片段之间差异最大的几个方向;SVD(奇异值分解)不用先减去均值,直接分解片段与词语的矩阵,和潜在语义分析是同一种做法。选 None 就不降维。
降维以后,【特征标准化】把每个片段的向量缩放到长度为 1。这一步决定了后面的距离比的是什么。
三个片段,三个词(房租,押金,维修)
A = (2, 1, 0) B = (4, 2, 0) C = (0, 1, 2)
cos(A, B) = (2×4 + 1×2) / (√5 × √20) = 10 / 10 = 1
cos(A, C) = (0 + 1 + 0) / (√5 × √5) = 0.2
B 是一条更长的回答,用词比例和 A 完全一样。不做标准化,A 到 B 的距离是 √5 ≈ 2.24,A 到 C 是 √8 ≈ 2.83,差不多远。缩放到长度为 1 以后,A 和 B 重合,距离是 0;A 到 C 的距离是 √1.6 ≈ 1.26。单位向量之间有一个恒等式。
‖a − b‖² = 2 − 2 × cos(a, b)
距离越小,余弦相似度越高。标准化以后按距离分组,等于按用词的方向分组,回答的长短不再影响归类。TATOOLS 默认打开这一步。
04
K-means:按距离分成 K 类
K-means 要找 K 个簇中心,让每个片段到自己所在簇中心的距离平方加起来最小。
J = Σ_k Σ_(x∈C_k) ‖x − μ_k‖²
C_k:第 k 个簇;μ_k:第 k 簇所有片段向量的平均,叫簇中心
求解用 Lloyd 的迭代。先放 K 个初始中心,然后交替做两步。每个片段分给离它最近的中心,每个中心挪到分给它的片段的平均位置。分组不再变化,迭代就停止。用六个压到一维的片段手算一次。
片段位置:1 2 3 8 9 10,K = 2
初始中心:1 和 4
第 1 轮分配:{1, 2} 和 {3, 8, 9, 10}
更新中心:1.5 和 7.5
第 2 轮分配:{1, 2, 3} 和 {8, 9, 10}
更新中心:2 和 9
第 3 轮分配不再变化,停止
J = (1 + 0 + 1) + (1 + 0 + 1) = 4
每一步 J 只会变小或不变,所以迭代一定会停下来,最后停在哪里,取决于初始中心放在哪里。K-means 默认每个簇大致是一团,每个片段必须归到某一个簇里。
TATOOLS 的【文本聚类算法】选【minibatch_kmeans】时,用的是 Sculley 2010 年提出的小批量 K-means(Mini-Batch K-means)。每一轮只随机抽一小批片段来挪动中心,几万个片段也能很快跑完,分出来的簇和完整的 K-means 很接近。分类数由【选择分类数】决定,打开【自动选择分类数】时交给下一节的三种方法。
05
分类数怎样选
K 是研究者给的,K-means 不会自己判断材料里有几类。TATOOLS 打开【自动选择分类数】以后,在【最小聚类数】和【最大聚类数】之间逐个试 K,用【自动选择分类数的方法】选出一个。三种方法看的东西不一样。
肘部法则
K 越大,每个簇越小,误差平方和 J 一定越来越小,分到每个片段一个簇时 J 等于 0。所以挑 K 看的是 J 在哪里停止大幅下降。这个思路可以追溯到 Thorndike 1953 年的讨论,把 J 随 K 画成折线,拐弯的地方像手肘。
| K | 误差平方和 | 比上一个 K 减少 | 下一步减少 ÷ 这一步减少 |
|---|---|---|---|
| 2 | 400 | ||
| 3 | 250 | 150 | 70 ÷ 150 ≈ 0.47 |
| 4 | 180 | 70 | 20 ÷ 70 ≈ 0.29 |
| 5 | 160 | 20 | 10 ÷ 20 = 0.50 |
| 6 | 150 | 10 |
从 3 类加到 4 类还能减少 70,从 4 类加到 5 类只减少 20,再多分一类的收益在 4 这里突然变小。TATOOLS 对每个 K 算一次误差平方和,取相邻两次减少量之比最小的那个 K,这个例子里是 4。
轮廓系数
Rousseeuw 1987 年提出轮廓系数(Silhouette Coefficient),给每个片段打分,看它离本簇近、还是离别的簇近。
s(i) = (b(i) − a(i)) / max(a(i), b(i))
a(i):i 到本簇其他片段的平均距离
b(i):i 到最近的另一簇所有片段的平均距离
接上面 K-means 的结果,两个簇是 {1, 2, 3} 和 {8, 9, 10}。
片段 3:a = (2 + 1) / 2 = 1.5,b = (5 + 6 + 7) / 3 = 6
s = (6 − 1.5) / 6 = 0.75
片段 1:a = 1.5,b = 8,s ≈ 0.81
片段 2:a = 1,b = 7,s ≈ 0.86
两个簇对称,六个片段的轮廓系数平均约 0.81。轮廓系数在 −1 到 1 之间,接近 1 说明片段稳稳地待在自己的簇里,接近 0 说明它在两个簇的交界上,小于 0 说明它离别的簇更近,多半分错了。TATOOLS 对每个 K 算全部片段的平均轮廓系数,取最高的那个 K。
间隔统计
Tibshirani、Walther 和 Hastie 2001 年提出间隔统计(Gap Statistic),拿真实数据和没有任何簇结构的参照数据比。
Gap(k) = E*[log W_k] − log W_k
W_k:分成 k 簇时的簇内离散度
E*:在均匀分布的参照数据上反复计算后取平均
选满足 Gap(k) ≥ Gap(k+1) − s_(k+1) 的最小 k
s_(k+1):参照数据上 log W 的标准差,再乘一个修正系数
如果材料里真有 k 个簇,分成 k 簇时真实数据的离散度会比均匀撒点的参照数据小得多,间隔就大。假设 Gap(2) = 0.30,Gap(3) = 0.52,Gap(4) = 0.55,标准差都是 0.05。k = 2 时,0.30 小于 0.52 − 0.05 = 0.47,不满足;k = 3 时,0.52 大于 0.55 − 0.05 = 0.50,满足,选 3 类。从 3 类到 4 类,间隔的增长小于一个标准差,多分出来的那一类站不住。
TATOOLS 对每个 K 在每个特征的最小值和最大值之间均匀撒点,生成几组参照数据,按这个规则挑出 K。
三种方法各有侧重。肘部法则看误差下降的拐点,算得快;轮廓系数同时看簇内紧不紧、簇间开不开;间隔统计有一个无结构的参照做对照,最严格也最慢。选出来的 K 写在报告的【聚类数量】里。
06
DBSCAN:按疏密分组
K-means 要先定 K,又默认每个簇是一团。DBSCAN(基于密度的带噪声空间聚类)换了一个思路,把挤在一起的点连成簇,稀疏地带的点当作噪声,簇的个数和形状都由数据决定。它有两个参数,邻域半径 ε 和最少点数 MinPts。
N_ε(p):离 p 不超过 ε 的所有点,含 p 自己
核心点:N_ε(p) 里的点数 ≥ MinPts
边界点:不是核心点,但落在某个核心点的 ε 邻域里
噪声点:既不是核心点,也不是边界点
彼此在 ε 之内的核心点连成一个簇,边界点跟着它所在的核心点
取 ε = 0.5,MinPts = 3,七个一维的点。
点:1.0 1.3 1.6 5.0 5.3 5.6 9.0
1.3 的邻域:{1.0, 1.3, 1.6},3 个点,核心点
1.0 的邻域:{1.0, 1.3},2 个点,边界点
1.6 的邻域:{1.3, 1.6},2 个点,边界点
5.3 同理是核心点,5.0 和 5.6 是边界点
9.0 的邻域只有它自己,噪声点
结果:{1.0, 1.3, 1.6},{5.0, 5.3, 5.6},噪声 {9.0}
两个簇完全是从点的疏密里长出来的,事先没有指定类数。
TATOOLS 的【文本聚类算法】选【dbscan】时,邻域半径和最少点数按材料规模自动设定。聚完以后,被判为噪声的片段归到离它最近的簇中心,每个片段都有归属,报告里的占比加起来是 100%。材料的密度结构撑不起两个簇时,TATOOLS 改用 K-means 分组。评论和社媒短句这类话题零散、小众说法多的材料,适合先用 DBSCAN 看看自然形成了几堆。
07
簇的关键词、簇名和代表片段
分好组以后,研究者要知道每个簇在说什么。TATOOLS 在每个簇内部单独算一次 TF-IDF,按簇内的平均权重给词排序,排在前面的就是这个簇的关键词。【聚类详情】里每个簇列出关键词和它们的权重,并把前三个关键词拼成【建议簇名】,比如【房租/押金/合同相关议题】。
只看关键词容易起错名字,TATOOLS 为每个簇挑出三条代表片段,放在【簇内代表文本抽样】里。
| 样本 | 怎样挑 | 用来做什么 |
|---|---|---|
| 中心样本 | 离本簇中心最近 | 理解这个簇的主干 |
| 边界样本 | 离本簇中心最远 | 检查有没有混进别的子话题 |
| 混淆样本 | 离另一个簇最近,减去离本簇中心的距离后差值最小 | 判断两个簇要不要合并或重分 |
一维的例子。本簇有 0、3、4、5 四个片段,中心是 3;另一个簇的中心是 10。
| 片段 | 离本簇中心 | 离另一簇中心 | 两者之差 |
|---|---|---|---|
| 0 | 3 | 10 | 7 |
| 3 | 0 | 7 | 7 |
| 4 | 1 | 6 | 5 |
| 5 | 2 | 5 | 3 |
中心样本是 3,边界样本是 0,混淆样本是 5。0 离本簇中心最远,但它在远离另一簇的那一侧,读它看的是本簇内部有没有分出一个小话题;5 离另一簇最近,读它看的是两个簇的边界划得对不对。每个簇读这三条,比随手翻十条更快发现问题。
08
参数敏感性对比
K-means 给出的簇,会随 K 变化。K 从 5 改成 6,如果原来的五个簇只是其中一个被拆开,其余四个的关键词基本不变,说明这套簇比较稳;如果六个簇的关键词和原来的五个对不上,簇名就要慎用。
在工具页打开【开启参数敏感性对比】以后,TATOOLS 把分类数分别减一和加一,各重新聚一次,给每个新簇提取关键词,再和原来的簇比。两组关键词的重合度用 Jaccard 系数(交集大小除以并集大小)衡量。
原簇关键词:{房租, 押金, 合同, 中介, 退租}
新簇关键词:{房租, 押金, 合同, 维修, 物业}
交集 3 个,并集 7 个,Jaccard = 3 / 7 ≈ 0.43
每个新簇找原来和它最像的那个簇,取这个最高重合度,所有新簇的平均值就是报告里的【关键词稳定度】。【参数敏感性对比】分别列出少一类和多一类两套方案,写明各自的关键词稳定度,并列出每个簇的关键词和片段数,顶部写明整体是稳定还是敏感。论文里写明做过这一步,审稿人问起分类数为什么是 5,就有了依据。
09
质量指标与复核清单
报告顶部的【聚类质量评分】是一个 0 到 1 的综合分,由关键词重叠、簇规模均衡和聚类内凝聚度三项检查合成。【聚类质量评估】把几项分开列出。
| 指标 | 怎样算 | 怎样读 |
|---|---|---|
| 关键词重叠率 | 各簇关键词里重复出现的词次 ÷ 总词次 | 越低越好,说明各簇用词分得开 |
| 聚类间分离度 | 1 − 关键词重叠率 | 越高越好 |
| 规模比率 | 最小簇片段数 ÷ 最大簇片段数 | 接近 1 说明各簇大小相近 |
| 聚类均衡性 | 1 − 簇规模的标准差 ÷ 平均规模 | 接近 1 说明各簇大小分布均匀 |
举个例子。三个簇各取 5 个关键词,共 15 个词次,租客在三个簇里都出现,房东在两个簇里出现,重复的词次是 2 + 1 = 3,关键词重叠率是 3 ÷ 15 = 0.2,聚类间分离度是 0.8。四个簇的片段数是 120、90、60、30,规模比率是 30 ÷ 120 = 0.25;平均 75,标准差约 33.5,聚类均衡性约 1 − 0.45 = 0.55。
开放题里常有一个大簇装着最常见的抱怨,旁边几个小簇是少数人提到的具体困难,规模相差悬殊很常见。规模比率很低时,值得读一读最大的那个簇,看它是不是还能拆开。
【参数有效性提示】按这次的实际数据检查降维设置、最小词频移除了几条、是手动还是自动定的分类数,以及有效片段够不够多。【结果复核清单】列出五项检查,前四项看主题数量是否合适、主题边界是否清楚、关键词是否重复过多和是否存在一类过大。第五项是否完成人工抽查始终标为需人工确认,提醒研究者每个簇至少读完中心、边界、混淆三条样本。
10
研究问题导向模板
工具页顶部的【研究问题导向模板】按材料用途预设了五组参数,选一个就自动填好,下面的设置仍可以微调。
| 模板 | 适合的材料 | 预设的做法 |
|---|---|---|
| 开放题归类 | 问卷、课堂反馈的短回答 | 自动选分类数,TF-IDF,片段较短 |
| 政策议题 | 政策、规划、通知 | 自动选分类数,范围更宽,片段较长 |
| 访谈初编码 | 访谈逐字稿 | 手动 5 类,Word2Vec,片段最长 |
| 评论关注点 | 读者评论、用户反馈、社媒短句 | dbscan 按疏密分组,片段最短 |
| 论文复核 | 要保留参数和稳定性依据的研究 | 手动 5 类,打开敏感性对比 |
默认选中的是论文复核。选中的模板还会写进报告的【研究报告段落导出】,段落开头写明这次按哪种场景聚类。
11
工具页上的设置一览
| 设置 | 范围 | 默认 | 影响什么 |
|---|---|---|---|
| 分词设置、词形合并 | 自己填写 | 空 | 哪些词参与分析 |
| 选择分类数 | 1 到 40 | 5 | K-means 分几类 |
| 自动选择分类数 | 开或关 | 关 | 是否在范围内自动选 K |
| 开启参数敏感性对比 | 开或关 | 开 | 是否比较少一类和多一类 |
| 文本聚类算法 | minibatch_kmeans 或 dbscan | minibatch_kmeans | 按距离分 K 类,或按疏密分组 |
| 自动选择分类数的方法 | 肘部法则、轮廓系数法、间隔统计法 | 肘部法则 | 用哪种准则选 K |
| 最小聚类数、最大聚类数 | 1 到 10,1 到 50 | 2,20 | 自动选 K 的范围 |
| 最短词长度、最长词长度 | 1 到 5,10 到 50 | 2,20 | 太短或太长的词被去掉 |
| 词性过滤 | 名词、动词、形容词、副词 | 前三种 | 留哪些词性 |
| 最小词频 | 1 到 10 | 2 | 一个词至少出现几次 |
| 窗口大小 | 10 到 200 | 100 | 每个片段大约多少字 |
| 最大特征数 | 1000 到 100000 | 50000 | 参与计算的不同词的上限 |
| 嵌入方法 | TF-IDF 或 Word2Vec | TF-IDF | 片段怎样变成向量 |
| 降维方法 | PCA、SVD、None | PCA | 怎样压缩向量 |
| 组件数量 | 50 到 500 | 100 | 压缩到多少维 |
| 特征标准化 | 开或关 | 开 | 向量是否缩放到长度为 1 |
| 向量大小 | 50 到 300 | 100 | Word2Vec 每个词向量的维数 |
第一次跑,先选一个接近材料的模板。关键词里泛泛的词多,或者各簇都出现同一批词,就把它们补进停用词后重跑;专有名词被切碎,就补进自定义词典。
12
报告怎么读
TATOOLS 的报告自上而下是这几块。
| 区块 | 先看什么 |
|---|---|
| 这份结果说明了什么 | 片段数、分出几类、最大的簇、簇名稳不稳 |
| 文本总数、聚类数量、聚类质量评分 | 规模、类数和综合分 |
| 研究报告段落导出 | 可以改写进报告的初稿段落 |
| 聚类可视化 | 各簇在平面上是否分得开 |
| 参数敏感性对比 | 少一类和多一类时关键词稳不稳 |
| 聚类详情 | 每簇的关键词、建议簇名、占比和三条代表片段 |
| 聚类质量评估 | 关键词重叠和规模均衡 |
| 参数有效性提示、结果复核清单 | 有没有要调的参数,还差哪步人工核对 |
| 参数解释、优化建议 | 这次用到的参数和调整方向 |
【聚类可视化】把每个片段的向量再用主成分分析压到两维,画成散点,颜色是所属的簇。几个颜色各占一块,说明簇之间分得开。上百维的差异压到平面上难免重叠,颜色混在一起的地方,以【聚类详情】里的代表片段为准。
读的顺序是先看敏感性对比确认分类数站得住,再在聚类详情里逐簇读关键词和三条代表片段,改定簇名,最后回到质量评估看有没有过大的簇需要拆。结果可以下载,结果表里每个片段都标着所属的簇和这个簇的关键词,研究报告段落也能单独下载。
13
把结果写进论文
聚类适合在论文里作为探索性的类别框架,后续的人工编码和统计可以在它上面展开。下面是一段方法部分的写法示例,方括号里换成自己的数字。
本研究使用 TATOOLS 的高级文本聚类处理 [条数] 条开放题回答。分词并去除停用词后,按约 [字数] 字的窗口切分为 [片段数] 个片段,以 TF-IDF 加权表示,经主成分分析降至 [维数] 维并做长度归一化,采用小批量 K-means 聚类(Sculley,2010)。分类数依据 [肘部法则 / 轮廓系数 / 间隔统计] 在 [范围] 类之间选定为 [K] 类,并在 [K−1] 类与 [K+1] 类下重新聚类,关键词平均 Jaccard 重合度分别为 [数值] 与 [数值]。各簇依据高权重关键词和中心、边界、混淆三类代表片段人工命名。
报告簇的结果时,列出每个簇的名称、片段数占比和前五个关键词,再各引一条中心样本,读者就能看出每一类是什么。
14
小结
聚类事先不给类别,按内容的相近程度把片段分组,适合在还没有编码框架的阶段找出可能的类别。
TATOOLS 按窗口把材料切成片段,用 TF-IDF 或在材料上现学的 Word2Vec 把片段变成向量,降维后缩放到长度为 1,按距离分组等于按用词方向分组。
K-means 最小化片段到簇中心的距离平方和,小批量 K-means 用随机的一小批片段更新中心,大材料也跑得快。
分类数可以用肘部法则、轮廓系数或间隔统计自动选,三者分别看误差下降的拐点、簇内外的距离对比和相对无结构参照的间隔。
DBSCAN 按疏密分组,簇的个数由数据决定,TATOOLS 把噪声片段归到最近的簇。
报告给出每簇的关键词、建议簇名和中心、边界、混淆三类代表片段,敏感性对比用 Jaccard 系数检查分类数上下各变一类时关键词稳不稳。
想看片段之间沿着哪几个方向拉开差异,可以用 TATOOLS 的【PCA 主成分分析】;想让每个片段同时属于几个主题,用【高级LDA主题模型】;想按语义相近程度聚出主题并自动概括主题名,用【BERTopic 主题聚类】。
15
资料来源
Lloyd:Least Squares Quantization in PCM,IEEE Transactions on Information Theory,第 28 卷第 2 期,1982
MacQueen:Some Methods for Classification and Analysis of Multivariate Observations,Proceedings of the Fifth Berkeley Symposium on Mathematical Statistics and Probability,第 1 卷,1967
Ester 等:A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise,Proceedings of the Second International Conference on Knowledge Discovery and Data Mining,1996
Thorndike:Who Belongs in the Family?,Psychometrika,第 18 卷第 4 期,1953
Mikolov 等:Efficient Estimation of Word Representations in Vector Space,arXiv:1301.3781,2013
Jaccard:The Distribution of the Flora in the Alpine Zone,New Phytologist,第 11 卷第 2 期,1912
END
