|
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
|
|
| 12.08.2013, 23:34 | |
|
Ответы с готовыми решениями:
26
Трафиконесущее семантическое ядро для любого сайта. Составляем семантическое ядро для сайта на английском языке Как я писал семантическое ядро для своего сайта |
|
39 / 46 / 3
Регистрация: 04.06.2013
Сообщений: 1,532
|
||
| 13.08.2013, 19:46 [ТС] | ||
|
0
|
||
|
39 / 46 / 3
Регистрация: 04.06.2013
Сообщений: 1,532
|
|
| 13.08.2013, 19:49 [ТС] | |
|
NEbO, ну вот это ближе. Близко.
0
|
|
| 13.08.2013, 20:01 | |
|
Не по теме: Fuilie, просто если вы еще не заметили, SanychBY хочет готовое решение и работающее во всех случаях. При этом совершенно не хочет что-то изучать самостоятельно. Посмотрите его другие темы. Я его уже пару раз попытался от этой привычки отучить, но у меня не получилось. Если есть желание что-то писать дальше -- делайте поправку на это. Просто сравните мою репутацию и его, если уж на слово не верите:) Ну честно, как об стенку горох. Потом он вас спросит, а как таблицу создавать, почему у него с кодировками проблемы, почему его решение работает только на N-количестве, а на M -- не работает. Я почему-то думаю, он может и станет хорошим программистом (иначе бы просто игнорил, и перестал бы отвечать в его темы вообще), когда-то, но только когда за ум возьмется. Вопрос в том, как научить его думать самостоятельно. Эта методологическая задача мне не под силу... может, у вас получится?:) Добавлено через 1 минуту SanychBY, на самом деле это вообще тут ни при чем:-D это я так ляпнул, чтоб вас чем-то интересным занять) хотя, посмотрите, может у вас что-то и получится Добавлено через 3 минуты "Поиск для сайта на основе нейронной сети" -- хорошее название для магистерской работы, кстати, например... может, кто-то что-то как-то и продвинулся в этом направлении, не знаю. мне об этом неизвестно
1
|
|
|
39 / 46 / 3
Регистрация: 04.06.2013
Сообщений: 1,532
|
|||||
| 14.08.2013, 00:17 [ТС] | |||||
|
Эх, эти крестьянские дети.
Добавлено через 13 минут NEbO, Ты бы дал сначала где учить, а то умными словами говоришь и все(как обычно). Сейчас скажет googling, но я Вам скажу что вот почему то по Вашей информации я ничего найти не могу или они слишком заумное. Совершенно не почувствовал.
0
|
|||||
|
122 / 120 / 7
Регистрация: 21.04.2013
Сообщений: 615
|
|
| 14.08.2013, 18:45 | |
|
Вот здесь описание алгоритма http://habrahabr.ru/post/114997/
Добавлено через 3 минуты а тут даже с примером http://habrahabr.ru/post/123320/ правда на цпп, но разница в синтаксисе невелика
0
|
|
|
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 секунды! Что у них там за сервера?!
P.S. Исходник поиска скоро выложу, только приведу его в приличный вид
0
|
||
| 13.10.2013, 22:37 | |
|
Помогаю со студенческими работами здесь
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 существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|