Python 如何在sklearn';中引入阻塞函数;s TF-IDF矢量化方法?

Python 如何在sklearn';中引入阻塞函数;s TF-IDF矢量化方法?,python,scikit-learn,approximate-nn-searching,Python,Scikit Learn,Approximate Nn Searching,更详细地说,我有一个近1500万条目的数据表。我的主要目标是以希望的高精度执行近似最近邻匹配。我是RAM锁定的,因此无法尝试hnsw之类的技术。想尝试FAISS,但我的操作系统也锁定在windows上:( 无论如何,我目前已经为我的表安装了一个tf idf矩阵 def getNearestN(query,vectorizer): queryTFIDF_ = vectorizer.transform(query) distances, indices = nbrs.kn

更详细地说,我有一个近1500万条目的数据表。我的主要目标是以希望的高精度执行近似最近邻匹配。我是RAM锁定的,因此无法尝试hnsw之类的技术。想尝试FAISS,但我的操作系统也锁定在windows上:(

无论如何,我目前已经为我的表安装了一个tf idf矩阵

  def getNearestN(query,vectorizer):
      queryTFIDF_ = vectorizer.transform(query)
      distances, indices = nbrs.kneighbors(queryTFIDF_)
      return distances, indices
这里,
nbrs
sklearn.neights
的别名。 我在实现这一点时面临的主要障碍是,函数返回的top-k邻域往往没有需要匹配的实际条目。因此,精度适中,而且混合中肯定存在随机元素

对于数据表中的每个名称,我都有一个附带的城市代码。 每次我查询tf idf矩阵时,我希望搜索被“阻止”在我指定的城市以外的任何其他城市执行

更抽象地说,鉴于我知道city列中每个唯一值所在的索引,我如何强制tf idf仅在我指定的city代码中查找紧密匹配