數(shù)據(jù)流編碼的預(yù)測(cè)方法及預(yù)測(cè)裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別是涉及一種數(shù)據(jù)流編碼的預(yù)測(cè)方法及數(shù)據(jù)流編 碼的預(yù)測(cè)裝置。
【背景技術(shù)】
[0002] 在大數(shù)據(jù)分析挖掘的時(shí)代中,在獲得大量數(shù)據(jù)源后,首先要檢測(cè)出來(lái)它們是哪種 數(shù)據(jù)流編碼方便去解析和文本處理。目前主要是為特定的數(shù)據(jù)源指定好編碼,而無(wú)法自動(dòng) 的解析。以錯(cuò)誤的編碼打開(kāi)或一個(gè)文件會(huì)導(dǎo)致亂碼,人們需要知道文本具體的編碼信息。人 們需要手動(dòng)選擇各種編碼,直到能夠正確顯示文本為止,這是個(gè)痛苦的過(guò)程。數(shù)據(jù)流編碼猜 測(cè)工具能使人們從這種繁瑣的過(guò)程中解脫出來(lái)。
[0003] 現(xiàn)在已經(jīng)有了一些數(shù)據(jù)流編碼猜測(cè)的工具,如IE和Mozilla都集成了這種功能。而 IE,Mozilla等瀏覽器,它們提供一個(gè)自動(dòng)選擇編碼的菜單,當(dāng)遇到一個(gè)未指定編碼的HTML 文件時(shí),便會(huì)自動(dòng)調(diào)用這個(gè)工具,得出最可能的編碼,然后正確顯示網(wǎng)頁(yè)。往往需要手動(dòng)指 定下,如果出錯(cuò)也不能再次自動(dòng)更換。
[0004] Mozilla在實(shí)現(xiàn)中可以統(tǒng)計(jì)一些(512個(gè))常用字符的分布率,然后同理想分布率比 較,得出可靠度,來(lái)確定可能的編碼。但是,這種方法的一個(gè)缺陷是,它只對(duì)那些用兩個(gè)字節(jié) 編碼的語(yǔ)言有效,如GB2312,Big5等,對(duì)于單字節(jié)的編碼,如IS0-8859-2,就只能用其變通方 式,雙字符序列分布方法。而像UTF-8那樣用不確定字節(jié)編碼的,就沒(méi)有辦法用該種頻率分 析方法了,只能用編碼模式的方法來(lái)確定。
[0005] 這樣將帶來(lái)了分析程序的復(fù)雜性,同時(shí)導(dǎo)致了效率的低下。一開(kāi)始,程序不能夠確 定用哪種方式來(lái)猜測(cè)編碼,必須逐一試用。如先用狀態(tài)機(jī)探測(cè),接下來(lái)用單字符序列分析, 接著再雙字符序列分析。當(dāng)然,可能在狀態(tài)機(jī)探測(cè)時(shí),就能得出了可信的結(jié)果,但從平均效 率來(lái)講,這種方法還是很低效的。
【發(fā)明內(nèi)容】
[0006] 鑒于以上所述現(xiàn)有技術(shù)的缺點(diǎn),本發(fā)明的目的在于提供一種數(shù)據(jù)流編碼的預(yù)測(cè)方 法及數(shù)據(jù)流編碼的預(yù)測(cè)裝置,用于解決現(xiàn)有技術(shù)中數(shù)據(jù)流的預(yù)測(cè)方法復(fù)雜且準(zhǔn)確度低的問(wèn) 題。
[0007] 為實(shí)現(xiàn)上述目的及其他相關(guān)目的,本發(fā)明提供一種數(shù)據(jù)流編碼的預(yù)測(cè)方法,所述 數(shù)據(jù)流編碼的預(yù)測(cè)方法包括以下步驟:獲取各種編碼的測(cè)試樣本;根據(jù)第一類型編碼的測(cè) 試樣本形成出現(xiàn)頻率表或根據(jù)第二類型編碼的測(cè)試樣本形成有窮狀態(tài)自動(dòng)機(jī);獲取待預(yù)測(cè) 的數(shù)據(jù)流文本,并對(duì)所述待預(yù)測(cè)的數(shù)據(jù)流文本進(jìn)行去噪處理,所述去噪處理的結(jié)果包括第 一結(jié)果或第二結(jié)果;當(dāng)去噪處理的結(jié)果為第一結(jié)果時(shí),根據(jù)有窮狀態(tài)自動(dòng)機(jī)確定待預(yù)測(cè)的 數(shù)據(jù)流文本的編碼格式;當(dāng)去噪處理的結(jié)果為第二結(jié)果時(shí),計(jì)算待預(yù)測(cè)的數(shù)據(jù)流文本的出 現(xiàn)頻率數(shù)組;將待預(yù)測(cè)的數(shù)據(jù)流文本的出現(xiàn)頻率數(shù)組與出現(xiàn)頻率表進(jìn)行比對(duì)以獲得待預(yù)測(cè) 的數(shù)據(jù)流文本的編碼格式。
[0008] 于本發(fā)明的一實(shí)施例中,所述根據(jù)第一類型編碼的測(cè)試樣本形成出現(xiàn)頻率表步驟 包括:對(duì)第一類型編碼的測(cè)試樣本進(jìn)行去噪處理;根據(jù)去噪處理后的測(cè)試樣本計(jì)算各編碼 的出現(xiàn)頻率數(shù)組,以形成出現(xiàn)頻率表。
[0009] 于本發(fā)明的一實(shí)施例中,所述計(jì)算待預(yù)測(cè)的數(shù)據(jù)流文本的出現(xiàn)頻率數(shù)組的步驟包 括:計(jì)算去噪處理后的數(shù)據(jù)流文本中每個(gè)字節(jié)出現(xiàn)的頻率;將每個(gè)字節(jié)出現(xiàn)的頻率記錄進(jìn) 數(shù)組以形成出現(xiàn)頻率數(shù)組。
[0010] 于本發(fā)明的一實(shí)施例中,所述將每個(gè)字節(jié)出現(xiàn)的頻率記錄進(jìn)數(shù)組以形成出現(xiàn)頻率 數(shù)組的步驟包括:計(jì)算每個(gè)字節(jié)出現(xiàn)的頻率與一百有效字節(jié)的比值以形成出現(xiàn)頻率數(shù)組, 所述有效字節(jié)為對(duì)待預(yù)測(cè)的數(shù)據(jù)流文本進(jìn)行去噪處理后的字節(jié)數(shù)。
[0011] 于本發(fā)明的一實(shí)施例中,將待預(yù)測(cè)的數(shù)據(jù)流文本的出現(xiàn)頻率數(shù)組與出現(xiàn)頻率表進(jìn) 行比對(duì)以獲得待預(yù)測(cè)的數(shù)據(jù)流文本的編碼格式的步驟包括:計(jì)算待預(yù)測(cè)的數(shù)據(jù)流文本的出 現(xiàn)頻率數(shù)組與出現(xiàn)頻率表之間組間差;將最小組間差所對(duì)應(yīng)的編碼格式作為待預(yù)測(cè)的數(shù)據(jù) 流文本的編碼格式。
[0012] 于本發(fā)明的一實(shí)施例中,將待預(yù)測(cè)的數(shù)據(jù)流文本的出現(xiàn)頻率數(shù)組與出現(xiàn)頻率表進(jìn) 行比對(duì)以獲得待預(yù)測(cè)的數(shù)據(jù)流文本的編碼格式的步驟包括:計(jì)算待預(yù)測(cè)的數(shù)據(jù)流文本的出 現(xiàn)頻率數(shù)組與出現(xiàn)頻率表之間組間方差;將最小組間方差所對(duì)應(yīng)的編碼格式作為待預(yù)測(cè)的 數(shù)據(jù)流文本的編碼格式。
[0013] 本發(fā)明提供一種數(shù)據(jù)流編碼的預(yù)測(cè)裝置,所述數(shù)據(jù)流編碼的預(yù)測(cè)裝置包括:測(cè)試 樣本獲取模塊,用于獲取各種編碼的測(cè)試樣本;測(cè)試樣本處理模塊,用于根據(jù)第一類型編碼 的測(cè)試樣本形成出現(xiàn)頻率表或根據(jù)第二類型編碼的測(cè)試樣本形成有窮狀態(tài)自動(dòng)機(jī);數(shù)據(jù)流 文本處理模塊,用于獲取待預(yù)測(cè)的數(shù)據(jù)流文本,并對(duì)所述待預(yù)測(cè)的數(shù)據(jù)流文本進(jìn)行去噪處 理,所述去噪處理的結(jié)果包括第一結(jié)果或第二結(jié)果;編碼格式確定模塊,用于當(dāng)去噪處理的 結(jié)果為第一結(jié)果時(shí),根據(jù)有窮狀態(tài)自動(dòng)機(jī)確定待預(yù)測(cè)的數(shù)據(jù)流文本的編碼格式;還用于當(dāng) 去噪處理的結(jié)果為第二結(jié)果時(shí),計(jì)算待預(yù)測(cè)的數(shù)據(jù)流文本的出現(xiàn)頻率數(shù)組;將待預(yù)測(cè)的數(shù) 據(jù)流文本的出現(xiàn)頻率數(shù)組與出現(xiàn)頻率表進(jìn)行比對(duì)以獲得待預(yù)測(cè)的數(shù)據(jù)流文本的編碼格式。
[0014] 于本發(fā)明的一實(shí)施例中,所述測(cè)試樣本處理模塊包括:第一去噪單元,用于對(duì)第一 類型編碼的測(cè)試樣本進(jìn)行去噪處理;出現(xiàn)頻率表形成單元,用于根據(jù)去噪處理后的測(cè)試樣 本計(jì)算各編碼的出現(xiàn)頻率數(shù)組,以形成出現(xiàn)頻率表;有窮狀態(tài)自動(dòng)機(jī)形成單元,用于根據(jù)第 二類型編碼的測(cè)試樣本形成有窮狀態(tài)自動(dòng)機(jī)。
[0015] 于本發(fā)明的一實(shí)施例中,所述出現(xiàn)頻率表形成單元包括:頻率計(jì)算單元,用于計(jì)算 去噪處理后的數(shù)據(jù)流文本中每個(gè)字節(jié)出現(xiàn)的頻率;記錄單元,用于將每個(gè)字節(jié)出現(xiàn)的頻率 記錄進(jìn)數(shù)組以形成出現(xiàn)頻率數(shù)組。
[0016] 于本發(fā)明的一實(shí)施例中,所述編碼格式確定模塊包括:第一確定單元,用于當(dāng)去噪 處理的結(jié)果為第一結(jié)果時(shí),根據(jù)有窮狀態(tài)自動(dòng)機(jī)確定待預(yù)測(cè)的數(shù)據(jù)流文本的編碼格式;計(jì) 算單元,用于計(jì)算待預(yù)測(cè)的數(shù)據(jù)流文本的出現(xiàn)頻率數(shù)組與出現(xiàn)頻率表之間組間差或者組間 方差;第二確定單元,用于將最小組間差或最小組間方差所對(duì)應(yīng)的編碼格式作為待預(yù)測(cè)的 數(shù)據(jù)流文本的編碼格式。
[0017] 如上所述,本發(fā)明的數(shù)據(jù)流編碼的預(yù)測(cè)方法及數(shù)據(jù)流編碼的預(yù)測(cè)裝置,具有以下 有益效果:
[0018] 本發(fā)明的數(shù)據(jù)流編碼的預(yù)測(cè)方法及數(shù)據(jù)流編碼的預(yù)測(cè)裝置,通過(guò)對(duì)編碼類型進(jìn)行 區(qū)別,在去噪處理后,可以快速的確定預(yù)測(cè)的方式,從而極大的提高了預(yù)測(cè)的效率;并且,本 發(fā)明可以實(shí)現(xiàn)對(duì)各種編碼的預(yù)測(cè),從而大大提高了預(yù)測(cè)的準(zhǔn)確度。
【附圖說(shuō)明】
[0019] 圖1顯示為本發(fā)明的數(shù)據(jù)流編碼的預(yù)測(cè)方法于一實(shí)施例中的流程示意圖。
[0020] 圖2顯示為本發(fā)明的數(shù)據(jù)流編碼的預(yù)測(cè)裝置于一實(shí)施例中的結(jié)構(gòu)示意圖。
[0021] 圖3顯示為本發(fā)明的數(shù)據(jù)流編碼的預(yù)測(cè)裝置于另一實(shí)施例中的結(jié)構(gòu)示意圖。
[0022] 元件標(biāo)號(hào)說(shuō)明
[0023] 2 數(shù)據(jù)流編碼的預(yù)測(cè)裝置
[0024] 21 測(cè)試樣本獲取模塊
[0025] 22 測(cè)試樣本處理模塊
[0026] 23 數(shù)據(jù)流文本處理模塊
[0027] 24 編碼格式確定模塊
[0028] 221 第一去噪單元
[0029] 222 出現(xiàn)頻率表形成單元
[0030] 223 有窮狀態(tài)自動(dòng)機(jī)形成單元
[0031 ] 241 第一確定單元
[0032] 242 計(jì)算單元
[0033] 243 第二確定單元
[0034] S11 ~S16 步驟
【具體實(shí)施方式】
[0035] 以下通過(guò)特定的具體實(shí)例說(shuō)明本發(fā)明的實(shí)施方式,本領(lǐng)域技術(shù)人員可由本說(shuō)明書(shū) 所揭露的內(nèi)容輕易地了解本發(fā)明的其他優(yōu)點(diǎn)與功效。本發(fā)明還可以通過(guò)另外不同的具體實(shí) 施方式加以實(shí)施或應(yīng)用,本說(shuō)明書(shū)中的各項(xiàng)細(xì)節(jié)也可以基于不同觀點(diǎn)與應(yīng)用,在沒(méi)有背離 本發(fā)明的精神下進(jìn)行各種修飾或改變。需說(shuō)明的是,在不沖突的情況下,以下實(shí)施例及實(shí)施 例中的特征可以相互組合。
[0036] 需要說(shuō)明的是,以下實(shí)施例中所提供的圖示僅以示意方式說(shuō)明本發(fā)明的基本構(gòu) 想,遂圖式中僅顯示與本發(fā)明中有關(guān)的組件而非按照實(shí)際實(shí)施時(shí)的組件數(shù)目、形狀及尺寸 繪制,其實(shí)際實(shí)施時(shí)各組件的型態(tài)、數(shù)量及比例可為一種隨意的改變,且其組件布局型態(tài)也 可能更為復(fù)雜。
[0037] 正如【背景技術(shù)】中所述的,現(xiàn)有的一些數(shù)據(jù)流編碼猜測(cè)工具雖然可以實(shí)現(xiàn)部分編碼 的猜測(cè)功能,但是其效率低下,并且對(duì)其他的一些編碼仍然無(wú)法正確預(yù)測(cè),從而導(dǎo)致亂碼。 而本發(fā)明的發(fā)明人對(duì)各種編碼進(jìn)行了深入研究,發(fā)現(xiàn)文本中會(huì)包含很多的編碼信息,一些 數(shù)據(jù)會(huì)在某些編碼中經(jīng)常出現(xiàn),而有些則永遠(yuǎn)不會(huì)出現(xiàn);還有一些編碼會(huì)有一些標(biāo)記的符 號(hào)(字符序列),如UTF的Β0Μ(字節(jié)順序標(biāo)記),IS0-2022的ESC序列,通過(guò)這些標(biāo)記,能夠準(zhǔn)確 地定位到該編碼。對(duì)于一段不是隨機(jī)出現(xiàn),而是有實(shí)際意義的文本來(lái)說(shuō),其內(nèi)部總會(huì)有一些 關(guān)聯(lián)。一種很明顯的關(guān)聯(lián)是各種常用字符的出現(xiàn)頻率總會(huì)很高,如對(duì)于中文,"的"、"了"之 類的出現(xiàn)頻率非常高。本發(fā)明正是基于對(duì)編碼的深入研究,提出了一種高效且準(zhǔn)確的數(shù)據(jù) 流編碼的預(yù)測(cè)方法及預(yù)測(cè)裝置。
[0038] 為了更好地對(duì)本發(fā)明的
【發(fā)明內(nèi)容】
進(jìn)行說(shuō)明,下面首先對(duì)各種編碼格式做簡(jiǎn)要介 紹。
[0039] 1)ASCII碼
[0040] ASCII的全稱是"美國(guó)信息交換標(biāo)準(zhǔn)代碼"。每個(gè)ASCII碼以1個(gè)字節(jié)(Byte)儲(chǔ)存,從 0到數(shù)字127代表不同的常用符號(hào),例如大寫(xiě)A的ASCII碼是65,小寫(xiě)a則是97。由于ASCII字節(jié) 的七個(gè)位,最高位并不使用,所以后來(lái)又將最高的一個(gè)位也編入這套內(nèi)碼中,成為八個(gè)位的 延伸ASCII (Extended ASCII)碼,這套內(nèi)碼加上了許多外文和表格等特殊符號(hào),為目前常用 的內(nèi)碼。
[0041 ] 2) IS0-8859 系列