Просмотрев этот сайт в поисках похожих проблем, я нашел это: http://math.nist.gov/javanumerics/jama/ и это: http://sujitpal.blogspot.com/2008/09/ir-math-with-java-similarity-measures.html
Однако кажется, что они работают в O (n ^ 2). Я занимался кластеризацией документов и заметил, что этот уровень сложности невозможен при работе даже с небольшими наборами документов. Учитывая, что для скалярного произведения нам нужны только векторные члены, содержащиеся в обоих векторах, должна быть возможность поместить векторы в дерево и, таким образом, вычислить скалярное произведение со сложностью n log n, где n — наименьшее количество уникальных членов в 1 из 2 документов.
Я что-то упускаю? Есть ли библиотека Java, которая делает это?
Благодарность