[發明專利]一種基于特定字符串查找的簡體中文編碼方式自動識別系統及方法有效
| 申請號: | 201910488932.8 | 申請日: | 2019-06-06 |
| 公開(公告)號: | CN110196968B | 公開(公告)日: | 2023-04-07 |
| 發明(設計)人: | 蔣東辰;賈婉華;牛穎 | 申請(專利權)人: | 北京林業大學 |
| 主分類號: | G06F40/126 | 分類號: | G06F40/126;G06F40/279;G06F40/216;G06F16/903 |
| 代理公司: | 北京科迪生專利代理有限責任公司 11251 | 代理人: | 安麗 |
| 地址: | 100083 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 特定 字符串 查找 簡體中文 編碼 方式 自動識別 系統 方法 | ||
1.一種基于特定字符串查找的簡體中文編碼方式自動識別系統,其特征在于,包括:字符串集合設置模塊及中文文本編碼識別模塊,其中:
字符串集合設置模塊:用于設置GB18030和UTF8的排他字符串集合,及GB18030編碼和UTF8編碼的高概率字符串集合;首先,根據中文字符的字頻分布,從頻率最高的中文字符開始,按頻率順序選擇字頻最高的多個中文漢字、中文標點作為備用字符;然后,根據所述備用字符的GB18030編碼和UTF8編碼,分別確定所述字符的前超字、后超字、前超子字、后超子字、前子字和后子字;最后基于上述字符的前超字、后超字、前超子字、后超子字、前子字和后子字與GB18030編碼、UTF8編碼的對應關系,得到設置的GB18030編碼和UTF8編碼的排他字符串集合,及GB18030編碼和UTF8編碼的高概率字符串集合;
中文文本編碼識別模塊:根據GB18030和UTF8的排他字符串集合以及GB18030編碼和UTF8編碼的高概率字符串集合,確定目標文本的中文編碼方式;如果目標文本為網頁文本,首先通過查找head標簽的meta標簽中是否具有“charset”及具體編碼方式字段來確定文本編碼方式;如果在目標文本中不存在該字段或目標文本為非網頁的中文文本,則根據GB18030編碼和UTF8編碼的排他字符串集合的邏輯屬性識別網頁文本的簡體中文編碼方式;如果仍然不能確定,再根據GB18030編碼和UTF8編碼的高概率字符串集合的概率屬性識別目標文本的簡體中文編碼方式;如果仍然不能識別,最后再調用基于編碼特征提取的識別方法或基于字頻統計的識別方法,最終獲得目標文本的中文編碼方式;
所述字符串集合設置模塊中,分別確定這些字符的前超字、后超字、前超子字、后超子字、前子字和后子字,具體如下:
(1)對于中文字符C,GB18030(C)表示C的GB18030編碼二進制字符串,UTF8(C)表示C的UTF8編碼二進制字符串;
(2)對于二進制字符串S,C_GB18030(S)表示GB18030編碼為S的原始字符,C_UTF8(S)表示UTF8編碼為S的原始字符;原始字符包括:ACSII字符、中文符號以及其他由GB18030編碼的符號;
(3)對于中文字符C,如果GB18030(C)?=?B1B2,B1和B2都是二進制字節,確定C_UTF8(~B1B2)和C_UTF8(B1B2~)分別為C的前超字和后超字,其中~表示一個或多個字節;確定C_UTF8(~B1)為C的前超子字,C_UTF8(B2~)為C的后超子字;
(4)對于中文字符C,如果UTF8(C)=B1B2B3,B1、B2、B3都是二進制字節,確定C_GB18030(B1B2)為C的前子字;C_GB18030(B2B3)為C的后子字;
所述字符串集合設置模塊中,得到設置的GB18030編碼和UTF8編碼的排他字符串集合,及GB18030編碼和UTF8編碼的高概率字符串集合過程為:從備用字符集合S中,按照字頻P(Ci)從高到低的順序依次取出中文字符Ci,并判別規則確定Ci是否屬于GB18030編碼和UTF8編碼的排他字符串集合和高概率字符串集合,其中,所述排他字符串指的是該字符串只可能出現在一種編碼方式的文本中,其在邏輯上具有排他性;所述高概率字符串指的是該字符串能以極高的概率出現在一種編碼方式的文本中,而在其他編碼方式的文本中出現的概率極低,極低是指低于其在所述編碼方式中出現頻率的N分之一,其中N是大于1的一個倍率;
所述編碼識別模塊中,根據GB18030編碼和UTF8編碼的排他字符串集合的邏輯屬性識別目標文本的簡體中文編碼方式,實現步驟如下:
(1)按照中文字符字頻由高到底的順序從GB18030的排他字符串集合G中逐個取出字符串str,并在目標文本中查找該字符串,str視為一個字符串變量,在每輪操作中,其存儲著不同的字符串;如果在文本中找到str,則確定該文本的編碼方式為GB18030;否則,繼續從G中選取下一個字符串并在文本中查找;如果G中的所有字符串都不在目標文本中出現,則不能由GB18030的排他字符串集合的邏輯屬性識別該目標文本的中文編碼方式;
(2)按照中文字符字頻由高到底的順序從UTF8的排他字符串集合U中逐個取出字符串str,并在目標文本中查找該字符串:如果在文本中找到str,則確定網頁文本的編碼方式為UTF8;否則,繼續從U中選取下一個字符串并在文本中查找;如果U中的所有字符串都不在該文本中出現,則不能由UTF8的排他字符串集合的邏輯屬性識別該目標文本的中文編碼方式;
所述中文文本編碼識別模塊中,根據GB18030編碼和UTF8編碼的高概率字符串集合的概率屬性識別目標文本的簡體中文編碼方式,實現步驟如下:
(1)統計目標文本的字節長度ByteLength,設置閾值NA和字頻倍率B;
(2)按照中文字符字頻由高到底的順序,從UTF8編碼的高概率字符串集合UP中逐個取出字符串str,在網頁文本中統計該字符串str出現次數UTF8_Count;如果UTF8_Count大于等于NA和ByteLength/(3*B)的最大值,則確定目標文本的編碼方式為UTF8,其中3為中文在UTF8編碼中的字節長度;如果UP中的所有字符串都不滿足判定條件,則不能由UTF8編碼的高概率字符串集合的概率屬性識別該目標文本的中文編碼方式;
(3)按照中文字符字頻由高到底的順序,從GB18030編碼的高概率編碼字符串集合GP中逐個取出字符串str,在網頁文本中統計所述字符串出現次數GB18030_Count;如果GB18030_Count大于等于NA和ByteLength/(2*B)的最大值,則確定目標文本的編碼方式為GB18030,其中2為中文在GB18030編碼中的字節長度;如果GP中的所有字符串都不滿足判定條件,則不能由UTF8編碼的高概率字符串集合的概率屬性識別該目標文本的中文編碼方式。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京林業大學,未經北京林業大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910488932.8/1.html,轉載請聲明來源鉆瓜專利網。





