J'ai un DataFrame avec IDF de certains mots calculés. Par exemple
(10,[0,1,2,3,4,5],[0.413734499590671,0.4244680552337798,0.4761400657781007, 1.4004620708967006,0.37876590175292424,0.48374466516332])
.... and so on
Donnez maintenant une requête Q, je peux calculer le TF-IDF de cette requête. Comment calculer la similitude cosinus de la requête avec tous les documents dans la trame de données (il y a près de millions de documents)
Je pourrais le faire manuellement dans un travail de réduction de carte en utilisant la multiplication vectorielle
Similitude cosinus (Q, document) = Produit scalaire (Q, document) / || Q || * || document ||
mais sûrement Spark ML doit nativement supporter le calcul de la similitude cosinus d'un texte?
En d'autres termes, étant donné une requête de recherche, comment trouver les cosinus les plus proches du document TF-IDF à partir du DataFrame?