Pull to refresh

Comments 28

Что-то мне подсказывает, что если в тексте заглавных букв будет больше, то все поменяется наоборот и строчные будут "мешать". Кажется что проблема не в "регистре" символов, а в их статистическом распределении, в обычно тексте заглавных просто меньше и они проводят к "раздуваю" словаря.

Согласен - это слишком банальный опыт. Было бы интереснее сравнить с текстом набранным 100% заглавными, или тот же текст, но первые буквы строчные, а остальные заглавные - тогда бы можно было делать выводы, например, что из-за битового представления сжимаются лучше...

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

статья о том, почему больший словарь занимает больше места, чем меньший словарь.

Не совсем так. Размер словаря не меняется, отличие лишь в частоте распределения.

Словарь меняется. Словарь становится меньше. Словарь в этих опытах - набор используемых символов.

Было бы любопытно посмотреть зависимость сжимаемости от регистра текста у brotli. Там ведь встроенный словарь, построенный с помощью анализа большого количества HTML/js/CSS, и насколько я понимаю, словарь этот case sensitive.

А разве код Хаффмана не в конце стоит? Почему в начале-то?

Deflate применяет алгоритмы сжатия в лучшем для конкретных данных порядке для минимизации размера на выходе.

странно-странно... препроцессинг на первом месте, LZ на втором (с разными вариациями: контекст, хеши и т.п.), а потом энтропийный кодек (чаще Хаффман и FSE). В очень редких случаях (много нулей и т.п.) можно обойтись одним энтропийным кодеком, но это так, не очень репрезентабельно)

Да, странно. Конкретно за deflate не скажу, но всегда именно как вы говорите сжимали. Сначала повторы, а потом уже частотное кодирование.

В принципе, в английских заголовках вообще не нужны заглавные буквы, их легко закапитализировать с помощью text-transform: capitalize. А вот что касается остального текста, интересная задача, насколько сложно, используя словари или AI, восстановить капитализацию слов, если весь текст передан в lowercase

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

В английских заголовках заглавные буквы почти после всего

Вот это кстати любопытная идея, которая правда очень похожа на сжатие с использованием словаря, только вместо словаря какой нибудь gptChat. Мы сначала выкидываем две трети букв и даём ему задачу восстановить текст (ну или для начала только согласные уберём), дальше сравниваем результат, если 100% совпало - отдаём, если есть ошибки - увеличиваем там количество букв и повторяем). Каждую страницу придётся "запекать" заранее, а у каждого пользователя должен быть одинаковый набор весов, но мне кажется план рабочий). А если уж потом хаффманом жахнуть с укороченным словарём и lzss накрыть - вообще хорошо будет ?

А потом модель gptChat дообучили и она перестала выдавать 100% результат.

Интуитивно кажется, что если как-то знаки препинания удалить, то многие слова превратятся в пары слов итп. Ну т.е. можно будет какой-то словарь сделать заранее по которому все будет сжиматься чуть ли не предложениями. Вообще для текста, наверное, проще нейросеть тренировать в сторону добавления воды :). Ну т.е. присылать и хранить сразу "автореферат", а обмазать его мычанием и бурчанием нейросеть, наверное сможет и сама. Потом пять раз своими словами описать итд итп. И получится статья для газеты. А в сжатом виде 2-3 предложения.

Сжатие текста должно быть обратимым.

Зачем ?

Если речь о газетной заметке, то в ней 5% информации. Остальное "белый шум". Просто не надо этот шум вообще хранить и пересылать, надо его генерировать прям на пользователе. А за отдельные деньги показывать не зашумленные статьи, а реальные, т.е. коротко и по делу :).

Имена, названия, аббревиатуры. Местоимение «I». Местоимение «Вы» в единственном числе.

Зачем экономить углекислый газ?

Закончится же

Получается, в коде выгоднее использовать underscore_notation вместо CamelCase. А лучше вообще использовать имена из одного-двух символов и повторно использовать переменные - подумайте об экологии!

ну в общем-то минификация JS в том числе это обычно и подразумевает. А большинство js файлов на проде обычно минифицированы

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

Разве baobaba не должна сжаться до bao<3,2><5,2> ?

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

UFO just landed and posted this here
Sign up to leave a comment.

Articles