首页 > 代码库 > 《数学之美》第15章 矩阵计算和文本处理中两个分类问题——SVD分解的应用

《数学之美》第15章 矩阵计算和文本处理中两个分类问题——SVD分解的应用

转载请注明原地址:http://www.cnblogs.com/connorzx/p/4170047.html

提出原因

基于余弦定理对文本和词汇的处理需要迭代的次数太多(具体见14章笔记),为了找到一个一步到位的办法,可以使用奇异值分解(SVD分解)

 

算法实现

建立一个M-by-N的矩阵A,其中行表示M篇文章,列表示N个词。aij表示第j个词在第i篇文章中出现的加权词频。将A进行奇异值分解,A=XBY,X为M-by-R矩阵,B为R阶方阵,Y为R-by-N矩阵。若R<<M,N,则存储量和计算量就可以减少好几个数量级。

ps.此处的SVD算法其实是thin SVD。

ps2.最巧妙的是,奇异值分解后的三个矩阵都有了对应的物理意义。X表示文章和主题类的相关性;B表示主题类和词义类的相关性;Y表示词义类和词的相关性。(话说这一个所谓的物理含义这时不太好想出来o(╯□╰)o)

 

补充

利用thin SVD可以快速对文本或者词汇进行分类,可是分类结果比较粗糙。此时,可以采用余弦定理迭代的方式进行更加精细的分类。

《数学之美》第15章 矩阵计算和文本处理中两个分类问题——SVD分解的应用