Обновить
810.4

Python *

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

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

Тестируем собственную батарейку для Django с pytest и tox

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

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

Читать далее

Python service layer: основы оформления бизнес-логики на примере Django-приложений

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

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

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

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

На самом деле, изложенный далее текст относится не только к Django-проектам. Разрабатывая веб-приложения, используя другие инструменты, вроде Flask, люди используют те же концепции веб-разработки, причём часто именно в таком же виде, как они реализованы, в Django - views, request-response объекты, middlewares, модели, формы.

Читать далее

Мы опубликовали модель, расставляющую знаки препинания и заглавные буквы в тексте на четырех языках

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


Open In Colab


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


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


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


  • Расставляет заглавные буквы и основные знаки препинания (точка, запятая, дефис, вопросительный знак, восклицательный знак, тире для русского языка);
  • Работает на 4 языках (русский, английский, немецкий, испанский);
  • По построению должна работать максимально абстрактно на любом тексте и не основана на каких-то фиксированных правилах;
  • Имеет минимальные нетривиальные метрики и выполняет задачу улучшения читабельности текста;

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

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

Многозадачная модель T5 для русского языка

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

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

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

Читать далее

Компиляция Python

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

Предположим, вы разработали приложение или библиотеку на Python и уже готовитесь передать его / её  заказчику. И в этот момент появляются разные вопросы.

Во-первых, к вам прибегает озадаченный проджект-менеджер и говорит: «Мы решили не отдавать исходный код, ведь это наша интеллектуальная собственность. Придумайте что-нибудь, чтобы заказчик был доволен, а мы оставили у себя исходники».

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

И, наконец, хочется,  чтобы конечное приложение работало быстрее, чем в среде разработки.

И вот тут настало время скомпилировать Python-код.

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

Читать далее

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

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

Как всегда, все началось с идеи: а что если поискать корреляцию между индексом ММВБ и ценами акций, входящими в данный индекс, но только использовать цены следующего дня? Например, искать корреляцию между ценой закрытия индекса ММВБ на дату Х и ценой закрытия акции Газпрома на дату (X+1)? Зачем? Затем чтобы, зная цену закрытия индекса ММВБ сегодня, прогнозировать цену закрытия любой акции завтра.

Что получилось, читайте далее…
Читать дальше →

whois micro web-api

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

Не так давно появилась задача получения информации о доменах в whois.

Требование простое, дернуть curl-ом и получить json, и чтобы было бесплатно.

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

Получился простой скрипт на flask завернутый в докер. Для работы с whois использовал библиотеку. Тут стоит отметить что служба whois достаточно архаична и децентрализованна. В связи с этим есть проблема с новыми зонами, особенно из New gTLD. Понемногу в проект добавляются новые зоны, но до конца списка еще далеко. Так же, можно отправлять реквесты на добавления нужных зон.

Репозиторий проекта

Подергать его можно тут

Для того чтобы получить инфу по домену нужно просто дернуть его следующим образом.

На этом все, спасибо за внимание :)

Читать далее

Книжная доминация Python и Java

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

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

Без всякого сомнения, самыми влиятельными языками программирования в настоящий момент являются Java и Python. И я приведу простой пример, почему их величие еще не скоро сойдет на нет.

P.s. я специально опускаю из обсуждения JS, Swift и Котлин, так как их доминирующее положение обусловлено немного другими факторами, нежели я обсужу в этой статье.

Читать далее

Аудио-графическое шифрование или как звук в картинку спрятать

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

Под покровом вечера пятницы, поглощая хмельные запасы нашей необъятной и листая любимый Хабр, я наткнулся на плеяды статей о шифровании. Что только куда не зашифровывали, от совсем уж банального шифра Цезаря до менее банального шифрования изображений в аудиофайл. Наслаждаясь достойным вечера чтивом, в голову зашел не разувшись интересный вопрос: "-А кто-нибудь звук в картинку прятал?". Зудящая жажда знаний заставила меня смахнуть с живота остатки кальмаровых колец и сесть за свою рабочую лошадку.

Читать далее

Распознаем медицинские тексты

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

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

Читать далее

Сохранение озвучки книги средствами Google TTS и python

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

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

Читать далее

Как бороться с сонливостью за рулём с помощью Python

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

Обнаружение сонливости водителя продиктовано потребностью безопасности – разработка приложения для обнаружения в режиме реального времени позволит избежать серьезных происшествий в тот момент, когда водитель переутомлен. По разным оценкам, около 20% всех уличных происшествий связаны с переутомлением, а на некоторых оживленных улицах – до 50%. Таким образом, совершенствование технологий распознавания и предотвращения сна за рулем может стать серьезным вызовом в области улучшения систем предотвращения аварий. При обнаружении сонливости, необходимо в тот же момент предупредить водителя о возможных неприятностях. Подобное обнаружение достигается при помощи детектирования состояния глаз водителя.

Использование библиотек языка программирования Python позволяет выполнить программную реализацию системы обнаружения сонливости водителя, которое позволяет определять, как долго у конкретного человека (водителя) были закрыты глаза. Если глаза были закрыты в течение определенного времени, то следует предположить, что водитель начинает засыпать, и включить звуковой сигнал, чтобы разбудить водителя и привлечь его внимание.

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

Классификация состояния глаз осуществляется при помощи методов компьютерного зрения. Чтобы начать реализацию, необходимо создать новый *.py-файл, открыть его в текстовом редакторе или среде разработки для языка Python (например, в IDLE) и выполнить подключение необходимых библиотек. Исходный код функции воспроизведения приведен в листинге 1.

Читать далее

Выходит первый Python 3.11. Что нового?

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

Делимся переводом документации альфы Python 3.11, которая выходит 4 октября, о разнице в сравнении с версией 3.10. Изменения касаются трассировки исключений, модулей math, sqlite, threading, unittest и других. Удалена ощутимая часть устаревшей функциональности.

Подробности читайте под катом, пока у нас начинается курс по Fullstack-разработке на Python.

Читать далее

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

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

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

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


Upd. 04.12.2021 — Наш телеграм канал


На территории России проживает большое количество народов, говорящих более чем на 270 языках. Около 150 языков насчитывает менее 1 тысячи носителей, а за последние 20 лет 7 языков уже исчезло.


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


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


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


I. Извлекаем параллельный корпус


Для выравнивания двух текстов я написал на python'е библиотеку lingtrain_aligner. Код у нее открыт. Она использует ряд предобученных моделей, можно подключать и свои. Одной из самых удачных мультиязыковых моделей сейчас является LaBSE. Она обучалась на 109 языках. Так как соотношение текстов смещено в сторону популярных языков, то для них качество эмбеддингов (эмбеддингом называют вектор чисел применительно к данным, которые он описывает) будет лучше.


Colab


Попробовать извлечь корпус на нужном языке можно в этом Colab'e. Дальше пройдемся по шагам более подробно.


Установка


Установим библиотеку командой


pip install lingtrain_aligner
Читать дальше

Влияние загрязнения воздуха на тяжесть течения Covid- 19

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

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

Читать далее

Посмотрите, как Google отслеживает ваше местоположение. С Python, Jupyter, Pandas, Geopandas и Matplotlib

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

В отделе продаж можно услышать аббревиатуру ABC: Always Be Closing, что означает заключение сделки с покупателем. Последнее десятилетие породило еще одну аббревиатуру ABCD: Always Be Collecting Data

Мы используем Google для почты, карт, фотографий, хранилищ, видео и многого другого. Мы используем Twitter, чтобы читать поток сознания одного президента. Мы используем Facebook для обмена сообщениями и… ну, почти все. Но наши родители пользуются им. Мы используем TikTok… Понятия не имею, зачем. 

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

Итак, короче говоря, я хотел выяснить, насколько корпорация Alphabet, владелец Google, обо мне знает. Крошечная доля, я посмотрел на историю геолокации. Я никогда не отключал службы определения местоположения, потому что ценил комфорт выше конфиденциальности. Плохая идея.

Читать далее

Игра в собственные

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

Имеем набор данных в виде совокупности квадратных матриц, которые используются - вместе с известным выходом - в качестве тренировочного набора для нейронной сети. Можно ли обучить нейронную сеть, используя только собственные значения матриц? Во избежание проблем с комплексными значениями, упор делаем на симметричные матрицы. Для иллюстрации используем набор данных MNIST. Понятно, что невозможно восстановить матрицу по ее собственными значениям - для этого понадобится еще кое-что, о чем мы поговорим далее. Поэтому трудно ожидать некоего прорыва на данном пути, хотя известно, что можно говорить о чем угодно, строить грандиозные планы, пока не пришло время платить. О деньгах мы здесь не говорим, просто задаем глупый вопрос, на который постараемся получить осмысленный ответ, тем более что в процессе познания расширим свои научные горизонты. Например, сначала мы познакомимся с тем, как находить собственные векторы и собственные значения (eigenvalues and eigenvectors) для заданной квадратной матрицы, затем плавно выкатим на эрмитовы и унитарные матрицы. Все иллюстративные примеры сопровождаются простыми кодами. Далее возьмем MNIST , преобразуем в набор собственных значений симметричных матриц и используем молоток от Keras. Как говорят в Японии: “Торчащий гвоздь забивают”. Закроем глаза и начнем бить, а на результат можно и не смотреть: получится как всегда. Сразу скажу, что изложение будет проведено как можно ближе к тому, как я это дело понимаю для себя, не обращаясь к строгому обоснованию, которое обычно не используется в повседневной жизни. Иными словами, что понятно одному глупцу, понятно и другому. Все мы невежественны, но, к счастью, не в одинаковой степени. С другой стороны, предполагаю, что многие, хоть и в гимназиях не обучались, но имеют представление - по своему опыту обучения, - что значит впихнуть невпихуемое.

Читать далее

FastAPI очень быстрый CRUD

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

Всем привет это моя первая статья на habr надеюсь это будет кому-то интересно. На последнем проекте я как всегда делал какой-то REST API и вдруг меня посетила мысль что я что-то много копирую и вставляю одного и того же кода. И я решил почему бы не сделать генератор этого кода это оказалось не сложно.

Сразу оговорюсь что я использую https://github.com/tiangolo/full-stack-fastapi-postgresql и содержимое репозитория нужно положить в директорию backend/app/app что бы все заработало.

Думаю в чистом FastAPI проекте это тоже должно сработать.

По умолчанию в проектах этого типа есть два типа пользователей superuser и обыкновенный user соответсвенно CRUD будет создаваться относительно двух этих пользователей. Для генерации CRUD достаточно создать просто модель.

Читать далее

Небольшой модуль для работы с dnevnik.ru на python

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

Привет, Хабр. Это моя первая статья, и сегодня я хочу рассказать вам про свой первый модуль на python. Называется он dnevnikru. Я написал его для облегчения работы с сайтом дневника. Работает модуль по принципу парсера, а не получает данные через API.

Идея написать такой модуль пришла мне после идеи написать телеграм бота для просмотра оценок и домашних заданий из Дневника.ру

Читать далее

Разбираюсь в математике = легко стану программистом?

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

Согласно исследованию - влияние есть, но незначительное. Обучаемость скорее связана с навыками изучения новых языков (не программирования).

Что в первую очередь ассоциируется у вас с программированием? Может быть математика? Большинство знакомых мне программистов не связывают то, чем они занимаются, в первую очередь с математикой. Они скорее говорят о логике. Тем не менее, идея о том, что навыки программирования связаны со способностями к математике, остается живой даже среди программистов.

Совсем недавно было опубликовано исследование Вашингтонского университета. В нем исследователи выяснили роль математики в способностям к обучению программированию.

Читать далее

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