510 likes | 754 Views
第二章 文本. 内容. 一、编码 二、文本处理 三、文本显示. 一、编码. 几个编码标准. ASCII ISO8859-1… GB2312 GB12345 GBK CJK BIG5. UCS Unicode UTF-8 UCS-2 UTF-16 GB18030. ASCII. 计算机中使用得最广泛的西文编码字符集 : 美国标准信息交换码 (American Standard Code for Information Interchange, 简称 ASCII 码 ) ,后来被批准为 ISO-646-US 标准
E N D
内容 一、编码 二、文本处理 三、文本显示
几个编码标准 • ASCII • ISO8859-1… • GB2312 • GB12345 • GBK • CJK • BIG5 • UCS • Unicode • UTF-8 • UCS-2 • UTF-16 • GB18030
ASCII • 计算机中使用得最广泛的西文编码字符集:美国标准信息交换码(American Standard Code for Information Interchange, 简称ASCII码),后来被批准为ISO-646-US标准 • ASCII字符集中: • 96个可打印字符+32个控制字符 • 采用7位二进制进行编码
GB 1988-80 (ISO 646-CN) 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 3 4 5 6 7 ¥ ASCII码/ ISO-646-US标准
ISO-646-DE (德国) ISO-646-DK (丹麦) ISO-646的本地化
ISO 646的不足 • 7位代码空间太小, • 不同国家和地区使用不同的标准,难以兼容, • 东亚地区使用的大字符集无法编码,
ISO8859. 1 Latin1 (West European) 2 Latin2 (East European) 3 Latin3 (South European) 4 Latin4 (North European) 5 Cyrillic 6 Arabic 7 Greek 8 Hebrew 9 Latin5 (Turkish) 10 Latin6 (Nordic) 11Latin/Thai 12non-existent 13BalticRim 14Celtic 15Latin-9 16South-EasternEruopean ……… GL GR C0 C1 扩充ASCII字符集 单8位代码空间
ISO-8859-1 (West European) ISO-8859-2 (East European) ISO 8859 扩充ASCII字符集
MS-Windows 的code page • 代码页实际上就是各个不同的字符集。微软公司在开发DOS和Windows的各文种产品时,将各文种的字符集加以整理,并对每个具体的代码页都赋以一个代号,称作“代码页ID”。比如:CP1252代码页是ISO 8859-1的扩充,是ISO 8859-1的超集
汉字的编码 • 汉字(Chinese character, Han character, Hanzi)是记录汉语(国语,华语)的文字,属于表意文字,它用符号直接表达词或词素。中文文本的基本组成单位是汉字字符。 • 汉字的特点 • 数量大(我国汉字自古至今累计已超过7万字,国家语委颁布的“现代汉语通用字表”包含7000汉字) • 多个国家和地区使用:香港,台湾地区,以及日本、韩国、朝鲜,新加坡,马来西亚等。 • 字形复杂,同音字多,异体字多。 根据统计,常用汉字的频率,前165个汉字频率和>50%,前1000个汉字频率>95%。按小学教学经验,识字900个左右,基本可以读书、看报、写作文。按照小学教学大纲,小学毕业识字2500。GB2312的一级字库的频率和>99%。4000个汉字能达到99.9%使用频率。最常用的汉字:的(3.83%)、一(1.26%)、是(0.97%)、在(0.95%)、了(0.85%)、和(0.75%)、有(0.69%)、主(0.60%)、中(0.6%),这十个汉字占11.16%。
汉字正形 • 同一个宋体字有不同笔画或不同结构的,选择一个便于辨认,便于书写的形体; • 同一个字宋体和手写楷书笔画结构不同的,宋体尽可能接近手写楷书;不完全根据文字学的传统。
GB2312-1980 • 1981年颁布,《信息交换用汉字编码字符集·基本集》。 • GB2312字符集由三个部分构成 • 字母、数字和各种符号,包括拉丁字母、俄文、日文平假名与片假名、希腊字母、汉语拼音等共682个(统称为GB2312图形符号); • 一级常用汉字,共3755个,按汉语拼音排列; • 二级常用字,共3008个,因不太常用,所以按偏旁部首排列。
83(53h) 20(14h) GB2312-80的字符集及字符布局 每一个汉字或符号有一个确定的位置,该位置的区号和位号就是这个汉字的“区位码”。 大 区位码是2083,即 0010100,1010011 16进制表示为 14 53h
GB2312-80字符集在ISO 2022双8位代码空间中的位置 73h 0x7E 0xA1 0xFE 尾字节 图形符号 0x 30 34h 大 GB2312 汉字 (6763 ) 个汉字 0x77 0x81 0xA1 0xFE 首字节 GB2312-80汉字交换码 0x20 0x20 例如, “大”字的国标交换码是: 0110100 1110011即16进制的: 34 73h
F3h 0x 30 汉字交换码 0x77 大 B4h 汉字机内码 GB2312-80汉字内码 为了在机内区别于西文编码,GB2312 汉字字符集在双8位代码空间中映射到右下角位置,即在国标码的基础上,每个字节的最高位置1 “大”字的机内码为 10110100,11110011 (B4F3)
GB12345-1990 • GB2312-80是面向简体汉字的编码。 • 为了使用繁体汉字,特制订了繁体汉字字符集的国家标准(信息交换用汉字编码字符集--辅助集GB12345-1990) 。 • 兼容GB2312,含 717 个图形符号, 6866 个汉字 • 简体、繁体相同的汉字,编码保持不变, • 对应1个繁体字的,替换为对应的繁体字,如繁体字“燈”,只对应一个简体字“灯”。 • 对应多个繁体字的,替换为最常用的那个繁体字,其它对应繁体字放在扩充区。如简体字“发”,对应“發”、“髮”2个 繁体字。在“发展”一义时,用“發展”,在“头发”一义时用“頭髮”。再如“复”字,在“复杂”一义时用“複雜”,在“反复”一义时用“反復”。这样的简体字有100多个。
GB2312和GB12345的不足 • GB2312汉字一些特殊应用的需要:字数太少,无法满足 • 人名、地名; • 古籍整理、古典文献研究。 • 简体和繁体分属于2个字符集,在简、繁体汉字同时使用时,很不方便。
CJK(中日韩)统一汉字字符集 • 所谓CJK统一汉字编码, 是指不论国家和地区,不论汉字的字义有无区别,只要字形相同,该汉字就只有一个代码。 • CJK字符集以现有各国和地区的标准字符集作为源字符集,将其中的汉字按统一的认同规则进行认同/甄别后,生成涵盖各源字集并按东亚著名的四大字典(康熙字典、大汉和字典、汉语大字典及大字源)的页码/字位综合排序(按部首—笔画数目)排序,构成共27,484个汉字组成的大字符集。 • 经过中、日、韩、越、新的力争,国际标准化组织在Unicode编码体系中给汉字划出了9万多个码位,各国将对CJK汉字字符集作进一步的扩充。
《汉字内码扩展规范》GBK • GBK全称《汉字内码扩展规范》(1995年) • 向下与 GB 2312 编码兼容 • 向上准备向ISO 10646.1 国际标准过渡,是一个承上启下的标准。 • GBK 规范收录了 ISO 10646.1 中的全部 CJK 汉字和符号,并有所补充 • GB 2312中的全部汉字(GBK/2) • 其他CJK汉字和增补的汉字(GBK/3和GBK/4),共21003个汉字 • 另外还有883个图形符号(GBK/1, GBK/5)
GBK汉字编码的特点 • 汉字数目多,共21003个; • 简体和繁体汉字在同一个字符集中; • 包含了中、日、韩认同的全部CJK汉字; • 双字节编码,第1字节的最高位必为“1”,第2字节的最高位不一定是“1”; • 与GB2312-80保持向下兼容; • 与ISO10646中的汉字字汇兼容,代码不兼容
GBK的代码空间以及字符分布 总计 23940 个码位,共收入 21003 个汉字和883图形符号,未使用的区域作为用户自定义区 增补汉字 图形符号 CJK汉字
BIG5汉字编码 • BIG 5汉字编码是我国台湾地区计算机系统中使用的汉字编码字符集。由Acer等五家公司推出,故称大五码。 • 包含 420 个图形符号和 13070 个汉字(不使用简化汉字)。 • 编码范围是 0x8140--0xFE7E、0x81A1--0xFEFE, • 0xA440--0xF97E、0xA4A1--0xF9FE 是汉字区。
通用编码字符集UCS • 需求: • 各个国家和民族都有自己的语言和文字,现代人类使用的语言有6800种。 • 希望所有这些语言文字都能方便地进行计算机通信,特别是允许能同时使用任意多种语言文字 • 例如: • 中文简体:南京大学计算机系 • 中文繁体:南京大学計算機系 • 日文:今日はいい天気ですね • 俄文:йцкуенгшщзфывапльсчя • 俄文:ЙЦЕНГШЩЗДЛРПАВЫФЯЧИЬ
ISO/IEC 10646 (UCS) • ISO/IEC 10646 即“通用编码字符集”(Universal Coded Character Set,简称UCS), 相应的工业标准称为“Unicode”,两者完全兼容。 • 设计目标: • 实现所有字符在同一字符集中等长编码、同等使用的真正多文种信息处理。 • 1993、2000分别发布标准的第1部分(ISO/IEC 10646.1:1993和10646.1:2000),对应的中国国家标准是GB 13000.1。第2部分(ISO/IEC 10646.2)也已发布。
UCS的体系结构 在 UCS 中每一个字符用 4 个字节编码,对应着每个字符在编码空间的组号、平面号、行号和字位号。
UCS的代码空间 专用平面 辅助平面 基本多文种平面(BMP)
UCS 的BMP 平 面
UCS的变形显现形式之一UTF-8 • 为了与原8-bit系统保持向下兼容,UCS还可以采用8位编码,即采用单字节表示ASCII字符,这种可变长编码称为“UTF-8”(UCS Transformation Form – 8) • UTF-8(可变长形式编码), • 单字节: ASCII字符(from 20 to 7F) • 双字节: Latin等字符(from 80 to 07FF) • 三字节: 其它BMP字符 • 四字节: 其它字符
UCS的变形显现形式之一UTF-16 • 为了扩大字符集的容量,在UCS文本中还允许插入一些4字节的UCS-4字符. • 在BMP平面中保留了2个有1024个位置的块(D800 到 DFFF),这些位置不能用来表示任何符号, • 从每一块中各选一个数字所组成的这些数字对,可用来表示多达100万个UCS-4字符。 • 这种编码方式面向双字节,允许4字节编码,称为“UTF-16”( UCS Transformation Form – 16 ),这是一种处理效率与存储容量折中的编码方案。
UTF-16的变换 v = 0x064321 v′ = v - 0x10000 = 0x54321 = 0101 0100 0011 0010 0001 vh = 01 0101 0000 // higher 10 bits of v′ vl = 11 0010 0001 // lower 10 bits of v′ w1 = 0xD800 // the resulting 1st word is initialized with the high bits w2 = 0xDC00 // the resulting 2nd word is initialized with the low bits w1 = w1 | vh = 1101 1000 0000 0000 | 01 0101 0000 = 1101 1001 0101 0000 = 0xD950 w2 = w2 | vl = 1101 1100 0000 0000 | 11 0010 0001 = 1101 1111 0010 0001 = 0xDF21
Unicode的应用 • Unicode给全世界各个国家和地区使用的每个字符提供了一个唯一的编码 • Unicode标准已经被IBM, Microsoft, Apple, HP, Oracle, SAP, Sun, Sybase和其它许多公司所采用,最新的许多软件标准都需要Unicode,例如XML, Java, CORBA 3.0, WML等,许多操作系统、所有最新的浏览器和许多其他产品都支持Unicode。 • Unicode标准的出现和采用,是近些年来全球软件技术最重要的发展趋势之一。
UCS/Unicode与汉字编码——GB18030-2000 • 与现有的绝大多数汉字操作系统、中文平台在计算机内码一级兼容,即与国家标准GB 2312信息处理交换码所对应的事实上的内码标准兼容 • 在字汇上支持UCS/Unicode (GB13000.1-1993)的全部中、日、韩(CJK)统一汉字字符和全部CJK统一汉字扩充A的字符。 • 同时收录了藏文、蒙文、维吾尔文等主要的少数民族文字,为推进少数民族的信息化奠定了坚实的基础。 • 该标准由信息产业部和国家质量技术监督局在2000年联合发布的,并在2001年开始执行。 最新标准为2005版
GB18030-2000的编码 采用单字节、双字节和四字节三种方式对字符编码。
GB18030-2000的应用 • 2001年,微软公司发行的操作系统简体中文版Windows XP遵守了新颁布的国家标准GB18030-2000, • 微软的办公软件简体中文版(Office XP)则捆绑了方正集团的大字库,收字达到64000个。 • 然而,仍有许多中文信息处理软件还没有支持GB18030-2000标准,甚至没有支持GBK规范,对于人名、地名中的昇、昈、昉、镕、珺、喆等看似生僻而实际上并不生僻的字无法处理。
GB2312-80 (GB12345-90) GBK 兼 容 CJK汉字字汇 GBK 不兼容? GB2312 UCS/Unicode GB18030-2000 GB18030 汉字扩展区 内码区 小结1
小结2 • 编码字符集(coded character set) 按某种规则编码的字符的有序集合。每个编码字符集有三个最重要的属性: • 字汇(repertoire):编码字符集中有哪些字符 • 编码规则:如何确定每个字符的代码 • 码长: 字符代码的长度。它决定了代码空间的大小 • 定长码:7位,8位,双字节,4字节 • 可变长码:单-双-4字节码
目的和内容 • 目的:用计算机对文本中包含的文字信息进行包括对字、词、短语、句、篇章的识别、转换、压缩、存储、检索、分析、理解和生成等有关的处理。 • 内容: • 字数统计,字频统计,简/繁体相互转换,汉字/拼音相互转换,排序,错误检测; • 自动分词,词频统计,词性标注,词义辨识,大陆/台湾术语转换; • 文本压缩,文本加密,文本著作权保护; • 关键词提取,文献分类,自动文摘生成; • 文本检索(关键词检索、全文检索),文本过滤; • 文语转换(语音合成),文种转换(机器翻译); • 篇章理解,问答系统,自动写作等。
基于词的处理--自动分词技术 • 什么是分词 • 词界(Word Boundary)是词语之间的间隙,词界的标志是两个词之间的空格。汉语分词的过程也就是找出词界的过程。 • 分词的意义 机器翻译、信息检索 • 分词的难点 • 歧义识别 交叉歧义:“表面的”;组合歧义:“这个门把手坏了”,“请把手拿开”;真歧义:“乒乓球拍卖完了” 今年真好晦气全无财帛进门、熊出没注意! • 新词识别 地名,人名等,“王军虎”,“王军虎头虎脑的”
基于词的处理--自动分词技术2 • 分词方法 • 基于字符串匹配的分词方法(机械方法) • 基于理解的分词方法 • 基于统计的分词方法 • 基于机器学习的方法
文档自动摘要技术 • 目标: • 利用计算机自动处理技术,以比较小的篇幅表述整个文档的主要内容。 • 要考虑的因素有摘要的准确率、盖全率、文件摘要压缩比(Compression Ratio)、摘要可读性、流畅性、用户焦点等,这些因素直接影响自动摘要结果的好坏 • 几个自动摘要方法 • 基于统计的自动摘要 • 基于理解的自动摘要 • 基于信息抽取的自动摘要 • 基于结构的自动摘要
自然语言理解/自然语言处理 • 主要应用领域: • 机器人语音对话 • 大型数据库的自然语言查询 • 计算机自动创作 • 机器翻译和机助翻译 • 话语自动翻译 • ……
1. 点阵字体 HZK12 HZK16 HZK24s HZK24k HZK24H
显示步骤 • 获取该汉字机内码; • 由机内码推算出区位码; • 由区位码计算出记录号rec =(区码-1) *94(位码-1); • 由记录号rec计算汉字在字库中的位置offset ; • 读取相关字模信息,画点写字