如何比较两个句子的相似度

摘自 http://www.cnblogs.com/jivi/archive/2013/04/02/2995571.html
下图就是判断两个句子想进度的公式    
             

 

句子A:周杰伦是一个歌手,也是一个叉叉

句子B:周杰伦不是一个叉叉,但是是一个歌手

 

第一步 分词 

句子A : 周杰伦/是/一个/歌手, 也/是/一个/叉叉 (注:这分词够先进,叉叉都能识别出来) 句子B: 周杰伦/不/是/一个/叉叉 ,但是/是/一个/歌手

  第二步 去重复,列出识别的所有单词

周杰伦、是 、不、一个、叉叉 、歌手、但是、也

  第三步 计算词频(这里表示某个词在一个句子里出现的次数)    

句子A: 周杰伦1、是2 、不 0 、一个2、叉叉1、歌手1、但是0、也1句子B: 周杰伦1、是2 、不 1 、一个2、叉叉1、歌手1、但是1、也0 

  第四步 构造词频向量

句子A [ 1 , 2 , 0 , 2 , 1 , 1 , 0 , 1 ] 句子B [ 1 , 2 , 1 , 2 , 1 , 1 , 0 , 1 ]

有了这个公式就好办了。我们的两个句子 

句子A [ 1 , 2 , 0 , 2 , 1 , 1 , 0 , 1 ] 句子B [ 1 , 2 , 1 , 2 , 1 , 1 , 0 , 1 ]

  那么他们夹角的余弦是多少呢 

Cosθ = (1*1 + 2*2 + 0*1 + 2*2 + 1*1 + 1*1 + 0*0 + 1*1 )/(sqrt(1^2+2^2+0^2+2^2+1^2+1^2+0^2+1^2)*sqrt(1^2+2^2+1^2+2^2+1^2+1^2+1^2+0^2+1^2 )) = >Cosθ ≈0.961

  这个还算是比较高的  

转载于:https://www.cnblogs.com/zcm123/archive/2013/04/03/2997178.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值