文本词频中的语义挖掘:降维与潜在语义分析
在自然语言处理(NLP)领域,处理高维数据是一项常见且具有挑战性的任务。为了更有效地分析文本数据,我们常常需要对数据进行降维处理,以减少数据的复杂性,同时保留数据的关键信息。本文将介绍奇异值分解(SVD)和潜在语义分析(LSA)这两种重要的降维技术,并通过代码示例展示它们在实际应用中的效果。
1. 奇异值分解(SVD)
主成分分析(PCA)的核心是一种名为奇异值分解(SVD)的数学过程。SVD 是一种将任意矩阵分解为三个因子的算法,这三个矩阵相乘可以重新得到原始矩阵。这类似于为一个大整数找到恰好三个整数因子,但这里的因子不是标量整数,而是具有特殊性质的二维实矩阵。
假设我们有一个由 m 个 n 维点组成的数据集,用矩阵 W 表示。在完整版本中,W 的 SVD 数学表示如下(假设 m > n):
矩阵 U、S 和 V 具有特殊性质。U 和 V 矩阵是正交的,这意味着如果将它们与其转置版本相乘,将得到一个单位矩阵。而 S 是对角矩阵,即只有对角线上有非零值。
需要注意的是,公式中的等号表示,如果将 U、S 和 V 相乘,将精确地得到原始的 TF - IDF 向量矩阵 W,其中每行对应一个文档。
然而,这些矩阵的最小维度仍然是 n,我们希望减少维度。因此,在实际应用中,我们通常使用 SVD 的简化或截断版本,即只关注我们感兴趣的前 p 个维度。
截断 SVD 的数学表示如下:
在这个公式中,m 和 n 是原始矩阵的行数和列数,而 p 是我们想要保留的维度数。例如,在马的示例中,如果我们想在二维空间中显示马的点云,p 将等于 2。对于 p =
超级会员免费看
订阅专栏 解锁全文
8

被折叠的 条评论
为什么被折叠?



