Страница: 1 |
Вопрос: SOS, HELP И Т,Д, | Добавлено: 08.11.04 22:07 |
Автор вопроса: ![]() |
У меня есть строка, введенная пользователем и своего рода база данных. Строка - это по сути предложение со знаками препинания и т.д. Нужно введенное предложение искать в БД, игнорируя знаки препинания и, если строка не найдена в точности, то искать по максимальному совпадению слов.
То есть, например если предложение "Мама мыла большую красивую раму" в точности не существует в БД, но есть такое "Мама мыла раму", и если более близкого (Мама мыла большую раму) нет, то вернуть мне его. То есть, короче говоря, найти, максимально соответствующее введенному, предложение. А то, блин, если вводишь например слово "гнуть", так он мне находит "ну", хотя есть ниже в БД само слово "гнуть"! ПОМОГИТЕ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! (ИСПОЛЬЗОВАЛ InStr) |
Ответы | Всего ответов: 4 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 47 Ответов: 621 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 08.11.04 22:47 |
Может разбить сначала split'ом предложение на слова, а потом искать по макс совпадению строк (хотя если честно это будет очень тормозно, если база большая). |
Номер ответа: 2 Автор ответа: ![]() ![]() Вопросов: 11 Ответов: 10 |
Профиль | Цитата | #2 | Добавлено: 08.11.04 23:29 |
А можешь мне конкретным примером, как бы это провернуть? |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 204447456 Вопросов: 180 Ответов: 4229 |
Web-сайт: Профиль | Цитата | #3 | Добавлено: 09.11.04 06:29 |
Что то не верится что InStr такое выдаёт. Покажи код как ты искал. |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 47 Ответов: 621 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 09.11.04 10:49 |
Примера нету, а писать некогда ![]() Но алгаритм примерно такой: разбиваешь сплитом, разделитель слов - пробел. далее можно убрать из полученых слов знаки припенания, если есть. а вот дальше.. можно попробовать искать в строках слова полученные из предложения, а кол-во совпавших слов засунуть в переменную, и в другую переменную пихать номер этой строки, далее также искать во всех строках, и если есть строка с большим количеством совпадений, то менять значение в переменных. По-моему примерно так. |
Страница: 1 |
|