Forum Webscript.Ru
Разное => Флейм => Тема начата: Sniper от 10 Июня 2004, 09:45:38
-
Делал недавно поиск к сайту.
Он, значит ищет все вхождения строки в базе и в файлах.
НО..... Он также ищет вхождения и в словах, не имеющих отношения к искомому слову.
Например:
ищу "сталь"
Результаты:
"сталь", "стальной" и т.д.
И там же остальной, хрустальной.
А как бы сделать поиск с учетом словоформ, чтобы в результатах были все формы слова "сталь":
"сталь", "стали", сталью?
Яндекс так ищет.
Сразу прихдит в голову логичная, но совсем не практичная мысль.
На Яндексе есть некий словарь словоформ.
И каждый раз при поиске он все искомые слова он прогоняет по этому словарю,
ищет там вхождения и ищет эти словоформы в сети.
Не практичная эта мысль потому, что словарь хотя бы (русский) толковый словарь с буквами
от "А", до (например) "П", перенести из комнаты в комнату за один раз в одиночку не получится.
Так там не все словоформы, там существительное, в им. падеже, в ед. числе, без склонений.
Так, что если бы было так как я преполагаю, сервер яндекса "стал" бы при первом же поиске.
-
ищи в интернете. уже существуют словари словоформ, некоторые даже бесплатно раздают. у ресерчера есть кажется какая-то разработка по этому поводу: словарь и класс на ПХП для поиска по нему.
http://www.risearch.org
-
Sniper
Если хочешь серьездный поиск организонать, то придеться писать модуль перевода слова во все словоформы... Проблемма в том, что вместо одного слова алгоритм должен прогнать поиск по 5 - 50 словам... А если введено предложение то все слова в этом пердложении придеться прогонять через этот модуль... В связи с этим встает вопрос о том, что обычные БД для этого не годяться... так же для этого не годиться и PHP... поскольку скорость оставит желать лучшего...
Совет: Если у тебя поиск по одному сайту... то не стоит даже вникать в эту проблемму - утонешь... :) пользуй оператор LIKE и радуйся жизни... :)
-
commander почитай, например, http://www.risearch.org/rus/rumor/index.html и не гони.
-
USE
и не гони.
оргументируй...
-
commander:
обычные БД для этого не годяться
commander:
так же для этого не годиться и PHP
это мне хотелось бы услышать твои аргументы по поводу выше сказаного.
commander:
поскольку скорость оставит желать лучшего
буду рад увидеть реальные цифры: сколько времени занимает обработка запросов БД и сколько времени интерпретатор. какой объем индексируемой информации, структуру базы, платформу, версии ПО.
commander:
Если у тебя поиск по одному сайту
да, а сюда часто приходят люди, которые пишут гугл или яндекс?
commander:
А если введено предложение то все слова в этом пердложении придеться прогонять через этот модуль
ты наверняка смотрел статистику запросов пользователей и понял, что все ищут постоянно целые предложения. а я скажу обратное, что чаще всего идет поиск одного, двух, трех слов.
commander:
стоит даже вникать в эту проблемму
видимо ты так и сделал.
-
USE:
буду рад увидеть реальные цифры
PHP - 1000 слов/сек
Perl - 7000 слов/сек
взято, как ни странно из
http://www.risearch.org/rus/rumor/index.html
если опять начнете флейм и грызню - тему прикрою на.
USE
аргументов, кстати в предидущем посте я так и не нашел.
только кучка встречных вопросов с наездами.
-
потом ИМХО словоформенный поиск подошел бы либо для больших (!) библиотек либо для большик поисковых систем.
и там и там врядли используются скриптовые языки и обыкновенный хостинг (по крайней мере на яндексе точно не на перле написано)
-
USE
1. В больших поисковых системах используються так называемые индексы загруженные в оперативную память сервера...
2. Так же не используються скриптовые языки! Как правило С++ и ему подобные языки.
буду рад увидеть реальные цифры
3. Буду рад не предоставить эту информацию... т.к. это комерческая тайна...
да, а сюда часто приходят люди, которые пишут гугл или яндекс?
4. Не очень понял этого утверждения...
ты наверняка смотрел статистику запросов пользователей и понял
5. Да действительно смотрел статистику запросов одного из крупнейших поисковиков рунета (по понятным причинам какого сказать не могу) 90% поиск порнухи (я был в шоке неужели народ в инет лезет только за порно)
видимо ты так и сделал.
6. К счастью нет...
-
ThE0ReTiC
не пора ли переезжать в Веб технологии? :)
-
commander
пока нет.
-
ThE0ReTiC:
PHP - 1000 слов/сек Perl - 7000 слов/сек
это скорость поиска по словарю.
ты недочитал вопроса.
Работа поисковой системы с ипользованием словаря словоформ, мне показалась удовлетворительной, если брать во внимание следующие данные:
1. объем индексируемой информации - 10-12 Мб
2. поисковый бот написан на Perl
3. поисковая машина на PHP
4. хранение данных в СУБД MySQL
По поводу быстродействия, могу сказать, что работа поисковой системы занимала не много не мало, а от 0,01 до 0,2 секунды в зависимости от количества результатов, загружености, конечно же количества слов в запросе.
по поводу количества слов в запросе: в Стокгольмском университете Д.Карлгрен и К.Франзен проводили небольшой эксперимент над студентами. Брали две группы студентов и один и тот же сайт с двумя версиями поиска, на одном было маленькое поле ввода текста, а в другом большое. так результаты показали следующее: первая группа вводила в среднем 2,8 слова, а вторая 3,2. что в свою очередь говорит о том, что в среднем ищут 3 слова.
ThE0ReTiC:
словоформенный поиск подошел бы либо для больших (!) библиотек либо для большик поисковых систем
подошел бы. но некоторые компании не имеют даже нормального с использованием ранжирования страниц, учетом релевантности слов и т.п. зато как приятно, когда ты заходишь на сайт, ищешь, и система выдает результаты, которые тебя устраивают и в результатах есть какой-то смысловой порядок.
скажем на сайте кенон поиск написан на ПХП. работает, но работает криво и странно.
ThE0ReTiC:
и там и там врядли используются скриптовые языки и обыкновенный хостинг (по крайней мере на яндексе точно не на перле написано)
понимаю. но я говорю о небольшом сайте, на котором есть контент, который ищут. почему нельзя этот поиск сделать таким, чтобы получать удовольствия от этого процесса ;-) (о затратах я, конечно, не говорю)
-
commander:
В больших поисковых системах
я сомневаюсь, что кто-то собирается писать большую поисковую систему. хотите переплюнуть гугл?
commander:
это комерческая тайна
:-))) чья комерческая тайна? компанию назови. или это тоже тайна?
-
USE:
это скорость поиска по словарю.
значит реальная скорость поиска будет еще меньше
USE:
о затратах я, конечно, не говорю
так милок в них все и упирается.
как по-твоему, если человек делает сайт за 500 уе он будет платить еще 1500 за подобный минияндекс?
на бывает неразрешимых задач.
бывает недостаточное финансирование и недостаточные сроки на реализацию.
-
commander:
Проблемма в том, что вместо одного слова алгоритм должен прогнать поиск по 5 - 50 словам
это ж когда надо по 50 словах?
-
USE
Охота на уток с шестиствольным авиацонным пулейметом, тоже довольно интересное занятие... Возможно кто-то получит удовольствие от этого процесса...
Качественный поиск по сайту можно сделать и без применения словаря словоформ... За (!)гораздо(!) меньшее время...
-
commander:
меньшее время
время чего? разработки или время поиска?
-
commander:
Охота на уток с шестиствольным авиацонным пулейметом
и что в этом плохого? главное убить зверя.
зато с рогатки по МИГу стрелять куда лучше, правда?
-
ThE0ReTiC
о затратах речь не шла вплоть до "Сообщение № 110104". в этом треде в затраты ничего не упирается.
ThE0ReTiC:
как по-твоему, если человек делает сайт за 500 уе он будет платить еще 1500 за подобный минияндекс? на бывает неразрешимых задач.
не будет. но если есть компания, которая скажем позиционируется на рынке как разработчик программного обеспечения, что мешает двух человек посадить на проект создания поисковой системы. за месяц сделать такое более-менее рабочее чудо реально.
-
все перцы.
вы меня утомили.
перехали во флейм.
-
разрешите откланяться.
-
хотите переплюнуть гугл?
Почему бы и нет... ? К тому же google не сможет уже поменять алгоритм поиска... Без фантастических финансовых вложений... слишком много серверов...
это ж когда надо по 50 словах?
не очень понял..
время чего? разработки или время поиска?
разработки...
и что в этом плохого? главное убить зверя.
Тогда каждый килограм по стоимотью будет сравним с платиной...
зато с рогатки по МИГу стрелять куда лучше, правда?
нет не правда.. и причем тут это сравнение?
но если есть компания, которая скажем позиционируется на рынке как разработчик программного обеспечения, что мешает двух человек посадить на проект создания поисковой системы. за месяц сделать такое более-менее рабочее чудо реально.
Большая ошибка владельцев компании! Двоих лучших специалистов посадить за содание "(!) более-менее (!) рабочее чудо" просто глупо...