Comments 17
старый добрый Delphi Language (Object Pascal)
^_^
^_^
Ну, вы понимаете да, что при стандартной реализации на уровне базы это будет работать как перебор таблицы? А чтобы этого избежать, придется держать отдельное конвертированное поле?
(при этом в MS SQL есть SOUNDEX и полнотекстовый поиск, к которому можно делать плагины)
(при этом в MS SQL есть SOUNDEX и полнотекстовый поиск, к которому можно делать плагины)
упс, ответ вам попал в ленту ниже:
habrahabr.ru/blogs/programming/120182/#comment_3953642
прошу прощения, только осваиваюсь…
habrahabr.ru/blogs/programming/120182/#comment_3953642
прошу прощения, только осваиваюсь…
Я сначала использовал транслитерацию русских слов, а потом прогон через metaphone.
в моём случае нет чётких правил транслитерации.
да и метафон, на мой взгляд, заточен больше под их произношение чем под наш акцент…
)
да и метафон, на мой взгляд, заточен больше под их произношение чем под наш акцент…
)
У меня сделано через транслитерацию, шаманский словарь и Дамерау-Левенштейна (было написано на С, скомпилировано и подключено УДФкой к серваку БД)
Специфика конечно немного другая.
Специфика конечно немного другая.
> А чтобы этого избежать, придется держать отдельное конвертированное поле?
да, конечно: поиск по конвертируемому полю, поле будет записываться триггером после инсёрта/апдэйта (сейчас всё конвертируется на клиентской части).
да, конечно: поиск по конвертируемому полю, поле будет записываться триггером после инсёрта/апдэйта (сейчас всё конвертируется на клиентской части).
толи с английских на французские, толи наоборот
с французских на идиотские
Прочитал и понял, что сам как раз тоже придумал подобный алгоритм с пол года назад. Только еще учитывалось, например, что перед слогом или после может стоять гласная или согласная, либо слог может быть в начале/конце/середине слова. Забавно.
> Только еще учитывалось, например, что перед слогом или после может стоять гласная или согласная, либо слог может быть в начале/конце/середине слова.
интересно… можете подробнее?
интересно… можете подробнее?
Да там почти все так же. Просто словарь токенов чуть шире.
Терпеть не могу саморекламу, но вот тут я подробнее рассказывал про словарь и временно рабочий пример для тестов, чтобы поиграться: vas3k.ru/work/let_me_speak
Если нужно и сможете пережить мой говнокод, могу исходник дать.
Терпеть не могу саморекламу, но вот тут я подробнее рассказывал про словарь и временно рабочий пример для тестов, чтобы поиграться: vas3k.ru/work/let_me_speak
Если нужно и сможете пережить мой говнокод, могу исходник дать.
а мне очень нравится чужая самореклама: порой в ней попадается столько интересного!
)
у вас, как я понял, задача стояла гораздо более сложная: научить комп «произношению» чужого (в данном случае — французского) языка вообще, отсюда забота об обрамлении слогов и их положении в слове, так?
с фамилиями подход всётаки более стрэйт форвард…
зато у вас наверняка здорово наметался взгляд на буквосочетания/звуки. взгляните на таблицу, как бы вы её изменили/дополнили?
а код лучше, наверно, на гуглькод выложить. совершенно неважно, что он плохо (на ваш взгляд) оптимизирован и/или написан: если кому понадобится — отладит под себя и поделится результатом, нормальный рабочий процесс, чё. всё проще, чем с нуля начинать.
)
у вас, как я понял, задача стояла гораздо более сложная: научить комп «произношению» чужого (в данном случае — французского) языка вообще, отсюда забота об обрамлении слогов и их положении в слове, так?
с фамилиями подход всётаки более стрэйт форвард…
зато у вас наверняка здорово наметался взгляд на буквосочетания/звуки. взгляните на таблицу, как бы вы её изменили/дополнили?
а код лучше, наверно, на гуглькод выложить. совершенно неважно, что он плохо (на ваш взгляд) оптимизирован и/или написан: если кому понадобится — отладит под себя и поделится результатом, нормальный рабочий процесс, чё. всё проще, чем с нуля начинать.
Sign up to leave a comment.
Простой пример реализации фонетического поиска