加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 大数据 > 正文

LSHForest进行文本相似性计算

发布时间:2021-02-02 15:46:29 所属栏目:大数据 来源:网络整理
导读:LSH Forest: Locality Sensitive Hashing forest,局部敏感哈希森林, 是最近邻搜索方法的代替,排序实现二进制搜索和32位定长数组和散列,使用hash家族的随机投影方法近似余弦距离。 随机投影树,对所有的数据进行划分,将每次搜索与计算的点的数目减小到一

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.

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读