Я хотел бы приблизительно совместить строки с использованием чувствительного к местоположению хэширования. У меня много Strings > 10M, которые могут содержать опечатки. Для каждой строки я хотел бы провести сравнение со всеми остальными строками и выбрать те, которые имеют расстояние редактирования в соответствии с некоторым порогом.
То есть наивное решение требует O (n ^ 2) сравнений. Чтобы избежать этой проблемы, я подумывал об использовании Locality Sensitive Hashing. Тогда близкие строки приведут к тем же ведрам, и мне нужно будет делать только поиск в корзине. Таким образом, O (n * C), где C - размер ковша.
Однако я не понимаю, как представлять строки. Если бы это был текст, который я бы представил в векторном пространстве. Мой главный вопрос заключается в том, что это возможно с помощью LSH, а затем для соответствующего векторного представления строки.
Можно ли использовать уже реализованную библиотеку для этой задачи? или это зависит от моей проблемы, поэтому я должен сам ее реализовать? Есть ли какой-нибудь пакет python, который делает это?