我有一个 DataFrame,其中计算了某些单词的 IDF。例如
(10,[0,1,2,3,4,5],[0.413734499590671,0.4244680552337798,0.4761400657781007, 1.4004620708967006,0.37876590175292424,0.48374466516332])
.... and so on
现在给一个查询 Q,我可以计算这个查询的 TF-IDF。如何计算查询与数据框中所有文档的余弦相似度(有近百万个文档)
我可以通过使用向量乘法在 map-reduce 作业中手动完成
余弦相似度(Q,文档)=点积(Q,文档)/||Q|| * ||文件||
但是 Spark ML 肯定必须原生支持计算文本的余弦相似度吗?
换句话说,给定一个搜索查询,我如何从 DataFrame 中找到文档 TF-IDF 的最接近余弦?