Итак, у меня есть TON файлов .txt (несколько гигабайт), и я надеюсь организовать их и у меня есть какой-нибудь метод для поиска рядом дубликатов и правок.
Есть ли алгоритм , который может прочитать текстовый файл и произвести вид ha sh или отпечатка пальца текста, так что чем больше правок или дополнений у блока текста, тем больше расстояние Хемминга от заданного отпечатка пальца / га sh?
Например: учитывая любую длину текста, id live создает значение N длиной. это можно использовать для проверки сходства между другими текстовыми документами.
Итак: Для N = 8
"Some text bla bla bla bla bla ext." => "21juob1G"
"Other text of different length" => "fejbweoi"
"Close text bla bla bla bla bla ext." => "f2juob1G"
Между примерами 1 и 3 выходные данные достаточно похожи, я могу вычислить Расстояние Хэмминга и определить, что данные тексты очень похожи.
Попытка построить это в C ++. Это существует?
Iv изучил алгоритмы плагиата и нашел какое-то обещание, но я не могу найти ни одного, у которого есть хороший пример или описание алгоритма, которое я могу воспроизвести.
Мой текущий Подход, прямо сейчас, состоит в том, чтобы просто удалить все не-символы из данного текста, разделить его на 32 одинаковых по размеру блока и вычислить сумму всех букв в виде чисел, а затем сигмоид, которые в результате дают один байт. Но я получаю результаты, которые ... Слишком похожи.