Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: SOS, HELP И Т,Д, Добавлено: 08.11.04 22:07  

Автор вопроса:  Creator
У меня есть строка, введенная пользователем и своего рода база данных. Строка - это по сути предложение со знаками препинания и т.д. Нужно введенное предложение искать в БД, игнорируя знаки препинания и, если строка не найдена в точности, то искать по максимальному совпадению слов.
То есть, например если предложение "Мама мыла большую красивую раму" в точности не существует в БД, но есть такое "Мама мыла раму", и если более близкого (Мама мыла большую раму) нет, то вернуть мне его.
То есть, короче говоря, найти, максимально соответствующее введенному, предложение. А то, блин, если вводишь например слово "гнуть", так он мне находит "ну", хотя есть ниже в БД само слово "гнуть"!
ПОМОГИТЕ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! (ИСПОЛЬЗОВАЛ InStr)

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 ISpy



Разработчик Offline Client

Вопросов: 47
Ответов: 621
 Web-сайт: intermult.boom.ru
 Профиль | | #1
Добавлено: 08.11.04 22:47
Может разбить сначала split'ом предложение на слова, а потом искать по макс совпадению строк (хотя если честно это будет очень тормозно, если база большая).

Ответить

Номер ответа: 2
Автор ответа:
 Creator



Вопросов: 11
Ответов: 10
 Профиль | | #2 Добавлено: 08.11.04 23:29
А можешь мне конкретным примером, как бы это провернуть?

Ответить

Номер ответа: 3
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #3
Добавлено: 09.11.04 06:29
 Что то не верится что InStr такое выдаёт. Покажи код как ты искал.

Ответить

Номер ответа: 4
Автор ответа:
 ISpy



Разработчик Offline Client

Вопросов: 47
Ответов: 621
 Web-сайт: intermult.boom.ru
 Профиль | | #4
Добавлено: 09.11.04 10:49
Примера нету, а писать некогда :(
Но алгаритм примерно такой:
разбиваешь сплитом, разделитель слов - пробел.
далее можно убрать из полученых слов знаки припенания, если есть.
а вот дальше.. можно попробовать искать в строках слова полученные из предложения, а кол-во совпавших слов засунуть в переменную, и в другую переменную пихать номер этой строки, далее также искать во всех строках, и если есть строка с большим количеством совпадений, то менять значение в переменных.
По-моему примерно так.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам