功能介绍

对输入表的每一行向量,在映射表中找到topN个最近邻的向量,输入表若为K行,输出则最多为K*topN行。

参数说明

名称 中文名称 描述 类型 是否必须? 默认值
distanceType 距离度量方式 聚类使用的距离类型,支持EUCLIDEAN 和 JACCARD String “EUCLIDEAN”
topN 前N的数据 挑选最近的N个数据 Integer 5
leftCol 左表文本列名 左表文本列名 String
rightCol 右表文本列名 右表文本列名 String
outputCol 输出结果列列名 输出结果列列名,必选 String
leftIdCol 左侧ID列 左侧ID列 String
rightIdCol 右侧ID列 右侧ID列 String
projectionWidth 桶的宽度 桶的宽度 Double 1.0
numHashTables 哈希表的数目 哈希表的数目 Integer 1
selectedCol 选中的列名 计算列对应的列名 String
numProjectionsPerTable 每个哈希表中的哈希函数个数 每个哈希表中的哈希函数个数 Integer 1
seed 采样种子 采样种子 Long 0

脚本示例

脚本代码

  1. import numpy as np
  2. import pandas as pd
  3. data = np.array([
  4. [0, "0 0 0"],
  5. [1, "1 1 1"],
  6. [2, "2 2 2"]
  7. ])
  8. df = pd.DataFrame({"id": data[:, 0], "vec": data[:, 1]})
  9. source = BatchOperator.fromDataframe(df, schemaStr='id int, vec string')
  10. op = (
  11. ApproxVectorSimilarityTopNLSHBatchOp()
  12. .setLeftIdCol("id")
  13. .setRightIdCol("id")
  14. .setLeftCol("vec")
  15. .setRightCol("vec")
  16. .setOutputCol("output"))
  17. op.linkFrom(source, source).collectToDataframe()

脚本运行结果

输出数据
  1. rowID id_right id_left output rank
  2. 0 0 0 0.0 1
  3. 1 1 1 0.0 1
  4. 2 2 2 0.0 1