Поискал удобоваримый алгоритм нечеткого весового сравнения... ничего путёвого не нашел.
Задача:
Построить функцию, значение которой было бы тем выше, чем более точное совпадение наблюдается между двумя строками.
При этом, если С1="123", а С2="456", то результат Ф=0 (ничего общего)
Если С1="123", а С2="3456", то 0<Ф<<1 (существенное отличие)
Если С1="123", а С2="234", то 0<Ф<1 (несущественное отличие)
Если С1="123", а С2="123", то Ф=1 (точное совпадение)
Если С1="123", а С2="1234", то 0<Ф<1 (несущественное отличие)
Нутром чую, что нормальное распределение, а обосновать (пока) не могу.
Буду думать.
UPD.: придумал. Работает. Осталось только теперь забороть админку MySQL, чтобы нормально русские буквы пропускались.
Нечеткое сравнение строк
hekt0
| среда, 25 февраля 2009