全息壓縮碼──獨特的記錄標(biāo)識 王力德 (烏魯木齊市科技情報研究所 烏魯木齊市 830002) 摘要:在信息技術(shù)中,將每條信息的標(biāo)題和內(nèi)容經(jīng)過獨特處理,,做成“全息壓縮碼”,,做為該信息的唯一標(biāo)識。該技術(shù)運用在計算機(jī)文獻(xiàn)檢索系統(tǒng)中可大大提高檢索速度,,優(yōu)化空間配置,。 關(guān)鍵詞:計算機(jī)文獻(xiàn)檢索系統(tǒng);全息壓縮碼
正文: 最近在我們向用戶推廣科教興市信息網(wǎng)的過程中,遇到了一道難題,,由筆者創(chuàng)造了一種叫做“全息壓縮碼”的巧妙方法解決了,,我覺得這種壓縮碼可以用在許多場合,特推薦給大家,。 科教興市信息網(wǎng)是一種動態(tài)信息網(wǎng),,每天接收上百萬字的新信息,同時刪除大致等量的過時信息,,形成數(shù)十萬條記錄的信息庫(以下稱總庫),。后來發(fā)現(xiàn)其中存在大量的重復(fù)信息,引起用戶的不滿,,建議我們刪除,。 如何才能每天在巨大的總庫中準(zhǔn)確找出重復(fù)信息呢?經(jīng)分析后發(fā)現(xiàn),,必須同時比較每條信息的標(biāo)題和內(nèi)容,,全部相同者才能確定為重復(fù)信息??値煊兴氖嗳f條信息,,每天接收到數(shù)千條新信息,每條信息平均有1000字,,如果每天將新信息與總庫中的原有信息一一比較,,計算機(jī)將每天要進(jìn)行數(shù)百萬字符與數(shù)億字符之間的比較,也就是說,,比較次數(shù)為數(shù)億的數(shù)百萬次方,,這是一個巨大的天文數(shù)字,顯然這種比較用微機(jī)是不可能完成的,。 后來經(jīng)過努力,,創(chuàng)造了一種“全息壓縮碼”的方法,事先對每條信息用程序自動生成一個壓縮碼,,用來做為該記錄的標(biāo)識,。具體方法如下: 首先生成一個字符串,它由三部分組成:一,,標(biāo)題,,二,內(nèi)容的長度,,三,,從內(nèi)容中自動挑選出的若干字符,比如我們從內(nèi)容全文長度的開頭處,、5%處,、10%處,、15%處、……,,等距地取出20個字符,。三部分組成的這個字符串就可以代表這條信息,可叫做“代表字符串”,,只要“代表字符串”相同,,就說明是重復(fù)信息。 但“代表字符串”一般來說比較長,,比較量仍然很大,,需要進(jìn)行壓縮。我們知道,,每個漢字都是由兩個ASCII碼組成的,,我們就利用它生成只有5位的“全息壓縮碼”。 先定義5個數(shù)字變量,,初值為0,。從“代表字符串”中取前5個字符,將其ASCII碼分別加在5個變量上,,然后再依次取下面5個字符,,再累加在5個變量上,逐次重復(fù)以上過程,,直至取完“代表字符串”,,最后得到5個累加數(shù)。再分別取這5個累加數(shù)與256相除的余數(shù),,得到5個介于0到255之間的數(shù)字,,把這5個數(shù)字轉(zhuǎn)換為以這5個數(shù)字為ASCII碼的相應(yīng)的字符,,由這5個字符組成一個新的字符串,,這就是“全息壓縮碼”。 我們可舉例說明,,為簡單起見,,假設(shè)“代表字符串”為“系統(tǒng)開發(fā)”,這4個漢字分別對應(yīng)8個字符,,其ASCII碼為:207,、181、205,、179,、191、170,、183,、162,。 則“全息壓縮碼”生成過程如下: ────────────────────────── 變量 C1 C2 C3 C4 C5 預(yù)置值 0 0 0 0 0 第一次加數(shù) 207 181 205 179 191 第二次加數(shù) 170 183 162 累加數(shù) 277 364 367 179 191 余數(shù) 121 108 111 179 191 │ │ │ \ / 對應(yīng)字符 y l o 晨 ────────────────────────── 因此,全息壓縮碼為“ylo晨”,。 很顯然,,全息壓縮碼與“代表字符串”是相對應(yīng)的,只要兩個代表字符串中有一個字符不同,,生成的“全息壓縮碼”就不同,。所以“全息壓縮碼”可以作為這條信息的標(biāo)識。
我們知道,,計算機(jī)中的ASCII碼共有256個,,5個ASCII碼的排列組合數(shù)為256的5次方,等于1099511627776,,即1萬億種組合方式,,為總庫記錄數(shù)(40萬)的200多萬倍,因此全庫所有記錄的壓縮碼之間重碼的可能性幾乎為零,。完全可以做為標(biāo)識字段,。 為了進(jìn)行比較,我們在總庫中以全息壓縮碼為關(guān)鍵字做成索引,,每天將數(shù)千條新記錄的全息壓縮碼一一在總庫中進(jìn)行查詢,,發(fā)現(xiàn)重復(fù)記錄則做刪除標(biāo)記。我們知道,,索引查詢是很快的,,幾千次查詢只要若干秒即可完成,難題就輕松地解決了,。 又比如我們的系統(tǒng)有一項功能,,用戶可以將總庫中感興趣的信息選出,存在另一個預(yù)選庫中,,可長久保存或集中處理,。那么在瀏覽總庫時怎么能知道哪條記錄是已經(jīng)預(yù)選過的,哪條不是呢,?這就可以用到全息壓縮碼,,計算機(jī)將總庫與預(yù)選庫中的壓縮碼字段自動進(jìn)行比較(即索引查詢),在已預(yù)選過的信息處顯示一個標(biāo)志,,就能解決問題,。 我們知道,在計算機(jī)文獻(xiàn)檢索系統(tǒng)或其它應(yīng)用系統(tǒng)中經(jīng)常需要用到類似標(biāo)識,,都可以使用全息壓縮碼,。 比如在關(guān)鍵詞倒排文檔中,關(guān)鍵詞有長有短,,為照顧最長的關(guān)鍵詞,,這個字段往往比較長,,空間浪費很大。如果我們將它轉(zhuǎn)換為全息壓縮碼,,全都是5位,,用計算機(jī)處理起來要方便快捷得多。還能把二維的倒排文檔改變?yōu)橐痪S,,空間和速度就更得以改善,。 總之,全息壓縮碼的運用非常靈活方便,,廣大用戶可以隨時發(fā)現(xiàn)新的應(yīng)用場合,。 (注:該文獲2000-2003年度新疆科技情報學(xué)會學(xué)術(shù)論文評比二等獎) 第一作者:王力德,男,,1944年2月出生,,畢業(yè)于新疆大學(xué)物理系,副研究員,,從事計算機(jī)情報研究工作,。 |
|