Обновить
592.28

Python *

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

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

Парсинг для взрослых или Инфраструктура для промышленного парсинга

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

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

Читать далее

Автоматическая суммаризация текстов с помощью трансформеров Hugging Face. Часть 2

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

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

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

Сегодняшняя публикация состоит из трёх частей, представленных, с применением сквозной нумерации, 2, 3 и 4 разделами. Здесь мы, соответственно, поговорим о реферировании без подготовки (с использованием предварительно обученной модели), об обучении предварительно обученной модели на нашем наборе данных, об оценке эффективности обученной модели.

Читать далее

Знакомство со стековыми графами

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

В декабре 2021 года Github объявил, что открывает общий доступ к точной навигации по коду для всех публичных и приватных репозиториев с Python на сайте GitHub.com. Точную навигацию в коде обеспечивают стековые графы, новый фреймвввооорк с открытым исходным кодом, созданный в Github и позволяющий устанавливать правила привязки имен для языка программирования при помощи декларативного предметно-ориентированного языка (DSL). Стековые графы позволяют генерировать данные о навигации по стеку для конкретного репозитория, не требуя при этом какого-либо участия в конфигурировании со стороны владельца репозитория и не вмешиваясь в процесс сборки или другие задания, связанные с непрерывной интеграцией. В этом посте будет подробно рассказано, как работают стековые графы, и как с их помощью достигаются такие результаты.

(Этот пост написан на основе доклада, прочитанного автором на конференции Strange Loop в октябре 2021 года. Есть видео с этим докладом, там рассказано гораздо больше!)

Читать далее

Telegram bot на aiogram + Google Analytics 4

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

Статья о том как удалось прикрутить гугл аналитику к Telegram боту на aiogram.

Дело в том, что гугл объявил о закрытии Universal Analytics и полном переходе на Google Analytics 4. Погуглив стало ясно что инфы про новую аналитику крайне мало, а о её работе с питоном инфы в принципе нет.

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

В качестве примера будет использоваться python + aiogram, но здесь описывается взаимодействие с api аналитики посредством обычных http запросов. Так что статья актуальна для любого языка.

Читать далее

Цифровая металлургия: результаты хакатона от «Северстали»

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

С 22 февраля по 20 марта «Северсталь» при поддержке Russian Hackers провела онлайн-хакатон для аналитиков и разработчиков в сфере поиска и анализа данных с общим призовым фондом 700 000 рублей . Все предложенные нами задачи имели отношение к бизнес-задачам в металлургическом производстве. Хакатон прошел отлично и даже превысил ожидания. Самое время подвести итоги.

And the Oscar goes to....

KiCad: скругление дорожек и каплевидные пады, часть 2

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

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

Отправка SMS кириллицей с AT-модема

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

Оперативное информирование клиентов, когда их достаточно много для ручного обзвона, но недостаточно много для подключения массового сервиса, вроде sms.ru (на самом деле сервис хорош, но недавняя политика некоторых мобильных операторов создала определённые финансовые сложности ввиду заградительных тарифов на использование услуг sms-рассылок с/без использования имён, для относительно не крупных рассылок), что породило потребность в применении независимого инструмента.

Путем продолжительных скитаний по просторам сети, был изучен ряд материалов и некоторые готовые решения. Спасибо dos999 (Ссылка на пост) за отправную точку, но хотелось бы реализовать это "модном" на python3.

Была предпринята попытка адаптировать изложенную логику на основе полученных знаний, но уперся в кириллическую кодировку, т.к. готового кодера в UCS-2 python не имеет, а варианты на основе utf-16 приводили к какому-то такому результату "PÉQ@P>Q£Q$P>P9".

Но, кто ищет - то находит. Попалась мне на задворках сети готовая реализация на python2 от huh-muh (Ссылка на пост). И тут пазл сложился, а адаптировать под python3 труда не составило:

Читать далее

Скрипты по сусекам: как создать инструмент для контроля количества серверных комплектующих на складе

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

Всем привет, Хабр. Меня зовут Сергей, в Selectel я работаю в департаменте IaaS-продуктов и отвечаю за выделенные серверы, которые мы сдаем в аренду. Число клиентов растет каждый год — вместе с ними растет потребность в новых серверах и комплектующих. Чем больше становится оборудования, тем сложнее контролировать его наличие на складе и вовремя планировать новые поставки. Но это часть моей работы.

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

Синхронизируем данные с yarsync

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

yarsync - Yet Another Rsync - предназначен для синхронизации данных между несколькими устройствами, более точно - между файловыми системами в Unix-подобных средах. yarsync обладает интерфейсом, похожим на git, и является Python-обёрткой вокруг программы rsync. Программа доступна под свободной лицензией GPL v3.0 на github (я автор).

yarsync работает там, где есть Питон и rsync.

Данные могут синхронизироваться локально или между разными компьютерами (в таком случае на удалённой машине также должен быть установлен rsync). Кроме того, файловые системы должны поддерживать жёсткие ссылки (hard links). Популярные системы, поддерживающие жёсткие ссылки - ext2-ext4, HFS+, а также NTFS. Не поддерживают жёсткие ссылки FAT, exFAT (часто используемые на флеш-накопителях).

Говоря простыми словами, допустим, что у вас есть компьютеры дома и на даче. У вас есть папка с книгами и статьями по программированию, которые вы собирали долгие годы, и которой регулярно пользуетесь (её копиями на разных машинах). Вы хотите, чтобы эти копии были одинаковы - то есть в идеале чтобы можно было работать с данными на разных компьютерах (добавлять новые статьи, удалять ненужные, переименовывать и перемещать файлы и папки), а затем эти изменения легко переносились на другие копии. Это и делает yarsync, отслеживая изменения и позволяя эффективно синхронизировать данные через доступный сервер или внешний накопитель (жёсткий диск).

Читать далее

Что скрывается за курсом по Python: история разработчика

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

Привет, Хабр. Меня зовут Дмитрий Демидов, я работаю бэкенд-разработчиком и поделюсь опытом создания курса-интенсива по основам программирования на Python. Я преподаю в Нетологии: начал с открытых занятий, потом стал вести лекции на курсах по Python и базам данных. Статья пригодится, если вы тоже хотите преподавать или даже разрабатываете курс. Даже если нет, просто загляните за кулисы создания образовательных проектов.

Читать далее

Ускорение производительности Python в 3.11

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

Всем привет! Сегодня хочу поделиться с вами хорошими новостями, которые связаны с производительностью python в грядущем релизе 3.11 и то, что нас ожидает в будущем!

Читать далее

Формирование однородных групп для сплит-тестирования. Реализация на Python

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

Всем привет! Если перед вами стоит задача проведения А/Б тестирования, то я помогу вам понять, как с помощью python сформировать однородные группы с помощью алгоритмов сходства объектов на основе косинусного и взвешенного косинусного расстояния для его проведения.

Читать далее

Введение в графовые нейросети с механизмом самовнимания на примере PyTorch Geometric

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

К старту флагманского курса по Data Science реализуем и сравним свёрточную сеть и сеть с механизмом самовнимания. С помощью t-SNE покажем, что и каким образом изучается в графовой сети с механизмом самовнимания. За подробностями приглашаем под кат.

Читать далее

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

Этапы профессиональной карьеры разработчика: какие задачи решают junior, middle и senior

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

В своем блоге на Хабре мы уже не раз писали о Python. Хотя бы потому, что это один из наиболее популярных в мире языков программирования. В начале этого года по версии Tiobe он занял первое место. Популярность его объясняется достаточно просто - язык можно относительно быстро выучить на базовом уровне и начать двигаться к вершинам профессии. Но какие они, эти вершины? На что способен senior, какие задачи решает middle, а какие - junior? Об этом мы поговорили с Алексеем Некрасовым (@znbiz), лидером направления Python в МТС, программным директором направления Python и спикером профессии “Python-разработчик” в Skillbox.

Читать далее

Pycon Weekend 2022: как прошла конференция по python в горах

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

25-26 марта в Сочи прошла конференция для python-разработчиков Pycon Weekend. Мы были на курорте Красная Поляна, два дня слушали доклады, общались и катались на живописных горных склонах. Получилось, как всегда, очень душевно и полезно.

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

Сейчас мы готовим нашу следующую, самую большую и душевную конференцию для pythton-разработчиков Pycon Russia. Она пройдет 30-31 июля в Москве. Программный комитет уже ведет активную работу по формированию программы, успевайте подавать заявки на выступления до 15 мая, чтобы стать спикером. А билеты можно купить по ранней цене до 1 июня.

А пока мы готовим для вас Pycon Russia 2022, предлагаем вам посмотреть доклады с Pycon Weekend 2022.

? Василий Копытов (Avito, Москва): «Как и почему мы перешли от Python к Go в нашем основном сервисе рекомендаций»

Читать далее

Сравнение алгоритмов детекции лиц

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

Привет, Хабр! Очень часто я на просторах интернета натыкаюсь на такой вопрос: «А какое готовое решение по детекции лиц лучше всего использовать?» Так вот, я отобрал 5 решений с Github, которые показались мне хорошими, относительно новыми и лёгкими в использовании, и хотел бы сравнить их между собой. Всем, кому интересно, что из этого вышло, добро пожаловать под кат!

Читать далее

Уроки компьютерного зрения на Python + OpenCV с самых азов. Часть 5

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

На прошлом уроке я рассказал о том, как повысить контрастность изображения и как выделить на изображении особе точки. Затем мы попробовали работать с найденными особыми точками. В частности, превратили эти точки в список  координат и попытались объединить близкие точки в одну, так как у нас получилось очень много точек рядом. В статье был предложен следующий алгоритм: при составлении списка, перед добавлением в список очередной точки проверять, находится ли она близко от последней, если да, то добавлять в тот же список, если нет, то начинать новый список.  Только проблема в том, что обход точек был через развертку, и могло получиться так, что близкие точки попадают в разные списки. Поэтому объединение точек получилось «криво».  Сегодня мы исправим этот недочет.

Для начала, почему мы вообще начали все эти хитрости с алгоритмом? Дело в том, что если решать задачу «в лоб», то время работы алгоритма у нас будет пропорционально квадрату размера списка. Собственно, давайте сначала проверим, насколько критично будет время работы алгоритма «в лоб» при разных ситуациях. И так, нам нужно перебрать все точки и сравнить их расстояния со всеми точками:

Читать далее

Нейронная сеть считает лес кругляк и распознает автомобильные номера. Как это сделано?

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

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

Необходимая подготовка читателя — должно быть общее представление о компьютерном зрении (computer vision) и нейронных сетях. Здесь не будет описаний, что такое сверточная нейронная сеть и т.п., статей по таким основам найдете много на хабре (вот хорошая Глубокое обучение для новичков: распознаем изображения с помощью сверточных сетей). В то же время, совсем новички могут получить представление, какие знания и компетенции нужны для решения подобных задач.

Читать далее

Подбор синонимов для терминов с использованием Викиданных (python)

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

Существует множество сервисов по подбору синонимов, но они редко справляются с терминами, которые содержат в себе более одного слова. Для подбора синонимов для более сложных выражений могут помочь Викиданные. Мало кто знает, что помимо стандартной Википедии существует дополнительная база данных Викиданные(Wikidata), которая представляет собой граф знаний фонда Викимедия. Сейчас она интегрирована в саму Википедию, поэтому для многих статей в левом меню можно найти пункт Элемент Викиданных. Викиданные представлены в модели rdf, то есть информация имеет вид триплетов, которые характеризуют сущность. Триплет выглядит, как утверждение субьект - предикат - обьект. Пример, для сущности Англия одним из таких информационных триплетов представлен: Англия - имеет столицу - Лондон. 

Один из предикатов(типов связи) это altLabel, подразумевающий под собой альтернативные названия, который как раз таки и поможет нам в поиске синонимов.

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

Читать далее

Автоматическая суммаризация текстов с помощью трансформеров Hugging Face. Часть 1

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

В июле 2020 года компания OpenAI выпустила свою модель машинного обучения третьего поколения, GPT-3, ориентированную на генерирование текстов. Тогда я понял, что мир уже не будет прежним. Эта модель задела меня за живое. Те системы такого рода, что выходили раньше, у меня подобных ощущений не вызывали. И вот ещё неожиданность — о новой системе начали говорить мои друзья и коллеги, в принципе интересующиеся технологиями, но не особенно обращающие внимание на последние достижения машинного обучения (Machine Learning, ML) и искусственного интеллекта (Artificial Intelligence, AI). Об этом написала даже газета Guardian. А если точнее — статью написала сама модель, а в Guardian её лишь отредактировали и опубликовали. Совершенно очевидно то, что выход модели GPT-3 стал поворотным моментом в развитии искусственного интеллекта.

Сразу же после выхода модели начали появляться идеи по поводу вариантов её применения. В течение нескольких недель было создано множество впечатляющих демонстрационных проектов, которые можно найти на сайте GPT-3. Моё внимание привлёк один из способов применения GPT-3 — автоматическое реферирование текстов (text summarization): компьютер читает переданный ему текст и выдаёт краткое изложение этого текста. Это — одна из самых сложных задач, с которыми приходится сталкиваться компьютерам. Дело в том, что она совмещает в себе два навыка из сферы обработки естественных языков (Natural Language Processing, NLP). Это — понимание читаемых текстов и возможность писать тексты самостоятельно. Именно поэтому меня так впечатлили примеры использования GPT-3, демонстрирующие возможности системы по генерированию текстов.

Читать далее

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