Bazist

Рейтинг
43
Регистрация
15.01.2014

Тестирую потихоньку поиск. Конечно большой процент муссорных или неочевидных результатов. Частично сказывается маленькая база "знаний", алгоритму тяжело проассоциировать термин, большой процент случайных вхождений.

И частично, нужно тюнить алгоритм. В целом, если термин хорошо освящен на Хабре, то результаты вполне себе приличные.

Например поисковое слово доска

http://booben.com?q=доска

Выдача топ 5 статей:

Идеальная маркерная доска

Бюджетная маркерная доска

Меловой период

Компьютерный класс в Грузии

Интеллектуальная доска SmartBoard 690

Гугл выдача:

Маркерная доска своими руками / Хабрахабр

Бюджетная маркерная доска / Хабрахабр

Идеальная маркерная доска / Хабрахабр

Интерактивные доски. Зачем они и для кого? / Хабрахабр

Бюджетная доска для писания маркером (Glass ...

Вафелька:
Он еще работает?

Эх, посидел вечер, както прикрутил и запустил ☝

http://booben.com

Пока что подключена только база Хабра (больше 200 тыс статей).

---------- Добавлено 13.08.2014 в 02:58 ----------

Ну и можно сравнить выдачу для типичного запроса.

Например, ищем слово беспилотник.

Гугл выдача:

https://www.google.com.ua/#q=site:habrahabr.ru+%D0%B1%D0%B5%D1%81%D0%BF%D0%B8%D0%BB%D0%BE%D1%82%D0%BD%D0%B8%D0%BA

Бубен выдача:

http://booben.com?q=беспилотник

25_ch:
по привычке набирал в адресной строке браузера yandex.ru, но иногда меня перебрасывало на yandex.ua

Странно, а почему ru открывается ?

Froolex:
Bazist, Попробуйте посмотреть в сторону гео привязки, тематики, социальных факторов (лайки, репосты). Так же рекомендую сделать вам внутренний каталог сайтов, чтобы вы могли присваивать регион, тематику, соц. страницы ресурса, язык, описание и т.п...

Это все ручная работа и "костыли" с которыми работают современные ПС. Чтобы внедрить такие вещи, нужно задействовать крупный штат сотрудников. Я пока что пытаюсь найти красивый, элегантный и главное автоматический алгоритм.

Пока что вижу что тестируемый алгоритм:

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

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

Тоесть если мы проиндексируем корейский форум, то все тоже можно будет сделать в терминах корейского языка. Провести ассоциативные связи.

2. Решает проблему случайных попаданий. Например если слово "Гольф" чаще всего упоминается в контексте авто Фольцваген, то страницы где "Гольф" упоминается как спорт будут отсеяны.

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

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

---------- Добавлено 23.07.2014 в 11:25 ----------

v_ovan:
Кстати да, неплохо сделать, чтобы пользователь мог выбирать что он ищет:
энциклопедические данные, коммерческую информацию, интернет-мемы и т.д.
Потому что однозначно решить какой сайт важней и какая страница максимально релевантна запросу без этого нельзя.

Хочу реализовать в этом направлении поиск по словарям.

Тоесть пользователь в качестве поисковой строки задает не фразу, а словарь.

И дальше выбирается наиболее соответствующие этому словарю страницы.

Добрый День,

Сайт к сожалению не доступен, поскольку срок аренды тестового сервера истек, новой площадки пока еще не подобрал.

Теперь к поисковику. На выходных вернулся к работе над поисковым движком, точнее самой важной его частью, частью ранжирования документов. Удалось реализовать достаточно интересный алгоритм на основе асоциативных связей. Суть его в том, что каждый документ пытается утверждать разные факты о разных сущностях. Так вот наибольший рейтинг получает тот документ, который больше всего говорит о значимых фактах с других страниц. Звучит немного запутано, но проще всего рассмотреть это на каком-то простом примере.

Например есть первая страница, которая утверждает что машины ездят.

Есть вторая страница, которая утверждает, что машины продают.

Так вот побеждает та страница, которая утверждает что машины И ездят И их продают. Она получает максимальный рейтинг, поскольку больше всего содержит фактов о сущности "машины".

Если сравнивать выдачу с другими поисковыми системами, например, Гугл, то получается у поисковика выдача более социально ориентирована. Нельзя сказать что эта выдача лучше или хуже чем у гугла, по сути она просто другая. Гугл старается сделать более "энциклопедическую выдачу". Например, по запросу "золото" пытается вернуть информацию о драгоценном метале и его химическом составе. У меня выдача, более социально ориентирована. Понятие золото, достаточно атрофировано в социальных сетях и подвязано чаще всего к золотовалютным резервам стран, поэтому движок делает релевантными страницы которые хорошо рассказывают о золотовалютных резервах других стран.

Если сделать запросы по технологиям, то хороший рейтинг получают страницы которые "перемывают косточки" технологиям. Например по запросу "винда" поисковик выдает первыми страницами, где говорят о зависаниях, перезагрузках, синих экранах, вирусах и прочьих особенностях технологии. Тогда как Гугл просто пытается рассказать что такое Виндовз в энциклопедической манере.

Доброго всем времени суток.

Пока что к полномаштабной реализации поисковика не приступил.

Но реализовал небольшой сервис по обмену сообщениями.

http://net.pikosec.com

По сути он построен на поисковом движке. Каждое сообщение имеет привязку к тегам. С помощью тегов, можно формировать ленту сообщений.

Подробней здесь есть.

http://net.pikosec.com/map

LDblue:
Демо есть?

Сорри ребята, не сразу увидел куда перенесли тему.

Сейчас на текущей работе запара (в связи с ее сменой),

я планирую вернутся через месяц к озвученым идеям.

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

dlyanachalas:

Ок, я считал в другой плоскости, теперь понятно, как у вас. Теоретически, получается 14 млн слов * 10 млн страниц * 4 (байт) = 560 Тб несжатого индекса :)

В этой формуле почемуто сделано допущение, что в каждой из 10 млн страниц встречаются все 14 млн слов. Конечно это не так.

Расчет примерно такой, в целом словарь содержит 14 млн слов, средняя html страница, например на этом форуме, содержит 50 кб текста и каждый документ содержит всего лишь несколько сотен слов из словаря.

dlyanachalas:

Ок, я считал в другой плоскости, теперь понятно, как у вас. Теоретически, получается 14 млн слов * 10 млн страниц * 4 (байт) = 560 Тб несжатого индекса :)

Конечно, так в лоб, он очень сильно разреженный получится, однако, сжать в 100000 раз всё-таки врядли получится.

Инвертированый индекс потому и называется инвертированым, потому что он перевернут.

Это сделано для того, чтобы поиск какого либо слова сводился к одному запросу по хештаблице.

Опять таки, у Вас формула какаято странная, да и простыми методами Вы просто так не вычислите потенциал сжатия. Это зависит от многих факторов.

Не совсем понял Вашу формулу.

Инвертированый индекс это по сути хештаблица. Ключом выступает слово, велью выступает связной список из набора страниц где это слово встречается.

Что в Вашей формуле 3 и 4 ?

Всего: 144