Huffman树是一种特殊结构的二叉树,由Huffman树设计的二进制前缀编码,也称为Huffman编码在通信领域有着广泛的应用。在word2vec模型中,在构建层次Softmax的过程中,也使用到了Huffman树的知识。
在通信中,需要将传输的文字转换成二进制的字符串,假设传输的报文为:“AFTERDATAEARAREARTAREA”,现在需要对该报文进行编码。
一、Huffman树的基本概念
在二叉树中有一些基本的概念,对于如下所示的二叉树:
路径
路径是指在一棵树中,从一个节点到另一个节点之间的分支构成的通路,如从节点8到节点1的路径如下图所示:
路径长度
路径长度指的是路径上分支的数目,在上图中,路径长度为2。
节点的权
节点的权指的是为树中的每一个节点赋予的一个非负的值,如上图中每一个节点中的值。
节点的带权路径长度
节点的带权路径长度指的是从根节点到该节点之间的路径长度与该节点权的乘积:如对于1节点的带权路径长度为:2。