LSHForest进行文本相似性计算
来源:互联网 发布:火星时代网络班 编辑:程序博客网 时间:2024/06/04 19:37
LSH Forest: Locality Sensitive Hashing forest,局部敏感哈希森林, 是最近邻搜索方法的代替,排序实现二进制搜索和32位定长数组和散列,使用hash家族的随机投影方法近似余弦距离。
随机投影树,对所有的数据进行划分,将每次搜索与计算的点的数目减小到一个可接受的范围,然后建立多个随机投影树构成随机投影森林,将森林的综合结果作为最终的结果。
随机投影树的构建方法:
- 1.随机选取一个从原点出发的向量,与这个向量垂直的直线将平面内的点划分为了两部分,将属于这两部分的点分别划分给左子树和右子树。在数学计算上,是通过计算各个点与垂直向量的点积完成这一步骤的,点积大于零的点划分到左子树,点积小于零的点划分到右子树。
- 2.再次随机选取一个向量,与该向量垂直的直线将所有点进行了划分。
- 3.以此类推继续划分下去,直到每个叶节点中点的数目都达到一个足够小的数目。注意这棵树并不是完全树。
4.新的点最近邻计算时,首先通过计算该点与每次划分所用向量的点积,来找到其所属于的叶节点,然后利用这个叶节点内的这些点进行最近邻算法的计算。这个过程是一棵随机投影树的计算过程,利用同样的方法,建立多个随机投影树构成随机森林,将森林的总和结果作为最终的结果。
sklearn.neighbors中的LSHForest,我写的用LSHForest进行文档相似计算例子
例子使用搜狗语料库进行实现,使用os.walk遍历文件夹。
具体过程:- 1.读取预料库
- 2.分词工具对语料库进行分词和停用词过滤
- 3.使用TfidfVectorizer 计算tdidf向量,构造训练数据和测试数据
- 4.使用LSHForest训练数据
lshf = LSHForest(random_state=42) #LSHForest训练数据lshf.fit(x_train.toarray())distances, indices = lshf.kneighbors(x_test.toarray(), n_neighbors=5)
借鉴
http://blog.itpub.net/16582684/viewspace-1253901/
http://blog.sina.com.cn/s/blog_7103b28a0102w1ny.html
http://blog.csdn.net/vs412237401/article/details/52238248
文献:
Bawa M, Condie T, Ganesan P. LSH forest: self-tuning indexes for similarity search[C]// International Conference on World Wide Web, WWW 2005, Chiba, Japan, May. 2005:651-660.
- LSHForest进行文本相似性计算
- 利用sklearn计算文本相似性
- 利用余弦计算文本相似性
- python 进行文本相似性对比
- 余弦相似性的文本计算思想
- 推荐系统-文本相似性计算(1)
- 推荐系统-文本相似性计算(2)
- 推荐系统-文本相似性计算(3)
- 利用编辑距离计算文本相似性
- 文本相似性检测---词语权重计算
- java实现余弦计算文本相似性
- 文本去重第一步:基于内容的文本相似性计算
- 相似性计算
- 推荐系统技术之文本相似性计算(三)
- 文本相似性检测算法
- 余弦定理----相似性计算
- 常用相似性计算公式
- 直方图相似性计算
- Centos安装配置高本版的LAMP(使用yum源)
- JAVA-根据给定日期获得获得一周(中国周)的日期
- ARM指令集详解
- 关于LeetCode中Linked List Cycle一题的理解
- 阿里开源技术一览
- LSHForest进行文本相似性计算
- bzoj[SCOI2007]降雨量
- 2016年值得学习的五大开源项目
- nodejs express项目使用log4js
- 黑马程序员:那些年永远忘记不了的老师的话
- ZigBee按键允许入网
- Java设计模式——代理模式实现及原理
- web.xml 中的过滤器(拦截器)Filter与监听器Listener的作用和区别?
- 还是主席树