Как стать автором
Обновить
13.12

Поисковые технологии *

От AltaVista до Яндекса

Сначала показывать
Порог рейтинга
Уровень сложности

Как я чтение всего контента на RSS переводил

Уровень сложности Простой
Время на прочтение 13 мин
Количество просмотров 4.6K

TL;DR В статье рассказывается о том, как мне удалось перевести чтение лент в ВКонтакте**, Telegram, Facebook*, Instagram**, Reddit и почтовых рассылок в единый сервис InoReader. Причем почти без написания своих велосипедов.

Подписаться на RSS
Всего голосов 39: ↑38 и ↓1 +37
Комментарии 32

Новости

ActivityPub в Awakari

Уровень сложности Средний
Время на прочтение 2 мин
Количество просмотров 551

Сегодня всё больше и больше сервисов объявляют о своей поддержке ActivityPub, в том числе даже такие, как Tumblr или Threads. И это ожидаемо, так как ActivityPub позволяет сохранять контроль над собственными данными, в отличие от закрытых сервисов Meta. Кроме того, это позволяет обмениваться данными более независимо (Fediverse). Применение ActivityPub не ограничивается социальными сетями и блогами. Есть сервисы для хостинга изображений, видео, музыки и многое другое.

Если рассматривать все эти активности как события, то это позволит сервису Awakari открыть целое новое измерение в Fediverse. Используя Awakari можно отслеживать интересные события из неограниченного множества источников.

Читать далее
Рейтинг 0
Комментарии 9

Как обезопасить веб-сайт от атак ботов через Cloudflare

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 2.9K

Сегодня расскажу как быстро и просто можно заблокировать вредных ботов через Cloudflare и дать дорогу полезным ботам от Google и Яндекс.

Читать далее
Всего голосов 8: ↑4 и ↓4 0
Комментарии 5

Как оценить работу SEO-подрядчика и проверить эффективность продвижения?

Время на прочтение 6 мин
Количество просмотров 2.1K

SEO-оптимизация – это комплекс работ, направленный на повышение позиций сайта в поисковике. Вот только как компании по производству окон или интернет-магазину определить, насколько добросовестно специалист выполняет свои обязанности? Какие KPI-показатели должны присутствовать в отчетах, сказывается ли стратегия продвижения на увеличении продаж, сколько времени занимает SEO-оптимизация? Об этом расскажем в статье.

Читать далее
Всего голосов 6: ↑4 и ↓2 +2
Комментарии 2

Истории

Таинственные EASM и где они обитают. Часть 3. Где ты?

Время на прочтение 3 мин
Количество просмотров 457

В заключительной части исследования эксперты СайберОК сравнивают предоставление информации ASM-системами с точки зрения пользователя. Прочитать первую часть можно тут, а вторую тут.

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Комментарии 0

После RSS

Уровень сложности Средний
Время на прочтение 4 мин
Количество просмотров 2.1K

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

Читать далее
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 4

Поисковый движок в 80 строках Python

Время на прочтение 11 мин
Количество просмотров 11K

В сентябре я устроился на должность поискового дата-саентиста и с тех пор часть моих обязанностей заключается в работе с Solr — опенсорсным поисковым движком на основе Lucene. Я знал основы работы поискового движка, но мне хотелось понять его ещё лучше. Поэтому я закатал рукава и решил создать его с нуля.

Давайте поговорим о целях. Слышали когда-нибудь о «кризисе сложности обнаружения маленьких веб-сайтов»? Проблема в том. что маленькие веб-сайты наподобие моего невозможно найти при помощи Google или любого другого поискового движка. Какова же моя миссия? Сделать эти крошечные веб-сайты снова великими. Я верю в возвращение славы этих малышей вдали от SEO-безумия Google.

В этом посте я подробно расскажу о процессе создания поискового движка с нуля на Python. Как обычно, весь написанный мной код можно найти в моём GitHub (репозиторий microsearch). Эта реализация не будет притворяться готовым к продакшену поисковым движком, это лишь полезный пример, демонстрирующий внутреннюю работу поискового движка.

Кроме того, мне стоит признаться, что в заголовке поста я слегка преувеличил. Да, поисковый движок действительно реализован примерно в 80 строках Python, но я ещё и писал вспомогательный код (краулер данных, API, HTML-шаблоны и так далее), из-за которого весь проект становится немного больше. Однако я считаю, что интересная часть проекта находится в поисковом движке, который состоит из менее чем 80 строк.

P.S. Написав этот пост и microsearch, я осознал, что пару лет назад нечто похожее написал Барт де Гёде. Моя реализация очень похожа на работу Барта, но я считаю что кое-что улучшил, в частности: (1) мой краулер асинхронный, что сильно ускоряет работу, (2) я реализовал пользовательский интерфейс, позволяющий взаимодействовать с поисковым движком.

Читать далее
Всего голосов 29: ↑29 и ↓0 +29
Комментарии 4

«Душа молчит, хоть слышит всё вокруг»: как мы отучаем генеративные модели галлюцинировать

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 7.3K

Вот так когда-то отвечала языковая модель, когда её просили привести пример стихотворения Бальмонта. Стихотворение с таким названием действительно есть, но начинается оно совсем не так. 

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

Мы, Александр Кайгородов и Светлана Маргасова, обучаем генеративные модели в Яндексе. В этой статье мы расскажем, как заставить генеративные модели перестать придумывать несуществующие факты и как научиться находить эти ошибки, если они всё же случаются. Вы узнаете о том, как использовать внешнюю информацию, опираясь на которую мы можем выполнять как обусловленную генерацию (Retrieval Augmented Generation), так и фактологическую оценку имеющихся генераций (Fact-Check). 

Читать далее
Всего голосов 28: ↑28 и ↓0 +28
Комментарии 32

Внедрение Elasticsearch с Ruby on Rails для расширенного поиска

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 1.2K

Elasticsearch - это поисковый движок, который позволяет в реальном времени работать с огромными объемами данных. Он основан на Lucene и предлагает не только полнотекстовый поиск, но и сложные запросы к данным, включая агрегацию.

Ruby on Rails — это фреймворк, который делает акцент на скорости и простоте разработки. Используя принципы convention over configuration и DRY, Rails позволяет сосредоточиться на уникальной логике приложения, минимизируя количество шаблонного кода.

В статье рассмсотрим как использовать Elasticsearch вместе с Ruby on Rails для реализации поиска внутри приложения.

Читать далее
Всего голосов 14: ↑11 и ↓3 +8
Комментарии 2

Таинственные EASM и где они обитают. Часть 2. Как ты?

Уровень сложности Средний
Время на прочтение 4 мин
Количество просмотров 659

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

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Комментарии 0

Таинственные EASM и где они обитают. Часть 1. Кто ты?

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 1.1K

Мы, эксперты Сайбер ОК, приглашаем вас в турне по сравнению систем класса External Attack Surface Management. Проверим точность как базовых функций таких систем (определение открытых портов и продуктов на конечных устройствах, нахождение связанных с ними доменов), так и определения уязвимостей. В путь!

Читать далее
Всего голосов 3: ↑2 и ↓1 +1
Комментарии 3

CodeLLM теперь в Поиске Brave

Уровень сложности Простой
Время на прочтение 3 мин
Количество просмотров 1.4K

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

Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 4

Про автоматическое SEO продвижение — стоит ли использовать и когда?

Уровень сложности Средний
Время на прочтение 3 мин
Количество просмотров 3K

Как то на Яндекс Кью попросили ответить на вопрос про автоматическое SEO продвижение — стоит ли его использовать и почему? Показываю на схемах (примерах) когда автоматическое SEO подходит а когда нет.

Читать далее
Всего голосов 15: ↑3 и ↓12 -9
Комментарии 3

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн

Семантический поиск и генерация текста на R. Часть 2

Уровень сложности Средний
Время на прочтение 5 мин
Количество просмотров 880

В первой части говорили про использование поиска и генерации ответа с помощью языковых моделей. В этой части рассмотрим память и агентов.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 0

Хабргорода

Уровень сложности Средний
Время на прочтение 9 мин
Количество просмотров 2.1K

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

Для этого нужны данные статей Хабра, названия городов с координатами и поиск этих названий в текстах статей. Задача осложняется великим и могучим языком со склонениями и многозначностью слов. Создание списка статей с Хабра за 2023 год по городам мне чем-то напомнило работу первых поисковых движков в рунете. Теперь я понимаю как кусали себя за локти программисты тех дней!

Читать далее
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 9

Семантический поиск и генерация текста на R. Часть 1

Уровень сложности Средний
Время на прочтение 10 мин
Количество просмотров 1.9K

Для этой задачи использую LLM (Large Language Models - например, chatGPT или opensouce модели) для внутренних задач (а-ля поиск или вопрос-ответную систему по необходимым данным).

Я пишу на языке R и также увлекаюсь NLP (надеюсь, я не один такой). Но есть сложности из-за того, что основной язык для LLM - это python. Соответственно, на R мало примеров и документации, поэтому приходится больше времени тратить, чтобы “переводить” с питона, но с другой стороны прокачиваюсь от этого.

Чтобы не городить свою инфраструктуру, есть уже готовые решения, чтобы быстро и удобно подключить и использовать. Это LangChain и LlamaIndex. Я обычно использую LangChain (дальше он и будет использоваться). Не могу сказать, что лучше, просто так повелось, что использую первое. Они написаны на питоне, но с помощью библиотеки reticulate всё работает и на R.

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 4

Как поисковые алгоритмы меняли SEO: краткий обзор последних 15 лет

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 2.3K

Рассмотрим некоторые известные алгоритмы Яндекса, под влиянием которых менялся внешний вид и логика поисковой выдачи, а вместе с ней методы работы SEO-специалистов.  

Читать далее
Всего голосов 10: ↑6 и ↓4 +2
Комментарии 3

Мой первый прототип поискового движка

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 7.1K

Я реализовал первый прототип собственного механизма поиска, который сокращённо назвал PSE (Personal Search Engine). Создал я его с помощью трёх скриптов Bash, возложив всю основную работу на sqlite3, wget и PageFind.

Браузер Firefox вместе с Newsboat сохраняют полезную информацию в базах данных SQLite. В moz_places.sqlite содержатся все посещённые URL-адреса и адреса закладок (то есть moz_bookmarks.sqlite базы данных SQLite). У меня получилось около 2000 закладок. Это меньше, чем я предполагал, так как многие оказались нерабочими из-за битых ссылок.

Нерабочие URL-адреса страниц сильно замедляют процесс сбора, так как wget приходится ожидать истечения различных таймаутов (например, DNS, ответа сервера, время скачивания). URL-адреса из «истории» составили бы интересную коллекцию для сбора, но тут не обойтись без списка исключений (например, нет смысла сохранять запросы к поисковым системам, веб-почте, онлайн-магазинам). Изучение этого вопроса я отложу до следующего прототипа.
Читать дальше →
Всего голосов 57: ↑55 и ↓2 +53
Комментарии 26

Объективные показатели кризиса репутации бренда в интернете

Уровень сложности Простой
Время на прочтение 9 мин
Количество просмотров 1.3K

Выступление на конференции Optimization 2023 о базовых характеристиках кризиса репутации бренда в интернете.

Хотите прочесть?
Всего голосов 12: ↑6 и ↓6 0
Комментарии 12

Как конструктор диалогов прокачал Робота Макса

Уровень сложности Простой
Время на прочтение 8 мин
Количество просмотров 1.6K

Привет, Хабр! На связи команда контента Робота Макса, которая отвечает за структуру и логику его ответов, а также разрабатывает и выводит эти ответы в прод.

У Робота Макса уникальная по объёму и потребностям аудитория. Чтобы дать всем простые и полезные ответы, необходим большой объём контента. До 2023 года мы вручную работали с базой знаний и разрабатывали диалоги, но достигли потолка человеческих ресурсов и решили оптимизировать трудозатраты. О появлении цифрового ассистента на Госуслугах рассказывали в другой статье на Хабре. В этой поделимся нашим опытом оптимизации создания диалогов и расскажем, в каком направлении хотим двигаться дальше.

Читать далее
Всего голосов 17: ↑17 и ↓0 +17
Комментарии 8

Вклад авторов