潜在语义分析(LSA)相关知识

潜在语义分析(LSA)详解 文章目录单词向量空间话题向量空间算法实现矩阵奇异值(SVD)分解算法非负矩阵(NMF)分解算法基本思想损失函数(1)平方损失(2)散度损失函数算法(1)平方损失函数更新法则(2)散度损失函数的更新法则算法实现 潜在语义分析(latent semantic analysis, LSA)是一种无监督方法,主要用于文本的话题分析,其特点是通过矩阵分解发现文本与单词之间的基于话题的语义关系。潜在语义分析是非概率的话题分析方法,将文本集合表示为单词-文本矩阵,对该矩阵进行进行奇异值分解,从而得到话题向量空间和文本在话 阅读详情


潜在语义分析(latent semantic analysis, LSA)是一种无监督方法,主要用于文本的话题分析。其特点是通过对 单词-文本矩阵进行进行奇异值分解,从而得到 话题向量空间和 文本在话题向量空间中的表示。

单词-文本矩阵

给定 n n n 个文本集合 D = { d 1 , d 2 , … d n } D = \{d_1,d_2,\ldots d_n\} D={d1​,d2​,…dn​},以及在所有文本中出现的 m m m 个单词的集合 W = { w 1 , w 2 , … , w m } W = \{w_1,w_2,\ldots,w_m\} W={w1​,w2​,…,wm​} 。单词-文本矩阵如下:
X = [ x 11 x 12 ⋯ x 1 n x 21 x 22 ⋯ x 2 n ⋮ ⋮ ⋮ x m 1 x m 2 ⋯ x m n ] X= \left[ \begin{matrix} x_{11}&x_{12}&\cdots&x_{1n}\\ x_{21}&x_{22}&\cdots&x_{2n}\\ \vdots&\vdots&&\vdots\\ x_{m1}&x_{m2}&\cdots&x_{mn} \end{matrix} \right] X=⎣⎢⎢⎢⎡​x11​x21​⋮xm1​​x12​x22​⋮xm2​​⋯⋯⋯​x1n​x2n​⋮xmn​​⎦⎥⎥⎥⎤​
每个列向量 x ⋅ j x_{ \cdot j} x⋅j​对应文本 j 的不同单词, x i , j x_{i,j} xi,j​表示第 j 个文本中第 i 个单词 w i w_i wi​的权值。权值可以是单词的在文本的出现次数,也可以是其他的数值,例如TD-IDF值:
T F I D F i j = t f i j t f ⋅ j log ⁡ d f d f i i = 1 , 2 , ⋯   , m ; j = 1 , 2 , ⋯   , n TFIDF_{ij}=\frac{tf_{ij}}{tf_{\cdot j}}\log\frac{\mathrm{d}f}{\mathrm{d}f_i}\\ i=1,2,\cdots,m;\\ j=1,2,\cdots,n TFIDFij​=tf⋅j​tfij​​logdfi​df​i=1,2,⋯,m;j=1,2,⋯,n
t f i j tf_{ij} tfij​ 是单词 w i w_i wi​ 出现在文本 d j d_j dj​ 中的频数, t f . j tf_{.j} tf.j​ 是文本 d j d_j dj​ 中出现所有单词的频数之和,所以 t f i j t f ⋅ j \frac{tf_{ij}}{tf_{\cdot j}} tf⋅j​tfij​​可以表示单词 w i w_i wi​在当前文本的出现次数的占比。一个单词在一个文本中出现的频数越高,这个单词在这个文本中的重要度就越高,即 t f i j t f ⋅ j \frac{tf_{ij}}{tf_{\cdot j}} tf⋅j​tfij​​ 越大 ;

d f df df 是文本集合D的全部文本集, d f i df_i dfi​ 是含有单词 w i w_i wi​ 的文本数。一个单词在整个文本集合中出现的文本数越少,这个单词就越能表示其所在文本的特点,重要度就越高,即 log ⁡ d f d f i \log\frac{\mathrm{d}f}{\mathrm{d}f_i} logdfi​df​ 越大;

一个单词在一个文本的TF-IDF是两种重要度的积,表示综合重要度。

单词-文本矩阵的每个列向量对应一个文本,两个列向量之间的的余弦相似度表示对应文本之间的语义相似度。

缺点:单词向量通常是稀疏的。没有考虑到在自然语言处理中的一词多义以及多词一义,所以基于词向量的相似度计算不精确。

话题向量空间

两个文本的相似度可以体现在话题的相似度上。一个文本一般包含若干个话题,如果两个文本相似,那么这两个应该有相似的话题。

可以设想定义一种话题向量空间模型,进而可以用话题向量来表示文本。这个向量的每一个分量都对应一个话题,分量的数值大小为该话题在文本中的权值。实际上,潜在语义分析正是构建话题向量空间的方法。

给定 单词-文本矩阵 如下:
X = [ x 11 x 12 ⋯ x 1 n x 21 x 22 ⋯ x 2 n ⋮ ⋮ ⋮ x m 1 x m 2 ⋯ x m n ] X=\left[\begin{matrix}x_{11}&x_{12}&\cdots&x_{1n}\\x_{21}&x_{22}&\cdots&x_{2n}\\\vdots&\vdots&&\vdots\\x_{m1}&x_{m2}&\cdots&x_{mn}\end{matrix}\right] X=⎣⎢⎢⎢⎡​x11​x21​⋮xm1​​x12​x22​⋮xm2​​⋯⋯⋯​x1n​x2n​⋮xmn​​⎦⎥⎥⎥⎤​
X 也可以写作: X = [ x 1      x 2      ⋅ ⋅ ⋅      x n ] X=[x_1 \;\; x_2 \;\; ··· \;\; x_n] X=[x1​x2​⋅⋅⋅xn​]。

假设所有文本共含有 k k k 个话题,每个话题由定义在单词集合W的m维向量表示,称为话题向量,即:
t l = [ t 1 l t 2 l ⋮ t m l ] , l = 1 , 2 , . . . k t_l = \left[ \begin{matrix} &t_{1l} \\ &t_{2l} \\ &\vdots \\ &t_{ml} \\ \end{matrix} \right], l=1,2,...k tl​=⎣⎢⎢⎢⎡​​t1l​t2l​⋮tml​​⎦⎥⎥⎥⎤​,l=1,2,...k
其中, t i l t_{il} til​是单词 w i w_i wi​在话题 t l t_l tl​的权重,权重越大,则该单词在话题中的重要程度越高。k个话题向量 t l t_l tl​张成话题向量空间,维度为k。

话题向量空间 T 也可以表示为一个矩阵,称之为单词—话题矩阵 如下:
T = [ t 11 t 12 ⋯ t 1 k t 21 t 22 ⋯ t 2 k ⋮ ⋮ ⋮ t m 1 t 12 ⋯ t m k ] T=\left[ \begin{matrix} &t_{11} &t_{12} &\cdots &t_{1k} \\ &t_{21} &t_{22} &\cdots &t_{2k} \\ &\vdots &\vdots & &\vdots \\ &t_{m1} &t_{12} &\cdots &t_{mk} \\ \end{matrix} \right] T=⎣⎢⎢⎢⎡​​t11​t21​⋮tm1​​t12​t22​⋮t12​​⋯⋯⋯​t1k​t2k​⋮tmk​​⎦⎥⎥⎥⎤​
总共有k列,每个列向量 t l t_l tl​对应一个话题,每一行的元素 t i l t_{il} til​代表单词 w i w_i wi​在话题 t l t_l tl​中的权值。

文本在话题向量空间中的表示

现在考虑将文本 d j d_j dj​在单词向量空间的向量投影到话题向量空间,用话题向量空间中的向量 y j y_j yj​表示, y j y_j yj​是个k维的列向量,表达式为:
y j = [ y 1 j y 2 j ⋮ y k j ] , j = 1 , 2 , . . . , n y_j =\left[ \begin{matrix} &y_{1j} \\ &y_{2j} \\ &\vdots \\ &y_{kj} \\ \end{matrix} \right],j=1,2,...,n yj​=⎣⎢⎢⎢⎡​​y1j​y2j​⋮ykj​​⎦⎥⎥⎥⎤​,j=1,2,...,n
元素 y l j y_{lj} ylj​表示文本 d j d_j dj​在话题 t l t_l tl​的权重,权重越大,说明该话题的重要程度越高。

由n个文本在话题向量空间向量 y j y_{j} yj​构成的矩阵,称之为话题—文本矩阵:
Y = [ y 11 y 12 ⋯ y 1 n y 21 y 22 ⋯ y 2 n ⋮ ⋮ ⋮ y k 1 y k 2 ⋯ y k n ] Y=\left[ \begin{matrix} &y_{11} &y_{12} &\cdots &y_{1n} \\ &y_{21} &y_{22} &\cdots &y_{2n} \\ &\vdots &\vdots & &\vdots \\ &y_{k1} &y_{k2} &\cdots &y_{kn} \\ \end{matrix} \right] Y=⎣⎢⎢⎢⎡​​y11​y21​⋮yk1​​y12​y22​⋮yk2​​⋯⋯⋯​y1n​y2n​⋮ykn​​⎦⎥⎥⎥⎤​
每个列向量对应一个文本,每一行对应话题 t l t_l tl​ ,元素 y l j y_{lj} ylj​代表文本 d j d_j dj​ 在话题 t l t_l tl​中出现的权值。也可以记作 Y = [ y 1      y 2      ⋅ ⋅ ⋅      y n ] Y=[y_1 \;\; y_2 \;\; ··· \;\; y_n] Y=[y1​y2​⋅⋅⋅yn​]。

从单词向量空间到话题向量空间的线性变换

潜在语义分析的思想,就是单词向量空间变换到话题向量空间,通过矩阵的因子分解,将单词—文本矩阵X近似的用单词—话题矩阵 T T T 与话题—文本矩阵 Y Y Y 的乘积表示,即:
X ≈ T Y X \approx TY X≈TY
如下图所示:

在这里插入图片描述

在原始的单词向量空间中,两个文本 d i d_i di​与 d j d_j dj​的相似度可以由对应的向量的内积表示,即 d i ⋅ d j d_i \cdot d_j di​⋅dj​。经过潜在语义分析之后,在话题向量空间中,两个文本 d 1 d_1 d1​与 d 2 d_2 d2​的相似度可以由对应的向量的内积即 y i ⋅ y j y_i \cdot y_j yi​⋅yj​表示。简单来说就是从文本单词的相似度的计算,转换为文本主题的相似度的计算。

潜在语义分析算法

矩阵奇异值(SVD)分解算法

给定文本集合 D = { d 1 , d 2 , ⋯   , d n } D=\{d_1, d_2,\cdots,d_n\} D={d1​,d2​,⋯,dn​},单词集合 W = { w 1 , w 2 , ⋯   , w m } W=\{w_1,w_2,\cdots,w_m\} W={w1​,w2​,⋯,wm​},则单词-文本矩阵 X m × n X_{m\times n} Xm×n​:
X = [ x 11 x 12 ⋯ x 1 n x 21 x 22 ⋯ x 2 n ⋮ ⋮ ⋮ x m 1 x m 2 ⋯ x m n ] X=\left[ \begin{matrix} &x_{11} &x_{12} &\cdots &x_{1n} \\ &x_{21} &x_{22} &\cdots &x_{2n} \\ &\vdots &\vdots & &\vdots\\ &x_{m1} &x_{m2} &\cdots &x_{mn} \\ \end{matrix} \right] X=⎣⎢⎢⎢⎡​​x11​x21​⋮xm1​​x12​x22​⋮xm2​​⋯⋯⋯​x1n​x2n​⋮xmn​​⎦⎥⎥⎥⎤​
潜在语义分析根据确定的话题个数k对单词-文本矩阵进行截断奇异值分解:
X ≈ U k Σ k V k T = [ u 1 u 2 ⋯ u k ] [ σ 1 0 0 0 0 σ 2 0 0 0 0 ⋱ 0 0 0 0 σ k ] [ v 1 T v 2 T ⋮ v k T ] X\thickapprox U_k{\Sigma_k}V_k^\mathrm{T} \bf =\left[ \begin{matrix} u_1 &u_2 &\cdots &u_k \end{matrix} \right] \left[ \begin{matrix} \sigma_1 &0 &0 &0\\ 0 &\sigma_2 &0 &0 \\ 0 &0 &\ddots &0\\ 0 &0 &0 &\sigma_k \end{matrix} \right] \left[ \begin{matrix} v_1^\mathrm{T}\\ v_2^\mathrm{T}\\ \vdots\\ v_k^\mathrm{T} \end{matrix} \right] X≈Uk​Σk​VkT​=[u1​​u2​​⋯​uk​​]⎣⎢⎢⎡​σ1​000​0σ2​00​00⋱0​000σk​​⎦⎥⎥⎤​⎣⎢⎢⎢⎡​v1T​v2T​⋮vkT​​⎦⎥⎥⎥⎤​
这中间 k ≤ n ≤ m k\le n \le m k≤n≤m 这里假设了文档数量要比单词数量少。

其中:

(1) U k U_k Uk​是 m × k m\times k m×k 矩阵,由X的前 k k k个相互正交的左奇异向量组成, U k U_k Uk​ 每一列 u l u_l ul​表示一个话题, k k k个话题张成一个子空间,称为话题向量空间:
U k = [ u 1 u 2 ⋯ u k ] U_k=\left[\begin{matrix}u_1&u_2&\cdots&u_k\end{matrix}\right] Uk​=[u1​​u2​​⋯​uk​​]
(2) Σ k \Sigma_k Σk​是 k k k阶方阵,由X的前 k k k个最大奇异值组成;

(3) V k V_k Vk​是 n × k n\times k n×k矩阵,由X的前 k k k个相互正交的右奇异向量组成。

Σ k V k T {\Sigma_k}V_k^\mathrm{T} Σk​VkT​两个矩阵的乘积,则对应了话题-文本矩阵(文本在话题空间的向量表示)。所以,矩阵 X X X 的第 j j j列向量 x j x_j xj​ 满足:
x j ≈ U k ( Σ k V k T ) j = [ u 1 u 2 ⋯ u k ] [ σ 1 v j 1 σ 2 v j 2 ⋮ σ k v j k ] = ∑ l = 1 k σ l v j l u l , j = 1 , 2 , ⋯   , n \begin{aligned} x_j&\thickapprox U_k(\Sigma_k V_k^\mathrm{T})_j\\ &= \left[ \begin{matrix} u_1& u_2& \cdots& u_k \end{matrix} \right] \left[ \begin{matrix} \sigma_1v_{j1}\\ \sigma_2v_{j2}\\ \vdots\\ \sigma_kv_{jk} \end{matrix} \right] \\ &=\sum_{l=1}^k\sigma_lv_{jl}u_l,j=1,2,\cdots,n \end{aligned} xj​​≈Uk​(Σk​VkT​)j​=[u1​​u2​​⋯​uk​​]⎣⎢⎢⎢⎡​σ1​vj1​σ2​vj2​⋮σk​vjk​​⎦⎥⎥⎥⎤​=l=1∑k​σl​vjl​ul​,j=1,2,⋯,n​
式中: ( Σ k V k T ) j (\Sigma_k V_k^\mathrm{T})_j (Σk​VkT​)j​ 是矩阵 ( Σ k V k T ) (\Sigma_k V_k^\mathrm{T}) (Σk​VkT​) 的第 j j j 列向量。矩阵 ( Σ k V k T ) j (\Sigma_k V_k^\mathrm{T})_j (Σk​VkT​)j​的每一个列向量:
[ σ 1 v 11 σ 2 v 12 ⋮ σ k v 1 k ] , [ σ 1 v 21 σ 2 v 22 ⋮ σ k v 2 k ] , … , [ σ 1 v n 1 σ 2 v n 2 ⋮ σ k v n k ] \left[ \begin{matrix} \sigma_1v_{11}\\ \sigma_2v_{12}\\ \vdots\\ \sigma_kv_{1k} \end{matrix} \right] , \left[ \begin{matrix} \sigma_1v_{21}\\ \sigma_2v_{22}\\ \vdots\\ \sigma_kv_{2k} \end{matrix} \right], \ldots, \left[ \begin{matrix} \sigma_1v_{n1}\\ \sigma_2v_{n2}\\ \vdots\\ \sigma_kv_{nk} \end{matrix} \right] ⎣⎢⎢⎢⎡​σ1​v11​σ2​v12​⋮σk​v1k​​⎦⎥⎥⎥⎤​,⎣⎢⎢⎢⎡​σ1​v21​σ2​v22​⋮σk​v2k​​⎦⎥⎥⎥⎤​,…,⎣⎢⎢⎢⎡​σ1​vn1​σ2​vn2​⋮σk​vnk​​⎦⎥⎥⎥⎤​
是n个文本在话题向量空间的表示。

所以,通过矩阵的SVD分解进行潜在语义分析:
X ≈ U k Σ k V k T = U k ( Σ k V k T ) X\approx U_k{\Sigma_k}V_k^\mathrm{T} =U_k({\Sigma_k}V_k^\mathrm{T}) X≈Uk​Σk​VkT​=Uk​(Σk​VkT​)
从而得到了话题空间 U k U_k Uk​,以及文本在话题空间的表示 ( Σ k V k T ) ({\Sigma_k}V_k^\mathrm{T}) (Σk​VkT​) 。

非负矩阵(NMF)分解算法

除了可以使用SVD分解,还可以使用非负矩阵分解算法。

基本思想

对单词—文本矩阵进行非负矩阵分解,将其左矩阵作为话题向量空间,将其右矩阵作为文本在话题向量空间的表示。

设单词—文本矩阵是 m × n m\times n m×n的非负矩阵 X X X,文本集合包含 k k k个话题,对 X X X进行非负矩阵分解。即求 m × k m\times k m×k的非负矩阵和 k × n k\times n k×n的非负矩阵满足
X ≈ W H X\thickapprox WH X≈WH
其中: W = [ w 1 w 2 ⋯ w k ] W=\left[\begin{matrix}w_1& w_2& \cdots& w_k\end{matrix}\right] W=[w1​​w2​​⋯​wk​​]表示话题向量空间, w 1 , w 2 , ⋯   , w k w_1, w_2, \cdots, w_k w1​,w2​,⋯,wk​表示文本集合的 k k k个话题。
H = [ h 1 h 2 ⋯ h k ] H=\left[\begin{matrix}h_1& h_2& \cdots& h_k\end{matrix}\right] H=[h1​​h2​​⋯​hk​​]表示文本在话题向量空间的表示, h 1 , h 2 , ⋯   , h k h_1, h_2, \cdots, h_k h1​,h2​,⋯,hk​表示文本集合的 n n n个文本。

损失函数

使用迭代的方法进行学习,则可以使用的损失函数有:

(1)平方损失

目标函数:
min ⁡ W , H ∣ ∣ X − W H ∣ ∣ 2 s . t . W , H ≥ 0 \min\limits_{W,H}||X - WH||^2 \\ s.t. \quad W,H \ge 0 W,Hmin​∣∣X−WH∣∣2s.t.W,H≥0

(2)散度损失函数

首先看看散度的定义:
D ( A ∣ ∣ B ) = ∑ i , j ( a i j log ⁡ a i j b i j − a i j + b i j ) D(A||B) = \sum_{i,j} \left(a_{ij}\log\frac{a_{ij}}{b_{ij}} - a_{ij} + b_{ij}\right) D(A∣∣B)=i,j∑​(aij​logbij​aij​​−aij​+bij​)
称为非负矩阵A和B的散度损失函数。其下界时0,当且仅当A=B时达到下届。

当 ∑ i j a i j = ∑ i j b i j = 1 \sum_{ij}a_{ij} = \sum_{ij}b_{ij}=1 ∑ij​aij​=∑ij​bij​=1 时,散度损失函数退化为KL散度或相对熵。

所以右散度损失函数为:
min ⁡ W , H D ( X ∣ ∣ W H ) s . t . W , H ≥ 0 \min \limits_{W,H} D\left(X||WH\right) \\ s.t. \quad W,H \ge 0 W,Hmin​D(X∣∣WH)s.t.W,H≥0

迭代学习算法

(1)平方损失函数更新法则

J ( W , H ) = 1 2 ∥ X − W H ∥ 2 = 1 2 ∑ i , j [ X i j − ( W H ) i j ] 2 J(W,H)=\frac{1}{2}\|X-WH\|^2=\frac{1}{2}\sum_{i,j}[X_{ij}-(WH)_{ij}]^2 J(W,H)=21​∥X−WH∥2=21​i,j∑​[Xij​−(WH)ij​]2

采用梯度下降法求解,这里用到了矩阵求导
∂ J ( W , H ) ∂ W i l = − ∑ j [ X i j − ( W H ) i j ] H l j = − [ ( X H T ) i l − ( W H H T ) i l ] ∂ J ( W , H ) ∂ H l j = − [ ( W T X ) l j − ( W T W H ) l j ] \begin{aligned} \frac{\partial J(W,H)}{\partial W_{il}}&=-\sum_j[X_{ij}-(WH)_{ij}]H_{lj}=-[(XH^\mathrm{T})_{il}-(WHH^\mathrm{T})_{il}]\\ \frac{\partial J(W,H)}{\partial H_{lj}}&=-[(W^\mathrm{T}X)_{lj}-(W^\mathrm{T}WH)_{lj}] \end{aligned} ∂Wil​∂J(W,H)​∂Hlj​∂J(W,H)​​=−j∑​[Xij​−(WH)ij​]Hlj​=−[(XHT)il​−(WHHT)il​]=−[(WTX)lj​−(WTWH)lj​]​
根据更新规则有
W i l = W i l + λ i l [ ( X H T ) i l − ( W H H T ) i l ] H l j = H l j + μ l j [ ( W T X ) l j − ( W T W H ) l j ] λ i l = W i l ( W H H T ) i l μ l j = H l j ( W T W H ) l j W_{il}=W_{il}+\lambda_{il}[(XH^\mathrm{T})_{il}-(WHH^\mathrm{T})_{il}]\\ H_{lj}=H_{lj}+\mu_{lj}[(W^\mathrm{T}X)_{lj}-(W^\mathrm{T}WH)_{lj}]\\ \lambda_{il}=\frac{W_{il}}{(WHH^\mathrm{T})_{il}}\\ \mu_{lj}=\frac{H_{lj}}{(W^\mathrm{T}WH)_{lj}} Wil​=Wil​+λil​[(XHT)il​−(WHHT)il​]Hlj​=Hlj​+μlj​[(WTX)lj​−(WTWH)lj​]λil​=(WHHT)il​Wil​​μlj​=(WTWH)lj​Hlj​​
得到最终的乘法更新法则:
H l j ← H l j ( W T X ) l j ( W T W H ) l j W i l ← W i l ( X H T ) i l ( W H H T ) i l H_{lj}\leftarrow H_{lj}\frac{(W^\mathrm{T}X)_{lj}}{(W^\mathrm{T}WH)_{lj}}\\ W_{il}\leftarrow W_{il}\frac{(XH^\mathrm{T})_{il}}{(WHH^\mathrm{T})_{il}} Hlj​←Hlj​(WTWH)lj​(WTX)lj​​Wil​←Wil​(WHHT)il​(XHT)il​​

(2)散度损失函数的更新法则

散度乘法更新法则如下:
H l j ← H l j ∑ i [ W i l X i j / ( W H ) i j ] ∑ i W i l W i l ← W i l ∑ j [ H l j X i j / ( W H ) i j ] ∑ j H l j H_{lj}\leftarrow H_{lj}\frac{\sum\limits_i[W_{il}X_{ij}/(WH)_{ij}]}{\sum\limits_iW_{il}}\\ W_{il}\leftarrow W_{il}\frac{\sum\limits_j[H_{lj}X_{ij}/(WH)_{ij}]}{\sum\limits_jH_{lj}} Hlj​←Hlj​i∑​Wil​i∑​[Wil​Xij​/(WH)ij​]​Wil​←Wil​j∑​Hlj​j∑​[Hlj​Xij​/(WH)ij​]​

算法实现

具体算法如下:

输入:单词-文本矩阵 X ≥ 0 X\ge 0 X≥0,文本集合的话题个数 k k k,最大迭代次数 t t t;
输出:话题矩阵 W W W,文本表示矩阵 H H H

  1. 初始化
    W ≥ 0 W\ge 0 W≥0,并对 W W W的每一列数据归一化
    H ≥ 0 H\ge 0 H≥0
  2. 迭代
    对迭代次数从 1 1 1到 t t t执行下列步骤:
    a. 更新 W W W的元素,每次迭代对 W W W的列向量归一化,使基向量为单位向量。
    b. 更新 H H H的元素。

参考文章:
《统计学习方法 第二版》

[干货汇总]LSA及SVD介绍 1. 前言 近期在看关于NER(Named Entity Recognition)的paper,里面涉及到的几个机器学习的算法,需要学习一下,在网上看了一些相关干货,汇总一下前人智慧。 首先贴出几篇写的还不错的blog blog1 LSA潜在语义分析该blog是在Wiki中翻译过来,翻译的反正比我看原文理解的好,进行初步了解还是不错的。blog2 SVD矩阵奇异值分解 && L 阅读详情

相关推荐

潜在语义分析Latent semantic analysis note(LSA)原理及代码实现

Latent Semantic Analysis (LSA)也被叫做Latent Semantic Indexing(LSI),从字面上的意思理解就是通过分析文档去发现这些文档中潜在的意思和概念。假设每个词仅表示一个概念,并且每个概念仅仅被一个词所描述,LSA将非常简单(从词到概念存在一个简单的映射关系) 不幸的是,这个问题并没有如此简单,因为存在不同的词表示同一个意思(同义词),一个词表示多个

bob007的专栏 1万+

潜在语义分析(Latent Semantic Analysis,LSA)

文章目录 一种无监督学习方法,主要用于文本的话题分析,其特点是通过矩阵分解发现文本与单词之间的基于话题的语义关系。潜在语义分析由Deerwester等于1990年提出,最初应用于文本信息检索,所以也被称为潜在语义索引(latent semantic indexing,LSI),在推荐系统、图像处理、生物信息学等领域也有广泛应用。 文本信息处理中,传统的方法以单词向量表示文本的语义内容,以单词向...

Michael是个半路程序员 1万+

潜在语义分析LSA

一、背景 LSA潜在语义分析和传统向量空间模型VSM 都是使用向量来表示单词terms和文档documents,并且通过向量关系来判断terms和documents之间的关系; 不同的是,LSA将terms和documents映射到潜在语义空间,从而去除了原始向量空间中的一些“噪音”,提高了信息检索的精度。 二、文本挖掘方面的应用 (1)分类 按照意思分类词语;按照主题分类文本。 (2)检索 用户提问(通常由若干个反映文本主题的词汇组成),然后在然后系统在数据库中进行提问式和预存的文本关键词的

lili安的博客 1199

27、潜在语义分析(LSA)

本文介绍了潜在语义分析(LSA),详细介绍了单词向量空间和话题向量空间,潜在语义分析算法,以及非负矩阵分解算法,最后介绍了sklearn中的潜在语义分析的使用。

m0_56642803的博客 2687

潜在语义分析LSA和概率潜在语义分析PLSA

一、潜在语义分析LSA  LSA是一种无监督学习方法,主要用于文本的话题分析。其特点是通过矩阵分解发现文本与单词之间的基于话题的语义关系。  传统的量化文本的方法是用单词向量表示文本的语义内容,在单词向量空间中通过向量的内积或标准化内积(即余弦)衡量文本之间的语义相似度。 而潜在语义分析的目的就是解决这种方法不能准确表示语义的问题,试图从大量文本数据中发现潜在的话题,以话题向量表示文本的语义,在话题向量空间中通过向量的内积或标准化内积(即余弦)衡量文本之间的语义相似度。  在单词向量空间中使用单词-文本.

weixin_43646592的博客 1309

文本数据降维:潜在语义分析(LSA)

文本数据降维:潜在语义分析(LSA) 作者: 禅与计算机程序设计艺术 1. 背景介绍 在当今信息爆炸的时代,人类每天都会产生大量的文本数据,如新闻文章、社交媒体帖子、学术论文等。这些文本数据包含了丰富的语义信息,但其高维和稀疏的特点使得直接利用这些数据进行分析和处理变得非常困难

AI天才研究院 1553

LSA(潜在语义分析)

转载https://blog.youkuaiyun.com/fkyyly/article/details/84665361 link LSA最初是用在语义检索上,为了解决一词多义和一义多词的问题: 1.一词多义: 美女和PPMM表示相同的含义,但是单纯依靠检索词“美女”来检索文档,很可能丧失掉那些包含“PPMM”的文档。 2.一义多词:如果输入检索词是多个检索词组成的一个小document,例如“清澈 孩子”,那我们就知道这段

weixin_43977748的博客 2508

潜在语义分析

潜在语义分析(Latent Semantic Analysis)或者潜在语义索引(Latent Semantic Index),是1988年S.T. Dumais等人提出的一种新的信息检索代数模型,是用于知识获取和展示的计算理论和方法,它使用统计计算的方法对大量的文本集进行分析,从而提取出词与词之间潜在的语义结构,并用这种潜在的语义结构来表示词和文本,达到消除词之间的相关性和简化文本向量实现降维的目的。

潜在语义分析(LSA)(latent semantic analysis)

本文参考李航统计学习方法第17章 潜在语义分析~ 文本信息处理的一个核心问题是对文本内容进行数字表示,并进行文本之间的语义相似度的计算。 传统的方法以单词向量表示文本的语义内容,以单词向量空间的度量(内积或标准化内积)表示文本之间的语义相似度。 潜在语义分析试图发现潜在的话题,以话题向量表示文本的语义内容,以话题向量空间的度量(内积或标准化内积)表示文本之间的语义相似度。 单词向量空间 给定一个文本,用一个向量表示该文本的 ‘语义’ ,向量的每一维对应一个单词,其数值为该单词在该文本中出现的频数或

大风车 1872

Python 编写的LSA算法

一段Python编写的LSA算法, 调用了几个常用的数据库!

潜在语义分析(LSA)的原理讲解以及python实现

在传统的文本信息处理中,以单词向量表示文本的语义内容,以单词向量空间的度量来表示文本之间的语义近似度。这种方法不能准确表示语义。 潜在语义分析试图从大量的文本数据中发现潜在的话题,以话题向量来表示文本的语义内容,以话题向量的空间度量更准确地表示文本之间的语义相似度。 潜在语义分析使用的是非概率的话题分析模型,具体来说,就是将文本集合表示为单词-文本矩阵,对单词-文本矩阵进行奇异值分解,从而得到话题向量空间,以及文本在话题向量空间的表示。可采用的矩阵分解方法有:奇异值分解、非负矩阵分解。 给定一个含有nnn个文本的集合D={d1,d2,⋯ ,dn}D=\{d_1,d_2,\cdots,d_n\}

统计学习方法第十七章作业:LSA潜在语义分析算法 代码实现

LSA潜在语义分析算法 import numpy as np import jieba import collections class LSA: def __init__(self,text_list): self.text_list = text_list self.text_num = len(text_list) self.get_X() def get_X(self): self.cuted_text = [jie

weixin_45839693的博客 593

MATLAB对pcap文件抓包的读取

应用范围 常用的雷达信号,无线网通信信号的格式大多为pcap、wj文件,这里记录一下MATLAB读取pcap文件的方法,具体处理过程及读取协议针对不同的雷达有不同的处理方式,在这里不做说明。 程序 clc;clear;close all; %% 文件位置 filename= 'E:\File\JOB\JOB_1\data.pcap'; fid = fopen(filename,'r'); % 打开包 tmpPack = fread(fid,1350); % 只读前1350个数 读到

诗酒趁年华的博客 3580

潜在语义分析(LSA)

潜在语义分析(LSA) ​ 潜在语义分析LSA(Latent Semantic Analysis )也叫作潜在语义索引LSI( Latent Semantic Indexing )顾名思义是通过分析文章(documents )来挖掘文章的潜在意思或语义(concepts )。如果每个单词都仅以着一个语义,同时每个语义仅仅由一个单词来表示,那么LSA将十分简单,即简单地将进行语义和单词间的映射。 ​ 不幸的是,LSA并没有这么简单。因为不同的单词可以表示同一个语义,或一个单词同时具有多个不同的意思,这些的模

weixin_45458136的博客 1474

更多 LSTM 变种——应用于 CMAPSS 数据集

本文并模型介绍,只是把一些比较火的技术,像双向注意力机制,自注意力机制这样的比较火的内容,简单的和LSTM堆叠,结果发现效果都不如最基础的,这里作者将本人代码及实现结果,进行展示,给各位想更改LSTM的朋友一些。

2301_77491330的博客 1765

USB3.0一致性测试方案

为各测试项目具体测试结果包括脉冲串突发时间、脉冲串重复时间、时钟周期以及眼图等完整USB3.0测试项目,工程师可以看到各项测试的具体结果方便观察。RIGOL 提供了一套完善的工具,包括数字示波器、专业的测试夹具以及全自动一致性测试软件,使得USB 3.0设备设计人员能够高效精确地进行信号捕捉、测试与分析。报告第二部分测试摘要,在此可以看到USB3.0测试所有测试项目,并且可以观看到测试是否正常,可以帮助工程师更好的判断测试结果。,以简化下载、存储以及对于多媒体的大量内容的共享。

2409_87378937的博客 2530

LSA潜在语义分析

从Wiki翻译的LSA的简单介绍

锐之锋芒 3万+

python 编程 安卓脚本_详解基于Android的Appium+Python自动化脚本编写

1.AppiumAppium是一个开源测试自动化框架,可用于原生,混合和移动Web应用程序测试, 它使用WebDriver协议驱动iOS,Android和Windows应用程序。通过Appium,我们可以模拟点击和屏幕的滑动,可以获取元素的id和classname,还可以根据操作生成相关的脚本代码。下面开始Appium的配置。appPackage和APPActivity的获取任意下载一个app解压...

weixin_39523625的博客 2930

LSA算法——潜在语义分析概率潜在语义分析

1.简介 LSA使一种无监督学习方法,主要用于文本的话题分析,其特点使通过矩阵分解发现文本与单词之间的基于话题的语义关系。潜在语义分析通常将文本集合表示为单词-文本矩阵,对单词-文本矩阵进行奇异值分解或非负矩阵分解(non-negative matrix factorizatiion,NMF),从而得到话题向量空间以及文本在话题向量空间的表示。 2.相关概念 2.1 单词向量空间 给定一个含有n个文本的集合D={d1,d2,...,dn}D=\{d_1,d_2,...,d_n\}D={d1​,d2​,...

JeJe_33的博客 2147

Vue3 - 最新详细实现网站内部打开预览 office 全套附件,在页面弹窗内解析预览 word文档、excel电子表格、ppt演示文稿(docx|xlsx|pptx|pdf|txt等文件)完美兼容

vue3,nuxt3,下载预览,如何预览pdf文档,打开查看,office全套文档,实现在线预览文件,小程序内预览word文件,手机h5移动端网页,nuxt文档在线预览,预览office最好用的插件,office,文档,文件,查看预览,弹框预览,文档无法解析,打不开,报错,失效,保存下载,vue前端预览并下载doc、xls、pdf、txt及图片,下载查看,Office在线预览,vue-office,vue如何使用vue-office教程示例,word文档,ppt,exce表格,预览电子文件,vue在线预览

🏆 前端领域优质创作者 1万+

基于STM32的录音机设计(STM32F103+VS1053B)

本项目设计并实现了一款基于STM32微控制器的便携式录音机。该录音机采用STM32F103C8T6作为主控芯片,结合VS1053B音频编解码模块、SD卡存储、OLED显示屏以及按键模块,提供了手动录音、自动录音和录音回放等多种功能。

1万+

潜在语义分析 (LSA),概率潜在语义分析 (PLSA)

目录单词向量空间与话题向量空间单词向量空间非负矩阵分解 (non-negative matrix factorization, NMF) 潜在语义分析是一种无监督学习方法,主要用于文本的话题分析,其特点是通过矩阵分解发现文本与单词之间的基于话题的语义关系 单词向量空间与话题向量空间 单词向量空间 文本信息处理的一个核心问题是对文本的语义内容进行表示,并进行文本之间的语义相似度计算 (e.g. 文本信息检索、文本数据挖掘) 非负矩阵分解 (non-negative matrix factorizati

连理o的博客 2236

国科大学习资料--矩阵论(叶世伟)-期末考试题整理3

国科大学习资料–矩阵论-期末考试题整理3 国科大学习资料–矩阵论-期末考试题整理3 国科大学习资料–矩阵论-期末考试题整理3

无名何许人的博客 1404

潜在语义分析模型(Latent Semantic Analysis,LSA)

LSA潜在语义分析模型原理解读

2401_88885149的博客 1770

零基础基于U-Net网络实战眼底图像血管提取

文章目录1 前言2 血管提取任务概述3 U-Net架构简介4 眼底图像血管分割代码5 结果评估可视化(ROC曲线)6 改进U-Net网络完成眼底图像血管提取任务思路 1 前言 本文基于U-Net架构完成了视网膜血管的提取任务,基于Keras框架更简单的实现分割,网络、工具类、训练和预测的代码一目了然

NJU phd 在读。 5203

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

上一篇: 奇异值分解(SVD)相关知识
下一篇: 概率潜在语义分析(pLSA) 相关知识
VariableX
博客等级 码龄7年 142粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值