哈夫曼编码的应用场景

简介: 哈夫曼编码的应用场景

背景

上周评审的时候,做需求的同事有一个点是,把客户的名字提取拼音,然后保存起来,说是为了便于查询,然后组长提出来,是否可以用哈夫曼编码来做这个需求

什么是哈夫曼编码

1951年,哈夫曼和他在MIT信息论的同学需要选择是完成学期报告还是期末考试。导师Robert M. Fano给他们的学期报告的题目是,寻找最有效的二进制编码。由于无法证明哪个已有编码是最有效的,哈夫曼放弃对已有编码的研究,转向新的探索,最终发现了基于有序频率二叉树编码的想法,并很快证明了这个方法是最有效的。

哈夫曼编码,又称霍夫曼编码,是一种编码方式,哈夫曼编码是可变字长编码(VLC)的一种。Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码,一般就叫做Huffman编码(有时也称为霍夫曼编码)。是一种高效的编码方式,在信息存储和传输过程中用于对信息进行压缩。

具体介绍可以看这篇文章:哈夫曼编码

原理

构造哈夫曼编码的原理,是首先拿到给定的文本,然后统计文本中出现的各个字符的出现频率,然后给这个频率,构造一个二叉树,构造完成二叉树之后,就可以得到各个字符的编码,然后使用编码的方式,来把这段文本进行传输。

怎么用

这块我还没敲,回头补上,可以先看这篇文章:

哈夫曼编码

是否适合我们的场景呢?

再来描述一下我们的场景,我们的场景是,我们会在数据库保存一批数据,然后每条数据都会有一个名称属性,一个名称的拼音属性,我们的出发点是认为,存拼音占地方,想要将这个属性缩短,如果使用哈夫曼编码的的话,不可避免要存两个东西,一个是原文中字符和频率的对照,一个是拼音加工后得到的哈夫曼编码,感觉并没有省多少事儿,所以我觉得不太合适。

以上是我的理解,请大家指正。

相关文章
|
8月前
|
机器学习/深度学习 人工智能 NoSQL
JAVA接入DeepSeek大模型接口开发---阿里云的百炼模型
随着大模型的越来越盛行,现在很多企业开始接入大模型的接口,今天我从java开发角度来写一个demo的示例,用于接入DeepSeek大模型,国内的大模型有很多的接入渠道,今天主要介绍下阿里云的百炼模型,因为这个模型是免费的,只要注册一个账户,就会免费送百万的token进行学习,今天就从一个简单的可以执行的示例开始进行介绍,希望可以分享给各位正在学习的同学们。
1507 3
JAVA接入DeepSeek大模型接口开发---阿里云的百炼模型
|
18天前
|
存储 人工智能 安全
做了半年自动化后,我才发现飞书多维表格解决的不是表格问题
飞书多维表格是自动化利器,无需代码即可实现数据收集、存储与流程触发。它与n8n无缝对接,表单提交自动触发工作流,数据实时同步,既是起点也是终点,真正实现高效协作与全自动处理,让复杂变简单。
|
11月前
|
Android开发 开发者 Python
手撸了一个全自动微信清粉小工具(源码详解)
微信清理僵尸粉工具利用Python和`uiautomator2`库,通过模拟转账操作自动检测并标记微信好友列表中被删除、被拉黑或账号存在问题的“僵尸粉”。工具支持开启调试模式、自动打开微信、获取好友信息、判断好友状态、管理标签等功能,最终将检测结果记录到文件中,便于用户管理和清理好友列表。此工具适用于Android设备,已在OPPO Reno4 Pro上测试成功。
765 5
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的新闻管理系统
基于Java+Springboot+Vue开发的新闻管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的新闻管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
628 3
基于Java+Springboot+Vue开发的新闻管理系统
|
数据采集 监控 数据可视化
Kettle的特点是什么?如何使用?
【10月更文挑战第24天】Kettle的特点是什么?如何使用?
534 2
|
机器学习/深度学习 数据可视化 数据挖掘
数据可视化大不同!Python数据分析与机器学习中的Matplotlib、Seaborn应用新视角!
在数据科学与机器学习领域,数据可视化是理解数据和优化模型的关键。Python凭借其强大的可视化库Matplotlib和Seaborn成为首选语言。本文通过分析一份包含房屋面积、卧室数量等特征及售价的数据集,展示了如何使用Matplotlib绘制散点图,揭示房屋面积与售价的正相关关系;并利用Seaborn的pairplot探索多变量间的关系。在机器学习建模阶段,通过随机森林模型展示特征重要性的可视化,帮助优化模型。这两个库在数据分析与建模中展现出广泛的应用价值。
192 2
|
安全 网络协议 Linux
在CentOS 7上安装和使用Webmin的方法
在CentOS 7上安装和使用Webmin的方法
325 0
|
负载均衡 监控 Java
新手入门gateway基本配置详解与深入分析
欢迎关注 `威哥爱编程` 一起交流学习,人生海海,相遇就是缘分,让我们以技术为信物,成为相互惦记的人。
775 1
|
存储 负载均衡 Cloud Native
支持 gRPC 长链接,深度解读 Nacos 2.0 架构设计及新模型
Nacos 在阿里巴巴起源于 2008 年五彩石项目,该项目完成了微服务拆分和业务中台建设,随着云计算和开源环境的兴起,2018 年我们深刻感受到开源软件行业的影响,因此决定将 Nacos 开源,输出阿里十年关于服务发现和配管管理的沉淀,推动微服务行业发展,加速企业数字化转型。
支持 gRPC 长链接,深度解读 Nacos 2.0 架构设计及新模型