Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Нечеткий поиск с помощью SQL / 7 сообщений из 7, страница 1 из 1
15.07.2004, 10:02
    #32605216
Alammi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нечеткий поиск с помощью SQL
Итак, есть задача: осуществить по большой базе т.н. нечеткий поиск. Немного теории: нечеткий поиск ( fuzzy search ) это поиск, при котором пользователь не знает что он хочет найти :) или сделал опечатку в строке. Машина же должна найти все слова, отличающиеся от запрошенного меньше чем на две буквы. Пример:
Запрос: "ТЕКСТ"
Найдено: "ТЕКСТ", "ТЕСТ", "ТЕКУТ", "ТЕКСТЫ" и т.д.
Обязательное условие: писать на Visual Basic'е.
Я уже написал саму фукнцию, которая считает минимальное количество изменений, что бы получить из одного слова другое, но не знаю каким концом ее всунуть.
З.Ы. Функция - это реализация т.н. расстояние Левенштайна, если кто интересуется.
З.З.Ы. Помогите кто чем может!!
...
Рейтинг: 0 / 0
15.07.2004, 10:10
    #32605232
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нечеткий поиск с помощью SQL
Очень , очень интересно!!! Таким не занимался.
...
Рейтинг: 0 / 0
15.07.2004, 10:35
    #32605286
ыыыы
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нечеткий поиск с помощью SQL
Вот так и искать - вытягивать все строки на клиента и вычислять расстояние :-) При размере таблицы >10000 строк будет, мягко говоря, тормозить.

Расстояние Левенштейна IMHO можно использовать только для ранжирования уже отобранного другими методами маленького списка слов.

Для нечеткого поиска в большой БД может подойти метод n-грамм, что прекрасно реализуется на уровне SQL-сервера (на VB опять-же может тормозить). А может и нет - зависит от того какого класса ошибки пользователи допускают.
...
Рейтинг: 0 / 0
15.07.2004, 12:43
    #32605728
Processor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нечеткий поиск с помощью SQL
В "Сокровищнице" найди ссылку на статью:
Еще раз о нечетком сравнении строк
Там есть кое-что для начала.
Первоисточник "Функция приблизительного/нечеткого сравнения строк" уже на сайте не найден. При необходимости вышлю.
...
Рейтинг: 0 / 0
15.07.2004, 19:34
    #32607014
Alammi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нечеткий поиск с помощью SQL
Вышли пожалуйста, а то тема-то вроде известная, а по сути пока мало накопал (сказывается лень). И Вот еще вопрос: как передать SQL-запрос из Visual мать его Basic'а если пользователь хочет найти символ ' (опосторф). Заранее всем спасибо за ответы
З.Ы. лучше щас отдельно темой закину последний вопрос.
...
Рейтинг: 0 / 0
27.07.2004, 16:18
    #32623738
dvserg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нечеткий поиск с помощью SQL
Сори, что влезаю немного не по теме
Нужно в базе искать нечеткие совпадения строк (ошибки набора, вариации наименований)
для быстрой работы думаю для каждой строки формировать некоторое число, основываясь на данных

код символа & позиция в строке & длина строки
или более сложное
код символа & позиция в слове & №слова & длина слова & кол-во слов & длина строки

если числа находятся +/- 85-90% - можно считать совпадением и отнести в одну группу

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

Интересует где это можно посмотреть, если такое есть, и как это называется.
Я в этой области пока не очень, поэтому и такой вопрос
...
Рейтинг: 0 / 0
28.07.2004, 10:27
    #32624585
marvan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нечеткий поиск с помощью SQL
ищи инфу по троичным деревьям поиска (Ternary Search Tree - TST)
есть статья на русском в которой описан алгоритм нечёткого поиска для TST
мне даже попадалась реализация этого дела на VB
начать искать можно отсюда: http://algolist.manual.ru/sort/mqs/fast_strings6.php
продожить здесь: http://itman.narod.ru/
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Нечеткий поиск с помощью SQL / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]