Есть некоторый запрос: пользователь вводит набор некоторых синонимов названий хим.веществ, например:
H2SO4, хлорноватистая кислота
Из таблицы соответствий (name, synonym где синоним не уникален, извлекаются массивы формул, соответствующих данным синонимам, например, для приведенного выше примера это будут:
(H2SO4, H2SO3, H2SO4*H2O, H2SO4*2H2O) и (HClO)
Необходимо отсортировать формулы веществ по степени "похожести" на исходно введенное вещество, для того чтобы выдать пользователю наборы веществ в порядке их соответствия исходному запросу, например, для такого запроса пользователь должен получить:
То есть надо получить для каждого вещества в каждом массиве некоторый коэффициент, по произведению которых и сортировать наборы.
Вот у меня пока нет идей, как определить эту степень похожести, кроме как вводить коэффициенты руками и хранить в базе.
Ivan8209
Soundex и прочие лингвистические штуки?
---
...Я работаю антинаучным аферистом...
doublemother
Soundex не катит, другие же совсем данные и цели
Ivan8209
Я в курсе, я просто обозначил область, где бы я начал поиск.
---
...Я работаю...
doublemother
А вот Левенштейн, похоже, уже более близок к тому, что мне надо...
doublemother
Да, таки я похоже натолкнулся именно на то, что надо. Спасибо
doublemother
Есть некоторый запрос: пользователь вводит набор некоторых синонимов названий хим.веществ, например:Из таблицы соответствий (name, synonym где синоним не уникален, извлекаются массивы формул, соответствующих данным синонимам, например, для приведенного выше примера это будут:
Необходимо отсортировать формулы веществ по степени "похожести" на исходно введенное вещество, для того чтобы выдать пользователю наборы веществ в порядке их соответствия исходному запросу, например, для такого запроса пользователь должен получить:
То есть надо получить для каждого вещества в каждом массиве некоторый коэффициент, по произведению которых и сортировать наборы.
Вот у меня пока нет идей, как определить эту степень похожести, кроме как вводить коэффициенты руками и хранить в базе.