Forum Webscript.Ru
Программирование => PHP => Тема начата: tarya от 11 Августа 2005, 12:47:40
-
Добрый день.
Я написал как то поиск по сайту через индексирование всего содержимого. Теперь решил его улучшить и вот в чем идея.
Часто когда пользователь ищет чтото, к примеру "круизы в грецию" - то мой скрипт поиска конечно не Яндекс который понимает морфологию и не сможет найти такие вхождения как "круиз", "круизов", "круизами" и дт. Так вот проанализировав всю ситуацию я пришел к выводу что можно собрать все слова родственные в базе данных и например в одной ячейке таблицы лежат все родственные слова встречающиеся на сайте "круиз круизы круизом круизами" и тд. Получается что сначала можно будет отыскать данную ячейку с вхождением одного какого то слова искавшего пользователем - по нему выбрать содержимое ячейки и собрав уже разширенный запрос выдать хороший результат поиска.
Слова то все по одному я могу собрать, да вот как потом их отсортировать по родственности я не знаю, видно только ручками, чего если чесно не хочется делать.
Подскадите у кого какие есть на то идеи.
Спасибо.
-
tarya
Хм... на Яндексе используется совершенно другой алгоритм поиска. Тебе надо почитать в сети материалы на тему лексических анализаторов. Ссылок на памяь не помню - поищи по ключевым словам "разработка текстовых адвентюр" или что то в этом роде.
От себя добавлю, что идею написать подобный анализатор на PHP забросил, т.к. для русского языка не смог построить быстрый алгоритм разбора.