我用的是PySpark2.4。
df.printSchema()
root
|-- word: string (nullable = true)
|-- vector: vector (nullable = true)
|-- vector2: vector (nullable = true)
我想计算向量之间的相似性
我看过一些文章,比如如何计算pyspark中两个向量的余弦相似性?
def _get_sim(vector: Vector, vector2: Vector):
v1 = DenseVector(vector.toArray())
v2 = DenseVector(vector2.toArray())
return float(1 - (v1.dot(v2))/(v1.norm(2)*v2.norm(2)))
get_sim = udf(_get_sim, DoubleType())
df = df.withColumn('sim', get_sim(col('vector'), col('vector2')))
它是有效的,但我很好奇有没有另一种方法来计算没有自定义项的向量。
谢谢你阅读这个问题。
暂无答案!
目前还没有任何答案,快来回答吧!