中文文本壓縮方法
【專利摘要】本發(fā)明涉及一種中文文本壓縮方法,根據(jù)中文文本的特點(diǎn),在字典壓縮算法的基礎(chǔ)上結(jié)合了哈夫曼編碼,對中文文本進(jìn)行分詞,將中文文本分成多個(gè)中文詞組,并統(tǒng)計(jì)詞頻,詞頻率高的詞組用較少的比特表示,詞頻率低的詞組用較多的比特來表示,從而使得對中文文本進(jìn)行高壓縮率的壓縮,并且兼顧了處理器的能力和內(nèi)存開銷,從而降低了硬件成本。
【專利說明】中文文本壓縮方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)存儲(chǔ)領(lǐng)域,尤其涉及一種中文文本壓縮方法。
【背景技術(shù)】
[0002]在處理中文文本時(shí),經(jīng)常遇到中文文本非常大,外部閃存(flash)已經(jīng)不夠用于存儲(chǔ)文本,直接更換硬件會(huì)帶來成本的增加。在不更換硬件的前提下,要解決上述問題,則需要對中文文本進(jìn)行壓縮。常用的大規(guī)模的壓縮算法,需要的處理器的處理能力較高,并不能適用所有情況。中文文本中存在大量重復(fù)性的中文詞組,故而有大量的冗余內(nèi)容,而現(xiàn)有的哈夫曼壓縮算法壓縮率偏小,只能壓縮三分之一左右。因此,需要提供一種兼顧處理器的能力和內(nèi)存開銷的高壓縮率的中文文本壓縮方法。
[0003]哈弗曼編碼是以D.A.Huffman在1952年發(fā)表的《最小冗余代碼的構(gòu)造方法》為基本理論依據(jù)的編碼,是一種基于概率模型的無損壓縮編碼。
[0004]哈夫曼算法的過程一般為:統(tǒng)計(jì)原始數(shù)據(jù)中各字符出現(xiàn)的頻率;所有字符按頻率降序排列;建立哈夫曼樹:將哈夫曼樹存入結(jié)果數(shù)據(jù),通過這個(gè)二叉樹建立哈弗曼編碼和解碼的字典表,由樹的結(jié)構(gòu)得到信源符號相應(yīng)的碼子。
[0005]其中,字典算法是最為簡單的壓縮算法之一。它是把文本中出現(xiàn)頻率比較多的單詞或詞匯組合做成一個(gè)對應(yīng)的字典列表,并用特殊代碼來表示這個(gè)單詞或詞匯。例如:
[0006]有字典列表:00= Chinese,01 = People,02 = China。
[0007]源文本:Iam a Chinese people,I am from China。
[0008]壓縮后的編碼為:Iam a 00 01,I am from 02。
[0009]壓縮編碼后的長度顯著縮小,這樣的編碼在專有名詞比較多的文檔壓縮中比較容易出現(xiàn)。
[0010]但是,中文不同于英文,沒有空格等標(biāo)志作為單詞的區(qū)分。
【發(fā)明內(nèi)容】
[0011]因此,本發(fā)明的目的在于提供一種中文文本壓縮方法,壓縮率高,并且對處理器的能力和內(nèi)存要求較低。
[0012]本發(fā)明提供一種中文文本壓縮方法,包括以下步驟:
[0013]步驟10、建立編碼字典,包括:
[0014]步驟101、對中文文本進(jìn)行分詞;
[0015]步驟102、詞頻統(tǒng)計(jì);
[0016]步驟103、對不同詞頻的詞組和其他字符進(jìn)行統(tǒng)一編碼;
[0017]步驟104、導(dǎo)出編碼字典;
[0018]步驟20、根據(jù)編碼字典對中文源文件進(jìn)行壓縮,得到壓縮二進(jìn)制文件;
[0019]步驟30、根據(jù)編碼字典對壓縮二進(jìn)制文件解壓。
[0020]所述步驟101中將中文文本分成多個(gè)中文詞組,所述中文詞組由多個(gè)中文字符組成。
[0021]所述步驟103中將不同詞頻的詞組和其他字符用哈弗曼碼進(jìn)行編碼。
[0022]所述步驟103中將不同詞頻的詞組和其他字符哈弗曼碼進(jìn)行編碼后,得到哈夫曼二叉樹,通過該哈夫曼二叉樹建立編碼字典。
[0023]所述步驟103中對詞頻率高的詞組用較少的比特表示,詞頻率低的詞組用較多的比特來表示。
[0024]所述步驟30中單片機(jī)根據(jù)編碼字典對壓縮二進(jìn)制文件解壓。
[0025]綜上所述,本發(fā)明的中文文本壓縮方法,根據(jù)中文文本的特點(diǎn),在字典壓縮算法的基礎(chǔ)上結(jié)合了哈夫曼編碼,對中文文本進(jìn)行分詞,將中文文本分成多個(gè)中文詞組,并統(tǒng)計(jì)詞頻,詞頻率高的的詞組用較少的比特表示,詞頻率低的詞組用較多的比特來表示,使得該方法壓縮率高,并兼顧了處理器的能力和內(nèi)存開銷,實(shí)現(xiàn)了對中文文本的壓縮,從而降低了硬件成本。
【專利附圖】
【附圖說明】
[0026]下面結(jié)合附圖,通過對本發(fā)明的【具體實(shí)施方式】詳細(xì)描述,將使本發(fā)明的技術(shù)方案及其他有益效果顯而易見。
[0027]附圖中,
[0028]圖1為本發(fā)明中文文本壓縮方法的流程圖。
【具體實(shí)施方式】
[0029]為更進(jìn)一步闡述本發(fā)明所采取的技術(shù)手段及其效果,以下結(jié)合本發(fā)明的優(yōu)選實(shí)施例及其附圖進(jìn)行詳細(xì)描述。
[0030]請參閱圖1,本發(fā)明提供一種中文文本壓縮方法,包括以下步驟:
[0031]步驟10、建立編碼字典,包括:
[0032]步驟101、對中文文本進(jìn)行分詞,將中文文本分成多個(gè)中文詞組,所述中文詞組由多個(gè)中文字符組成。
[0033]步驟102、詞頻統(tǒng)計(jì);
[0034]步驟103、對不同詞頻的詞組和其他字符用哈弗曼碼進(jìn)行統(tǒng)一編碼,得到哈夫曼二叉樹,通過該哈夫曼二叉樹建立編碼字典;
[0035]其中在編碼過程中,對詞頻率高的詞組用較少的比特表示,詞頻率低的詞組用較多的比特來表示;
[0036]步驟104、導(dǎo)出編碼字典;
[0037]步驟20、根據(jù)編碼字典對中文源文件進(jìn)行壓縮,得到壓縮二進(jìn)制文件;
[0038]步驟30、單片機(jī)根據(jù)編碼字典對壓縮二進(jìn)制文件解壓。
[0039]本發(fā)明中文文本壓縮方法屬于字典壓縮算法的一種應(yīng)用,是根據(jù)中文文本的特點(diǎn)而產(chǎn)生的,中文不同于英文,沒有空格等標(biāo)志作為單詞的區(qū)分,因此在建立編碼字典時(shí)首先需要對中文文本進(jìn)行分詞,將中文文本分成多個(gè)中文詞組,對不同詞頻詞組進(jìn)行統(tǒng)計(jì),然后用哈弗曼碼進(jìn)行編碼,在編碼時(shí),對高頻詞組用較少的比特表示,從而提高了中文文本的壓縮率,并且該方法也兼顧了處理器的能力和內(nèi)存開銷,實(shí)現(xiàn)了對中文文本的高壓縮率壓縮,從而降低了硬件成本。
[0040]以上所述,對于本領(lǐng)域的普通技術(shù)人員來說,可以根據(jù)本發(fā)明的技術(shù)方案和技術(shù)構(gòu)思作出其他各種相應(yīng)的改變和變形,而所有這些改變和變形都應(yīng)屬于本發(fā)明后附的權(quán)利要求的保護(hù)范圍。
【權(quán)利要求】
1.一種中文文本壓縮方法,其特征在于,包括以下步驟: 步驟10、建立編碼字典,包括: 步驟101、對中文文本進(jìn)行分詞; 步驟102、詞頻統(tǒng)計(jì); 步驟103、對不同詞頻的詞組和其他字符進(jìn)行統(tǒng)一編碼; 步驟104、導(dǎo)出編碼字典; 步驟20、根據(jù)編碼字典對中文源文件進(jìn)行壓縮,得到壓縮二進(jìn)制文件; 步驟30、根據(jù)編碼字典對壓縮二進(jìn)制文件解壓。
2.如權(quán)利要求1所述中文文本壓縮方法,其特征在于,所述步驟101中將中文文本分成多個(gè)中文詞組,所述中文詞組由多個(gè)中文字符組成。
3.如權(quán)利要求1所述中文文本壓縮方法,其特征在于,所述步驟103中將不同詞頻的詞組和其他字符用哈弗曼碼進(jìn)行編碼。
4.如權(quán)利要求3所述中文文本壓縮方法,其特征在于,所述步驟103中將不同詞頻的詞組和其他字符哈弗曼碼進(jìn)行編碼后,得到哈夫曼二叉樹,通過該哈夫曼二叉樹建立編碼字典。
5.如權(quán)利要求3所述中文文本壓縮方法,其特征在于,所述步驟103中對詞頻率高的詞組用較少的比特表示,詞頻率低的詞組用較多的比特來表示。
6.如權(quán)利要求1所述中文文本壓縮方法,其特征在于,所述步驟30中單片機(jī)根據(jù)編碼字典對壓縮二進(jìn)制文件解壓。
【文檔編號】G06F17/22GK104467868SQ201410614796
【公開日】2015年3月25日 申請日期:2014年11月4日 優(yōu)先權(quán)日:2014年11月4日
【發(fā)明者】劉均, 楊向輝 申請人:深圳市元征科技股份有限公司