У меня есть фрейм данных с двумя столбцами, где в каждой строке есть разреженный вектор.Я пытаюсь найти правильный способ вычислить косинусное сходство (или просто точечное произведение) двух векторов в каждой строке.
Однако мне не удалось найти какую-либо библиотеку или учебник, чтобы сделать этодля разреженных векторов.
Единственный способ, который я нашел, заключается в следующем:
Создать матрицу ak X n, в которой n элементов описываются как векторы k-размера.Для представления каждого элемента в качестве вектора измерений можно использовать ALS, который представляет каждый объект в пространстве скрытых факторов.Размерность этого пространства (k) может быть выбрана вами.Эта матрица k X n может быть представлена в виде СДР [Вектор].
Преобразовать эту матрицу k X n в RowMatrix.
Использовать columnShapsities () функция, чтобы получить X n матрицу сходств между n элементами.
Я считаю, что вычислять все косинусные сходства для каждой пары - это излишнее, а мне это нужно только для конкретных пар.в моем (довольно большом) фрейме данных.