`
phyeas
  • 浏览: 161618 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

γ code及其实现

阅读更多

 

1. What is γ code?

γ编码并不是我随便乱取的名字,其原理在信息检索导论第5章第3节有介绍,用于压缩一连串有序的数字类型的数据非常有用。在MG中将γ编码归类为全局模型(MG更推崇局部模型)。其原理是将所有的数据分成两部分连起来,第一部分为数据长度,第二部分为数据内容。这样做的好处是对于很小的数字γ编码可以只用bit就可以表示了,如对于8这样的数字,只需要表示数据长度的1110四位字节加上表示数据的000三位字节就可以表示了。而如果当做int保存,则需要4字节即32bit保存,而实际上前面的数据都是0,这样做很浪费空间。但γ编码需要保存后面的数据的长度,在保存很大的数字时会占用很大的空间,如保存一个4294967295这样的数字,需要占用64bit。而这个是一个32位的int内的数字,如保存为int,只需32bit即可保存了,前面提到γ编码用于保存一连串有序的数字类型非常有效,因为连续的有序数字型数据可以只保存数字间的间隔即可,如前一个数字是400000,后一个数字是400008,此时间隔只有8,只需保存成400000,8即可。因此后面这个数字就可以节省大量字节。而在搜索引擎的倒排索引中大量保存的都是这些数据,某单词对于的文档号,如:retrieval:1287,1297...

 γ编码的详细介绍请参照:http://nlp.stanford.edu/IR-book/html/htmledition/gamma-codes-1.html

 

相对于γ编码,有一个局部有参模型与之类似,在MG中有介绍,称之为全局贝努力和局部贝努力模型。可以参考下,主要是使用触发将数据化为商和余数,但除数需要经过训练得出。除数即为参数。

2. γ编码的实现

γ编码的实现难点是在文件中存储的是以byte为单位的数据,读取出数据时是一个一个的byte,需要精心计算每个数字的边界,并且计算出边界后需要使用各种二进制操作符对数据截取。

2.1 γ编码读取器

首先,需要确定的是数据的长度,即对读到的bit进行计数,当读到0时结束计数。即,如果读到的byte为01110111,读到第一个0时计数结束,说明后面跟着0bit数据。再加上前面已经确定的1,所有位加起来,数据就是1,然后读到第二个0时,此时计数器为3,表示后面跟着3bit的数据。也就是后面的111,再加上前面的1,即1111,转换为10进制就是15,也就是说这个byte包含两个数字:1,15。

假设现有byte by=119(01110111), by_index=0(用于保存当前byte被读了多少bit);

首先用by^-1(11111111),得到10001000,这里的1即表示0所在的位置,再判断10001000&10000000,如果等于10000000,则表示第一位存在0,如果与01000000做按位与操作得到01000000,则表示第二位为0,以此类推。

计数器为0直接返回1,此时by_index的值为1(已读取1bit)。再读取下一数据时,计数器为3。读取后面的数据需要先将by向左移动5位(by_index=5),用以截掉前面已经读取过的数据,得到11100000,再向右移动5位,得到00000111,假设目前有一临时结果保存在内存中(result)值为1。则将result向左移动三位(数据长度为3),得到00001000,再用00001000与00000111做按位或操作,得到00001111即为最终结果。

2.2 γ编码写入器

 γ编码的写入器首先要确定需要写入的数据的长度,同样需要对每个位做按位&计算,输出时需要考虑输出时按照每byte输出的,上次输出可能并没有完整地用完一byte,需要将bit数据加到后面去。

假设有数据15(1111),6(110)需要输出,首先经过计算得出数据15的长度是3(截掉前面的1),缓存中有byte by=0;需要先将3个1输出到缓存中,即by|11100000,然后输出数据,需要输出3位数字,此时前面4比特已被占用,需要将数据右移4bit。得到00001110,再与缓存数据做按位或操作,得到11101110,此时还有1bit未被占用,可被下一个数据使用,下一个数据需要2长度,使用上次遗存的1bit再加上下一byte的4byte就能完成存储了。

 

3.实验

使用GammaCodeWriter对随机100个1W以内的整数进行编码,输出到文件中,占用209字节,而如果使用DataOutputStream进行完整输出,则需要占用400字节。

 

 

分享到:
评论

相关推荐

    短乳杆菌和植物乳杆菌产γ-氨基丁酸及其关键基因的研究

    短乳杆菌和植物乳杆菌产γ-氨基丁酸及其关键基因的研究,韩啸,于雷雷,为研究乳杆菌γ-氨基丁酸(GABA)的产量以及其与谷氨酸脱羧酶系统关键基因表达的相关性,本研究结合GABA产量、基因组学调查和谷氨酸�

    论文研究 - 通过γ激光或γ射线实现受控核聚变的方法

    提出了一种以一定的频率和足够大的强度照射目标球的γ激光或γ射线与普通激光实现可控核聚变的方法。 普通激光的功能是加热目标原子核并实现对目标原子核的惯性约束。 吸收γ-光子的目标核将处于一定的激发态。 为了...

    IL-12对人周围血NK细胞亚群IFN-γ产生的影响及其机制研究

    IL-12对人周围血NK细胞亚群IFN-γ产生的影响及其机制研究,范艳莹,付笑迎,目的 探讨IL-12对人周围血NK细胞亚群IFN-γ产生的影响及其机制研究。方法 免疫磁珠纯化法分离NK细胞及其亚群,加或不加IL-12刺激NK细胞...

    标准模型有效场理论中的衰变h→γγ

    假设新的物理效应是由标准模型有效场理论(SMEFT)参数化的,该理论以多达6维算子的完整形式编写,我们计算了一般R中衰变h→γγ的CP守恒单环幅度 ξ-量规。 我们采用一种简单的重归一化方案,该方案是在壳上SM $$ \...

    γ能谱数据分析

    γ能谱分析技术,是快速、可靠、非破坏性的确定待测样品中核素性质及其强度的重要手段,是一重比较直观的仪器分析技术。

    腹膜间皮细胞PPARγ的表达及其配体对CD40和ICAM-I的影响

    腹膜间皮细胞PPARγ的表达及其配体对CD40和ICAM-I的影响,张云芳,阳晓,目的 观察过氧化物酶体增殖体激活受体γ(PPARγ)在大鼠腹膜间皮细胞(RPMCs)中的表达以及LPS的调节作用,并探讨PPARγ天然配体15d-PGJ2�

    γ指纹的特征提取及其RBF神经网络识别.pdf

    γ指纹的特征提取及其RBF神经网络识别.pdf

    关于高阶QCD计算中的γ5和极化价分布的NNLO演化

    我们提供了这种方法的另一种实现方式,避免了在每个费米子迹线中不超过一个γ5的最重要情况下,避免使用显式形式的γ5及其(反)换向关系。 通过计算对充电函数中的结构函数F2和g1的三阶校正来检查该处理

    极化可观测量T,P和H及其对γp→pπ0多极的影响

    报道了关于反应γp→pπ0的偏振可观察物T,P和H的数据。 与其他实验的早期数据相比,我们的数据更加精确,并且在能量和角度上都大大扩展了覆盖范围。 从使用横向极化目标和线性极化光子测量的方位不对称中提取结果。...

    小鼠肺组织γδT细胞的多样性及沙眼衣原体诱导的γδT细胞亚群的增殖

    小鼠肺组织γδT细胞的多样性及沙眼衣原体诱导的γδT细胞亚群的增殖,梁聚友,王悦,目的 探讨小鼠肺组织γδT细胞亚群的多样性及其Cm感染诱导的γδT细胞亚群在肺组织中的增殖。方法 制备健康C57BL/6小鼠肺组织匀...

    用质子标记探测LHC处的异常γγγZ耦合

    通过LHC前部区域中完整质子的γZ产生,估计对异常四次玻色子玻色子耦合γγγZ的敏感性。 质子标记被证明是抑制背景的有力工具,除了轻子外,它还可以考虑Z玻色子的强子衰变。 我们讨论了300 fb -1和3000 fb -1的...

    60Coγ辐射悬铃木种子及其苗期生物学性状调查

    60Coγ辐射悬铃木种子及其苗期生物学性状调查,包满珠,李志能,以不同剂量的60Coγ射线辐射悬铃木干种子,测定了不同剂量对悬铃木M1代的影响。结果表明,在50~400Gy范围内,随着剂量的增加,悬铃木

    γ-Ni/γ'-Ni3Al相界区域N的占位与脆化作用分析

    γ-Ni/γ'-Ni3Al相界区域N的占位与脆化作用分析,彭黎,贺双,采用第一原理赝势平面波方法调查了迹量元素N在γ-Ni/γ′-Ni3Al相界区域的占位趋势及其对相界断裂强度的影响。结果显示:以气态形式存

    纳米γ-MnO2/石墨烯气凝胶复合材料及其超级电容特性

    纳米γ-MnO2/石墨烯气凝胶复合材料及其超级电容特性,唐熠,汪形艳,以氧化石墨烯为前驱体通过微波消解还原制备石墨烯气凝胶,再结合液相沉积法在三维网状结构的石墨烯气凝胶上负载γ-MnO2,得到纳米γ

    通过循环树对偶性在两个循环处H→γγ的通用四维表示

    我们使用回路树对偶形式论,将H→γγ非积分双振幅的有用性质从一回路水平扩展到两回路水平。 特别是,我们证明了功能形式的普遍性(无论内部粒子的性质如何)仍然保持此顺序。 我们还提出了一种算法方法,通过局部...

    PPARγ在狼疮肾炎患者肾组织中的表达及其意义

    PPARγ在狼疮肾炎患者肾组织中的表达及其意义,张亚杰,阳晓,目的 观察PPARγ在狼疮肾炎(LN)不同病变类型肾组织中的表达及其与肾脏病理改变之间的关系,探讨PPARγ在LN发病机制中的可能作用。方法

    有效指数γ(Q)和β函数的斜率

    β函数在固定点的斜率通常被认为是RG不变的,并且是决定任何物理量R逼近其固定点极限的临界指数γ⁎:R⁎-R∝Qγ⁎。 希拉(Chýla)证明事实并非如此。 在这里,我们定义了一个合适的RG不变量,即“有效指数”γ(Q...

    环境X-γ剂量率的测量及γ空气的吸收剂量率估算

    环境辐射与人类健康的实验报告,这是我们做的第一个实验,即环境X-γ剂量率的测量及γ空气的吸收剂量率估算

    强子对撞机γγ相互作用中双矢量介子的产生

    为了获得超外围强子碰撞中双矢量生成的速度分布和总横截面的实际预测,我们考虑了低能量时γγ→VV横截面的描述及其在大能量时的行为,这些与 彩色偶极之间的胶子相互作用。 我们的结果表明,双重γ产生主要由γγ...

Global site tag (gtag.js) - Google Analytics