sklearn попарно cosine_simility зависает, когда сопоставимый ручной расчет быстр - PullRequest
0 голосов
/ 03 декабря 2018

Я собираю большие разреженные векторы по косинусному подобию.Я не использую стандартизированный алгоритм кластеризации и сам написал реализацию.Я думаю, что я могу использовать sklearn.metrics.pairwise.cosine_similarity неправильно, но после большой отладки я не вижу проблемы.

В частности, у меня есть два вектора:

>>> v1
<1x1099511627776 sparse matrix of type '<class 'numpy.int64'>'
    with 227 stored elements in Compressed Sparse Row format>
>>> v2
<1x1099511627776 sparse matrix of type '<class 'numpy.int64'>'
        with 48 stored elements in Compressed Sparse Row format>
>>> simm = cosine_similarity(v1, v2, dense_output=False) # hangs

В качестве альтернативы, я могусоздать словари ненулевых записей в обоих векторах и вычислить косинусное сходство вручную без проблем.

Я думаю, что часть проблемы может быть в моем выборе представления данных.Я пытаюсь найти самый быстрый способ вычислить косинусное сходство, и я не понимаю, почему операция scikit зависает бесконечно на двух векторах.Я использую матрицы CSR неправильно?Разве эта операция не предназначена для их взятия?

...