Обновить
517.72

Python *

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

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

Генератор абсурда за пять минут с NLTK и TreeTagger

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


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

Насколько сложно в наш век всеобщего проникновения машинного обучения и NLP набросать такую игрушку? О, это очень легко.
Читать дальше →

Классификатор обращений пользователей (1C + python)

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

1. Описание задачи

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

Читать далее

Redis Python based cluster. Часть 2: зачем нужен Dynamo и что делать, когда Redis больше одного

Время на прочтение8 мин
Охват и читатели2.3K
Рано или поздно сервисы растут, а с большим RPS приходит Highload.

Что делать, когда ресурсов для вертикального масштабирования Redis уже нет, а данных меньше не становится? Как решить эту задачу без downtime и стоит ли её решать с помощью redis-cluster?

На воркшопе Redis Python based cluster Савва Демиденко и Илья Сильченков пробежались по теории алгоритмов консенсуса и попробовали в реальном времени показать, как можно решить проблему с данными, воспользовавшись sharding’ом, который уже входит в redis-cluster.


Воркшоп растянулся на два часа. Внутри этого поста — сокращённая расшифровка самых важных мыслей.

В предыдущем посте Савва Демиденко и Илья Сильченков обсудили теорию, поговорили, как и для чего используется Redis, выделили особенности распределённых систем, а также теоремы CAP и PACELC. Теперь узнаем, зачем нужен Dynamo, что делать, когда Redis больше одного, а также ответим на вопросы зрителей.

DataScience Digest — 22.07.21

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

Встречайте свежий выпуск дайджеста полезных материалов из мира Data Science & Machine Learning подготовленный командой Data Phoenix и не забывайте подписываться на наш Telegram-канал.

Читать далее

Автоматический анализ документов

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

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

Читать далее

Не суйте свой Pydantic в мое Django

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

Было замечательное теплое австрийское утро, и ничего не предвещало … ничего, пока мой коллега не порекомендовал мне посмотреть запись недавно прошедшей Pyconf.

Там кто-то рассказывал, как при помощи желтого скотча, такой-то матери и усилий любимых разработчиков они наконец-то допилили Django Rest Framework до состояния франкенштейна подходящего его компании. Презентация выглядела странно, может я и прошел бы мимо, но моменты упоминания докладчиком PYDANTIC вызвали у меня явные сомнения в нормальности происходящего.

Оставим получившегося фRESTенштейна для другой статьи, и поразмышляем только о прозвучавшей в докладе возможности использования PYDANTIC в экосистеме Django — DRF.
Читать дальше →

Уходим с Mercurial на Git

Время на прочтение3 мин
Охват и читатели12K
Кадр из фильма «Красный шар». Режиссер Альбер Ламорис. 1956 год

Так уж случилось, что у меня остался ряд репозиториев на Mercurial, которые захостил на Bitbucket много лет назад. Проекты перешли в полуархивное состояние, поэтому заглядывал в них не так уж и часто. И тут я решил обратиться к материалам, надо было внести правку. С удивлением обнаружил, что репозиториев на битбакете нет, но есть публикация «Sunsetting Mercurial support in Bitbucket».

Не критично, локальные репозитории сохранились же (а там коммитов за 10+ лет). Попробуем переехать на github/gitlab по инструкции из статьи. И, конечно же, эти инструкции работают только с latin-1, русские буквы либо не дают переехать, либо заменяются на ?. Извечная проблема кодировок. Можно ли что-то сделать?

UPDATE по результатам комментариев.
Для «приземления» задачи рассмотрите контекст коммерческой поддержки большой инсталляции ПО, созданного в компании где вы сейчас работаете, которое n лет уже не развивается (выпустили совсем новую ветку), но обязательства по поддержке остались по проданным ранее контрактам. И периодически всплывают баги.

Является продолжением серии предыдущих публикаций.
Читать дальше →

Streamlit. Поиск кратчайшего пути

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

Самое длинное приключение начинается со слов «Я знаю короткую дорогу».

Интересно о чем это? Читай дальше!

Redis Python based cluster. Часть 1: распределённые системы, теоремы CAP и PACELC и зачем нужен Redis

Время на прочтение9 мин
Охват и читатели12K
Рано или поздно сервисы растут, а с большим RPS приходит Highload.

Что делать, когда ресурсов для вертикального масштабирования Redis уже нет, а данных меньше не становится? Как решить эту задачу без downtime и стоит ли её решать с помощью redis-cluster?

На воркшопе Redis Python based cluster Савва Демиденко и Илья Сильченков пробежались по теории алгоритмов консенсуса и попробовали в реальном времени показать, как можно решить проблему с данными, воспользовавшись sharding’ом, который уже входит в redis-cluster.

Воркшоп растянулся на два часа. Внутри этого поста — сокращённая расшифровка самых важных мыслей.

Введение


Немного о тех, кто провёл воркшоп, и почему вообще его решили провести.

Савва Демиденко

Занимаюсь разработкой в Avito, делаю программу курса «Мидл Python-разработчик» от Яндекс.Практикума. Закончил Бауманку и Технопарк. Разрабатываю на Python и Golang. Люблю решать архитектурные задачи в веб-программировании.

Илья Сильченков

Тимлид в «Сбермаркете» и наставник на курсе «Мидл Python-разработчик». Успел побыть фронтендером и дата-инженером, но остановился на бэкенде. Сейчас пишу на Python и Go.

В рамках нашего курса в «Яндекс.Практикуме» в течение шести месяцев мы делаем онлайн-кинотеатр из множества микросервисов. Сначала пишем маленькую ETL из Elasticsearch и Flask, потом — админку и асинхронное API, авторизацию/аутентификацию и систему уведомлений. В том числе есть маленькая продуктовая задача — пиар в социальных сетях.

Как подружить django и vue.js

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

Небольшой тутор о том, как передать данные из бэка на django на vue и как с помощью django сёрвить этот самый vue.

Читать далее

Алгоритмы сортировки NumPy (и танцы, и мемы)

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

Вместо предисловия:

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

Читать далее

Делаем простого бота в Telegram на Python. Интеграция с Excel

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

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

Читать далее

Почему стоит научиться «парсить» сайты, или как написать свой первый парсер на Python

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

В этой статье я постараюсь понятно рассказать о парсинге данных и его нюансах.



image

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

Перейдем к этапам парсинга.

  • Поиск данных
  • Извлечение информации
  • Сохранение данных

И так, рассмотрим первый этап парсинга — Поиск данных.


Так как нужно парсить что-то полезное и интересное давайте попробуем спарсить информацию с сайта work.ua.
Для начала работы, установим 3 библиотеки Python.

pip install beautifulsoup4

Без цифры 4 вы ставите старый BS3, который работает только под Python(2.х).

pip install requests
pip install pandas


Теперь с помощью этих трех библиотек Python, можно проанализировать нашу веб-страницу.

Второй этап парсинга — Извлечение информации.


Попробуем получить структуру html-кода нашего сайта.
Давайте подключим наши новые библиотеки.

import requests
from bs4 import BeautifulSoup as bs
import pandas as pd

И сделаем наш первый get-запрос.

URL_TEMPLATE = "https://www.work.ua/ru/jobs-odesa/?page=2"
r = requests.get(URL_TEMPLATE)
print(r.status_code)

Статус 200 состояния HTTP — означает, что мы получили положительный ответ от сервера. Прекрасно, теперь получим код странички.

print(r.text)

Получилось очень много, правда? Давайте попробуем получить названия вакансий на этой страничке. Для этого посмотрим в каком элементе html-кода хранится эта информация.

<h2 class="add-bottom-sm"><a href="/ru/jobs/3682040/" title="Комірник, вакансия от 5 ноября 2019">Комірник</a></h2>


У нас есть тег h2 с классом «add-bottom-sm», внутри которого содержится тег a. Отлично, теперь получим title элемента a.
Читать дальше →

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

Модели глубоких нейронных сетей sequence-to-sequence на PyTorch (Часть 6)

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

В этом разделе мы будем реализовывать (слегка измененную версию) модели Transformer из статьи Attention is All You Need. Подобно свёрточной модели Sequence-to-Sequence, Transformer не использует никакой рекуррентности. Он также не использует свёрточные слои. Вместо этого модель полностью состоит из линейных слоев, механизмов внимания и нормализации.

Читать далее

Обзор Databrick. Что облачный продукт может дать начинающим специалистам

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

Добрый день, уважаемые читатели! Данная публикация посвящена Databricks и она получилась не совсем обычный по двум причинам.

Во-первых, в ней не будут обсуждаться типичные вопросы: целесообразность перевода всех сервисов и служб компаний в облако, возможные ошибки при такой миграции, стоимость использования сервиса, правовые аспекты хранения данных не на территории РФ. Это темы сложные, дискуссионные и без указания конкретных цифр и бизнес-факторов их сложно полноценно раскрыть в статье. Поэтому я решил посмотреть на Databricks под другим углом и заострить внимание читателей на таком аспекте: что может дать изучение инструмента аналитику данных.

Во-вторых, чтобы обзор продукта был максимально комплексным и технически взвешенным я с самого начала планировал написать материал в соавторстве с инженером данных и специалистом в сфере data science. В таком случае была бы возможность донести до читателей концепцию Delta Lake и рассказать о нюансах машинного обучения. Но предложение не нашло отклика в сердцах коллег по цеху, поэтому итоговый результат получился в стиле: “Я художник - я так вижу!”) Это была преамбула, а теперь настало время познакомиться поближе с Databricks.

Читать далее

Как победить несбалансированность датасета: метод upsampling data

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

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

Читать далее

Как превратить фотографию в 3D-объект с помощью Nvidia Kaolin и PyTorch: рендеринг DIB-R

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

В научной работе NVIDIA 2019 года улучшенный дифференциальный рендерер — DIB-R представлен как инструмент решения одной из самых популярных сегодня задач Deep Learning: генерации 3D-объектов из одного двухмерного изображения. Статья на ArXiv содержала исходный код, но в ней не оказалось необходимой для его выполнения ML-модели. К старту курса «Machine Learning и Deep Learning», партнёр которого — компания NVIDIA, делимся переводом о том, как запустить руководство по работе с этой программой визуализации, как она работает, как обучить ML-модель рендеринга и проверить её в действии.

Читать далее

Как работают Django Class-based views

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

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

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

Читать далее

Модели глубоких нейронных сетей sequence-to-sequence на PyTorch (Часть 5)

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

В этом разделе мы будем реализовывать модель из статьи Convolutional Sequence to Sequence Learning.

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

Читать далее

Управление сетевой инфраструктурой через Telegram за 5 EUR/месяц

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

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

Читать далее

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