Как стать автором
Обновить
2
0
Максим Макаров @mmakarov

Full Stack разработчик

Отправить сообщение

Понимаем соединения и пулы

Время на прочтение20 мин
Количество просмотров38K

Прим. перев.: автор этой статьи — технический архитектор Sudhir Jonathan — рассказывает об одном из тех базовых механизмов, с которым сталкивается каждый пользователь, разработчик и системный администратор. Однако до возникновения определённых (и иногда довольно специфичных) проблем многие не задумываются о том, как всё работает «под капотом». Автор устраняет этот пробел, используя популярные фреймворки, серверы БД и приложений в качестве понятных примеров.

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

Читать далее
Всего голосов 30: ↑29 и ↓1+32
Комментарии3

Как делают микропроцессоры. Польский химик, голландские монополисты и закон Мура

Время на прочтение8 мин
Количество просмотров72K


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

Удивляясь красоте какой-нибудь микросхемы, невольно думаешь: как же это сделано? Давайте посмотрим на каждый шаг в производственном процессе.
Читать дальше →
Всего голосов 61: ↑59 и ↓2+78
Комментарии119

Как работает метод главных компонент (PCA) на простом примере

Время на прочтение10 мин
Количество просмотров282K


В этой статье я бы хотел рассказать о том, как именно работает метод анализа главных компонент (PCA – principal component analysis) с точки зрения интуиции, стоящей за ее математическим аппаратом. Максимально просто, но подробно.
Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Комментарии23

Dusha: самый большой открытый датасет для распознавания эмоций в устной речи на русском языке

Время на прочтение9 мин
Количество просмотров9.1K

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

Однако, помимо распознавания и синтеза речи, мы развиваем технологии распознавания эмоций голоса для линейки наших умных устройств, а также для решений, позволяющих анализировать общение по телефону.  Например, на этой технологии базируется наш новый продукт SaluteSpeech Insights, который автоматически оценивает эмоции клиента и оператора колл-центра по каждой произнесенной ими фразе, классифицирует все диалоги на позитивные, нейтральные и негативные, определяет более 300 различных речевых характеристик, а еще прогнозирует оценку CSI (Customer Satisfaction Index).

Читать далее
Всего голосов 16: ↑15 и ↓1+17
Комментарии6

Разметка данных в машинном обучении: процесс, разновидности и рекомендации

Время на прочтение14 мин
Количество просмотров50K

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

В этой статье мы расскажем, что такое разметка данных, как она работает, о типах разметки данных и о рекомендациях, позволяющих сделать этот процесс беспроблемным.
Читать дальше →
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Основы Natural Language Processing для текста

Время на прочтение12 мин
Количество просмотров202K
Обработка естественного языка сейчас не используются разве что в совсем консервативных отраслях. В большинстве технологических решений распознавание и обработка «человеческих» языков давно внедрена: именно поэтому обычный IVR с жестко заданными опциями ответов постепенно уходит в прошлое, чатботы начинают все адекватнее общаться без участия живого оператора, фильтры в почте работают на ура и т.д. Как же происходит распознавание записанной речи, то есть текста? А вернее будет спросить, что лежит в основе соврменных техник распознавания и обработки? На это хорошо отвечает наш сегодняшний адаптированный перевод – под катом вас ждет лонгрид, который закроет пробелы по основам NLP. Приятного чтения!


Всего голосов 33: ↑31 и ↓2+29
Комментарии9

Yargy-парсер и библиотека Natasha. Извлечения структурированной информации из текстов на русском языке

Время на прочтение12 мин
Количество просмотров86K
В 2020 году библиотека Natasha значительно обновилась, на Хабре опубликована статья про актуальную версию. Чтобы использовать инструменты, описанные в этом тексте, установите старую версию библиотеки pip install natasha<1 yargy<0.13.

Раздел про Yargy-парсер актуален и сейчас.


Есть стандартная задача извлечения именованных сущностей из текста (NER). На входе текст, на выходе структурированные, нормализованные объекты, например, с именами, адресами, датами:



Задача старая и хорошо изученная, для английского языка существует масса коммерческих и открытых решений: Spacy, Stanford NER, OpenNLP, NLTK, MITIE, Google Natural Language API, ParallelDots, Aylien, Rosette, TextRazor. Для русского тоже есть хорошие решения, но они в основном закрытые: DaData, Pullenti, Abbyy Infoextractor, Dictum, Eureka, Promt, RCO, AOT, Ahunter. Из открытого мне известен только Томита-парсер и свежий Deepmipt NER.

Я занимаюсь анализом данных, задача обработки текстов одна из самых частых. На практике оказывается, что, например, извлечь имена из русского текста совсем непросто. Есть готовое решение в Томита-парсере, но там неудобная интеграция с Python. Недавно появилось решение от ребят из iPavlov, но там имена не приводятся к нормальной форме. Для извлечения, например, адресов («ул. 8 Марта, д.4», «Ленинский проезд, 15») открытых решений мне не известно, есть pypostal, но он чтобы парсить адреса, а не искать их в тексте. C нестандартными задачами типа извлечения ссылок на нормативные акты («ст. 11 ГК РФ», «п. 1 ст. 6 Закона № 122-ФЗ») вообще непонятно, что делать.

Год назад Дима Веселов начал проект Natasha. С тех пор код был значительно доработан. Natasha была использована в нескольких крупных проектах. Сейчас мы готовы рассказать о ней пользователям Хабра.
Natasha — это аналог Томита-парсера для Python (Yargy-парсер) плюс набор готовых правил для извлечения имён, адресов, дат, сумм денег и других сущностей.
В статье показано, как использовать готовые правила из Natasha и, самое главное, как добавлять свои с помощью Yargy-парсера.
Читать дальше →
Всего голосов 87: ↑86 и ↓1+85
Комментарии33

Классификатор kNN

Время на прочтение6 мин
Количество просмотров147K
kNN расшифровывается как k Nearest Neighbor или k Ближайших Соседей — это один из самых простых алгоритмов классификации, также иногда используемый в задачах регрессии. Благодаря своей простоте, он является хорошим примером, с которого можно начать знакомство с областью Machine Learning. В данной статье рассмотрен пример написания кода такого классификатора на python, а также визуализация полученных результатов.
Читать дальше →
Всего голосов 30: ↑27 и ↓3+24
Комментарии9

Как разобраться в дереве принятия решений и сделать его на Python

Время на прочтение5 мин
Количество просмотров30K
Совсем скоро, 20 ноября, у нас стартует новый поток «Математика и Machine Learning для Data Science», и в преддверии этого мы делимся с вами полезным переводом с подробным, иллюстрированным объяснением дерева решений, разъяснением энтропии дерева решений с формулами и простыми примерами, вводом понятия «информационный выигрыш», которое игнорируется большинством умозрительно-простых туториалов. Статья рассчитана на любящих математику новичков, которые хотят больше разобраться в работе дерева принятия решений. Для полной ясности взят совсем маленький набор данных. В конце статьи — ссылка на код на Github.


Приятного чтения!
Всего голосов 17: ↑15 и ↓2+18
Комментарии0

Redux store vs React state

Время на прочтение14 мин
Количество просмотров19K
Как спроектировать хранение данных в React-приложении? Где хранить данные приложения: в глобальном хранилище (Redux store) или в локальном хранилище (component state)?
Такие вопросы возникают у разработчиков, начинающих использовать библиотеку Redux, и даже у тех, кто ей активно пользуется.

Мы в BENOVATE за 5 лет разработки на React опробовали на практике различные подходы к построению архитектуры таких приложений. В статье рассмотрим возможные критерии для выбора места хранения данных в приложении.
Читать дальше →
Всего голосов 1: ↑1 и ↓0+1
Комментарии9

«Хакатоны можно использовать для найма»: опыт организатора 35 хакатонов

Время на прочтение4 мин
Количество просмотров2.4K

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


Мы опросили более 400 участников хакатонов, чтобы разобраться в этой теме.


image

Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Комментарии0

Навигация внутри помещений — первые шаги с indoo.rs NavigationSDK

Время на прочтение5 мин
Количество просмотров17K


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


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


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

Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии9

Добавляем параллельные вычисления в Pandas

Время на прочтение2 мин
Количество просмотров18K

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


Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии5

Покупка оптимальной квартиры с R

Время на прочтение12 мин
Количество просмотров62K
Многие люди сталкиваются с вопросом покупки или продажи недвижимости, и важный критерий здесь, как бы не купить дороже или не продать дешевле относительно других, сопоставимых вариантов. Простейший способ — сравнительный, ориентироваться на среднюю цену метра в конкретном месте и экспертно добавляя или снижая проценты от стоимости за достоинства и недостатки конкретной квартиры. image Но данный подход трудоемок, неточен и не позволит учесть все многообразие отличий квартир друг от друга. Поэтому я решил автоматизировать процесс выбора недвижимости, используя анализ данных путем предсказания «справедливой» цены. В данной публикации описаны основные этапы такого анализа, выбрана лучшая предиктивная модель из восемнадцати протестированных моделей на основании трех критериев качества, в итоге лучшие (недооцененные) квартиры сразу помечаются на карте, и все это используя одно web-приложение, созданное с помощью R.

Читать дальше →
Всего голосов 62: ↑59 и ↓3+56
Комментарии35

Разработка REST API на Express, Restify, hapi и LoopBack

Время на прочтение5 мин
Количество просмотров44K
Если вы работаете над Node.js приложением, то есть все шансы, что у него появится некое API, которое будет использовано вами или кем-то другим. Наверняка это будет REST API и перед вами возникнет дилемма — какие инструменты и подходы использовать. Ведь выбор так широк…

image

Благодаря невероятно активному сообществу Node.js, количество результатов на NPM по запросу «rest» зашкаливает. У каждого есть свои реализации и подходы, но у некоторых есть что-то общее в создании REST API на Node.js.
Читать дальше →
Всего голосов 47: ↑31 и ↓16+15
Комментарии25

Как геокодировать миллион точек на Spark по-быстрому?

Время на прочтение9 мин
Количество просмотров5.4K
В моем предыдущем проекте перед нами встала задача провести обратное геокодирование для множества пар географических координат. Обратное геокодирование — это процедура, которая паре широта-долгота ставит в соответствие адрес или название объекта на карте, к которому принадлежит или близка заданная координатами точка. То есть, берем координаты, скажем такие: @55.7602485,37.6170409, и получаем результат либо «Россия, Центральный федеральный округ, Москва, Театральная площадь, дом такой-то», либо например «Большой театр».

Если на входе адрес или название, а на выходе координаты, то эта операция — прямое геокодирование, об этом мы, надеюсь, поговорим позже.

В качестве исходных данных у нас на входе было примерно 100 или 200 тысяч точек, которые лежали в кластере Hadoop в виде таблицы Hive. Это чтобы был понятен масштаб задачи.

В качестве инструмента обработки в конце концов был выбран Spark, хотя в процессе мы попробовали как MapReduce, так и Apache Crunch. Но это отдельная история, возможно заслуживающая своего поста.
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии23

IMHO, как писать на Хабр

Время на прочтение10 мин
Количество просмотров38K


Акронис на прошлой неделе попросил меня рассказать про опыт на Хабре. После семинара я обещал выложить основные тезисы. Возможно, вы найдёте что-то полезное ниже.

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

При этом активных (голосующих) пользователей всего около 3 тысяч. Уровень знаний аудитории на входе в пост — в примерно 95% случаев низкий, в 5% — экспертный (разбиение оценочное). Проще говоря, есть люди, которые вообще не понимают, что вы хотите сказать (и их большинство), и есть те, кто разбирается в теме на голову лучше вас. Поэтому лучший пост — это тот, что проходит от ликбеза к хардкору. На площадке довольно высокий уровень агрессии (точнее, желания проверить материал на прочность). Ранее был экстремально высок. Средняя или низкая внимательность читателя (ранее была высокая).

Разумеется, это всё моё личное мнение, и можно поспорить. Сейчас постараюсь объяснить, почему я так считаю, и как это влияет на посты. Я основываюсь на опыте примерно 1500 постов за 6 лет, которые написал сам или помогал готовить.

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


Данные тут на конец августа, я их к другому семинару (в Хабре для владельцев блогов) готовил.
Читать дальше →
Всего голосов 200: ↑182 и ↓18+164
Комментарии165

Earth Engine от Google — уникальная платформа для анализа больших геоданных

Время на прочтение34 мин
Количество просмотров27K


Earth Engine — это облачная платформа для геопространственного анализа данных в планетарных масштабах. Она позволяет использовать огромные вычислительные мощности компании Google для изучения самых разнообразных проблем: потерь лесов, засухи, стихийных бедствий, эпидемий, продовольственной безопасности, управления водными ресурсами, изменения климата и защиты окружающей среды. Чтобы избежать путаницы в названиях, сразу определим, что Google Earth (он же — Google Планета Земля) и Google Earth Engine — это два разных продукта. Первый, не требуя от пользователей особых компьютерных навыков, предназначен для визуализации спутниковых снимков и позволяет путешествовать и исследовать мир, взаимодействуя с виртуальным глобусом. Второй, которому посвящена эта статья, — это прежде всего инструмент для анализа данных. Использование Earth Engine предполагает знание прикладной области и умение писать программный код. Ссылка на официальный сайт проекта.

Читать дальше →
Всего голосов 15: ↑13 и ↓2+19
Комментарии7

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность