概述:余弦相似度是通过测量两个向量点积空间夹角的余弦值来判断相似性。0°角的余弦值是1,90°为0,余弦值大小在[-1,1]区间。
数学原理:
向量:空间中有两个点原点O和点A,OA(O指向A)就是一个向量,向量是有长度有方向的。
点积(内积): <O,A> = ∑(Oi*Ai)
向量长度: ||A||= sqrt(<A,A>) = sqrt(∑A*A)
余弦公式: cos(α) = A*B / ||A||*||B|| = ∑Ai*Bi / sqrt(∑A*A)*sqrt(∑B*B)
应用举例:文本新闻分类
原理:将爬出来的文章用jieba分词库分好词,然后去除停用词,再用map把词频进行统计,利用已分好类别的文章和当前待分类文章的词条词频进行余弦相似度计算,根据计算结果将文章分类。
步骤:
1. 用爬虫爬好一定数量的文章
2. 先打开已知某类文章并用jieba库进行分词操作
file1 = open(filename) #先读文件
file_str = file1.read() #文件字符串
f