文本分析–潜在语义分析 之 建立词项-文档矩阵
标签(空格分隔): SPARK机器学习
欢迎关注本小草的微信号:大数据机器学习。日后不定期分享机器学习,大数据的学习资料与博文
1. 潜在语义分析
Latent Semantic Analysis,简称LSA,中文叫潜在语义分析,是一种自然语言处理,与信息检索技术。
LSA将语料库提炼成一组一组相关概念,每个概念捕捉了数据中的一个主题,通常也与语料库讨论的主题相符合。每个概念可以由三个属性组成:语料库中文档的相关度,语料库中词项的相关度,概念对描述主题的重要性评分
LSA的降维过程使用了奇异值分解(SVD,Singular Value Decomosition) 的线性代数技术
步骤:
1. 分析文档集合,建立Term-Document矩阵。
2. 对Term-Document矩阵进行奇异值分解。
3. 对SVD分解后的矩阵进行降维,也就是奇异值分解一节所提到的低阶近似。
4. 使用降维后的矩阵构建潜在语义空间,或重建Term-Document矩阵。
2.词项-文档矩阵
2.1 概念:
词项-文档矩阵,简写为TF-IDF(term frequency times inverse document frequency)
矩阵中的每个元素值代表了相应行上的词项对应于相应列上的文档的权重,即这个词对于这篇文章来说的重要程度。
2.2 原理:
一个词对于一篇文章是否重要,体现在两个方面:
一个词项在一个文档中出现次数越多,他相对于文档的重要性就越大,这个指标就是我们的TF值
TF = 词项在该文档中传的次数/这篇文档所有的词项数若词项在整个语料库中出现的次数越多,那么对于某一篇文章而言这个词就越没有意义,即越不重要。我们用逆文档频率idf来表示这个词在整个语料库中的重要程度,故,出现越多的词,idf值会越低,出现越少的词,idf值会越高
IDF = log(N/d)
N为所有文档的总数;d为出现过某个单词的文档的总数。
在现实中,词项在预料库中的频率往往呈指数型。一个常用词出现的次数往往是一个次常用词出现次数的几十倍,这样常用词的权重会非常低(如“的”这样的词N/D几乎可能几乎等于1),故我们对逆文档频率取对数log,如此,文档频率的差别就从乘数变成了加数级了。