本文主要是介绍LSHForest进行文本相似性计算,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
LSH Forest: Locality Sensitive Hashing forest,局部敏感哈希森林, 是最近邻搜索方法的代替,排序实现二进制搜索和32位定长数组和散列,使用hash家族的随机投影方法近似余弦距离。
随机投影树,对所有的数据进行划分,将每次搜索与计算的点的数目减小到一个可接受的范围,然后建立多个随机投影树构成随机投影森林,将森林的综合结果作为最终的结果。
随机投影树的构建方法:
- 1.随机选取一个从原点出发的向量,与这个向量垂直的直线将平面内的点划分为了两部分,将属于这两部分的点分别划分给左子树和右子树。在数学计算上,是通过计算各个点与垂直向量的点积完成这一步骤的,点积大于零的点划分到左子树,点积小于零的点划分到右子树。
- 2.再次随机选取一个向量,与该向量垂直的直线将所有点进行了划分。
- 3.以此类推继续划分下去,直到每个叶节点中点的数目都达到一个足够小的数目。注意这棵树并不是完全树。
4.新的点最近邻计算时,首先通过计算该点与每次划分所用向量的点积,来找到其所属于的叶节点,然后利用这个叶节点内的这些点进行最近邻算法的计算。这个过程是一棵随机投影树的计算过程,利用同样的方法,建立多个随机投影树构成随机森林,将森林的总和结果作为最终的结果。
sklearn.neighbors中的LSHForest,我写的用LSHForest进行文档相似计算例子
例子使用搜狗语料库进行实现,使用os.walk遍历文件夹。
具体过程:- 1.读取预料库
- 2.分词工具对语料库进行分词和停用词过滤
- 3.使用TfidfV
这篇关于LSHForest进行文本相似性计算的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!