返回教程列表
文本分析基础教程主成分分析降维TF-IDF

PCA 主成分分析完整教程:从 TF-IDF 词语矩阵、特征值与载荷,到碎石图、得分散点和主成分命名

两百份报告、上千个词,材料到底沿着哪几个方向拉开差距?这篇教程从 Pearson 和 Hotelling 的主成分分析讲起,说明 TATOOLS 的【PCA 主成分分析】怎样先分词,再按词数把文本切成相互重叠的片段,用 TF-IDF 加权、筛词和标准化,得到片段与词语的数字表。接着用两个词的相关矩阵手算特征值和特征向量,讲清解释方差比、Kaiser 准则和碎石图怎样帮你决定保留几个主成分,载荷怎样说明每个主成分由哪些词撑起来,得分怎样标出每个片段的位置。最后讲报告里的主成分命名建议、高贡献词回到原文的核对、参数预检和多文件合并分析,并给出论文方法部分的写法示例。

作者:TATOOLS 研究团队|更新于 2026-09-23|6499 个字符|约 22 分钟读完

两百份地方政府工作报告,分词以后有上千个不同的词。想知道这批材料主要沿着哪几个方向拉开差距,一个词一个词去比没有尽头。有的报告大谈招商引资和产业园区,有的反复讲生态修复和河湖治理,还有的集中在社区养老和就业帮扶。这些差别藏在几百个词的此消彼长里。

主成分分析(Principal Component Analysis,PCA)就是用来找这种主要差异方向的。它把上千个彼此相关的词压缩成少数几个新变量,每个新变量是一组词的加权组合,叫主成分。第一个主成分抓住材料之间最大的差异,第二个抓住剩下的差异里最大的那部分,依次类推。

在 TATOOLS 的【PCA 主成分分析】里【上传文档】,TATOOLS 先分词,再把文本切成片段,用 TF-IDF 把每个片段表示成一行词语权重,然后做主成分分析。报告给出碎石图、载荷图和得分散点图,为每个主成分起一个命名建议,把高贡献的词送回原文片段,并按这次的实际数据给出参数预检。

这篇教程先讲主成分分析要解决什么问题,再讲文本怎样变成一张数字表、主成分怎样从这张表里算出来,接着讲特征值和碎石图,再讲载荷、得分和命名,最后讲参数预检、报告的读法和论文里的写法。

01

主成分分析要解决什么问题

一张表有几百列,列和列之间又高度相关,【房租】多的片段【押金】往往也多,【课程】多的片段【学生】往往也多。这时候几百列里真正独立的信息远没有几百份。Pearson 1901 年提出用一条直线或一个平面去最贴近地拟合高维空间里的点,Hotelling 1933 年把它发展成主成分分析,找一组相互垂直的新坐标轴,第一根轴沿着数据散开最大的方向,第二根轴沿着剩下的方向里散开最大的方向。

用在文本上,每个片段是一个点,每个词是一个维度。主成分分析找出片段之间差异最大的几个方向,每个方向由一组一起升降的词撑起来。语言学里类似的思路由来已久,Biber 1988 年的多维分析用因子分析处理几十项语言特征,归纳出口语和书面语、叙述和说明等几个变异维度;Deerwester 等人 1990 年的潜在语义分析对词语和文档的矩阵做奇异值分解,找出潜在的语义维度,和主成分分析在数学上是近亲。

TATOOLS 的【PCA 主成分分析】做的就是这件事,只是把表从材料里自动建好,并把每个方向落回到具体的词和片段上。

02

文本怎样变成一张数字表

分词和过滤

TATOOLS 先按工具页的分词设置切词。【自定义词典】保证领域术语不被切碎,【使用系统停用词】和【自定义停用词】去掉泛泛的词,【分词模式】决定切分方式,打开词性过滤还可以只留选定的词性。单字和纯数字不进入分析。【词形合并】把几种写法并成一种再计数,比如把 AI 和人工智慧都并到人工智能。

切成片段

分词后的词语序列按【文档分段大小】设定的词数切成片段,相邻片段重叠一半,一个话题跨在切点上也能被完整看到。分段大小取 100 时,片段是这样排的。

· · ·

片段 1:第 1 到 100 个词

片段 2:第 51 到 150 个词

片段 3:第 101 到 200 个词

……

每个片段是一个样本点,也是主成分分析的分析单位(Unit of Analysis,一次统计针对的对象)。分段小,能看到一篇文章内部不同部分的差异;分段大,看的是更宏观的整体走向。

用 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 = 40 时,出现在 4 个片段里的词,idf = ln(41 / 5) + 1 ≈ 3.10;出现在 36 个片段里的词,idf = ln(41 / 37) + 1 ≈ 1.10。到处都有的词权重被压低,集中出现的词权重被抬高。

进入分析之前还有两道筛选。【最小文档频率】要求一个词至少出现在这么多个片段里,【最大文档频率】去掉出现在过多片段里的词,比如取 0.95 时,出现在 95% 以上片段里的词不进入分析。在全部片段里累计权重太低的词也会被去掉。筛完剩下的词太少时,TATOOLS 会自动放宽最小文档频率,并在报告的【参数预检与自动推荐】里写明放宽到了多少。

标准化

最后,TATOOLS 把每个词的 TF-IDF 列缩放到方差为 1。高频词的权重本来波动就大,不做这一步,主成分会被少数几个高频词主导。标准化以后,每个词在分析里的起点一样,主成分分析实际上是在词和词的相关矩阵上进行的。

03

主成分怎样算出来

标准化以后,词和词两两之间的相关系数组成一个相关矩阵 R。主成分就是 R 的特征向量,对应的特征值是这个方向上的方差。

· · ·

R × w = λ × w

w:特征向量,每个分量是一个词的系数

λ:特征值,这个方向上的方差

用只有两个词的例子手算一次。【房租】和【押金】在 40 个片段里的相关系数是 0.8。

· · ·

R = | 1 0.8 |

    | 0.8 1 |

特征值:λ₁ = 1 + 0.8 = 1.8,λ₂ = 1 − 0.8 = 0.2

特征向量:w₁ = (0.707, 0.707),w₂ = (0.707, −0.707)

第一主成分解释 1.8 / 2 = 90% 的方差

两个词高度相关,第一主成分给它们相同的系数,代表住房开支多还是少这一个共同方向,一个方向就说明了 90% 的差异。两个词呈负相关时,比如相关系数是 −0.6,第一主成分的特征值是 1.6,特征向量变成 (0.707, −0.707),两个词站到了这个方向的两端,这个主成分代表的就是两者的此消彼长。

真实的材料有几百个词,道理相同。TATOOLS 按【主成分数量】提取前几个特征值最大的方向,范围是 2 到 10 个。片段或词语太少、撑不起这么多主成分时,TATOOLS 会自动减少,并在参数预检里说明实际提取了几个。

04

特征值、解释方差和碎石图

每个主成分解释了多少差异,用解释方差比来看。

· · ·

解释方差比_k = λ_k / Σ_j λ_j

累计解释方差 = 前 k 个主成分的解释方差比之和

标准化以后每个词的方差都是 1,所有特征值加起来等于词的个数。拿一个 10 个词的例子。

主成分 特征值 解释方差比 累计
PC1 3.0 30% 30%
PC2 2.0 20% 50%
PC3 1.2 12% 62%
PC4 0.9 9% 71%
PC5 0.7 7% 78%

保留几个主成分,有两个常用的判断办法。Kaiser 1960 年提出,特征值大于 1 的主成分值得保留,因为标准化以后一个词本身的方差就是 1,特征值不到 1 的主成分,解释的差异还不如一个单独的词多。上表里前三个主成分的特征值大于 1,累计解释 62%。Cattell 1966 年提出碎石检验,把特征值从大到小连成折线,找折线突然变平的拐点,拐点以前的主成分保留,拐点以后的像山脚下的碎石。

TATOOLS 报告的【主成分分析碎石图】画出前 10 个主成分的特征值和累计解释方差,下方的图表解读写明有几个主成分的特征值大于 1、它们累计解释了多少,以及第一、第二主成分各解释了多少。想看分得更细,就把【主成分数量】调到 Kaiser 规则建议的个数再跑一次。

05

载荷:每个主成分由哪些词撑起来

特征向量的每个分量,是一个词在这个主成分上的载荷(Loading)。载荷的绝对值越大,这个词对这个方向的贡献越大;正负号说明它站在这个方向的哪一端。

PC1 载荷 PC2 载荷
招商 0.32 0.05
园区 0.29 −0.02
生态 −0.27 0.18
河湖 −0.25 0.21
养老 0.03 −0.30

这是一个示例。PC1 一端是招商、园区,另一端是生态、河湖,它刻画的是发展导向和生态导向的对照;PC2 主要由养老这一类民生词在负向一侧推动。一个主成分的正负号本身可以整体翻转,读载荷时看的是哪些词站在一起、哪些词站在对面。

TATOOLS 报告的【主成分载荷图】把对第一主成分贡献最大的 20 个词画在两个主成分构成的平面上,横轴和纵轴可以切换成任意两个主成分,离原点越远的词对这两个方向的贡献越大。

【主成分命名建议】为每个主成分取正向载荷最高和负向载荷最高的几个词,自动拼出一个名字。两端都有突出的词时,命名成【招商 / 园区 与 生态 / 河湖 的对照维度】;只有一端突出时,命名成某几个词的相关维度。每条建议下面列出正向和负向的高载荷词,以及这个主成分的解释方差比。命名建议是读载荷的起点,最终名字要对照原文片段来定。

06

得分:每个片段落在哪里

每个片段在一个主成分上的得分,是它的标准化权重和这个主成分特征向量的内积。

· · ·

得分_k(d) = Σ_t w_(k,t) × x_(d,t)

x_(d,t):片段 d 里词 t 的标准化权重(减去均值以后)

接着上面两个词的例子,某个片段的【房租】和【押金】标准化后分别是 1.2 和 0.9。

· · ·

PC1 得分 = 0.707 × 1.2 + 0.707 × 0.9 ≈ 1.485

PC2 得分 = 0.707 × 1.2 − 0.707 × 0.9 ≈ 0.212

这个片段在住房开支这个方向上明显偏高,在两个词此消彼长的方向上几乎居中。

TATOOLS 报告的【主成分得分散点图】把每个片段画成一个点,两个坐标轴可以切换成任意两个主成分,轴标题上写着各自的解释方差。鼠标停在点上能看到它的得分,点一下能看到这个片段来自哪个文件的第几段,以及它 TF-IDF 最高的三个关键词和内容预览。离原点很远的点是某个方向上最极端的片段,最值得回原文去读。上传多个文件时,合并视图里的点按文件着色,一眼能看出不同材料是否落在不同的区域。

07

回到原文核对

主成分是词语的数学组合,名字对不对,要看它在原文里的样子。TATOOLS 报告的【高贡献词语回到文本定位】列出对第一主成分贡献最大的一批词,点选一个词,就列出含有这个词、在各主成分上得分最极端的几个片段,并标出来源文件、段序号和最强得分。

一个主成分被命名成发展导向与生态导向的对照,就点开招商和生态,看它们所在的片段是不是真的一边在讲项目落地,一边在讲生态修复。这一步把统计结果和文本内容连起来,是命名可信的依据。

08

参数预检与自动推荐

同一套参数放在不同的材料上,效果可能差很多。TATOOLS 在每次任务完成后,按这次的实际数据检查几件事,写进报告的【参数预检与自动推荐】。

检查项 提示什么
片段数量 片段太少时散点和主成分不稳定,建议上传更长文本或调小分段
可用词语数量 词太少时命名可能不稳定,建议调低最小文档频率或补充词典
最小文档频率 被自动放宽时写明放宽到了多少
最大特征数 可用词语接近这个数时给出提示
主成分数量 实际提取数少于设定数时说明原因
累计解释方差 偏低时建议增加主成分或清理噪声,较高时提示可以开始解读

片段很多时,图表最多展示前 100 个点,全部片段的结果可以下载结果表后筛选。

09

工具页上的设置一览

设置 范围 默认 影响什么
分词设置、词形合并 自己填写 哪些词参与分析
主成分数量 2 到 10 2 提取几个主要方向
最大特征数 100 到 5000 1000 可用词语接近它时给出提示
最小文档频率 2 到 1000 5 一个词至少出现在几个片段里
最大文档频率 0.01 到 0.99 0.95 出现在过多片段里的词被去掉
文档分段大小 100 到 500 100 每个片段含多少个词

主成分数量先用默认的 2 跑一遍,看碎石图上特征值大于 1 的有几个,再调到那个数重跑。载荷图里泛泛的词太多,就补进停用词或调低最大文档频率;专有名词被切碎,就补进自定义词典。

10

多个文件怎样分析

上传多个文件时,TATOOLS 对每个文件单独做一次主成分分析,再把所有文件合在一起做一次。合并分析里,每个片段仍然记着来自哪个文件,得分散点图可以按文件着色。报告顶部的【多文件对比】列出每个文件的片段数、前几个主成分的累计解释方差和第一个主成分的命名建议。

比较不同材料时看合并分析。几份材料在合并后的得分散点图上分成几团,说明它们在用词上沿着这几个主成分拉开了;混在一起,说明主要差异不在材料之间,而在每份材料内部。

11

报告怎么读

TATOOLS 的报告自上而下是这几块。

区块 先看什么
这份结果说明了什么 片段数、词语数、累计解释方差
多文件对比 各文件的解释方差和命名建议
主成分分析碎石图 几个主成分的特征值大于 1,拐点在哪
主成分载荷图 哪些词离原点最远,站在哪一端
主成分得分散点图 哪些片段最极端,文件是否分开
主成分命名建议 正负两端的高载荷词
参数预检与自动推荐 有没有需要调整的参数
高贡献词语回到文本定位 高载荷词所在的原文片段

读的顺序是先碎石图定主成分的个数,再用载荷图和命名建议给每个主成分起名,然后看得分散点找极端片段,最后回到原文核对名字。报告末尾还给出几个下一步可以用的工具,比如把主成分得分交给文本聚类。

12

把结果写进论文

主成分适合在论文里作为描述材料内部差异结构的依据,得分也可以作为后续回归或聚类的输入变量。下面是一段方法部分的写法示例,方括号里换成自己的数字。

本研究使用 TATOOLS 的 PCA 主成分分析处理 [文件数] 份文本。分词并去除停用词后,按每段 [词数] 个词、相邻片段重叠一半切分为 [片段数] 个片段,以 TF-IDF 加权构建片段—词语矩阵,保留至少出现在 [最小文档频率] 个片段中的 [词数] 个词,标准化后进行主成分分析(Hotelling,1933)。依据 Kaiser 准则与碎石图保留 [K] 个主成分,累计解释 [比例] 的方差。各主成分依据正负两端的高载荷词命名,并回到高得分片段逐一核对。

报告主成分时,列出每个主成分的解释方差比和正负两端载荷最高的几个词,读者就能看出它代表的是哪一组词的此消彼长。

13

小结

主成分分析把上千个相关的词压缩成少数几个相互独立的方向,第一个主成分抓住最大的差异,依次递减。

TATOOLS 先分词,再按词数把文本切成相邻重叠一半的片段,用 TF-IDF 加权、筛词、标准化,得到片段—词语矩阵。

主成分是相关矩阵的特征向量,特征值是这个方向上的方差,解释方差比等于特征值除以特征值之和。

保留几个主成分可以看 Kaiser 准则和碎石图的拐点。

载荷说明每个主成分由哪些词撑起来,正负两端的词构成一组对照;得分说明每个片段落在这个方向的哪里。

报告自动给出主成分命名建议,把高贡献词送回原文片段,并按实际数据给出参数预检。

想把片段按相似度直接分成几组,可以用 TATOOLS 的【高级文本聚类】;想做和主成分分析同源的潜在语义分析,可以用【LSA 潜在语义分析】;表格里的数值列要做主成分分析,用【PCA 主成分降维】。

14

资料来源

Pearson:On Lines and Planes of Closest Fit to Systems of Points in Space,Philosophical Magazine,第 2 卷第 11 期,1901

Hotelling:Analysis of a Complex of Statistical Variables into Principal Components,Journal of Educational Psychology,第 24 卷第 6 期,1933

Jolliffe:Principal Component Analysis(第 2 版),Springer,2002

Kaiser:The Application of Electronic Computers to Factor Analysis,Educational and Psychological Measurement,第 20 卷第 1 期,1960

Cattell:The Scree Test for the Number of Factors,Multivariate Behavioral Research,第 1 卷第 2 期,1966

Biber:Variation across Speech and Writing,Cambridge University Press,1988

Deerwester 等:Indexing by Latent Semantic Analysis,Journal of the American Society for Information Science,第 41 卷第 6 期,1990

Salton 与 Buckley:Term-Weighting Approaches in Automatic Text Retrieval,Information Processing & Management,第 24 卷第 5 期,1988


END