Ускорение сравнения текста (с разреженными матрицами)

StackOverflow https://stackoverflow.com/questions/1456343

Вопрос

У меня есть функция, которая принимает две строки и выдает значение косинусного сходства, которое показывает взаимосвязь между обоими текстами.

Если я хочу сравнить 75 текстов друг с другом, мне нужно сделать 5625 единичных сравнений, чтобы сравнить все тексты друг с другом.

Есть ли способ уменьшить это количество сравнений?Например, разреженные матрицы или k-средние?

Я не хочу говорить о своей функции или о способах сравнения текстов.Просто о сокращении количества сравнений.

Это было полезно?

Решение

То, что говорит Бен, это правда, чтобы получить лучшую помощь, вам нужно сказать нам, какова ваша цель.

Например, одна из возможных оптимизаций если вы хотите найти похожие строки хранит строковые векторы в пространственной структуре данных, такой как quadtree, где вы можете сразу отбросить векторы, которые находятся слишком далеко друг от друга, избегая многих сравнений.

Другие советы

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

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

Без подробностей о вашей функции трудно оказать какую-либо конкретную помощь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top