IT-новости про Python, которые стоит знать

Собрали в одном месте самые важные ссылки
читайте нас в Twitter

     07.03.2020       Выпуск 324 (02.03.2020 - 08.03.2020)       Статьи

Анализ тональности фраз с помощью нейронных сетей

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

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

     06.03.2020       Выпуск 324 (02.03.2020 - 08.03.2020)       Статьи

Подборка статей о машинном обучении: кейсы, гайды и исследования за февраль 2020

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

     05.03.2020       Выпуск 324 (02.03.2020 - 08.03.2020)       Статьи

Методы Монте-Карло для марковских цепей (MCMC). Введение

Методы Монте-Карло для марковских цепей (MCMC) – это мощный класс методов для выборки из вероятностных распределений, известных лишь вплоть до некоторой (неизвестной) нормировочной константы.

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

     05.03.2020       Выпуск 324 (02.03.2020 - 08.03.2020)       Статьи

Trio – асинхронное программирование для людей

В Python существует библиотека Trio – библиотека асинхронного программирования. Знакомство с Trio в основном будет интересно тем, кто работает на Asyncio, потому что это хорошая альтернатива, позволяющая решать часть проблем, с которыми не может справиться Asyncio. В этом обзоре рассмотрим, что из себя представляет Trio и какие фичи она нам дает.

     04.03.2020       Выпуск 324 (02.03.2020 - 08.03.2020)       Статьи

Двойная проверка блокировки с Django ORM

Оригинальная статья: Luke PlantDouble-checked locking with Django ORM

Шаблон блокировки с двойной проверкой может быть полезен, когда:

  1. Вам необходимо ограничить доступ к определенному ресурсу, чтобы параллельные процессы не могли работать с ним одновременно.
  2. Другие доступные вам схемы блокировки сложны или медленные.

Этот пост о том, как можно реализовать этот шаблон в Django, используя функции ORM и блокировки на уровне базы данных. Шаблон может использоваться с любой другой ORM, но я проверил его только с Django, и подтвердил, что он работает, как и ожидается, используя PostgreSQL.

     03.03.2020       Выпуск 324 (02.03.2020 - 08.03.2020)       Статьи

Бесполезный REPL. Доклад Яндекса

REPL (read-eval-print loop) бесполезен в Python, даже если это волшебный IPython. Сегодня я предложу одно из возможных решений этой проблемы. В первую очередь доклад и мое расширение TheREPL будет полезны тем, кого интересует более быстрая и эффективная разработка, а также тем, кто пишет stateful-системы.

     03.03.2020       Выпуск 324 (02.03.2020 - 08.03.2020)       Статьи

Как заставить машину написать тесты из кода за тебя

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

     02.03.2020       Выпуск 324 (02.03.2020 - 08.03.2020)       Статьи

Задача для разработчика, или как мы без вендора ручные сканеры прошивали

Cегодня расскажем о своем опыте работы с USB-девайсами через Python PyUSB и немного о реверс-инжиниринге.

     29.02.2020       Выпуск 323 (24.02.2020 - 01.03.2020)       Статьи

Введение в архитектурный фреймворк для анализа данных Lena

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

 

Lena написана на популярном языке Python и работает с версиями Python 2, 3 и PyPy. Она опубликована под свободной лицензией Apache (версия 2) здесь. В данный момент она ещё разрабатывается, однако описываемое в данном руководстве уже используется, тестировано (общее покрытие всего фреймворка около 90%) и вряд ли будет изменено. Lena возникла при анализе данных экспериментов в физике нейтрино и названа в честь великой сибирской реки.

     28.02.2020       Выпуск 323 (24.02.2020 - 01.03.2020)       Статьи

Новостной агрегатор за две недели

18 ноября Telegram запустил соревнование по кластеризации данных: Data Clustering Contest. Нужно было за две недели сделать свой новостной агрегатор. Ограничения, которые были установлены в этом соревновании отпугнули кучу людей, но не меня и моих коллег. Я расскажу от том, каким путём мы прошли, какие выборы сделали и с какими сложностями столкнулись. Решение, которое мы заслали в соревнование обрабатывало 1000 документов за 3,5 секунды, занимало 150 Мб, заняло 6 место на публичном голосовании и 3 место в итоговых результатах. Мы допустили много ошибок, из-за которых не заняли место повыше, большинство из них сейчас исправлены. Весь код и все модели можно найти в репозитории. Все скрипты для обучения моделек перенесены на Colab.

     27.02.2020       Выпуск 323 (24.02.2020 - 01.03.2020)       Статьи

Оптимизация кода на Python с помощью ctypes

Я написал это руководство, поскольку не смог найти такого, которое будет объединять в себе все полезное о ctypes. Надеюсь, эта статья сделает чью-то жизнь намного легче.

     27.02.2020       Выпуск 323 (24.02.2020 - 01.03.2020)       Статьи

Подсчет запросов: Базовое тестирование производительности на Django

Очень часто можно услышать о методах тестирования, таких как TDD, и о том, как тестировать бизнес-логику приложения. Однако тестирование производительности приложения – это совсем другая задача. Есть много разных способов, но самым общим подходом считается создание среды, в которой можно проводить DDoS-атаку на свое приложение и наблюдать за его поведением. Это очень интересная тема, но это не то, о чем я хочу сегодня поговорить. Сегодня мы рассмотрим более простой тест, тот, который вы можете сделать с использованием юнит-тестов Django по умолчанию: то есть тестирование количество обращений вашего приложения к базе данных.

     27.02.2020       Выпуск 323 (24.02.2020 - 01.03.2020)       Статьи

Анализ качества работы чат-бота в IBM Watson Assistant

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

За счет постоянного совершенствования продукта команда IBM Watson Assistant старается сделать процесс создания и запуска виртуального ассистента максимально простым. Сегодня мы расскажем о Dialog Skill Analysis Notebook — фреймворк для Python, который позволяет в кратчайшие сроки разработать высококачественного ИИ ассистента в IBM Watson.

     26.02.2020       Выпуск 323 (24.02.2020 - 01.03.2020)       Статьи

Строим Data Lake на Amazon Web Services

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

Инфографика ниже показывает масштабы этой дата-эпидемии.

     26.02.2020       Выпуск 323 (24.02.2020 - 01.03.2020)       Статьи

Все, что вы хотели узнать об LDPC кодах, но стеснялись спросить (наверное)

С кодами малой плотности проверок на чётность, которые дальше мы будем именовать коротко LDPC (Low-density parity-check codes), мне удалось познакомиться более или менее близко, работая над семестровым научным проектом в ТУ Ильменау (магистерская программа CSP). Моему научному руководителю направление было интересно в рамках педагогической деятельности (нужно было пополнить базу примеров, а также посмотреть в сторону недвоичных LDPC), а мне из-за того, что эти коды были плюс-минус на слуху на нашей кафедре. Не все удалось рассмотреть в том году, и поэтому исследование плавно перетекло в мое хобби… Так я набрал некоторое количество материала, которым сегодня и хочу поделиться!

     25.02.2020       Выпуск 323 (24.02.2020 - 01.03.2020)       Статьи

Интеграция Gitlab, Jira и Confluence на Python для автоматизации сборки релизов

Недавно на стендапе коллега внес рацпредложение: автоматизировать сборку релизов, взяв за основу готовые уже наработки по взаимодействию с Jira, написанные на Python.

Процесс деплоя у нас следующий: когда накапливается достаточное количество задач, прошедших тестирование из них собирается Релиз-кандидат (RC) в каждом проекте, затронутом задачами, затем задачи тестируются в составе RC. После этого RC заливается на стейджинг сервер, где в близком к боевому окружении все еще раз тестируется и проводится полный регресс. И затем, после необходимых деплойных действий свежий релиз заливается в мастер.

     25.02.2020       Выпуск 323 (24.02.2020 - 01.03.2020)       Статьи

Анализируем резюме юристов на hh.ru без api

Hh.ru — неплохой сайт, не нуждающийся в дополнительном представлении. Поиск вакансий на нем удобен и прозаичен. Однако, порой интереснее посмотреть со стороны работодателя:

 

  • как выглядит выдача резюме по целевому запросу,
  • как видно собственное резюме в выдаче,
  • как «проседает» резюме со временем, заодно собрать резюме коллег-юристов для построения мини-статистики.
Несмотря на то, что у hh есть собственное api и оно добротно задокументировано, доступ к нему тщательно оберегается.

     24.02.2020       Выпуск 323 (24.02.2020 - 01.03.2020)       Статьи

Сканирующее окно по массивам NumPy

Возможно сделать скользящее окно (rolling window, sliding window, moving window) по массивам NumPy на языке программирования Python без явных циклов. В данной статье рассматривается создание одно-, двух-, трех- и N-мерных скользящих окон по массивам NumPy. В результате скорость обработки данных увеличивается в несколько тысяч раз и сравнима по скорости с языком программирования С.

 

Cкользящее окно применяется в: обработке изображений, искусственных нейронных сетях, интернет протоколе TCP, обработке геномных данных, прогнозировании временных рядов и т.д.

     24.02.2020       Выпуск 323 (24.02.2020 - 01.03.2020)       Статьи

Изучаем английский с помощью Telegram бота

Нет, это не одна из сотен статей о том, как написать свой первый Hello World бот на Python. Здесь вы не найдете подробной инструкции, как получить API-токен в BotFather или запустить бота в облаке. Взамен я вам покажу как раскрутить всю мощь Python на максимум, чтобы добиться максимально эстетичного и красивого кода. Исполним песню про обращение сложных структур — станцуем и спляшем. Под катом асинхронность, собственная система сейвов, куча полезных декораторов и много красивого кода.

     24.02.2020       Выпуск 323 (24.02.2020 - 01.03.2020)       Статьи

Советы по настройке uWSGI в производственной среде

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