Обновить
1024K+

Python *

Высокоуровневый язык программирования

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

Определение внимания водителей за рулем — реализация прототипов

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

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

В конце 2022 года нашей команде поступил запрос на решение данной задачи. Было необходимо предложить подходы, используя которые можно понять, насколько устал водитель, занят ли он какими-либо посторонними делами за рулем, куда он смотрит при выполнении маневров, открыты ли у него глаза (не спит ли он) и т.д.

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

Читать далее

Telegram бот, который улучшит любую IT компанию

Время на прочтение2 мин
Охват и читатели16K

Всем привет, в этой статье я хотел бы рассказать о создании бота для мониторинга систем (сайтов) и внутренних сервисов – их доступность/недоступность.

Кому данный бот будет полезен 100%?
Абсолютно всем!

Вы можете мониторить как одну систему, так и хоть 100, получать уведомления в Telegram и оперативно принимать меры по устранению проблем.

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

Первое что мы делаем – это создаем бота в @BotFather. Придумываем имя и получаем токен. Итак, перейдем непосредственно к коду.

Импортируем нужные библиотеки, telebot (pyTelegramBotAPI) хорошая и лёгкая библиотека для создания бота на Python. Библиотека threading импортируется для запуска в несколько потоков.

Читать далее

Учим английский с chatGPT

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

Пожалуй, новости о языковых моделях и их использовании уже немного надоели, но лично я нашел для себя полезное применение - изучать английский, в том числе и разговорный. Посмотрим, что могут нам предложить в этом деле товарищи из openai: совместим gpt-3.5-turbo, whisper и telegram.

Читать далее

Пора забывать GridSearch — встречайте ProgressiveGridSearch. Фракталы в ML, постепенно увеличиваем разрешение

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели8.4K

Здравствуйте, меня зовут Николай Стрекопытов и я придумал как подбирать гиперпараметры бескомпромиссно лучше GridSearch’а. Нужно лишь изменить порядок вычислений. И да, это заявка на обновление индустриального стандарта - скоро вы сможете улучшить свои ML-пайплайны заменой нескольких строчек кода.

Читать далее

Часть 2. Перевод нейронной сети на базе Keras LSTM на работу с матричными операциями

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

В первой части части я перевел обученную модель полносвязной сети на базе Keras на работу с матричными вычислениями. Модель разработана для новостного агрегатора с целью фильтрации нежелательных новостей.

Но если посмотреть статью-руководство от tensorflow, можно увидеть, что одной из рекомендаций по классификации теста является использование сетей долгой краткосрочной памяти (LSTM).

Забегая вперед скажу, что мне не совсем подошла данная сеть, но это, вероятно, особенность моего датасета. Полносвязная сеть с эмбеддином обладает хорошим качеством, предсказуемостью и стабильностью результатов (объяснимое переобучение, влияние архитектуры сети на качество и т.д.). Ну и немаловажно - быстро обучается, в отличие от LSTM.

Но ради "академического" интереса обучим сеть c LSTM для бинароной классификации текста и переведем её также на работу только с матрицами. Это также наглядно покажет, как устроены ячейки LSTM.

Читать далее

Замеряй и ускоряй: как мы сократили время вызова метода в Java-коде в 16 раз

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

Привет, Хабр! Замер производительности кода — не самое простое упражнение для разработчика. Приходится решать кучу сложностей: разбираться с методом, создавать правильные условия. И всё равно можно получить результат с погрешностью, потому что любой метод «не бесплатный» и требует ресурсов процессора.

Меня зовут Александр Певненко, я Java-разработчик в СберТехе. Вместе с командой мы развиваем Platform V DataSpace. Это облачный сервис, который упрощает и ускоряет разработку приложений, используя концепцию Backend-as-a-Service (BaaS) для хранения и управления данными. Я расскажу про наш способ замера производительности кода с помощью бенчмарков. Рассматривать метод будем на примере оптимизации кода в Platform V Dataspace, которая помогла сократить время вызова метода в 16 раз.

В статье я буду пользоваться языком Java, Python для построения графиков и набором библиотек JMH — они также адаптированы для Kotlin, Scala и т.д. 

Читать далее

Текстовые строки в языках программирования

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

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

Если вы обратили внимание, то слово "поддерживает" взято в кавычки и как говорил Винипух, это жжж не спроста, ведь с появлением Unicode понятие "символ" в текстовых строках стало не совсем однозначным.

Есть старая статья о проблемах поддержки Unicode в разных языках программирования: The importance of language-level abstract Unicode strings Matt Giuca

Основной смысл которой сводится к тому, чтобы призвать разработчиков языков программирования абстрагироваться от схем кодирования Unicode (доступом к отдельным байтам), и оставить для программистов только возможность работы с последовательностью символов, чтобы предотвратить большинство ошибок Unicode, так как с приходом эры Unicode изменилось само понятие символа и текстовой строки!

Читать далее

msgspec: быстрый и экономичный парсинг JSON на Python

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

В библиотеке msgspec много функций, например кодирование, поддержка MessagePack (альтернативный формат, который быстрее JSON) и другие. Если вы регулярно парсите файлы JSON, и у вас проблемы с производительностью или памятью, или просто нужны встроенные схемы, то попробуйте msgspec.


Ниже рассказываем о библиотеке подробнее. Итак, чтобы обработать большой файл JSON на Python без сбоев и аварийного завершения, нужно:


  1. Убедиться, что используется не слишком много памяти.
  2. Спарсить файл как можно быстрее.
  3. В идеале также заранее убедиться, что данные валидны и имеют правильную структуру.

Конечно, можно объединить решения с несколькими библиотеками. А можно — всего с одной. Схемы, быстрый парсинг и хитрые приемы для уменьшения потребления памяти — все это новая библиотека msgspec.

Читать дальше →

Консистентность в конкуретной среде: как не захлебнуться в потоках данных

Уровень сложностиПростой
Время на прочтение21 мин
Охват и читатели9.2K

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

Напомню, что текст рассчитан в первую очередь на разработчиков, которые имеют мало практического опыта работы в конкурентной и/или микросервисной среде, поэтому многие вещи я объясню на пальцах. Для тех, кто захочет ознакомиться с более строгими формулировками, сразу скажу, что здесь будут затронуты упрощённые идеи паттернов Transactional Outbox и Saga.

Читать дальше

Ультимативный Roadmap для Python-разработчика в 2023 году + источники знаний

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

Python — один из самых популярных языков программирования в мире. Статистика современного рынка свидетельствует о том, что Python желаемый навык, и что его использование широко распространено в различных сферах, таких как наука, инженерия, бизнес, аналитика данных и многих других.

В этой статье я составил полную дорожную карту для изучения Python, прилагая полезные источники знаний.

Читать далее

ML-пайплайн классических банковских моделей классификации

Время на прочтение10 мин
Охват и читатели8.7K

Всем привет! С вами на связи дата-сайентисты банка "Открытие" Иван Кондраков и Константин Грушин. В прошлой статье мы рассказывали про решение, которое позволило повысить эффективность в проверке гипотез для моделей. Если вы успели с ней ознакомиться, то уже знаете, что наша команда занимается разработкой и развитием пула моделей принятия решений о выдаче кредитных продуктов и банковских гарантий для малого и среднего бизнеса. Сегодня настало время поговорить с вами про пайплайн, который используется для разработки таких моделей. Мы построили достаточно много моделей, так что нам точно есть чем поделиться. К тому же существенный вклад в развитие такого универсального алгоритма внес каждый член команды.

Читать далее

Как подружить Алису с ChatGPT

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

О ChatGPT сейчас не говорит только ленивый. Давайте попробуем соединить голосовой помощник Алиса и ChatGPT. Таким образом мы сможем взаимодействовать с ChatGPT с помощью голоса. А он с помощью голоса может нам отвечать. Конечно тут будут ограничения о которых я подробно опишу далее. Данная статья не столько о ChatGPT а о том как писать навыки для Алисы.

Читать далее

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

Как создать свою собственную нейронную сеть с нуля на Python

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели147K

Как создать свою собственную нейронную сеть с нуля на Python

Мотивация: в рамках моего личного пути к лучшему пониманию глубокого обучения я решил создать нейронную сеть с нуля без библиотеки глубокого обучения, такой как TensorFlow. Я считаю, что понимание внутренней работы нейронной сети важно для любого начинающего специалиста по данным. Эта статья содержит то, что я узнал, и, надеюсь, она будет полезна и вам!

Что такое нейронная сеть?

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

Нейронные сети состоят из следующих компонентов:

Читать далее

Пишем простого бота-администратора для Telegram на Python. Тестируем на жене

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

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

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

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

Тестировать бота мы будем с помощью моей жены.

Читать далее

Фракталы, рекурсия и Python

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели14K

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

Читать дальше →

Функции Python — это объекты первого класса

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели48K

Функции Python — это объекты первого класса. Их можно присваивать переменным, хранить в структурах данных, передавать в качестве аргументов другим функциям и даже возвращать в качестве значений из других функций. Интуитивное понимание этих понятий значительно облегчит понимание таких продвинутых функций Python, как лямбды и декораторы. А также поможет вам продвинуться на пути к техникам функционального программирования.

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

Читать далее

Подходы к реализации паттерна Фабрика в Python

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

В статье я не буду объяснять пользу использования паттернов проектирования и фабрики в частности. Здесь будут рассмотрены подходы к реализации, начиная от простых, банальных и заканчивая более интересными, а также сделан некоторый вывод.

Читать далее

7 уровней построения интерфейсов командной строки на Python

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели16K

Автор

Выполняйте свои скрипты Python, как команды bash

Написание скриптов Python для создания интерфейсов командной строки (CLI) — широко используемый метод для DevOps и бэкенд разработки.

Ключом к реализации CLI в Python является встроенный модуль argparse. Он предоставляет все необходимые функции и позволяет использовать скрипт Python в качестве команды bash.

В этой статье будут представлены некоторые важные моменты создания CLI с помощью Python на 7 уровнях сложности.

Погрузиться