Я играю с Levenshteins Edit Distance algorithm, и я хочу расширить это, чтобы пересчитать транспозиции, то есть обмен смежными буквами, как 1 редактировать. Немодифицированный алгоритм учитывает вставки, удаления или замены, необходимые для достижения определенной строки из другой. Например, расстояние редактирования от "KITTEN" до "SITTING" равно 3. Здесь объяснение из Википедии:
- kitten → sitten (подстановка 'k' 's')
- sitten → sittin (подстановка 'e' на 'i')
- sittin → sit (вставить 'g' в конец).
Следуя тому же методу, расстояние редактирования от "CHIAR" до "CHAIR" равно 2:
- CHIAR → CHAR (удалить 'I')
- CHAR → ПРЕДСЕДАТЕЛЬ (вставить 'I')
Я хотел бы считать это как "1 edit", так как я обмениваю только две соседние буквы. Как я собираюсь это сделать?