Pull to refresh
0
0
Анна @planet711

ds

Send message

Семантический поиск: от простого сходства Жаккара к сложному SBERT

Reading time10 min
Views27K

В материале, переводом которого мы решили поделиться к старту курса о машинном и глубоком обучении, простым языком рассказывается о семантическом поиске, статья охватывает шесть его методов; начиная с простых сходства по Жаккару, алгоритма шинглов и расстояния Левенштейна, автор переходит к поиску с разреженными векторами — TF-IDF и BM25 и заканчивает современными представлениями плотных векторов и Sentence-BERT. Простые примеры сопровождаются кодом и иллюстрациями, а в конце вы найдёте ссылки на соответствующие блокноты Jupyter.

Читать далее
Total votes 13: ↑12 and ↓1+12
Comments1

Регулярные выражения в Python от простого к сложному. Подробности, примеры, картинки, упражнения

Reading time25 min
Views1.5M

Регулярные выражения в Python от простого к сложному




Решил я давеча моим школьникам дать задачек на регулярные выражения для изучения. А к задачкам нужна какая-нибудь теория. И стал я искать хорошие тексты на русском. Пяток сносных нашёл, но всё не то. Что-то смято, что-то упущено. У этих текстов был не только фатальный недостаток. Мало картинок, мало примеров. И почти нет разумных задач. Ну неужели поиск IP-адреса — это самая частая задача для регулярных выражений? Вот и я думаю, что нет.
Про разницу (?:...) / (...) фиг найдёшь, а без этого знания в некоторых случаях можно только страдать.

Плюс в питоне есть немало регулярных плюшек. Например, re.split может добавлять тот кусок текста, по которому был разрез, в список частей. А в re.sub можно вместо шаблона для замены передать функцию. Это — реальные вещи, которые прямо очень нужны, но никто про это не пишет.
Так и родился этот достаточно многобуквенный материал с подробностями, тонкостями, картинками и задачами.

Надеюсь, вам удастся из него извлечь что-нибудь новое и полезное, даже если вы уже в ладах с регулярками.
Читать дальше →
Total votes 99: ↑98 and ↓1+97
Comments66

Стандарт C++20: обзор новых возможностей C++. Часть 5 «Корутины»

Reading time9 min
Views17K


25 февраля автор курса «Разработчик C++» в Яндекс.Практикуме Георгий Осипов рассказал о новом этапе языка C++ — Стандарте C++20. В лекции сделан обзор основных нововведений Стандарта, рассказывается, как их применять уже сейчас и чем они могут быть полезны.

При подготовке вебинара стояла цель сделать обзор всех ключевых возможностей C++20. Поэтому вебинар получился насыщенным. Он растянулся на почти 2,5 часа. Для вашего удобства мы разбили текст на шесть частей:

  1. Модули и краткая история C++.
  2. Операция «космический корабль».
  3. Концепты.
  4. Ranges.
  5. Корутины.
  6. Другие фичи ядра и стандартной библиотеки. Заключение.

Это пятая часть, кратко рассказывающая о корутинах, или сопрограммах, в современном C++.

В программировании есть два стула — эффективность и красота. И если вы пишете эффективные программы и оптимизированный код, то иногда приходится жертвовать понятностью, читаемостью и, как следствие, надёжностью.



Но существуют решения, позволяющие усидеть на двух стульях.

Мотивация


Очень часто при программировании возникает задача вернуть из функции не один объект, а целый набор. Есть несколько вариантов решения:
Читать дальше →
Total votes 16: ↑15 and ↓1+21
Comments14

Лабиринты из линий: превращаем сложный сценарий в понятную схему на языке ДРАКОН

Reading time7 min
Views5.1K

Сценарии для чат-ботов обычно создаются в виде блок-схем. Это удобно для проектирования — понятно, за какой репликой следует ответ и что происходит дальше. Но чтобы разобраться в схеме, команда тратит десятки часов: при больших сценариях результат выглядит крайне запутанным и похож на лабиринт. Это затягивает разработку, а её стоимость растёт. Проблем становится ещё больше, когда в схеме что-то нужно поменять.

Меня зовут Кирилл Богатов, я дизайнер разговорных продуктов в KODE. Я нашёл способ упрощать сложные схемы при помощи языка ДРАКОН. В статье расскажу о том, как я к нему пришёл, чем он так хорош и как с его помощью мы стали тратить на проектирование почти вдвое меньше времени.

Читать далее
Total votes 9: ↑7 and ↓2+7
Comments71

Как улучшить блок-схемы алгоритмов по ГОСТ 19.701-90? Эргономичный визуальный алгоритмический язык ДРАКОН. Критерии

Reading time27 min
Views37K

Статья содержит анализ и критику стандарта ГОСТ 19.701-90 в части схем алгоритмов. Предлагается для записи алгоритмов создать новый стандарт, основанный на эргономичном визуальном алгоритмическом языке ДРАКОН. Дается сравнительный анализ блок-схем алгоритмов по ГОСТ 19.701-90 и дракон-схем.

Читать далее
Total votes 37: ↑28 and ↓9+27
Comments155

Запросы в PostgreSQL: 3. Последовательное сканирование

Reading time16 min
Views16K

В предыдущих статьях я рассказал об этапах выполнения запросов и о статистике.

Теперь пришла пора рассмотреть самые важные узлы, из которых может состоять план. Я начну со способов доступа к данным, и в этой статье расскажу о последовательном сканировании.

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

Читать далее
Total votes 16: ↑16 and ↓0+16
Comments5

Самый полный стартовый гайд по ботам Telegram (python)

Reading time5 min
Views250K

QQ Хабр! В этом гайде мы пройдемся по каждому шагу создания ботов в Telegram - от регистрации бота до публикации репозитория на GitHub. Некоторым может показаться, что все разжевано и слишком много элементарной информации, но этот гайд создан для новичков, хотя будет интересен и для тех, кто уже занимался разработкой в Telegram. Сегодня мы будем делать бота, который отвечает на заданные вопросы.

Читать далее
Total votes 29: ↑16 and ↓13+8
Comments23

Обзор методов чистки данных

Reading time9 min
Views8.2K

Приветствую! Меня зовут Игорь Буянов, я NLP-разработчик в команде MTS AI. В рамках рабочих проектов группы обработки естественного языка я провожу исследования в области активного обучения, редукции шума и, в целом, занимаюсь подготовкой и обработкой датасетов.

В этой статье будут рассмотрены методы чистки данных – noise reduction – и результаты тестирования алгоритмов.

Чистка данных – значение и применение

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

Несмотря на то, что существует много способов разметки и контроля качества данных, подобный шум всегда будет присутствовать в датасетах. В задачах классификации одна из причин шума – невозможность однозначно провести границу между классами. Для большинства современных моделей наличие шума в данных объемом до 10% – несерьезная проблема. Поэтому, если датасет создан грамотно или найденный набор данных надежен, результат будет удовлетворительным. 

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

Читать далее
Total votes 4: ↑4 and ↓0+4
Comments4

Как вычисляется среднее время до отказа и вероятность безотказной работы?

Reading time4 min
Views127K
Понятиям MTTF (Mean Time To Failure — среднее время до отказа) и другим терминам теории надежности посвящено большое количество статей, в том числе на Хабре (см., например, тут). Вместе с тем, редкие публикации «для широкого круга читателей» затрагивают вопросы математической статистики, и уж тем более они не дают ответа на вопрос о принципах расчета надежности электронной аппаратуры по известным характеристикам ее составных элементов.

В последнее время мне довольно много приходится работать с расчетами надежности и рисков, и в этой статье я постараюсь восполнить этот пробел, отталкиваясь от своего предыдущего материала (из цикла о машинном обучении) о пуассоновском случайном процессе и подкрепляя текст вычислениями в Mathcad Express, повторить которые вы сможете скачав этот редактор (подробно о нем тут, обратите внимание, что нужна последняя версия 3.1, как и для цикла по machine learning). Сами маткадовские расчеты лежат здесь (вместе с XPS- копией).
Читать дальше →
Total votes 25: ↑23 and ↓2+21
Comments27

Теория вероятностей в разработке: где применяется и что можно изучить для более глубокого понимания темы

Reading time4 min
Views3.9K

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

Читать далее
Total votes 7: ↑4 and ↓3+7
Comments1
2

Information

Rating
Does not participate
Location
Санкт-Петербург и область, Россия
Registered
Activity