Обновить
528.79

Python *

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

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

Препарирование нейронок, или TSNE и кластеризация на терабайтах данных

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

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

Читать далее

Мультиклассификация экстремально коротких текстов классическими методами машинного обучения

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

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

Читать далее

Погода бот на python

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

На тему телеграмм ботов много материал, но погода бота я не находил и поэтому для себя и своих братьев написал свой собственный бот на Python.

В первую очередь нам нужна среда разработки для меня это Pycharm от нашей питерской компании. Установка проста как три рубля поэтому на ней останавливаться не буду.

Пока устанавливается Pycharm, нужно получить токены:

1. для бота от телеграмма,

2. для доступа к api accuweather

3. для доступа к api yandex.weather

Итак, для получения токена от телеграмма Вам необходимо написать @BotFather и следовать инструкции (инструкций по созданию телеграмм-бота полно в интернете).

Читать далее

Крутые GitHub репозитории в области машинного обучения

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

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

Читать далее

Python кодогенерация на благо ETL — часть 2

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

Привет! В первой части я поделился мыслями, которые побудили к созданию python библиотеки convtools. Кратко о ней: предоставляет примитивы (конверсии), объединяя которые, можно описывать сложные конверсии для обработки данных. Конверсия генерирует узкоспециализированный код, компилирует его и возвращает функцию, решающую конкретную задачу.

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

1) как pipe позволяет повысить переиспользуемость кода

2) новая часть библиотеки: Table - потоковый обработчик табличных данных

Читать далее

Анализ и визуализация данных в финансах — анализ ETF с использованием Python

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

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

1. О данных

Для анализа будем использовать данные ETF c базовой валютой USD: FXCN, FXRL, FXIT, FXUS и FXRU. Временной ряд рассмотрим за три года с 2018 по 2020 года. Само исследование проведем в Google Colaboratory.

Как обычно в начале импортируем все необходимые библиотеки для дальнейшей работы.

Читать далее

Простое эконометрическое прогнозирование

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

Прогнозирование – это важный инструмент экономики. Оно позволяет осуществлять рациональные закупки, вырабатывать долгосрочные планы действий или же, как в случае аудита, спрогнозировать будущие затраты. Прогнозирование так же является одной из областей Data Science.

Давайте рассмотрим создание простой прогнозной модели на основе линейного тренда с помощью эконометрических методов.

Возьмем некоторый набор данных (можно найти в репозитории Github, ссылка в конце статьи). Примем, что генезис не имеет значения (прим. автора – происхождение), но учтем, что данные имеют нормальное распределение:

Читать далее

Разработка системы заметок с нуля. Часть 3: знакомство с Neo4j, работа над микросервисами CategoryService и APIService

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

Мы продолжаем разрабатывать систему заметок с нуля. В третьей части серии материалов мы познакомимся с графовой базой Neo4j, напишем CategoryService и реализуем клиента к новому сервису в APIService.

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

Во второй части мы спроектировали и разработали RESTful API Service на Golang cо Swagger и авторизацией.

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

Читать далее

Поиск и обработка информации на файловых ресурсах

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

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

Для обработки параметров командной строки в Python есть удобный модуль click (установка pip install click). Обработка аргументов командной строки происходит при помощи добавления к функции декораторов. Определим обязательные параметры: search_path — путь по которому будем искать, либо файл с путями и дополнительные: режим исполнения программы (многопоточный или без), имя файла с результатами, формат записи результата (excel, csv, sqlite) и другие параметры по вашему желанию.

Читать далее

Прогнозируем сервис оборудования … по истории Service Desk

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

Попытаемся спрогнозировать запросы на обслуживание оборудования, по истории запросов в Service Desk.

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

Исходные данные: датасет со следующими полями:

Читать далее

Частотный биграммный анализ на Python

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

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

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

Для английского языка было найдено 12 более или менее достоверных анализов для базовой символьной частотности, из которых только 3 обладают внушительными базовыми выборками, и 5 биграммных анализов (парная частотность), из которых внушительной выборкой могут похвастать лишь 2.

Для русского и того меньше – 7 анализов базовой частотности, из которых 3 без указанного значения выборки, остальные же в пределах х×106 символов. Биграммных – 3, один из которых сделан по единственной книге «Преступление и наказание», а второй на 5.000 символов.

Несложно догадаться, как обстоит дело с менее популярными языками.

Читать далее

Пишем свой Google, или асинхронный краулер с rate limits на Python

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

Меня зовут Александр, я руковожу backend-разработкой в КТS. Сегодня расскажу, как написать асинхронный краулер.

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

Статья написана по мотивам вебинара, который мы провели в рамках нового курса «Асинхронное программирование на Python для начинающих». Курс стартует 18 октября, поэтому, если вам интересно — загляните посмотреть.

Что будет в статье:

1. Цель
2. Исходный код
3. Планировщик
4. Задача для краулера
5. Пробный запуск
6. Промежуточный итог
7. Функции put и join
8. Semaphore
9. Остановка фонового планировщика
10. Работа краулера на примере обкачки нашего блога на Хабре
11. Заключение

Читать далее

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

Руководство по работе с Django REST Framework, Swagger и созданию клиента TypeScript для API

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

Цели:

Создать API с помощью Django REST Framework;

Создать динамическую документацию Swagger;

Сгенерировать для API код клиента на TypeScript;

Создать базовое приложение на ReactJS, которое будет использовать сгенерированный код на TypeScript для отображения данных из API.

Читать далее

Создайте средство проверки на плагиат с помощью машинного обучения

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

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

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

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

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

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

Мы создадим Python Flask приложение, которое использует  Pinecone - службу поиска сходства для поиска возможного плагиата.

Читать далее

Как я сжимал модель fastText для реальной задачи в 80 раз в 2021 году

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

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

На просторах хабра вы уже найдете примеры такого сжатия описанные ранее «Давидом Дале» в статье «Как сжать модель fastText в 100 раз». Решая эту задачу, а применял рекомендации из данной статьи, и к ним мы еще вернемся, но эта статья уже несколько потеряла свою актуальность, так как часть используемых методов более не работают в новой версии библиотеки Gensim 4.0. Кроме того, применяемый в данной статье имеет более общий характер применения, так как сжатая данный образом модель все же не рассчитана на решение узкой задачи, и как показала практика при решении более узких задач, модель теряет в качестве более существенно, чем это показано на примерах.

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

Основная суть примененного мною метода, была в том, чтобы исключить из словаря модели FastText не используемые слова. Так как например модель «wiki_ru», содержит в своем корпусе 1,88 млн слов в словаре, и 2 млн n-грамм токенов, (300 мерных) векторов.

Читать далее

Django Admin с миллионами записей — 11 практик оптимизаций для начинающих

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

Django — самый популярный Python web-framework. За больше чем 10 лет оброс огромным слоем возможностей. Среди них можно выделить — Django Admin — это готовый CRUDL интерфейс с поиском, фильтрами и хитрыми настройками.


Каждый раз стартуя проект на Django, удивляюсь насколько круто иметь админку — web интерфейс просмотра данных. Да еще и бесплатно.


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


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

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

SQL в SQLAlchemy

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

Меня зовут Алексей Казаков, я техлид команды «Клиентские коммуникации» в Домклик. По моему опыту подавляющее большинство приложений, взаимодействующих с базой данных, использовали для этого Object Relational Mapper. В этой статье я продолжу знакомить вас с популярными ORM, которые встречались мне в продовых проектах. На очереди всемогущий SQLAlchemy.

Читать далее

Опыт извлечения обучающих данных из генеративных языковых моделей

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

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

A. Extracting Training Data from Large Language Models/Извлечение обучающих данных из больших языковых моделей (генеративных)/Authors: Nicholas Carlini, Florian Tramèr, Eric Wallace, Matthew Jagielski, Ariel Herbert-Voss, Katherine Lee1, Adam Roberts, Tom Brown, Dawn Song, Úlfar Erlingsson, Alina Oprea, Colin Raffel (https://arxiv.org/abs/2012.07805)

B. The Secret Sharer: Evaluating and Testing Unintended Memorization in Neural Networks/Открывающий секреты: оценка и тестирование непреднамеренного запоминания в нейронных сетях/ Nicholas Carlini, Chang Liu, Úlfar Erlingsson, Jernej Kos, Dawn Song. (https://arxiv.org/abs/1802.08232).

C. Membership Inference Attacks Against Machine Learning Models/Атаки на определение членства против моделей машинного обучения/ Reza Shokri, Marco Stronati, Congzheng Song, Vitaly Shmatikov (https://arxiv.org/abs/1610.05820).

D. An Attack on InstaHide: Is Private Learning Possible with Instance Encoding?/Атака на InstaHide: Возможно ли частное (приватное/не допускающее утечек) обучение с помощью кодировния экземпляра при обучении моделей / Nicholas Carlini, Samuel Deng, Sanjam Garg, Somesh Jha, Saeed Mahloujifar, Mohammad Mahmoody, Shuang Song, Abhradeep Thakurta, Florian Tramèr (https://arxiv.org/abs/2011.05315).

E. Comprehensive Privacy Analysis of Deep Learning: Passive and Active White-box Inference Attacks against Centralized and Federated Learning/ Всесторонний анализ конфиденциальности глубокого обучения: Пассивные и активные атаки вывода обучающего набора данных на модель в белом ящике при централизованном и федеративном обучении/ Milad Nasr, Reza Shokri, Amir Houmansadr (https://arxiv.org/abs/1812.00910).

Читать далее

ML-модели в BI: интеграция с Python через JupyterHub

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

Привет, Хабр! Мы продолжаем рассматривать конкретный практический вопрос — интеграцию Python для внедрения ML-моделей и расширенной аналитики в BI. В прошлом посте мы уже рассуждали о том, зачем это нужно, и как можно реализовать подобное расширение. Сегодня же мы остановимся на том, как реализована поддержка Python в популярных BI-системах. И сразу спойлер: в существующих системах (в том числе в Visiology) это было сделано неудобно, и чтобы решить эту проблему, мы придумали новую штуку, а именно — интеграцию с JupyterHub. Под катом — подробный рассказ о том, какие мы знаем подходы к работе с Python, и что меняется в этом процессе при подключении Jupyter Hub. Если вы еще не пробовали эту схему, то скорее давайте читать наш пост, а если уже работали таким образом — давайте обсуждать новый подход в комментариях.

Читать далее

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