在传统的文本信息处理中,以单词向量表示文本的语义内容,以单词向量空间的度量来表示文本之间的语义近似度。这种方法不能准确表示语义。
潜在语义分析试图从大量的文本数据中发现潜在的话题,以话题向量来表示文本的语义内容,以话题向量的空间度量更准确地表示文本之间的语义相似度。
潜在语义分析使用的是非概率的话题分析模型,具体来说,就是将文本集合表示为单词-文本矩阵,对单词-文本矩阵进行奇异值分解,从而得到话题向量空间,以及文本在话题向量空间的表示。可采用的矩阵分解方法有:奇异值分解、非负矩阵分解。
给定一个含有 n n n个文本的集合 D = { d 1 , d 2 , ⋯ , d n } D=\{d_1,d_2,\cdots,d_n\} D={
d1,d2,⋯,dn},以及在所有文本中出现的 m m m个单词 W = { w 1 , w 2 , ⋯ , w m } W=\{w_1,w_2,\cdots,w_m\} W={
w1,w2,⋯,wm},则将单词在文本中出现的数据用一个单词-文本表示,记作 X X X。
X = [ x i j ] m × n X = [x_{ij}]_{m\times n} X=[xij]m×n
其中,元素 x i j x_{ij} xij表示单词 w i w_i wi在文本 d j d_j dj中出现的频数或权值。该矩阵是一个稀疏矩阵。
权值通常用单词频率-逆文本频率(TF-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{df}{df_i},i=1,2,\cdots,m;j=1,2,\cdots,n TFIDFij=tf⋅jtfijlogdfidf,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_{\cdot j} tf⋅j是文本 d j d_j dj中出现的所有单词的频数之和, d f i df_i dfi是含有单词 m i m_i mi的文本数, d f df df是文本集合 D D D的全部文本数。直观的,一个单词在一个文本中出现的次数越高,这个单词在这个文本中的重要度就越高;一个单词在整个文本集合中出现的文本越少,这个单词就越能表示其所在文本的特点,重要程度就越高。
单词向量空间模型直接使用单词-文本矩阵信息。单词文本矩阵的第 j j j列向量 x j x_j xj表示文本 d j d_j dj:
x j = [ x 1 j , x 2 j , ⋯ , x m j ] T , j = 1 , 2 , ⋯ , n x_j=[x_{1j},x_{2j},\cdots,x_{mj}]^T,j=1,2,\cdots,n xj=[x1j,x2j,⋯,x
潜在语义分析(LSA)的原理讲解以及python实现
最新推荐文章于 2024-07-21 22:27:18 发布