Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Нечеткий поиск с помощью SQL
|
|||
|---|---|---|---|
|
#18+
Итак, есть задача: осуществить по большой базе т.н. нечеткий поиск. Немного теории: нечеткий поиск ( fuzzy search ) это поиск, при котором пользователь не знает что он хочет найти :) или сделал опечатку в строке. Машина же должна найти все слова, отличающиеся от запрошенного меньше чем на две буквы. Пример: Запрос: "ТЕКСТ" Найдено: "ТЕКСТ", "ТЕСТ", "ТЕКУТ", "ТЕКСТЫ" и т.д. Обязательное условие: писать на Visual Basic'е. Я уже написал саму фукнцию, которая считает минимальное количество изменений, что бы получить из одного слова другое, но не знаю каким концом ее всунуть. З.Ы. Функция - это реализация т.н. расстояние Левенштайна, если кто интересуется. З.З.Ы. Помогите кто чем может!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 10:02 |
|
||
|
Нечеткий поиск с помощью SQL
|
|||
|---|---|---|---|
|
#18+
Очень , очень интересно!!! Таким не занимался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 10:10 |
|
||
|
Нечеткий поиск с помощью SQL
|
|||
|---|---|---|---|
|
#18+
Вот так и искать - вытягивать все строки на клиента и вычислять расстояние :-) При размере таблицы >10000 строк будет, мягко говоря, тормозить. Расстояние Левенштейна IMHO можно использовать только для ранжирования уже отобранного другими методами маленького списка слов. Для нечеткого поиска в большой БД может подойти метод n-грамм, что прекрасно реализуется на уровне SQL-сервера (на VB опять-же может тормозить). А может и нет - зависит от того какого класса ошибки пользователи допускают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 10:35 |
|
||
|
Нечеткий поиск с помощью SQL
|
|||
|---|---|---|---|
|
#18+
В "Сокровищнице" найди ссылку на статью: Еще раз о нечетком сравнении строк Там есть кое-что для начала. Первоисточник "Функция приблизительного/нечеткого сравнения строк" уже на сайте не найден. При необходимости вышлю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 12:43 |
|
||
|
Нечеткий поиск с помощью SQL
|
|||
|---|---|---|---|
|
#18+
Вышли пожалуйста, а то тема-то вроде известная, а по сути пока мало накопал (сказывается лень). И Вот еще вопрос: как передать SQL-запрос из Visual мать его Basic'а если пользователь хочет найти символ ' (опосторф). Заранее всем спасибо за ответы З.Ы. лучше щас отдельно темой закину последний вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 19:34 |
|
||
|
Нечеткий поиск с помощью SQL
|
|||
|---|---|---|---|
|
#18+
Сори, что влезаю немного не по теме Нужно в базе искать нечеткие совпадения строк (ошибки набора, вариации наименований) для быстрой работы думаю для каждой строки формировать некоторое число, основываясь на данных код символа & позиция в строке & длина строки или более сложное код символа & позиция в слове & №слова & длина слова & кол-во слов & длина строки если числа находятся +/- 85-90% - можно считать совпадением и отнести в одну группу другие алгоритмы, что я успел посмотреть предполагают построчное сравнение - это очень долго для большой базы. Интересует где это можно посмотреть, если такое есть, и как это называется. Я в этой области пока не очень, поэтому и такой вопрос ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2004, 16:18 |
|
||
|
Нечеткий поиск с помощью SQL
|
|||
|---|---|---|---|
|
#18+
ищи инфу по троичным деревьям поиска (Ternary Search Tree - TST) есть статья на русском в которой описан алгоритм нечёткого поиска для TST мне даже попадалась реализация этого дела на VB начать искать можно отсюда: http://algolist.manual.ru/sort/mqs/fast_strings6.php продожить здесь: http://itman.narod.ru/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2004, 10:27 |
|
||
|
|

start [/forum/topic.php?fid=60&fpage=363&tid=2169160]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
2ms |
| others: | 241ms |
| total: | 351ms |

| 0 / 0 |
