Hacker News

Классификация текста с помощью модуля ZSTD Python 3.14

Классификация текста с помощью модуля ZSTD Python 3.14 Этот комплексный анализ текста предлагает детальное изучение его основной части — Mewayz Business OS.

1 минута чтения

Mewayz Team

Editorial Team

Hacker News

Теперь у меня есть весь контекст, который мне нужен. Позвольте мне написать сообщение в блоге.

Классификация текста с помощью модуля ZSTD Python 3.14

Python 3.14 представляет в стандартной библиотеке модуль Compression.zstd, который открывает удивительно мощный подход к классификации текста без моделей машинного обучения. Измеряя, насколько хорошо компрессор может сжать два текста вместе, вы можете определить их сходство — метод, называемый нормализованным расстоянием сжатия (NCD), — и теперь Zstandard делает его достаточно быстрым для производственных рабочих нагрузок.

Как на самом деле работает классификация текста на основе сжатия?

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

Эта связь фиксируется формулой нормализованного расстояния сжатия: NCD(x, y) = (C(xy) - min(C(x), C(y))) / max(C(x), C(y)), где C(x) — сжатый размер текста x, а C(xy) — сжатый размер двух объединенных текстов. Значение NCD, близкое к 0, означает, что тексты очень похожи, а значение, близкое к 1, означает, что они практически не имеют общего информационного содержания.

Что делает этот метод примечательным, так это то, что он не требует никаких обучающих данных, токенизации, встраивания и графического процессора. Сам компрессор выступает в роли изученной модели структуры текста. Исследования, опубликованные в таких статьях, как «Классификация текста с низкими ресурсами: метод классификации без параметров с компрессорами» (2023 г.), продемонстрировали, что NCD на основе gzip конкурирует с BERT по определенным критериям, что вызвало новый интерес к этому подходу.

Почему модуль Zstandard Python 3.14 меняет правила игры в сфере НИЗ?

До версии Python 3.14 для использования Zstandard требовалась установка стороннего пакета python-zstandard. Новый модуль compress.zstd, представленный в PEP 784, поставляется непосредственно с CPython. Это означает отсутствие накладных расходов на зависимости и гарантированный стабильный API, поддерживаемый проверенной в боевых условиях libzstd от Meta. В частности, для задач классификации Zstandard предлагает несколько преимуществ по сравнению с gzip или bzip2:

💡 ЗНАЕТЕ ЛИ ВЫ?

Mewayz заменяет 8+ бизнес-инструментов в одной платформе

CRM · Выставление счетов · HR · Проекты · Бронирование · eCommerce · POS · Аналитика. Бесплатный тариф доступен навсегда.

Начать бесплатно →

Скорость: Zstandard сжимает в 3-5 раз быстрее, чем gzip при сопоставимых коэффициентах, что делает пакетную классификацию тысяч документов эффективной за секунды, а не за минуты.

Настраиваемые уровни сжатия: уровни с 1 по 22 позволяют менять скорость на соотношение, позволяя калибровать точность NCD в соответствии с требованиями пропускной способности.

Поддержка словарей: предварительно обученные словари Zstandard могут значительно улучшить сжатие небольших текстов (менее 4 КБ), а это именно тот диапазон размеров документа, где точность NCD имеет наибольшее значение.

Streaming API: модуль поддерживает инкрементное сжатие, позволяя конвейерам классификации обрабатывать тексты без загрузки целых корпусов в память.

Стабильность стандартной библиотеки: отсутствие конфликтов версий, отсутствие рисков в цепочке поставок — импорт из сжатия позволяет zstd работать при каждой установке Python 3.14+.

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

Как выглядит практическая реализация?

Минимальный классификатор НИЗ в Python 3.14 умещается менее чем в 30 строк. Вы кодируете каждый текст ссылки (по одному на категорию), затем для каждого нового документа вычисляете НИЗ для каждой ссылки и назначаете категорию с наименьшим расстоянием. Вот основная логика:

Сначала импортируйте модуль с помощью команды сжатия import zstd. Определите функцию, которая принимает две строки байтов, сжимает каждую по отдельности, сжимает их объединение и возвращает оценку NCD. Тогда б

Streamline Your Business with Mewayz

Mewayz brings 207 business modules into one platform — CRM, invoicing, project management, and more. Join 138,000+ users who simplified their workflow.

Start Free Today →

Попробуйте Mewayz бесплатно

Единая платформа для CRM, выставления счетов, проектов, HR и многого другого. Банковская карта не требуется.

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

Присоединяйтесь к 30,000+ компаниям. Бесплатный тариф навсегда · Без кредитной карты.

Нашли это полезным? Поделиться.

Готовы применить это на практике?

Присоединяйтесь к 30,000+ компаниям, использующим Mewayz. Бесплатный тариф навсегда — кредитная карта не требуется.

Начать бесплатный пробный период →

Готовы действовать?

Начните ваш бесплатный пробный период Mewayz сегодня

Бизнес-платформа все-в-одном. Кредитная карта не требуется.

Начать бесплатно →

14-дневный бесплатный пробный период · Без кредитной карты · Можно отменить в любой момент