Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.85/48: Рейтинг темы: голосов - 48, средняя оценка - 4.85
 Аватар для SanychBY
39 / 46 / 3
Регистрация: 04.06.2013
Сообщений: 1,532

Ядро для умного поиска. Алгоритм. Создать поиск для сайта

12.08.2013, 23:34. Показов 9846. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Хочу реализовать поиск по статьям на сайте. И надеюсь на ваше помощь.
Есть таблица, где мы храним айди статьи,заголовок статьи, текст статьи, тему статьи.
И вот пользователей посылает поисковую фразу.(все методы защиты и проверок опустим)

1) Если есть 100% совпадение поискового запроса с заголовком, даем это статьи 99999999999999999(она должна идти вверху выдачи) очков веса.
2) Если есть 100% совпадение поискового запроса в тексте, даем статье 999999999999(вверху выдачи, но ниже совпадения с заголовком) очков веса.
3) Если есть 100% совпадение с темой, даем статье количество слов в поисковой фразе + 2 очков веса.
4) Удаляем у каждого окончания из заголовков,статей и поисковой фразы(учитывая специфику русского языка)
5) Удаляем "слова паразиты" из заголовков,статей и поисковой фразы (как, что, почему и тд и тп);
6)Повторяем 1,2,3 пункты с учетом веса -1 для каждого пункта относительно очков из пунктов выше соответственно;
7) Разбиваем строку на слова.(по пробелу)
8) Ищем слова в тексте статей, одно совпадение = 1 очко веса из оставшихся статей не попавших в результат по пунктам выше.
9) Делаем перевод по клавиатуре с англ на русск и наоборот (например вы ввели "ghbdtn" , понятно что вряд-ли такое будет в тексте. Переводим на "привет" и выполняем пункты выше).

В результате мы должны получить массив содержащий айди статьи и связанный им вес отсортированный по убыванию по весу. Далее, просто делаем выборку по имеющемуся массиву и выводим результат. чем больше вес, тем выше статья в результате.

Перейдем непосредственно к вопросам:

1) Что Вы в общем можете сказать по поводу этого алгоритма? На сколько он "умный".
2) Как можно улучшить данный алгоритм с точки зрения логики и сделать его более умным?
3) Какие фишки можно добавить для повышения информативности?
4) Подскажите как реализовать пункт 9.

Спасибо.
Кликните здесь для просмотра всего текста

P.S. Буду рад если подкинете наброски кода или ссылки на статьи.
P.S.S. Сам код ядра будет опубликован в интернете в открытом доступе по мере его завершения.
P.S.S.S. В интернете рылся, но хорошей варианта реализации, а главное понятного, так и не нашел, поэтому решил написать свой.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.08.2013, 23:34
Ответы с готовыми решениями:

Трафиконесущее семантическое ядро для любого сайта.
Предлагаю услугу по составлению качественного, трафиконесущего семантического ядра, как для разрабатывающегося проекта, так и для готового...

Составляем семантическое ядро для сайта на английском языке
Подскажите пожалуйста, как составлять семантическое ядро для сайта, основной язык которого - английский. Продвигается, естественно, под...

Как я писал семантическое ядро для своего сайта
Вступление: Было время, когда я просто гулял по просторам Интернета и находил разные сайты с одинаковым контентом. Мне это стало...

26
 Аватар для SanychBY
39 / 46 / 3
Регистрация: 04.06.2013
Сообщений: 1,532
13.08.2013, 19:46  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от NEbO Посмотреть сообщение
вам с такими вопросами в теорию надо глядеть, а не в пхп код. язык тут вообще ни при чем, хоть на брейнф*ке пишите
Египетские боги. Пока про саму реализацию(код) я молчу, это отдельная тема. Речь идет о алгоритме. И пока только Fuilie что то предложил на мой взгляд стоящее.
0
601 / 468 / 73
Регистрация: 22.01.2009
Сообщений: 1,180
Записей в блоге: 1
13.08.2013, 19:46
SanychBY, гуглите про байесовы сети. там еще и обучалка есть. думаю, можно этот подход как-то на поиск отмапить, при желании. а вообще -- нейронные сети. ага
1
 Аватар для SanychBY
39 / 46 / 3
Регистрация: 04.06.2013
Сообщений: 1,532
13.08.2013, 19:49  [ТС]
NEbO, ну вот это ближе. Близко.
0
601 / 468 / 73
Регистрация: 22.01.2009
Сообщений: 1,180
Записей в блоге: 1
13.08.2013, 20:01

Не по теме:

Fuilie, просто если вы еще не заметили, SanychBY хочет готовое решение и работающее во всех случаях. При этом совершенно не хочет что-то изучать самостоятельно. Посмотрите его другие темы. Я его уже пару раз попытался от этой привычки отучить, но у меня не получилось. Если есть желание что-то писать дальше -- делайте поправку на это. Просто сравните мою репутацию и его, если уж на слово не верите:) Ну честно, как об стенку горох. Потом он вас спросит, а как таблицу создавать, почему у него с кодировками проблемы, почему его решение работает только на N-количестве, а на M -- не работает. Я почему-то думаю, он может и станет хорошим программистом (иначе бы просто игнорил, и перестал бы отвечать в его темы вообще), когда-то, но только когда за ум возьмется. Вопрос в том, как научить его думать самостоятельно. Эта методологическая задача мне не под силу... может, у вас получится?:)



Добавлено через 1 минуту
SanychBY, на самом деле это вообще тут ни при чем:-D это я так ляпнул, чтоб вас чем-то интересным занять) хотя, посмотрите, может у вас что-то и получится

Добавлено через 3 минуты
"Поиск для сайта на основе нейронной сети" -- хорошее название для магистерской работы, кстати, например... может, кто-то что-то как-то и продвинулся в этом направлении, не знаю. мне об этом неизвестно
1
 Аватар для SanychBY
39 / 46 / 3
Регистрация: 04.06.2013
Сообщений: 1,532
14.08.2013, 00:17  [ТС]
Эх, эти крестьянские дети.

Добавлено через 13 минут
NEbO, Ты бы дал сначала где учить, а то умными словами говоришь и все(как обычно). Сейчас скажет googling, но я Вам скажу что вот почему то по Вашей информации я ничего найти не могу или они слишком заумное.
Цитата Сообщение от NEbO Посмотреть сообщение
Потом он вас спросит, а как таблицу создавать, почему у него с кодировками проблемы, почему его решение работает только на N-количестве, а на M -- не работает
Да спрошу. И ошибка будет в какой нить запятой или кавычке. Вы исправите и я радостно скажу Вам спасибо. Тут такого добра хватает. И думаю Вы не пострадаете если ответите.
Цитата Сообщение от NEbO Посмотреть сообщение
Fuilie, просто если вы еще не заметили, SanychBY хочет готовое решение и работающее во всех случаях.
Ну а вот это уже не правда. Я придумал сам алгоритм, а Вы начали что то там писать про другие сервисы, причем совершенно ничего не поясняя.
Цитата Сообщение от NEbO Посмотреть сообщение
SanychBY, на самом деле это вообще тут ни при чем:-D это я так ляпнул, чтоб вас чем-то интересным занять) хотя, посмотрите, может у вас что-то и получится
Добавлено через 3 минуты
"Поиск для сайта на основе нейронной сети" -- хорошее название для магистерской работы, кстати, например... может, кто-то что-то как-то и продвинулся в этом направлении, не знаю. мне об этом неизвестно
Ну и кто Вы после этого. Хорошо что дальше статьи на википедии меня не хватило на сегодня, а я бы рылся, читал.
Цитата Сообщение от NEbO Посмотреть сообщение
Я его уже пару раз попытался от этой привычки отучить
Совершенно не почувствовал.
0
 Аватар для AndreyDyakonov
122 / 120 / 7
Регистрация: 21.04.2013
Сообщений: 615
14.08.2013, 18:45
Вот здесь описание алгоритма http://habrahabr.ru/post/114997/

Добавлено через 3 минуты
а тут даже с примером http://habrahabr.ru/post/123320/ правда на цпп, но разница в синтаксисе невелика
0
 Аватар для SanychBY
39 / 46 / 3
Регистрация: 04.06.2013
Сообщений: 1,532
13.10.2013, 22:37  [ТС]
Вот почти заканчиваю писать свой поиск(писал по немного). Но есть одно но. Запрос обрабатываем не плохо, со всеми примочками дабы придать поиску гуглоподобный вид, но это все занимает сравнительно много времени. Есть 7 тестовых статей. Среднее время 0.003 секунды при выдаче 3 статей. Я решил немного поднагрузить сервер и прописал в цикле выполнить функцию поиска 1000 раз. Ушло 1.2 секунды, в то время как например гугл на 80 600 000 результатов тратит примерно 0.2 секунды! Что у них там за сервера?!

Цитата Сообщение от AndreyDyakonov Посмотреть сообщение
от здесь описание алгоритма http://habrahabr.ru/post/114997/
Добавлено через 3 минуты
а тут даже с примером http://habrahabr.ru/post/123320/ правда на цпп, но разница в синтаксисе невелика
Все немного не то.

P.S. Исходник поиска скоро выложу, только приведу его в приличный вид
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.10.2013, 22:37
Помогаю со студенческими работами здесь

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

Симантическое ядро сайта. Как проще создать?
Всем привет! Посоветуйте простые инструменты (проги) или способы, по подбору симантического ядра сайта по основным ПС. Спасибо!

Создать программу для поиска первого нечетного элемента в заданном массиве методом бинарного поиска
Бинарный поиск Первый нечетный, помогите пожалуйста.

Разработать алгоритм для поиска по списку
Немного в ступоре. Не могу разработать алгоритм, для поиска по списку. Вкратце, задача такова: начальные данные: список, каждый член...

Алгоритм поиска решений для CrackMe
Зашла на сайт касперского, увидела запись о стажировке, тесты попроходила и заинтересовало задание crackme. Прикреплен файл exe, при...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru