minhash算法检索相似文本_文本相似搜索算法以及改进

以前做的一个相关博文推荐的项目,整理了一下目的:针对于博客,推荐内容相关博客 。方法:将博客分词、去除停用词、tf-idf、标题加权等做成vsm向量,将一篇文章和其它的所有文章求相似度(文本一般采用cos相似度),然后取相似度最大的N篇文章 。总共300万篇文章左右,遇到的困难:每篇文章都要和其它的300W篇做计算,然后去相似度的TopN,总共要计算的是300W*300W=90000亿次的计算,在...
摘要由CSDN通过智能技术生成

以前做的一个相关博文推荐的项目,整理了一下

目的:针对于博客,推荐内容相关博客 。

方法:将博客分词、去除停用词、tf-idf、标题加权等做成vsm向量,将一篇文章和其它的所有文章求相似度(文本一般采用cos相似度),然后取相似度最大的N篇文章 。

总共300万篇文章左右,遇到的困难:每篇文章都要和其它的300W篇做计算,然后去相似度的TopN,总共要计算的是300W*300W=90000亿次的计算,在初始计算的时候,计算量会特别大 ,当时计算的是大约要一个月左右的时间重跑一遍,当时也没有机器,只能借了2台服务服务器多线程跑,最后大致缩短到一个星期,但后续改进后整个算法的时间缩短到了3个小时左右。

文本的向量化

将一篇文章向量化其实有很多步骤要做,这里简单列下,列出最终的文本向量的数据结构

1、文本切词、去除停用词、计算idf、去除无用词、只取名词 。

2、单个文本切词后,统计并对此加权求权重。

3、统计文本中的所有词,每个词赋予整形的id,按照id排序,然后以稀疏矩阵的方式存储文本向量vsm 。

4、所有文本向量归一化,为了计算方便,将长度归一化到127(byte表示的最大数),向量的维度值都取整 。

几点:最初我们是将向量归一化到1,每个维度的取值是浮点小数 ,当时以为浮点计算会比较慢,所以将所有的替换成整数,但是效果提升的并不明显,所以在这样密集型的计算中,浮点数和byte整数的效率差别不是很大 。

结构如下:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值