LevensteinDistance - API Commons Lang 3.0 - PullRequest
8 голосов
/ 08 июля 2011

С помощью 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 Ответ

11 голосов
/ 09 июля 2011

Просто поделите на некоторое число.Вопрос в том, какое число?Вероятно, максимально возможное расстояние для данной пары строк.Я думаю, что это длина более длинной строки (т. Е. Все символы разные, плюс добавлено еще несколько символов по сравнению с более короткой строкой).

...