第 15 章 矩阵运算和文本处理中的两个分类问题
Last updated
Last updated
将文本按主题归类与将词汇表中的词按意思归类,需要多次迭代计算相似度,耗时较长。可以利用矩阵运算中的奇异值分解(Singular Value Decomposition,SVD)来一次性计算相关性。
首先,要用一个大矩阵描述成千上万篇文章和百万个词的关联性。在矩阵中,每一行对应一篇文章,每一列对应一个词,导致矩阵非常大。奇异值分解就是将大矩阵分解成三个小矩阵相乘,公式为:
第一个矩阵是对词进行分类的一个结果,每一行代表一个词,每一列表示一个语义相近的词类。第三个矩阵是对文本分类的结果,每一列对应一个文本,每一行对应一个主题,每一列可以只保留最大值,其余的都改为零,那么每一篇文本都被唯一地分到一类主题中。中间的矩阵则表示词的类和文章的类之间的相关性,每一行代表一篇文章,每一列代表一个词。
分解后,可以同时完成近义词分类和文章的分类,以及每个主题和每个词的语义类之间的相关性。
相比于利用文本特征向量余弦的距离自底向上聚类的方法,奇异值分解的优点是能较快速地得到结果,因为它不需要一次次迭代。但这种方法得到的分类结果略显粗糙。实际工作中,可以先进行奇异值分解得到粗分类结果,再利用计算向量余弦的方法,在粗分类结果的基础上,迭代得到更精确的结果。