Процент сжатия текстовой информации для всех файлов, как найти
Обновлено: 21.11.2024
Учащиеся используют виджет "Сжатие текста", чтобы поэкспериментировать со сжатием песен и стихов и попытаться найти для себя "лучшее личное" сжатие. Видео знакомит с важной лексикой для урока и демонстрирует все возможности виджета. Учащиеся выбирают текст, который, по их мнению, будет «легко» сжимать, и тот, который, по их мнению, будет «сложно», обращая внимание на то, почему некоторые тексты могут быть более сжимаемыми, чем другие. В завершение учащиеся обсуждают, какие факторы делают одни тексты более сжимаемыми, чем другие.
Цели
Студенты смогут:
- Создавайте сжатие текстовых файлов без потерь
- Анализ шаблонов данных для определения стратегии сжатия.
Цель
Поскольку учащиеся создавали изображения на протяжении последних нескольких уроков, количество битов, необходимых для представления этой информации, росло и росло. На этом уроке учащиеся знакомятся с концепцией сжатия как способа справиться с растущими размерами файлов всей нашей информации. Этот урок основан на виджете «Сжатие текста», который является очень удобным и активным виджетом, с которым учащиеся могут поэкспериментировать. Большую часть урока следует провести в виджете, предлагая учащимся поэкспериментировать с различными стратегиями сжатия и создавая незабываемые впечатления, которые помогут закрепить концепцию сжатия. Студенты также смотрят видео, в котором рассказывается о сжатии без потерь и с потерями: сегодняшний урок является примером сжатия без потерь, а завтрашний урок посвящен сжатию с потерями. Виджет — это лишь один из примеров сжатия без потерь, и учащиеся не должны овладевать конкретными стратегиями сжатия. Вместо этого они должны понимать, что при сжатии без потерь используется меньше данных, но при этом они могут воссоздавать исходную информацию.
Ресурсы
Начало работы (5 минут)
Подсказка: в этом списке представлены несколько распространенных сокращений, используемых в текстовых сообщениях. Какие еще сокращения вы могли бы добавить в этот список?
Подсказка. Почему мы можем использовать сокращения при отправке сообщений? Каковы преимущества?
Цель обсуждения. На это можно ответить по-разному: говорить кодом, скрывать информацию, быть умным, но важно подчеркнуть, что сокращения экономят время и место при общении. Если студент предложил аббревиатуру, которую знали не все, это отличный момент, чтобы подчеркнуть, что и отправитель, и получатель должны понимать, что означает аббревиатура, чтобы она имела смысл. Оба эти момента предвещают сегодняшнюю активность в области сжатия.
Активность (35 минут)
Введение в сжатие (5 минут)
Примечания
- Я хочу отправить это сообщение другу:
- Pitter_patter_pitter_patter_listen_to_the_rain_pitter_patter_pitter_patter_on_the_window_pane
- Телефон моего друга может одновременно принимать не более 80 символов текста. Я заметил, что в этом шаблоне есть некоторое повторение, поэтому вместо того, чтобы отправлять все сообщение, я отправляю это:
- 5listen_to1rain_5on1window_pane
- 1 _the_
- 2 лучше_
- 3 Pi2
- 4 Pi2
- 5 3434
Подсказка: чем это сообщение отличается от первого? Что на самом деле отправляется моему другу?
Цель обсуждения
Учащиеся должны заметить, что каждый символ представляет другие фрагменты текста. Заменяя каждый символ текстом, который он представляет, мы можем воссоздать исходное сообщение.
Учащимся может понадобиться подсказка, чтобы понять, что все отправленное сообщение на самом деле состоит из двух частей: текста с символами и ключа, показывающего, что представляет каждый символ. Учащиеся должны видеть, что для воссоздания исходного сообщения необходимо отправить оба сообщения. Если отправлен только текст, получатель не будет знать, как каждый символ представляет собой воссоздание сообщения.
Примечания
- Использование сокращений и символов — это форма сжатия, при которой мы пытаемся представить ту же информацию с меньшим количеством символов. Исходное сообщение состояло из 93 символов, но новое сообщение и ключ, также называемый словарем, содержат в общей сложности 56 символов. По сути, мы отправляем ту же информацию, но с меньшим количеством символов. Нашей целью сегодня будет создание собственного сжатия текста с использованием аналогичных методов.
Виджет для сжатия текста (15 минут)
Сделайте это: предоставьте учащимся ссылки на проект сжатия текста без потерь на веб-сайте Quorum Language.
Примечания
- Этот виджет позволяет сжимать фрагмент текста. Вы можете ввести ввод, чтобы добавить новую запись в словарь. Когда вы это сделаете, текст будет обновляться с вашими символами. У вас есть 4 минуты, чтобы попытаться максимально сжать этот текст.
Рассылать: Помогите учащимся понять, как работает этот виджет, чтобы они могли успешно сжимать текст.Отметьте учащихся, которые нашли успешные стратегии, чтобы их можно было выделить в предстоящем обсуждении.
Перегруппируйтесь: снова соберите класс вместе. Подчеркните текущую степень сжатия. Предложите учащимся записать свой текущий процент сжатия в нижней части поля.
Подсказка. Какие стратегии вы используете для сжатия образца текста? Какие из них кажутся наиболее успешными?
Цель обсуждения
Учащиеся столкнулись с различными стратегиями, но некоторые из них стоит выделить для всего класса:
- Ищите повторяющиеся слова, предложения или даже части слов (например, -ing или -th).
- Вы можете вставлять символы в символы. Это было продемонстрировано в примере с питтер-паттером, где некоторые символы были "распакованы", чтобы включить другие символы.
- Порядок словаря имеет значение, и попытка переупорядочить словарь после его создания может привести к проблемам.
- Используемый виджет является примером сжатия без потерь.
- Процент сжатия в нижней части экрана рассчитывается путем сравнения количества байтов в исходном сообщении и количества байтов в сжатом сообщении.
Сделайте это: дайте учащимся еще 4 минуты, чтобы применить стратегии, которые они только что видели, чтобы продолжить повышать процент сжатия.
Учебный совет
Соревнования. Чтобы получить наивысший рейтинг, вы можете организовать соревнование между одноклассниками (в небольших группах или всем классом), но это может изолировать учащихся и предполагает, что существует единственный "лучший" способ. сделать это. Альтернативная стратегия: когда учащиеся начинают во второй раз, пусть они соревнуются сами с собой, чтобы превзойти свой рейтинг в течение первых 4 минут. Таким образом, успех измеряется личностным ростом, и у каждого учащегося больше шансов почувствовать себя успешным.
Начать заново: при решении вычислительных задач иногда бывает полезно начать все сначала. Это задание может быть хорошим местом, чтобы предложить это учащимся, особенно тем, которые чувствуют себя особенно застрявшими или разочарованными - иногда перезапуск с самого начала открывает новые идеи и стратегии, которых мы не видели раньше.
Распространение: узнавайте у учащихся об их стратегиях и коэффициентах сжатия. Поощряйте учащихся постоянно стремиться к достижению «личных рекордов», наблюдая за тем, как меняется степень сжатия при добавлении или удалении элементов из словаря.
Примечания
- Мы приближаемся к «пределу» того, насколько сильно мы можем сжать это конкретное сообщение. Но не каждое сообщение можно сжать с высоким рейтингом. Мы собираемся выяснить, что делает некоторые сообщения более сжимаемыми, чем другие.
Сравнение компрессии
Примечания
- Исследуйте другие тексты для сжатия. Ищите тексты, которые, по вашим прогнозам, будет "легко" сжимать, а тексты, которые, по вашему прогнозу, будут "трудными"
Группа: пусть учащиеся поработают над этим заданием со своим соседом. Разбейте учащихся на группы по 2 человека, но не более одной группы по 3 человека.
Выполните следующее: учащиеся работают вместе, чтобы сжать «простой» текст и «сложный» текст.
Совет для преподавателя
"aaaa. aaa": Многие группы, вероятно, попытаются использовать последний вариант, все буквы A, как их "легкий" текст - с этим текстом можно получить рейтинг сжатия до середины 80-х. Это хорошо, так как это по-прежнему подчеркивает один из важных выводов из этой деятельности: информацию с большим количеством повторений легче сжать. Тем не менее, разумно также попросить группы написать второй «простой» текст, как только они будут удовлетворены этим.
Приоритеты: не обязательно, чтобы все группы выбирали одинаковые тексты, и не важно находить самые «лучшие» сжатия. Вместо этого учащиеся должны сосредоточиться на качествах, которые, по их мнению, делают одни тексты «более легкими» или более «сложными», чем другие. Вы можете подчеркнуть это с помощью вопросов, которые вы задаете при распространении среди групп: "Что побудило вас выбрать это для вашего "легкого" текста? Что побудило вас выбрать это для вашего "сложного" текста?"
Подведение итогов (5 минут)
Синтез
Подсказка: что сделало некоторые сообщения "легче" для сжатия, чем другие? Что сделало некоторые сообщения более «сложными» для сжатия, чем другие?
Цель обсуждения
- В «более простых» текстах обычно много повторов — повторяющихся слов, фраз или слогов. Полезной стратегией является использование этого повторения для создания сжатия.
- В "сложных" текстах обычно меньше повторений, поэтому вероятность применения именно этого метода сжатия ниже. Некоторые стратегии могут на самом деле ухудшить сжатие, что может противоречить здравому смыслу.
Примечания
- Существует множество стратегий, которые мы можем использовать при сжатии без потерь, и не существует единственного наилучшего способа сделать это. Вместо этого наша степень сжатия обычно зависит от того, какую стратегию мы выбираем, и от шаблонов в тексте, который мы сжимаем.Самое главное, несмотря на то, что количество байтов становится меньше, мы фактически никогда не теряем информацию — мы всегда можем идеально воссоздать исходное сообщение, используя наш ключ словаря.
Журнал: попросите учащихся добавить определение сжатия без потерь в свой журнал
- Сжатие без потерь. Процесс уменьшения количества битов, необходимых для представления чего-либо, без потери информации. Этот процесс обратим.
Оценка: проверка на понимание
Для учащихся: откройте документ Word или Google и скопируйте/вставьте следующие два вопроса.
Вопрос. Какое качество сжатия без потерь является наиболее важным?
Вопрос. Автор готовится отправить свою книгу издателю в виде вложения электронной почты. Файл на их компьютере составляет 1000 байт. Когда они прикрепляют файл к своему электронному письму, он отображается как 750 байт. Автор очень расстраивается, потому что он обеспокоен тем, что часть его книги была удалена по адресу электронной почты. Если бы вы могли поговорить с этим автором, как бы вы объяснили, что происходит с его книгой?
Соответствие стандартам
- CSTA K-12 Computer Science Standards (2017): DA – Данные и анализ: 3A-DA-10 – Оценка компромиссов в том, как организованы элементы данных и где данные хранятся.
- CSP2021: DAT-1.D.1, DAT-1.D.2, DAT-1.D.3, DAT-1.D.4
Сжатие без потерь и с потерями
Сжатие данных основано на использовании предсказуемых закономерностей и/или отказе от точности.
Цифровое видео в настоящее время является доминирующим типом интернет-трафика, будь то сэмплирование и квантование из аналогового источника (например, видеочат) или создание непосредственно в цифровой форме (например, потоковая видеоигра). Но необработанное видео требует высокой скорости передачи данных для потоковой передачи и больших размеров файлов для хранения. Сжатие данных — это процесс уменьшения скорости передачи данных (обычно измеряется в битах в секунду) или размера файла (обычно измеряется в байтах). Методы сжатия без потерь точно сохраняют данные и обеспечивают экономию при сжатии за счет представления предсказуемых закономерностей в данных с использованием небольшого количества битов. Сжатие с потерями жертвует точностью исходных данных для достижения дополнительной экономии. Мы демонстрируем эти методы на примере сжатия изображения.
Рис. 1: несжатое изображение. Это несжатое растровое изображение содержит $320\times240$ пикселей. Цвет каждого пикселя представлен 24 битами (по 8 бит на каждый цветовой канал RGB). Учитывая, что 8 бит — это 1 байт, а $2^$ байта — это 1 килобайт (кБ), можно подсчитать, что размер файла составляет $225 \text< kB>$. Вы также можете убедиться в этом факте, скачав изображение и проверив свойства его файла. Источник изображения.
Рис. 2: Сжатое изображение без потерь. Это изображение на рис. 1 сжато до размера $61,1 \text
Рис. 3: Сжатое изображение с потерями. Это изображение на рис. 1 сжато до размера $11,6 \text
Изображение | Формат | Размер файла (КБ) | DCR th> | Экономия в процентах |
---|---|---|---|---|
Рис. 1 | несжатое растровое изображение | 225 | $\ frac=1$ | $\left( 1 - \frac\right) \times 100\% = 0\%$ |
Рис. 2 < /td> | PNG без потерь | 61,1 | $\frac \ приблизительно 3,68$ | $\left( 1 - \frac\right) \times 100\% \приблизительно 72,8\%$ |
Рис. 3 | JPEG с потерями | 11,6 | $\frac \приблизительно 19,4$ | $\left( 1 - \frac\right) \times 100\% \приблизительно 94,8\%$ |
Энтропия — это мера количества информации в битах.
Чтобы точно сохранить данные, теперь мы знаем, что сжатие без потерь может уменьшить количество битов, используемых для представления данных. Но есть предел (называемый энтропией) того, сколько битов необходимо. Энтропия — это количество информации, реально присутствующей в данных. Если вы попытаетесь сжать данные ниже энтропии, вы гарантированно потеряете часть информации. Посмотрите короткое видео ниже, чтобы концептуально понять энтропию и узнать, как получается ее формула. (В этом видео есть ошибка на 1:26. Вопрос «Это B?», который появляется на экране, должен быть «Это C?»)
Энтропия данных $H$ зависит от вероятностей $p_1, p_2, \ldots, p_n$ значений, которые могут принимать данные.
\begin
\begin
H=\sum_^n p_i \log_2 \left( \frac \right) \text
\end \label
\end
Обратите внимание, что формула энтропии представляет собой средневзвешенное значение членов $\log_2(1/p_i)$, каждое из которых взвешено по вероятности $p_i$ соответствующего значения, индексируемого $i$.
Рис. 4: Кегли. Эта коллекция конфет состоит из 105 конфет Skittles: 18 со вкусом лимона, 14 со вкусом лайма, 28 со вкусом апельсина, 26 со вкусом клубники и 19 со вкусом винограда. Источник изображения.
Предположим, вы закрываете глаза и случайным образом выбираете одну из кеглей на рис. 4. Чтобы вычислить энтропию вкуса этого кегля, вычислите вероятность $p_i$ выбора вкуса $i$ как: количество кеглей вкуса $i$, деленное на общее количество кеглей.
Аромат $i$ | Количество кеглей вкуса $i$ | Вероятность $p_i$< /th> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Затем используйте эти пять значений $p_i$ для оценки энтропии $H$.
Код Хаффмана — это код без потерь со средней длиной кодового слова, близкой к энтропии.
Чтобы начать построение дерева Хаффмана, каждый символ связывается с узлом, помеченным его частотой, которая является либо его вероятностью, либо подсчетом количества раз, когда он встречается. Затем процесс чередуется между двумя этапами: SORT и LINK. На этапе SORT узлы сортируются в порядке убывания частоты. На этапе LINK два наименее частых узла соединяются ветвями с родительским узлом, помеченным их общей частотой. Таким образом, два узла объединяются в один для следующего шага SORT. На этапе LINK мы также помечаем ветви кодовыми битами 0 и 1.Для согласованности мы назначаем кодовый бит 1 ветви, ведущей к более частому узлу, и кодовый бит 0 — ветви, ведущей к менее частому узлу. Этапы SORT и LINK повторяются до тех пор, пока все исходные узлы не будут подключены к единой древовидной структуре, как показано в приведенном ниже примере на основе частот ароматов Skittle на рис. 4.
|