Я заметил некоторые сообщения здесь о совпадении строк, что напомнило мне о старой проблеме, которую я хотел бы решить. У кого-нибудь есть хороший алгоритм Levenshtein, который взвешен по отношению к клавиатурам Qwerty?Хороший алгоритм, подобный Левенштейну, но взвешенный для клавиатур Qwerty?
Я хочу сравнить две строки и разрешить опечатки. Левенштейн в порядке, но я бы предпочел также принимать орфографические ошибки на основе физического расстояния между клавишами на клавиатуре Qwerty. Другими словами, алгоритм должен предпочесть «yelephone» на «zelephone», так как клавиша «y» расположена ближе к клавише «t», чем к клавише «z» на большинстве клавиатур.
Любая помощь будет большой ... эта функция не является центральной для моего проекта, поэтому я не хочу отклоняться в отверстие для крысы, когда я должен делать что-то более продуктивное.
CPAN вкладчиком Кайл Р. Бертон на самом деле реализован [это функция расстояния] (http://search.cpan.org/~krburton /String-KeyboardDistance-1.01/KeyboardDistance.pm) в Perl. Он использует таблицу для расчета веса. См. Его документы для полной таблицы. – 2012-10-30 21:46:06