Я уже делился рассказом о нашем опыте применения искусственного интеллекта в поиске на hh.ru, а сегодня хотел бы остановиться на измерении качества этого поиска поподробнее.
Для нормальной работы поиска крайне важна система метрик — локальных, A/B-тестов, очередей на проде и т. д., и эта система требует отдельного внимания и ресурсов. Неправильно думать, что достаточно просто запилить крутой ML и прикрутить все эти метрики «скотчем»; недостаточно также измерять качество работы уже работающей системы — не так уж важно, использует ли она ML или представляет собой Lucene «из коробки». Читать полностью »
Рубрика «поисковые технологии» - 18
Как в hh.ru тестируют поиск по вакансиям
2018-04-11 в 10:48, admin, рубрики: data science, Блог компании HeadHunter, машинное обучение, метрики продукта, поисковые технологии, Тестирование веб-сервисовПривет!
Примечание переводчика:
Это перевод глоссария ElasticSearch из официальной документации.
Устоявшихся русских терминов для данной предметной области найти не удалось. Пришлось тщательно продумывать как лучше перевести. Кривой термин будет сильно сбивать с толку новичка (а гуру глоссарий неинтересен по определению — и так всё знает). Равно нет никакой пользы от «переводов» вида shard-шард, node-нода, mapping-мэппинг. Тогда уж лучше читать в оригинале. Во избежание путаницы в скобках приведены оригинальные термины.
Явные ошибки и опечатки прошу отправлять в личку. А вот корректность выбора терминов и формулировок определений лучше обсудить в комментариях. Предполагаю, что возможны очень разные мнения. Также, на мой взгляд, кое-что в оригинале написано не сильно удачно и понятно — можно сформулировать лучше, но в переводе старался по возможности обойтись без «отсебятины». Надеюсь на понимание. Спасибо.
Читать полностью »
SSO и Kibana: интеграция Kibana со встроенной аутентификацией Windows (Single Sign-On)
2018-03-08 в 16:42, admin, рубрики: elastic stack, elasticsearch, elk, kibana, SSO, x-pack, xpack, поисковые технологииВ этой статье мне хотелось бы поделиться способом настройки технологии единого входа (SSO) в Elastic Stack, использующим X-Pack для аутентификации пользователей и разграничения доступа к данным.
Naive Spellchecking, или поиск ближайших слов из словаря по метрике Левенштейна на Scala
2017-12-19 в 6:18, admin, рубрики: Dijkstra's algorithm, levenstein, scala, trie, Алгоритмы, поисковые технологии, Программирование, функциональное программированиеПриветствую! В этой статье будет показан алгоритм поиска ближайших к заданному слов из корпуса в терминах метрики Левенштейна. Наивным spellchecking-ом назван потому, что не учитывает ни морфологии, ни контекста, ни вероятности появления скорректированного слова в предложении, однако в качестве первого приближения сойдет вполне. Также алгоритм может быть расширен на поиск ближайших последовательностей из любых других сравнимых объектов, нежели простой алфавит из Char-ов, и, после допиливания напильником, его можно приспособить и для учета вероятностей появления скорректированных слов. Но в данной статье сосредоточимся на базовом алгоритме для слов определенного алфавита, скажем, английского.
Код в статье будет на Scala.
Всех заинтересовавшихся прошу под кат.
Читать полностью »
Как «Дадата» ищет дубли в списках торговых точек. Разбираем алгоритм
2017-11-28 в 13:30, admin, рубрики: fmcg, Алгоритмы, Блог компании HFLabs, дедубликация, дедупликация, поисковые технологии, торговые представители, юр. лицоНаши клиенты хранят списки из тысяч компаний, и обычно там первозданный хаос.
Возьмем список торговых точек, через которые сельхозпроизводитель продает товары по всей стране. Названия магазинов пишут как хотят, поэтому типичный список выглядит так:
- Евразия.
- «САКУРА» Японская кухня.
- Доминант.
- Магазин-бутик «Евразия».
- Милениум, ООО, продуктовый магазин.
- Киви/ООО/Челябинск.
- Супермаркет эко-продуктов «Доминант».
Точки № 1 и № 4 — дубли, № 3 и № 7 — тоже, но поди разберись.
А разобраться надо: когда в списке из 1000 торговых точек 300 дублей, у производителя начинаются проблемы.
Читать полностью »
Парсер на PHP-коленке или как я свою музыкальную коллекцию пополнял
2017-11-27 в 12:39, admin, рубрики: php, promodj, ненормальное программирование, открытые данные, параллельная загрузка, поисковые технологии, Работа со звуком, Регулярные выраженияА началось все с чего? А началось все одним домашним, зимним, субботним вечером… Ну и конечно же с проблемы, для которой искалось решение)
На днях, по своей же глупости, я потерял навеки всю свою коллекцию музыки (Я — DJ, музыкант). Было очень жалко, ведь коллекция была идеально рассортирована, проанализирована на битрейт, тональность и т.д.
Смирился, думаю ладно, буду заново качать все треки. Качать буду с сайта promodj.com
Почему «промоднище», а не какой нибудь soundcloud? Первая причина — я сижу на этом сайте гораздо чаще, чем на остальных музыкальных порталах. Вторая причина — там есть очень удобный поиск с фильтрами а-ля «Топовое за январь 2017 с качеством 320kbps, длиной не больше 10 минут и не является мэшапом».
Как вы сами понимаете, совсем скоро мне настое… надоело нажимать руками кнопочку «Скачать». И тут и началось самое интересное).
Читать полностью »
Как черные SEO-оптимизаторы собирают миллионы посетителей по высоко-актуальным запросам в Яндексе
2017-11-09 в 15:09, admin, рубрики: growth hacking, seo, интернет-маркетинг, поисковая оптимизация, поисковой спам, поисковые технологии, яндексМне казалось, что поисковики давно победили black hat тактики с помощью машинного обучения и других мощных технологий. Сети дорвеев если и остались, то только где-то на обочине интернета, в маргинальных тематиках типа казино или контента для взрослых.
Но недавно я наткнулся сразу на целую кучу спамных сайтов, которые собирают миллионы посетителей из Яндекса, легко побеждают качественные и авторитетные проекты даже в белых нишах.
Анализ файлов robots.txt крупнейших сайтов
2017-11-06 в 18:48, admin, рубрики: data mining, seo, user-agent, Карьера в IT-индустрии, краулеры, поисковая оптимизация, поисковые боты, поисковые технологии, яндексRobots.txt указывает веб-краулерам мира, какие файлы можно или нельзя скачивать с сервера. Он как первый сторож в интернете — не блокирует запросы, а просит не делать их. Интересно, что файлы robots.txt проявляют предположения веб-мастеров, как автоматизированным процессам следует работать с сайтом. Хотя бот легко может их игнорировать, но они указывают идеализированное поведение, как следует действовать краулеру.
По существу, это довольно важные файлы. Так что я решил скачать файл robots.txt с каждого из 1 миллиона самых посещаемых сайтов на планете и посмотреть, какие шаблоны удастся обнаружить.
Я взял список 1 млн крупнейших сайтов от Alexa и написал маленькую программу для скачивания файла robots.txt с каждого домена. После скачивания всех данных я пропустил каждый файл через питоновский пакет urllib.robotparser и начал изучать результаты.
Найдено в yangteacher.ru/robots.txt
Читать полностью »
Проблемы извлечения информации с веб-страниц автоматизированным способом
2017-11-06 в 10:57, admin, рубрики: curl, html, phantomjs, scraping, xpath, веб-аналитика, поисковые технологииИнформация, находящаяся в свободном доступе на веб-сайтах сети Интернет, с одной стороны, кажется общедоступной — если что-то выложено в сеть, то это можно скопировать тем или иным способом. С другой — при попытках автоматизировать сбор и анализ таких данных с какой-нибудь целью (например веб-поиска или статистики), как оказывается, возникает множество проблем в деталях. Поэтому не удивительно, что успешные системы такого рода единичны в глобальном масштабе — Google, Bing, Baidu и Яндекс. В данной статье приведу некоторые примеры с которыми столкнулся лично автор в попытках отладить сбор данных о рынке труда (вакансии, резюме и зарплаты) с публичных веб-сайтов. Это может пригодиться тем, кто вдохновится идеями типа I Don't Need No Stinking API: Web Scraping For Fun and Profit и решит парсить контент с чужих сайтов напрямую вместо того, чтобы договориться с владельцами о доступе к данным по API или другим эффективным способом.Читать полностью »