利用数学中余弦定理解决相关性比较的问题
之前项目中也遇到了对文档的相关性进行分析。
今天看到了《数学之美》的一篇文章,谈到谷歌使用余弦定理为文档进行相关性搜索,感觉特别有趣,在此记录。
计算机只能进行快速的计算,它读不懂新闻,图片,因此,对于新闻的描述、归类是件很麻烦的事情,曾经听百度介绍,为了给图片库的图片打上标签,他们开发了一款游戏,在游戏过程中,玩家输入图片描述,通过此法,才完成了对大量图片的描述构建。然而,谷歌,利用余弦定理,轻松地对心肺分类和整理进行自动化。
主要分为几步:
step1:维护一张词汇表,这张词汇表中记录平时新闻中经常出现的字、词
例如:
1、啊
2、中国
3、的
4、报到
。。。。。。。
10000、冬天
step2:统计每篇文章中词汇表中的字、词分别出现的频率:
频率= 该字的个数/文章的长度
例如:对一篇文章进行统计后,得到词汇表中的字在文章中出现的频率为:
啊-----0.027
中国---0.09
的-----0.25
报到--0.005
。。。。。。
冬天--0.003
则,该概率可以作为代表该篇文章的一个10000维的特征向量。当两篇文章的特征向量相近时,我们可以说新闻的内容是相似的。
例如:按照以上公式计算出文章一、文章二的向量:
文章一:(0.027,0.09,0.25,0.005。。。。。0.003)
文章二:(0.039,0.05,0.54,0.007.............0.007)
step3:计算特征向量的相似度:
向量是多维空间有方向的线段(为了形象,其实不是线段),当两个向量越接近,则,其代表的方向的夹角越小。当两条新闻向量夹角的余弦等于一时,这两条新闻完全重复(用这个办法可以删除重复的网页);当夹角的余弦接近于一时,两条新闻相似,从而可以归成一类;夹角的余弦越小,两条新闻越不相关。