Python 余弦相似性应用

本文旨在对两个未知类型的文本进行余弦相似度分析,判断哪个文本属于军事类
理论知识
  • 对于二维空间,根据空间向量点积公式:

这里写图片描述

  • 假设向量a,b的坐标分别为(x1,y1),(x2,y2),则有:

这里写图片描述

假设将向量A,B扩展到多维,向量A (A1,A2,Ai,····,An,),向量 B(B1,B2,Bi,····,Bn,) 则有:

这里写图片描述

  • 余弦值的范围在[-1,1]之间,值越趋近于1,代表两个向量的方向越接近(文档越相似);接近于0,表示两个向量近乎于正交;越趋近于-1,他们的方向越相反。
代码应用
- 所使用文件如下:
  • military_sample.txt 关于军事的样本文本
  • military_unknow.txt 关于军事的未分类测试文本
  • meeting_unknow.txt 关于会议的未分类文本
  • stop_word.txt 停用词表
- 步骤:
  • 1)用 Python 编写余弦相似度函数
def get_cossimi(x,y):
    myx=np.array(x)
    myy=np.array(y)
    cos1=np.sum(myx*myy)
    cos21=np.sqrt(sum(myy*myy))
    cos22=np.sqrt(sum(myx*myx))
    return (cos1/float(cos22*cos21))
  • 2)对军事样本文本进行数据预处理(分词、去除停用词,计算每个词的词频)
try:
    sample0=open('../cosine_similarity/military_sample.txt','r',encoding='utf-8')
    sample=sample0.read()
finally:
        sample0.close()
sample_cut=
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值