基于统计的压缩算法:游程编码

1.游程编码概念

  游程编码又称“运行长度编码”或“行程编码”,是一种统计编码,该编码属于无损压缩编码。

2.基本原理

  用一个符号值和串长代替具有相同值的连续符号,使符号长度少于原始数据的长度。

  如:     原始文本:dfffffeeeeettttrrrrttttt

    游程编码后文本:d1f5e5t4r4t5

 3.代码示例


 1 #include <stdio.h>
2 #include <string.h>
3 int main()
4 {
5 char textBefore[100] ="dfffffeeeeettttrrrrttttt";
6 char textAfter[100];
7 memset(textAfter,0,sizeof(textAfter));
8
9 char c;
10 int num,i,j;
11 for(i=0;i<strlen(textBefore);){
12 c = textBefore[i]; ///临时保存字符
13 num = 1; ///保存个数
14 for(j=i+1;j<strlen(textBefore);j++){
15 if(c == textBefore[j])
16 num++;
17 else
18 break;
19 }
20 i = j;
21
22 sprintf(textAfter,"%s%c",textAfter,c);
23 sprintf(textAfter,"%s%d",textAfter,num);
24 }
25 printf("textBefore : %s\n",textBefore);
26 printf("textAfter : %s\n",textAfter);
27 return 0;
28 }

代码输出:

  

参考:

http://zh.wikipedia.org/wiki/%E6%B8%B8%E7%A8%8B%E7%BC%96%E7%A0%81

http://baike.baidu.com/view/721796.htm?fr=aladdin

(方法简单也是有名字的)

时间: 2024-08-29 15:27:20

基于统计的压缩算法:游程编码的相关文章

PCFG -- 基于统计方法生成语法树

语法树的作用 一棵语法树不仅包括了词性(part of speech), 还包括了短语(如名词短语, 动词短语)和结构化的信息(如主语, 谓语和宾语). 这些信息是进行机器翻译所必须的, 例如机器翻译中就需要使用到结构化信息, 来根据不同的语言规定调整主谓宾的顺序. 上下文无关语法 上下文无关语法(CFG)定义了描述语法树的要素. CFG 是一个四元组, 即(S, sigma, R, N), 其中 S 表示开始符号, sigma 表示词汇表, R 表示语法规则, N 表示非终端词. CFG 的问

基于统计的中文实体识别方法简述

命名实体识别(NER)是自然语言处理的一个基础任务,其目的是识别出语料中的人名.地名.组织机构名等命名实体,一般包括三大类(实体类.时间类和数字类)和七小类(人名.地名.机构名.时间.日期.货币和百分比).NER是信息抽取.机器翻译.知识图谱等多种自然语言处理任务必不可少的组成部分. NER方法大致可分为两类:基于规则的方法和基于统计的方法.基于规则的方法多采用语言学家手工构造规则模板,这类系统大多依赖于知识库和词典,需要人工建立实体识别规则,成本高且可移植性差.基于统计的方法一般需要语料库来进

数学之美-2自然语言处理-从基于规则到基于统计的转变

序:任何一种语言都是信息编码的不同单位,语言的语法规则则是编解码的算法 1 存在的问题:文法覆盖规则太多,要人工写工程巨大,且就算写出涵盖所有自然语言处理现象的规则集合,用计算机解析也非常困难,于是出现了基于统计的NLP. 原文地址:https://www.cnblogs.com/xuechengmeigui/p/12195992.html

基于统计机器翻译的文白对译

本文介绍利用NiuTrans工具进行文白对译的步骤,默认用户已经安装NiuTrans,安装目录为NiuTrans/,以下相对路径基于此目录. 文白对译模型训练步骤分为语料预处理.对齐.翻译模型训练.语言模型训练.参数调整四个阶段. 一.语料预处理 我们拿到的原始数据格式比较杂乱,需要做预处理,最终形成规则的平行语料数据. 语 料预处理包括统一标点符号,删除无关符号,删除段前段后,句前句后空格,分词等阶段.最终形成两个平行文件,暂称为src.txt和tgt.txt两个文 件(若是文白翻译src为文

基于统计的自动分词算法

简介:利用字与字间.词与词间的同现频率作为分词的依据,不一定需要建立好的词典.需要大规模的训练文本用来训练模型参数.优缺点:不受应用领域的限制:但训练文本的选择将影响分词结果. 概率最大统计分词算法 一.主要原理 对于任意一个语句,首先按语句中词组的出现顺序列出所有在语料库中出现过的词组:将上述词组集中的每一个词作为一个顶点,加上开始与结束顶点,按构成语句的顺序组织成有向图:再为有向图中每两个直接相连的顶点间的路径赋上权值,如 A→B,则 AB 间的路径权值为 B 的费用(若 B 为结束顶点,则

基于统计的预警:同环比预警实现深度剖析

一.UAV预警功能简介 UAV.Monitor提供了对全维监控指标的预警功能,各类型的监控指标均可配置预警策略,当预警策略被触发后,可通过邮件.HTTP调用等方式进行通知报警,并会根据预警时间频率等对报警动作进行压制. 预警分为流式预警.统计预警以及混合预警三种. 流式预警会对采集到的每一个监控指标数据进行预警判断,达到实时预警的目的: 统计预警是对指标在固定时间段统计值的预警,通常都是定时进行预警判定: 混合预警则是将流式预警与统计预警结合进行预警. 同环比预警就属于统计预警的一种. 二.什么

人工智能入门(四):uncertainty&amp;基于统计的学习

1.belief networks (indenpendence, collider,conditioning / marginalization,connection graph,independence in belief networks,D-separation,uncertain and unreliable evidence)Belief and Markov Networks 2.inference, general inference(variable elimination,b

BWT (Burrows–Wheeler_transform)数据转换算法

转自:http://www.cnblogs.com/xudong-bupt/p/3763814.html 具体分析见:http://blog.csdn.net/windroid/article/details/50570450 1.什么是BWT 压缩技术主要的工作方式就是找到重复的模式,进行紧密的编码. BWT(Burrows–Wheeler_transform)将原来的文本转换为一个相似的文本,转换后使得相同的字符位置连续或者相邻,之后可以使用其他技术如:Move-to-front trans

异常检测(2)——基于概率统计的异常检测(1)

某个工厂生产了一批手机屏幕,为了评判手机屏幕的质量是否达到标准,质检员需要收集每个样本的若干项指标,比如大小.质量.光泽度等,根据这些指标进行打分,最后判断是否合格.现在为了提高效率,工厂决定使用智能检测进行第一步筛选,质检员只需要重点检测被系统判定为“不合格”的样本. 智能检测程序需要根据大量样本训练一个函数模型,也许我们的第一个想法是像监督学习那样,为样本打上“正常”和“异常”的标签,然后通过分类算法训练模型.假设xtest是数据样本,predict(xtest)来判断xtest是否是合格样