[发明专利]一种基于特定字符串查找的简体中文编码方式自动识别系统及方法有效
申请号: | 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.vipzhuanli.com/pat/books/201910488932.8/1.html,转载请声明来源钻瓜专利网。