Обновить
512K+

Python *

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

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

Компилятор за выходные: синтаксический анализатор Уорли

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

Изначально, когда я решил написать компилятор за выходные, я решил, что нет смысла заморачиваться, и использовал сторонний лексический / синтаксический анализатор. Мой выбор пал на SLY, довольно известную библиотеку. И действительно, пара часов работы, и мой компилятор прекрасно строил синтаксические деревья из исходного кода на wend. Я пытался было заглянуть под капот, утонул в море технических терминов (LL(1), LR, LALR(1) и тому подобное), и решил, что парсинг своими руками - это не для меня, теория формальных языков меня слабо интересует. Однако же в итоге выяснилось, что базовый синтаксический анализатор - это не так сложно, и я закатал рукава.

Читать далее

Проверка IFC моделей по требованиям IDS

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

В сфере строительного проектирования все больше места занимают технологии информационного моделирования (ТИМ). главным форматом обмена данных в ТИМ является формат IFC. Модели в этом формате требуют как коммерческие заказчики, так и государственная экспертиза.

Работа с собственными форматами программных решений для информационного моделирования (такими как RVT) обычно не вызывает затруднений благодаря широкому функционалу, предоставляемому разработчиками программного обеспечения. Однако формат IFC часто вызывает вопросы из-за нехватки специализированных инструментов и знаний.

Одним из таких вопросов является создание чётко сформулированных требований к моделям IFC и последующая их проверка на соответствие этим требованиям.

В этой статье будет подробно рассмотрен данный вопрос. В качестве инструментов будут использованы формат IDS и библиотека ifcopenshell а также предложено готовое решения для валидации моделей IFC на основе этих инструментов.

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

Читать далее

Taigram: Начало работы

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

Всем привет!

На этой неделе мы объявили о начале работы над Open Source проектом Taigram, название которому, к слову, выбрали вы в опросе.

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

Проектом занимаемся мы вдвоём: Иван и Виктор, а также с логотипом нам помог наш бессменный дизайнер Евгений. (Больше никто не захотел к нам присоединиться 😭)

Начнём мы, как водится, с самого начала...

Читать далее

Простыми словами о методе максимального правдоподобия и информации Фишера

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

Всем привет👋🏻

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

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

Присаживайтесь поудобнее, заварите кофейку и запаситесь печеньки, нам предстоит интересный путь🍪

Go little rockstar⭐

Смогу ли я уложить оптимизирующий компилятор в тысячу строк питона? Прогон первый: mem2reg

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

Год назад мне пришлось взять на себя курс лекций по теории компиляторов. Вы встречались некомпетентными преподавателями? Это я, здравствуйте! Прежде чем учить других, я всё-таки решил заглянуть в учебник сам, и это вылилось в серию статей "компилятор за выходные" (да, я помню, что за мной должок с описанием лексера/парсера). В итоге я уложил компилятор со мной придуманного си-подобного языка на GNU ассемблер в шестьсот строк кода, причём без внешних зависимостей, включая парсинг.

Всё бы хорошо, вроде работает, но кажется, самое веселье осталось за бортом. Мой компилятор, по факту, это простой pretty print вокруг синтаксического дерева, подумаешь. А как работают оптимизирующие компиляторы? И поставил я себе задачу попробовать уложить игрушечный, но всё же рабочий оптимизирующий компилятор в тысячу строк кода. Как думаете, получится?

Итак, тема сегодняшнего разговора - вынос переменных из памяти в регистры, оно же оптимизационный проход mem2reg, см. кпдв.

Читать далее

Автомодерация изображений: как исправлять нарушения, сохраняя количество и качество контента

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

Привет! Меня зовут Владимир Морозов, я старший дата-сайентист в отделе автоматической модерации Авито. Раньше мы блокировали объявления, которые нарушают правила публикации, а теперь исправляем — с помощью ML-системы. Так мы сохраняем количество контента, сокращаем стоимость модерации и улучшаем пользовательский опыт. В статье подробно расскажу обо всех этапах внедрения новой ML-механики: от идеи и исследования подходов до оптимизации нейронок и вывода в продакшен.

Читать далее

Телеграм-бот для бронирования столов на вебхуках: FastAPI, Aiogram Dialog, FastStream и RabbitMQ в единой экосистеме

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

В этой статье мы создадим функционального Telegram-бота для бронирования столиков в ресторане «Binary Bites» с использованием современных Python-инструментов. Бот будет работать через вебхуки, взаимодействовать с брокером сообщений RabbitMQ и поддерживать фоновое выполнение задач с помощью FastStream и APScheduler.

Проект объединит FastAPI, SQLAlchemy, Alembic, Uvicorn и другие библиотеки, обеспечивая гибкость и масштабируемость. Готовый бот позволит пользователям бронировать столики, просматривать и отменять брони, а администраторам — управлять заказами.

Читать далее

Как создать скрипт-beautifier в Ghidra на Python?

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

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

Если вы уже имели опыт работы с дизассемблером, то заметили, что читать его вывод не так легко, если целью является понять более высокие абстракции, заложенные в нём. Возможно, вы даже пытались декомпилировать его в псевдокод, но работать с переменными типа local_1-999 – то ещё удовольствие. Да, можно щёлкнуть на каждую из них и присвоить имя на основе логики. А что, если у вас 2000 строк и более?

Чтобы не натереть мозоль, давайте разберёмся, как написать скрипт, который сделает большую часть работы за нас.

Все манипуляции были проделаны на версии 11.1.2. Чтобы попасть в список доступных скриптов, откройте меню Window → Script Manager и там же создайте новый скрипт, нажав в правом верхнем углу кнопку Create New Script и выбрав язык Python.

Важное ограничение: Ghidra использует внутреннюю реализацию языка Python версии 2.7.

Читать далее

Бот для проверки орфографии и пунктуации через GPT-4o на Python

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

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

Бот будет проверять текст на грамматические ошибки, исправлять их и даст рекомендации по грамотному написанию.

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

Читать далее

Моделирование управления AC двигателя — Field oriented control of PMSM с помощью opensource решений

Уровень сложностиСложный
Время на прочтение50 мин
Охват и читатели15K

В этой статье я хочу поделиться результатом своих исследований в области моделирования систем управления двигателями переменного тока. В качестве объекта управления был выбран синхронный двигатель с постоянными магнитами PMSM (Permanent Magnet Synchronous Machine) как наиболее распространенная машина в современных транспортных средствах. Основное внимание будет уделено построению математической модели системы, объекта управления, и алгоритмов для симуляции. Для реализации модели я выбрал open source решения: Python control, Scilab. Мне было интересно, возможно ли использование свободных средств моделирования для построения более-менее сложных и реальных систем. Далее я поделюсь своими впечатлениями. В первой части статьи приводится теоретический материал, где описываются основные уравнения двигателя и элементы теории управления. Для теоретической части необходимы базовые понимания электротехники, ниже приложу ссылки, где можно обновить знания. Я постарался проработать разные источники литературы, чтобы взять необходимый минимум, с которым самому пришлось столкнуться для понимания сути процессов управления двигателем. Читатель вправе пропустить матчасть и перейти сразу к описанию реализации, и при необходимости вернуться к некоторым теоретическим аспектам в этом материале, или других источниках. Реализация алгоритмов управления построена по классическому принципу с помощью диаграммы потоков.

Читать далее

EDA of dataset Python

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

Привет, Хабр!

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

Очищать грязные данные можно c PandasРассмотрим основные методы.

Читать далее

Порядок работы с устареванием ML моделей. Шаг 2: Создание надежных и долговечных моделей

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

Еще на этапе создания модели следует проделать работу направленную на замедление ее устаревания.

Реализацию процесса работы с устареванием моделей в ML можно разделить на 4 шага.

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

Мы пройдем полный путь создания модели и работы над замедлением ее устаревания.

Читать далее

Эксперимент, программирование с минимальным участием программиста-человека. Новый этап эволюции или начало деградации

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

Не обладая нужными знаниями, не смог создать что то подобное текущему воплощению рассуждений в "топовых" языковых моделях, но моих навыков хватило быть неплохим учителем для модели, проверяя её решения, указывая на ошибки для дальнейшего создания работающего решения, конечно это не обучение с подкреплением, а теорема о бесконечных обезьянах в действии... Результат? Telegram бот, работающий на gpu nvidia и intel, созданный языковой моделью.

посмотреть

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

Как вовремя менять цены при росте курса доллара

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

Привет, Хабр! Сегодня расскажу, как оперативно обновлять цены в интернет-магазине, чтобы не оказаться в убытке. Для этого будем использовать CMS Битрикс24 в связке с сервисом рассылки SMS-уведомлений МТС Exolve. Владелец бизнеса или менеджер будет постоянно получать данные об изменениях на валютном рынке и принимать решения на их основе.

Читать далее

Создание растрово-векторной базы данных на примере скрипта с использованием FAISS и предобученной модели ResNet50

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

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

Читать далее

Как научить модель рассуждать, не переобучая её, меньше чем за 10$

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

Это статья обобщение моего исследования передачи знаний от большой модели с замороженными весами в малую модель, которую мы будем обучать через расширенный механизм кросс внимания или проще говоря через LLM модули. Оригинальное исследование доступно по ссылке: arxiv.org/abs/2502.08213 . Репозиторий с кодом и весами доступен на Hugging Face: LLM модули.

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

Читать далее

Декораторы Python. Введение

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

Всем привет, меня зовут Аббакумов Валерий.

Я Python разработчик, в основном занимаюсь бэкэндом веб приложений. Хочу написать серию статей для начинающих разработчиков. Посты будут трех уровнях сложности (от меньшей к большей) на разные аспекты языка, с которыми сложно справиться обывателю.

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

Я прикреплю ссылки на смежные статьи (тоже хороший материал, но ИМХО в них либо странная подача либо некоторая неполнота), мне кажется, что мой материал в разрезе 3 статей на каждую тему будет лаконичней и полней, но тут уже решать только вам, дорогие читатели

Читать далее

Обучить модель RoBERTa расстановке запятых на балконе для продакшена

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

RoBERTa — улучшенная версия модели BERT, разработанная Facebook AI. Она показывает отличные результаты в задачах обработки естественного языка, таких как классификация текстов и генерация ответов.

Построим конкурентоспособный сайт расстановки пунктуации, обучив свою нейронную сеть. Для прогнозирования популярности в поисковой выдаче начнем с анализа запросов Вордстат: расставить запятые – 290 000 запросов/месяц; расставить точки – 15 000 запросов/месяц.

По статистике, 95% запросов посвящены запятым, уделим им особое внимание. Добавим мультиязычность, чтобы получать больше трафика.

Читать далее

Экосистема для разработки и применения Computer Vision (CV) в промышленности

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

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

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

Читать далее

Русские тексты. Работа с текстами. Предварительная обработка русских текстовых данных

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

Предварительная обработка текстовых данных: ключевые этапы и методы

Текстовые данные — один из самых сложных типов данных для анализа из-за их неструктурированной природы и высокой вариативности. Чтобы превратить "сырой" текст в информацию, пригодную для машинного обучения или лингвистического анализа, требуется предварительная обработка. Этот процесс включает стандартизацию, очистку и преобразование текста, что повышает качество моделей NLP (Natural Language Processing). Рассмотрим основные этапы и методы.

Читать далее