Дайджест / хеш Python для определения схожести строк

Я ищу алгоритм, который может генерировать короткий (fx 16 символов (не важно) хэш-код / ​​дайджест из более длинной строки.

Основное требование состоит в том, что почти идентичные строки должны приводить к одному и тому же дайджесту.

Fx 2 почти идентичное письмо:

Привет, Мартин. Вот вам ... спам. С уважением, XYZ. => AAAA AAAA AAAA AAAA

Привет, Бо. Вот вам ... спам. С уважением, EFG. => AAAA AAAA AAAA AAAA

возвращает те же дайджесты (или почти такие же), где в качестве другой почты:

Hello Finn.Это тестовое письмо. = >CCCCCCCCCCCCcc

вернет другой дайджест.

Этот алгоритм будет частью спам-фильтра. Фильтр запоминает дайджесты писем, которые точно являются спамом. Если тот же дайджест появляется в сообщениях, в которых есть сомнения, идентичный дайджест приведет к тому, что фильтр увеличит оценку спама.

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

Может быть, какой-нибудь алгоритм свободного сжатия в сочетании с вычислением расстояния Левенштейна между ними сработает.

Любые указатели приветствуются.

7
задан jeffknupp 13 January 2012 в 18:22
поделиться