LevensteinDistance - API Commons Lang 3.0
С помощью Commons Lang api я могу вычислить сходство между двумя строками через LevensteinDistance. Результатом является количество изменений, необходимых для изменения одной строки в другую. Хотелось бы, чтобы результат был в диапазоне от 0 до 1, где было бы легче определить сходство между строками. Результат будет ближе к 0, большое сходство. Является ли это возможным?
Ниже пример, который я использую:
public class TesteLevenstein {
public static void main(String[] args) {
int distance1 = StringUtils.getLevenshteinDistance("Boat", "Coat");
int distance2 = StringUtils.getLevenshteinDistance("Remember", "Alamo");
int distance3 = StringUtils.getLevenshteinDistance("Steve", "Stereo");
System.out.println("distance(Boat, Coat): " + distance1);
System.out.println("distance(Remember, Alamo): " + distance2);
System.out.println("distance(Steve, Stereo): " + distance3);
}
}
Спасибо!
1 ответ
Решение
Просто разделите на некоторое число. Вопрос в том, какое число? Вероятно, максимально возможное расстояние для данной пары строк. Я думаю, что это длина более длинной строки (т.е. все символы разные, плюс добавлено еще несколько символов по сравнению с более короткой строкой).