目录

  • 1 信息与信息技术
    • 1.1 探索信息的真谛
    • 1.2 信息的度量
    • 1.3 信息技术
    • 1.4 计算机的信息表示与编码
    • 1.5 第一单元测验与练习
  • 2 计算与计算机系统
    • 2.1 探索计算之源
    • 2.2 从历史走向未来-计算机的发展史
    • 2.3 微型计算机系统
    • 2.4 外部存储设备
    • 2.5 输入输出子系统
    • 2.6 第二单元测验与练习
  • 3 软件定义的时代
    • 3.1 软件的性质及发展史
    • 3.2 操作系统
    • 3.3 应用软件
    • 3.4 第三单元测验与练习
  • 4 媒体信息的智能处理
    • 4.1 “媒体”的概念
    • 4.2 中文信息处理
    • 4.3 音频信号处理
    • 4.4 数字图像处理
    • 4.5 视频信息处理
    • 4.6 计算机图形处理技术
    • 4.7 新一代的人机交互技术
    • 4.8 第四单元测验与练习
  • 5 数据科学
    • 5.1 数据科学与Python
    • 5.2 数据库技术
    • 5.3 第五单元测验与练习
  • 6 算法、程序与问题求解方法
    • 6.1 问题解决与过程
    • 6.2 问题求解方法
    • 6.3 算法
    • 6.4 程序设计与过程
    • 6.5 第六单元测验与练习
  • 7 计算机通信与网络技术
    • 7.1 缩短世界的距离—通信与网络技术的历史回顾
    • 7.2 数据通信的基本原理
    • 7.3 计算机网络
    • 7.4 Internet基础
    • 7.5 Internet宽带接入方式
    • 7.6 第七单元测验与练习
  • 8 “互联网+”时代
    • 8.1 “互联网+”行动计划
    • 8.2 物联网
    • 8.3 云计算
    • 8.4 大数据:预测未来
    • 8.5 第八单元测验与练习
  • 9 信息安全与数据加密
    • 9.1 信息安全的基本内涵
    • 9.2 信息安全与数据加密
    • 9.3 数字签名
    • 9.4 第九单元测验与练习
  • 10 人工智能与应用
    • 10.1 人工智能概述
    • 10.2 人工智能主要的核心技术
    • 10.3 人工智能应用与国内知名生成式AI产品使用
    • 10.4 神经网络的一些基本知识
    • 10.5 卷积神经网络的层结构
  • 11 Office应用
    • 11.1 Office操作实践讲解
  • 12 问卷调查
    • 12.1 问卷调查
中文信息处理

§4.2  中文信息处理



1、汉字字符编码

汉字信息的处理流程

汉字的输入码:为用户能够利用西文键盘输入汉字而设计的编码,通常也称为汉字的外码,主要的输入码:数字编码、字音编码、字形编码、音形码。

汉字的内码:是汉字在计算机内部存储、处理的代码,一个汉字用两个字节或四个字节表示,每个字节的最高位为1。

汉字的交换码:是指不同的具有汉字处理功能的计算机系统之间在交换汉字信息时所使用的代码标准。

汉字的字形码:指在汉字字模库中的汉字字形信息,用于在屏幕上显示或在打印机上打印的汉字字形。

汉字的字形码及字库

点阵字形:    16´16、24´24、48´48。

一个16´16点阵汉字字形码占32字节。

一个24×24汉字需要576位,共576/8=72字节,一个6763个汉字的字库需要72X6763字节的存储空间。

轮廓字形:  把汉字笔画的轮廓用一组直线和曲线勾画,记录的是这些几何形状之间的关系,精度高,Windows的TrueType字库采用此法。

汉字的编码标准

GB2312-1980(信息交换用汉字编码字符集基本集)收录了6763个汉字,对一个汉字采用两个字节(Byte)表示。是基于区位码设计的,区位码把编码表分为94个区,每个区对应94个位,每个字符的区号和位号组合起来就是该汉字的区位码。

GBK-1995(汉字内码扩展规范)GB2312编码的超集,向下完全兼容GB2312,同时GBK收录了Unicode基本多文种平面中的所有CJK汉字。共23940个码位,共收录了21003个汉字,与 Unicode组织的 Unicode编码完全兼容

GB18030有两个版本:GB18030-2000和GB18030-2005。GB18030-2000是GBK的取代版本,它的主要特点是在GBK基础上增加了CJK统一汉字扩充A的汉字,收录了27484个汉字。GB18030-2005的主要特点是在GB18030-2000基础上增加了CJK统一汉字扩充B的汉字,共收录了70244个汉字

2、信息时代的“书同文、字同码”—Unicode

目前世界各地在计算机内处理文字时采用不同的编码标准,导致同一编码在不同的编码标准内可能代表不同的字符,ISO10646正是为解决这一问题而设立的统一标准。Unicode是ISO10646的一种实现方式,或称为工业标准。采用32位字符编码。

Unicode为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。自1994年正式公布,至今最新的已发展到了Unicode11.0版,包含有超过10万个字符,让网络上的文本及软件应用能被全球各地读懂。如:微软Office2000及其后的产品。其核心采用Unicode内核,因此,无论何种文字,都可以在上面正常显示,而且是同屏显示。

3、中文分词与分词工具

中文分词(Chineseword segmentation):将一个汉字序列切分成一个个单独的词。分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。

目前分词算法可分四大类:

基于规则分词方法、基于统计分词方法、基于语义分词方法、基于理解分词方法

Python的计算生态有多种分词工具可供使用,如jieba、PKUSeg、SnowNLP、pynlpir、thulac、pyltp等。

分词库jieba,又称“结巴,支持三种分词模式:

精确模式试图将句子最精确地切开,适合文本分析

全模式:将句子中所有的可能成词的词语都扫描出来,速度非常快,但是不能解决歧义

搜索引擎模式在精确模式的基础上,对长词再次切分,适用于搜索引擎分词

4.自然语言处理与机器翻译

自然语言处理(naturallanguage proccessing,NLP)是计算机科学、人工智能、语言学关注计算机和人类(自然)语言之间的相互作用的领域,是计算机科学领域与人工智能领域中的一个重要方向,它用计算机对自然语言的形、音、义等信息进行处理,即对字、词、句、篇章的输入、输出、识别、分析、理解、生成等的操作和加工。它对计算机和人类的交互方式有许多重要的影响。包括自然语言理解自然语言生成两部分。

随着人工智能技术的兴起,具有相当自然语言处理能力的实用系统已经广泛应用,典型的例子有:机器翻译系统、全文信息检索系统、自动文摘系统、自动问答、打击垃圾邮件、情感分析、社会计算、信息提取和个性化推荐等。

理解中文编码中区位码、国标码、内码、外码、字形码的区别及关系

下面以GB2312为例来加以说明(由于GBK、GB18030是以GB2312为基础扩展而来,因此编码实现方式与GB2312一样)。

一、区位码

整个GB2312字符集分成94个区,每区有94个位,每个区位上只有一个字符,即每区含有94个汉字或符号,用所在的区和位来对字符进行编码(实际上就是字符编号、码点编号),因此称为区位码。

换言之,GB2312将包括汉字在内的所有字符编入一个94 * 94的二维表,行就是“区”、列就是“位”,每个字符由区、位唯一定位,其对应的区、位编号合并就是区位码。比如“中”字在54区48位,所以“中”字的区位码是:5448(注意,GB类汉字编码为双字节编码,因此,45相当于高位字节,82相当于低位字节)。

二、国标码(交换码)

虽然GB2312为中文编码,我们也要使用到英文字母等字符,况且当时ASCII已经通用,所以要使GB2312能够兼容ASCII才行。为了兼容,GB2312在设计时避开了ASCII字符中的不可显示字符0000 0000 ~ 0001 1111(十六进制为0 ~ 1F,十进制为0 ~ 31)及空格字符00100000(十六进制为20,十进制为32)(为什么只避开ASCII中0~32的不可显示字符和空格字符,不避开其他字符呢?后面解释),国标码(又称为交换码)规定表示汉字的范围为(0010 0001,0010 0001) ~(0111 1110,0111 1110),十六进制为(21,21) ~ (7E,7E),十进制为(33,33) ~ (126,126)。

因此,必须将“区码”和“位码”分别加上(注意,一定是分别加上,因为区码和位码分别代表一个字节)20H(十六进制数,代表十进制中的32,H为十六进制数的后缀:Hexadecimal),作为国标码。也就是说,国标码相当于将区位码向后偏移了32,以避免与ASCII字符中0~32的不可显示字符和空格字符相冲突。例如“中”字的区位码为5448,转为国标码的过程为,区码:(54+32)=86,位码:(48+32)=80,所以“中”字的国标码表示为:(86, 80)。十六进制为(56H, 50H)。

三、内码(机内码)

国标码还不能直接在计算机上使用,因为这样还是会和ASCII中的除控制字符外的其他字符冲突(冲突的结果就是导致乱码)。

拿“中”字举个例子,它的国标码中的高位字节为86,这会与ASCII中大写字母'V'冲突,低位字节为80,与'P'冲突。因此为避免这种情况,规定国标码中的每个字节的最高位都从0换成1,即相当于每个字节都再加上128(十六进制为80,即80H;二进制为1000 0000),从而得到国标码的“机内码”表示,简称“内码”。由于ASCII码只用了一个字节中的低7位,利用这个特性,这个首位(最高位)上的“1”就可以作为识别汉字编码的标志,计算机在处理到首位是“1”的编码时就把它理解为汉字,在处理到首位是“0”的编码时就把它理解为ASCII字符。

“中”字从国标码转换为内码的过程为,高位字节:(86+128)=214,低位字节:(80+128)=208,所以“中”字的内码十进制表示为:(214,208),十六进制表示为:(D6, D0)。此时已经不再与ASCII冲突,完全兼容ASCII。因此,内码才是字符用GB2312编码后的在计算机中存储的形式。

总结一下:

从区位码(国家标准定义) ---> 区码和位码分别+32(即+20H)得到国标码 ---> 再分别+128(即+80H)得到机内码(与ACSII码不再冲突)。


四、为什么要加上20H和80H?

首先谈谈为什么要加上20H:

当时在制定GB2312时,决定对ASCII中的可打印字符,也就是英文字母、数字和符号部分(33~126,127为不可打印的DEL)重新编入GB2312中,以两个字节表示,称之为全角字符(全角字符在屏幕上的显示宽度为ASCII字符的两倍,后来也因此而将对应的ASCII字符称之为半角字符)。而对于ASCII中前32个不可显示也不可打印的控制字符(ASCII码为0~31),以及第33个可显示但不可打印的空格字符(ASCII码为32)等共33个不可打印字符的编码则直接沿用,不再重新编码。因为要保留这33个不可打印字符,就不能直接采用区位码作为计算机直接处理的机内码,需要将区位码向后偏移32以避开冲突(为什么是偏移32,而不是偏移33?因为区位码中的区码和位码都是从1开始计数的,不像ASCII码是从0开始计数的)。

再谈谈为什么要加上80H:

很显然,如果直接采用国标码作为计算机直接处理的机内码的话,还将会产生另一个弊端,即用ASCII码编码的英文字符在GB2312编码环境中无法打开,一打开就会乱码。因为国标码虽然相较于区位码避开了ASCII码中0~32的前33个不可打印字符,但并没有避开ASCII码中的英文字母、数字和符号(33~126,共94个字符,127为不可打印的DEL)等可打印字符。也就是说,国标码并不是完全兼容ASCII码的。

为了解决这个弊端,考虑到ASCII码只使用了一个字节中的低7位,最高位(即首位)为0,于是决定将国标码每个字节的最高位设为1(国标码的两个字节中的最高位都恒为0,即国标码中的每个字节实际上也只用了一个字节中的低7位),这就是GB2312的机内码(即内码),简称GB2312码。这样一来就彻底区分开了ASCII码和GB2312码。这也是为什么国标码还要加上(80H,80H)才能得到机内码。

五、外码(输入码、输入法编码)

1.外码也叫输入码、输入法编码,是用来将汉字输入到计算机中的一组键盘符号,是作为汉字输入用的编码。

英文字母只有26个,可以把所有的字符都放到键盘上,而使用这种办法把所有的汉字都放到键盘上,是不可能的。所以汉字系统需要有自己的输入码体系,使汉字与键盘能建立对应关系。

2.目前常用的外码分为以下几类:

1)数字编码,比如区位码;

2)拼音编码,比如搜狗、全拼、双拼、自然码等;

3)字形编码,比如五笔、表形码、郑码等。

六、字形码(字型码、字模码、输出码)

1.字形码,又称为字型码、字模码、输出码,属于点阵代码的一种。

为了将汉字在显示器或打印机上输出,把汉字按图形符号设计成点阵图,就得到了相应的点阵代码(字形码)。也就是用0、1表示汉字的字形,将汉字放入n行*n列的正方形(点阵)内,该正方形共有n^2个小方格,每个小方格用一位二进制表示,凡是笔划经过的方格值为1,未经过的值为0。

2.显示一个汉字一般采用16×16点阵或24×24点阵或48×48点阵。已知汉字点阵的大小,可以计算出存储一个汉字所需占用的字节空间。

比如,用16×16点阵表示一个汉字,就是将每个汉字用16行,每行16个点表示,一个点需要1位二进制代码,16个点需用16位二进制代码(即2个字节),共16行,所以需要16行×2字节/行=32字节,即16×16点阵表示一个汉字,字形码需用32字节。

因此,字节数=点阵行数×(点阵列数/8)。

3.为了将汉字的字形显示输出或打印输出,汉字信息处理系统还需要配有汉字字形库,也称字模库,简称字库,它集中了汉字的字形信息。

字库按输出方式可分为显示字库和打印字库。用于显示输出的字库叫显示字库,工作时需调入内存。用于打印输出的字库叫打印字库,工作时无需调入内存。

字库按存储方式也可分为软字库和硬字库。软字库以文件的形式存放在硬盘上,现多用这种方式。硬字库则将字库固化在一个单独的存储芯片中,再和其它必要的器件组成接口卡,插接在计算机上,通常称为汉卡。这种方式现已淘汰。

七、小结

可以这样理解,为了在计算机内表示汉字而采取统一的编码方式所形成的汉字编码叫内码。为方便汉字输入而形成的汉字编码为外码,也叫输入码。为显示输出和打印输出汉字而形成的汉字编码为字形码,也称为字模码、输出码。

计算机通过键盘输入的外码(重码时还需附加选择编号)对应于汉字内码,将汉字外码转换(即映射)为汉字内码,以实现输入汉字的目的;通过汉字内码在字模库(即字库)中找出汉字的字形码,将汉字内码转换(即映射)为汉字字形码,以实现显示输出和打印输出汉字的目的。

事实上,英文字符的输入、处理和显示过程大致上也差不多,只不过英文字符不需要输入码(即外码),直接在键盘上输入对应的英文字母即可。


原文链接:https://blog.csdn.net/wn084/article/details/80366078