Помогите с алгоритмом сортировки

doublemother

Есть некоторый запрос: пользователь вводит набор некоторых синонимов названий хим.веществ, например:
H2SO4, хлорноватистая кислота

Из таблицы соответствий (name, synonym где синоним не уникален, извлекаются массивы формул, соответствующих данным синонимам, например, для приведенного выше примера это будут:
(H2SO4, H2SO3, H2SO4*H2O, H2SO4*2H2O) и (HClO)

Необходимо отсортировать формулы веществ по степени "похожести" на исходно введенное вещество, для того чтобы выдать пользователю наборы веществ в порядке их соответствия исходному запросу, например, для такого запроса пользователь должен получить:
(H2SO4, HClO)
(H2SO4*H2O, HClO)
(H2SO4*2H2O, HClO)
(H2SO3, HClO)

То есть надо получить для каждого вещества в каждом массиве некоторый коэффициент, по произведению которых и сортировать наборы.
Вот у меня пока нет идей, как определить эту степень похожести, кроме как вводить коэффициенты руками и хранить в базе.

Ivan8209

Soundex и прочие лингвистические штуки?
---
...Я работаю антинаучным аферистом...

doublemother

Soundex не катит, другие же совсем данные и цели

Ivan8209

Я в курсе, я просто обозначил область, где бы я начал поиск.
---
...Я работаю...

doublemother

А вот Левенштейн, похоже, уже более близок к тому, что мне надо...

doublemother

Да, таки я похоже натолкнулся именно на то, что надо. Спасибо :)
Оставить комментарий
Имя или ник:
Комментарий: