Как стать автором
Обновить
12
0
Idris Y @lytr

Master

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

Bleeding-edge обход блокировок с полной маскировкой: настраиваем сервер и клиент XRay с XTLS-Reality быстро и просто

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров336K

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

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

Кроме того, что этот протокол еще более устойчив к выявлению, приятным фактом будет и то, что настройка сервера XTLS-Reality гораздо проще, чем описанные ранее варианты - после предыдущих статей я получил довольно много комментариев типа "А что так сложно, нужен домен, нужны сертификаты, и куча всего" - теперь все будет гораздо проще.

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

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

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

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

Одна из простых задач звучит так: «При переводе картинки из цветового пространства RGB в YUV мы выполняем прореживание, то есть выкидываем каждый четный столбец и каждую четную строку в компонентах U и V (все компоненты пикселя по 1 байту). Вопрос: во сколько раз меньше данных у нас стало?» Эта операция называется chroma subsampling и широко используется при сжатии видео, например.

Забавно, что когда-то давно, когда винчестеры были меньше, а дискеты больше, студенты реально отвечали на этот вопрос быстро. А в последние годы регулярно народ в ступор впадает. Приходится разбирать по частям: «Если выкинуть каждую четную строку и каждый четный столбец, во сколько раз меньше данных будет у компоненты?» Почти хором: «В четыре». Начинаю подкалывать: «Отлично! У нас было 3 яблока, первое осталось как есть, а от второго и третьего осталось по четвертинке. Во сколько раз меньше яблок у нас стало?» Народ ржет, но, наконец-то, дает правильный ответ (заметим, не все). 

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

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

Кому интересно как теряют мозг студенты масштабы бедствия и что с этим делать — добро пожаловать под кат!

Читать далее
Всего голосов 411: ↑395 и ↓16+379
Комментарии795

Вглубь Pyparsing: парсим единицы измерения на Python

Время на прочтение12 мин
Количество просмотров16K
В прошлой статье мы познакомились с удобной библиотекой синтаксического анализа Pyparsing и написали парсер для выражения 'import matplotlib.pyplot as plt'.

В этой статье мы начнём погружение в Pyparsing на примере задачи парсинга единиц измерения. Шаг за шагом мы создадим рекурсивный парсер, который умеет искать символы на русском языке, проверять допустимость названия единицы измерения, а также группировать те из них, которые пользователь заключил в скобки.
Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии1

Как упростить жизнь за 312 коротких шагов: проектируем GraphQL API в микросервисной архитектуре

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

Звук – HiFi-сервис с большой командой инженеров. Мы используем передовые технологии и современный стек, и экспериментируем, чтобы решать сложные, нестандартные задачи. Одна из технологий  – GraphQL.

Эта статья изначально создавалась как гайд по работе с GraphQL для инженеров Звука (системные аналитики, разработчики, QA). При этом статья может быть полезна всем, кто никогда не работал с GraphQL, но очень хочет понять, зачем он может быть нужен, и как поможет решить задачу вашего бизнеса.

Читать далее
Всего голосов 29: ↑28 и ↓1+27
Комментарии36

Сравниваем качество русскоязычных SaaS-систем в задаче распознавания интентов

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

Продуктовый офис B2O Ростелекома предлагает продукты операторам связи, которые помогают решать задачи бизнеса. Один из таких продуктов - чат-бот. Ключевая задача в развитии диалоговых систем связана с улучшением понимания намерений пользователей — увеличением точности распознавания интентов — intent recognition.

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

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

Тестим автокорректоры для исправления опечаток в поисковых запросах (спойлер: идеального не нашли)

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

Меня зовут Александр Брыль, я дата-саентист в команде NLP СберМегаМаркета и сегодня хочу рассказать, как мы искали быстрое и удобное решение для исправления ошибок в поисковых запросах маркетплейса: зачем нам это понадобилось, как мы сравнивали автокорректоры Яндекс.Спеллер, корректор от DeepPavlov, SymSpell и на чем в итоге решили остановиться.

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

Как работает неточное сравнение строк

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

https://fakt309.github.io/thisisthewall/

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

Но вот что если мы хотим не просто получать дискретное значение (true / false), а дифференцированное, например в процентах. Ведь согласитесь строки test и testing гораздо ближе к друг другу, чем test и abcd. Для данной проблемы существует множество решений, мы поговорим о самый популярных алгоритмах (также об их модификациях):

Расстояние Хэмминга

Расстояние Левенштейна

Сходство Джаро — Винклера

Коэффициент Сёренсена

Читать далее
Всего голосов 50: ↑47 и ↓3+44
Комментарии43

Разбор исходного кода языков программирования и языков разметки

Время на прочтение4 мин
Количество просмотров11K
..it is true that asking regexes to parse arbitrary HTML is like asking Paris Hilton to write an operating system..

Последние версии языка Nemerle включают в состав библиотеку для разбора языков, грамматика которых принадлежит классу PEG.

Что такое PEG?


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

Класс языков, которые можно разобрать с помощью парсеров описанных подобным образом, достаточно широк, чтобы покрыть популярные языки программирования (например, C#) и языки разметки. Очевидно, что он покрывает всю функциональность регулярных выражений.
Про PEG для Nemerle и других .Net языков
Всего голосов 36: ↑33 и ↓3+30
Комментарии15

Парсим на Python: Pyparsing для новичков

Время на прочтение6 мин
Количество просмотров185K
Парсинг (синтаксический анализ) представляет собой процесс сопоставления последовательности слов или символов — так называемой формальной грамматике. Например, для строчки кода:

import matplotlib.pyplot  as plt

имеет место следующая грамматика: сначала идёт ключевое слово import, потом название модуля или цепочка имён модулей, разделённых точкой, потом ключевое слово as, а за ним — наше название импортируемому модулю.

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

{ 'import': [ 'matplotlib', 'pyplot' ], 'as': 'plt' }

Данное выражение представляет собой словарь Python, который имеет два ключа: 'import' и 'as'. Значением для ключа 'import' является список, в котором по порядку перечислены названия импортируемых модулей.

Для парсинга как правило используют регулярные выражения. Для этого имеется модуль Python под названием re (regular expression — регулярное выражение). Если вам не доводилось работать с регулярными выражениями, их вид может вас испугать. Например, для строки кода 'import matplotlib.pyplot as plt' оно будет иметь вид:

r'^[ \t]*import +\D+\.\D+ +as \D+'

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

В данной статье мы установим Pyparsing и создадим на нём наш первый парсер.

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

Сравниваем качество SaaS-систем в задаче распознавания интентов

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

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

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

Недавно команда AutoFAQ решила сравнить свою технологию с решениями от известных компаний на конкретной практической задаче.

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

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

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

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

Чтобы упростить работу техподдержки, команда из нашего акселератора разработала автоматизированную систему на базе машинного обучения. Она запускается за 2 дня без подготовки и без помощи специалистов по data science. Подробности под катом.

Читать далее
Всего голосов 26: ↑24 и ↓2+22
Комментарии7

Word2Vec: классификация текстовых документов

Время на прочтение5 мин
Количество просмотров28K
Известная утилита дистрибутивной семантики Word2Vec демонстрирует удивительные результаты и стабильно обеспечивает использующих её специалистов призовыми местами на конкурсах машинной лингвистики. Преимущество утилиты, как впрочем, и её аналогов – Glove и AdaGram, состоит в дешевизне процесса обучения и подготовки обучающих текстов. Но есть и недостатки – представление слов в виде векторов хорошо работает на словах, удовлетворительно на словосочетаниях, так-себе на фразах и вообще никак – на длинных текстах.

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

Обзор примера применения обучения с подкреплением с использованием TensorFlow

Время на прочтение21 мин
Количество просмотров46K
КПДВ. В Karpathy game играет нейронная сеть

Всем привет!
Я думаю, что многие слышали о Google DeepMind. О том как они обучают программы играть в игры Atari лучше человека. Сегодня я хочу представить вам статью о том, как сделать нечто подобное. Данная статья — это обзор идеи и кода примера применения Q-learning, являющегося частным случаем обучения с подкреплением. Пример основан на статье сотрудников Google DeepMind.
За подробностями добро пожаловать под кат
Всего голосов 22: ↑22 и ↓0+22
Комментарии15

Некоторые современные подходы в области обработки естественного языка

Время на прочтение4 мин
Количество просмотров20K
Результаты научных исследований, полученные в последние годы в задачах распознавания речи [1], машинного перевода [2], определения оттенка предложения [3] и частей речи [4] показали перспективность нейросетевых алгоритмов глубокого обучения в сравнении с классическими методами обработки естественного языка (natural language processing). Однако, в области вопросно-ответных и диалоговых систем еще остается много нерешенных задач [5, 6]. В данной статье дан обзор результатов применения современных алгоритмов для задач обработки и понимания естественного языка. Обзор содержит описание нескольких разных подходов и не претендует на полноту исследований.

Human: how many legs does a cat have ?
Machine: four, i think .
Human: What do you think about messi ?
Machine: he ’s a great player .
Human: where are you now ?
Machine: i ’m in the middle of nowhere .

(из статьи A Neural Conversational Model. КДПВ из фильма Ex Machina)

Читать дальше →
Всего голосов 22: ↑20 и ↓2+18
Комментарии3

Хакатон и зимняя научная школа по глубокому обучению и вопросно-ответным системам

Время на прочтение3 мин
Количество просмотров9.6K
Сегодня машины без труда “связывают два слова” (1, 2), но пока не умеют гарантированно вести диалог на общие темы. Однако, уже завтра вы будете просить их правильно составить резюме и выбрать для ваших детей лучшую секцию по шахматам недалеко от дома. Хотите разобраться подробней, как в этом направлении работают ученые из Facebook, Google и др? Приходите их послушать.

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

Библиотека машинного обучения Google TensorFlow – первые впечатления и сравнение с собственной реализацией

Время на прочтение10 мин
Количество просмотров30K
Coвсем недавно Google сделал доступной для всех свою библиотеку для машинного обучения, под названием TensorFlow. Для нас это оказалось интересно еще и тем, что в состав входят самые современные нейросетевые модели для обработки текста, в частности, обучения типа “последовательность-в-последовательность” (sequence-to-sequence learning). Поскольку у нас есть несколько проектов, связанных с этой технологией, то мы решили, что это отличная возможность перестать изобретать велосипед (наверное пора уже) и быстро улучшить результаты. Представив себе довольные лица клиентов, мы приступили к работе. И вот что из этого получилось…
Читать дальше →
Всего голосов 24: ↑22 и ↓2+20
Комментарии11

Как я победил в конкурсе BigData от Beeline

Время на прочтение7 мин
Количество просмотров87K
image

Все уже много раз слышали про конкурс по машинному обучению от Билайн и даже читали статьи (раз, два). Теперь конкурс закончился, и так вышло, что первое место досталось мне. И хотя от предыдущих участников меня и отделяли всего сотые доли процента, я все же хотел бы рассказать, что же такого особенного сделал. На самом деле — ничего невероятного.
Читать дальше →
Всего голосов 100: ↑92 и ↓8+84
Комментарии32

Что именно заставляет глубинное обучение и нейронные сети работать хорошо?

Время на прочтение6 мин
Количество просмотров35K
Сейчас очень много статей, рапортующих об успехах нейронных сетей, в частности, в интересующей нас области понимания естественного языка. Но для практической работы важно еще и понимание того, при каких условиях эти алгоритмы не работают, или работают плохо. Отрицательные результаты по понятным причинам часто остаются за рамками публикаций. Часто пишут так — мы использовали метод А вместе с Б и В, и получили результат. А нужен ли был Б и В остается под вопросом. Для разработчика, внедряющего известные методы в практику эти вопросы очень даже важны, поэтому сегодня поговорим об отрицательных результатах и их значении на примерах. Примеры возьмем, как известные, так и из своей практики.
Читать дальше →
Всего голосов 40: ↑33 и ↓7+26
Комментарии42

Text Analytics as Commodity: обзор приложений текстовой аналитики

Время на прочтение11 мин
Количество просмотров17K
text analytics landscapeЕсли бы мне дали миллиард долларов на научные исследования, я бы создал большую программу в масштабе NASA по обработке естественного языка (NLP).[из Reddit AMA Майкла Джордана, 2015]. Из данной публикации вы узнаете, есть ли рынок для приложений текстовой аналитики. И не слишком ли оптимистичен заслуженный профессор М. Джордан по поводу потенциала NLP, а лучше потратить миллиард долларов на что-то другое.

Введение


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

Часто, когда говорят о применении интеллектуального анализа текста в бизнесе — текстовой аналитики (англ., text analytics) — имеют в виду не просто структурированную информацию, а т.н. углубленное понимание предмета анализа (insights), которое помогает в принятии бизнес-решений. Известный эксперт Сэт Граймс определяет текстовую аналитику как технологические и бизнес процессы применения алгоритмических подходов к обработке и извлечению информации из текста и получению глубокого понимания.

Принято считать, что формируется новый рынок когнитивно-вычислительных (cognitive computing) продуктов. По оценкам MarketsandMarkets глобальный рынок продуктов на основе обработки естественного языка должен составить $13.4 млрд. к 2020 году при росте в 18.4% по CAGR. Таким образом, сейчас этот рынок оценивается примерно в $5.8 млрд. В последние годы этот растущий рынок ознаменовался целым рядом громких сделок, вроде покупки Alchemy API компанией IBM. По другим оценкам, аналогичный рынок в Европе уже сейчас превосходит пол-миллиарда долларов и удвоится к 2019 году. Рынок Северной Америки составляет почти 40% глобального рынка текстовой аналитики и имеет оптимистичные оценки роста.
Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Комментарии2

GTD от Джона Сонмеза

Время на прочтение5 мин
Количество просмотров11K
image
Я почти закончил чтение книги, написаной Джоном Сонмезом (известный блогер, разработчик ПО и автор множества курсов Pluralsight) — «Soft Skills: The software developer's life manual». Должен сказать, что книга очень легко читается, она полна ценных советов и в большой степени практична. И время от времени она смешная. В книге множество интересных разделов, но сегодня я хотел бы выжать наиболее интересные мысли из раздела, посвящённого продуктивности.
Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии0
1

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность