基于vs的错字分类体系的设计与实现_第1页
基于vs的错字分类体系的设计与实现_第2页
基于vs的错字分类体系的设计与实现_第3页
基于vs的错字分类体系的设计与实现_第4页
基于vs的错字分类体系的设计与实现_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于vs的错字分类体系的设计与实现

0计算机病毒不能有效解决错字同文显示输出及有效管理随着中国综合国力的增强,世界上普遍出现了“中国热”的现象,中国已经成为第二语言学习者的重要选择。国内汉语教学和汉语国际推广工作者在教学过程中发现,学习汉字是汉语学习的瓶颈,而汉语学习者初学汉字时极易将汉字写错。不同母语、不同国籍、不同文化背景和不同年龄段的学习者在学习汉字过程中出现的错误具有不同的规律性。汉语教师只有对学习者在汉字学习过程中所出现的错误有一个较为全面的了解,才能在教学过程中做到有的放矢,提高教学效果。但是,计算机系统中还没有一种对错字进行输入输出及有效管理的可行方案,也没有较好地解决正字(标准字符集内汉字)与错字同文显示输出、错字深层次处理问题。目前,处理错字的方法主要有两种:①利用图片嵌入文本显示输出;②利用造字程序制作错字字模与输入法链接实现显示输出。以图片方式显示错字的方法不支持与常用汉字一样的检索和深层次加工处理;制作错字字模方法复杂,非专业人员不经过训练很难熟练运用,同时自造错字占用的是用户预留编码区,可选择的编码范围有限:ChineseGBK国标码为[AAA1-AFFE],[F8A1-FEFE]和[A140-A7A0]这3个段共4636个,Unicode编码为[E000-F8FF]共6400个,而且各个错字的编码由字模制作者自行确定,随意性大,对大量错字的统一管理极为不便。错字集是一个开放的集合,以上两种错字处理方法皆未能实现方便地进行错字的输入、输出、查找、管理、信息交换和共享。本文基于Unicode5.1标准中的表意文字变体序列(ideographicvariationsequences,IVS),提出使用正字+IVS变体选择符表示错字编码,以正字为中心组织和管理错字,设计并实现了一种可行、有效的错字处理方案。1相关技术标准的ivs1.1ids对汉字的描述Unicode联盟在Unicode4.0标准中提出了表意文字描述序列IDS,将汉字递归地分解为部件的组合。IDS定义了12种部件组合结构类型,并为每一种结构类型符定义了一个Unicode编码。这12种结构类型包括10种二元结构类型(左右、上下、全包含、上三包含、下三包、左三包含、左上包含、右上包含、左下包含、覆盖),以及2种三元结构类型(左中右、上中下)。IDS将汉字的结构类型符作为操作符,将汉字或汉字部件作为操作数组成前缀表达式来描述CJK(ChineseJapaneseKorean)中日韩汉字。IDS前缀表达式递归定义如下:<IDS>:=<CJK汉字>|<CJK部件>|<二元结构类型符><IDS><IDS>|<三元结构类型符><IDS><IDS><IDS>IDS可以表示Unicode字符集内的绝大部分汉字和一些集外汉字的字形。IDS部件集合不固定,对前缀表达式的长度和其中连续排列的部件个数有限制。IDS适应于描述结构确定的规范汉字,基本解决了集内汉字的描述问题。然而,错字的错误形式繁杂,有的是结构错误,有的是部件书写错误。对于规范结构(属于12种结构类型)错字,IDS可以对其进行描述,但对于独体字、非规范结构错字和部件有误的错字,IDS无法对其描述。例如,“帮”字的一种错误类型“”,既不是“左中右”结构,也不是“上下结构”,这种结构不属于的上述12种结构类型,IDS无法对其进行描述。IDS不适用于处理错字。1.2维服务基本原理Unicode5.1.0版本中定义了变体选择符VariationSelector(VS)。Unicode变体选择符是由256个字符组成的集合,编码区分别为[FE00…FE0F](VS1…VS16)和[E0100…E01EF](VS17…VS256)。这些变体选择符被用来辅助定义各种可能的变体字形。基本思想是采用在一个标准字符BaseCharacter(BC)后紧随一个变体选择符VariationSelector(VS)组成一个变体序列VariationSequence(VS),它将连续的两个Unicode编码点序列映射为一个与编码字符相关的无编码字形GlyphID(GID),即BC+VS=GID。解释器会将由基本字符和变体选择符组成的标准化序列指向一个特定的字形。变体序列VS可以使无编码的字符变体形式,被附加到基本字符之上而不改变基本字符集,同时提供了一种在仅支持基本平面字符的环境下,可靠而精确地表示无编码的基本字符变体形式的可行标准。这样,基本字符的变体形式在不单独为其分配编码的情况下,也可以在国际标准框架下统一表示。目前,字符的变体序列应用有:数学运算符变体序列(mathematicalvariationsequences,MVS),用于表示数学运算符的变体形式;表意文字变体序列,用于表示古籍异体字,同时被应用于日文字体集中。错字可被视为正字的一类变体形式,因此,也可采用变体序列VS来定义错字的编码。1.3套接字vs应用1.3.1加区[2.0.2ff》新增数学运算符Unicode5.0在数学操作符区[2200…22FF]新增了15个数学运算符形式,同时在数学运算符附加区[2A00…2AFF]新增了8个数学运算符形式。这23个新增运算符均被视为已编码数学运算符的变体形式,都使用变体选择符VS1<U+FE00>表示。例如:交集运算符∩<U+2229>+变体选择符VS1<U+FE00>表示带截线的交集运算符<2229FE00>。[FE01…FE0F](VS2…VS16)另作它用。1.3.2各类复合文字成字体裁形式为进一步解决CJK中日韩汉字变体字形多而字符集封闭问题,Unicode5.1定义了表意文字变体序列,其中基本字符是CJK统一表意字符,而变体选择符是Unicode第14平面定义的具有Unicode编码的240个选择符(即VS17…VS256)。IVS专用于表示CJK汉字的各种变体形式。我们用它来表示错字。(1)u3000e0103异体字序列为使中文古籍能够方便地通过互联网为读者使用,香港理工大学陆勤教授等提出使用异体字序列表示法解决无编码古籍字的输入输出问题的办法。古籍异体字被视为已编码标准汉字的变体形式。异体字序列使用两个Unicode字符映射为一个字形标示符GID(GlyphID),如:辻<U+8FBB>+<U+E0101>→。古籍异体字字形经过注册,加入异体字序列字库后就可以与标准汉字在同一文档中显示输出。异体字序列的特点是:使异体字在编码层次上与标准汉字之间实现了关联;同一个标准汉字可以有多个异体字形;使“无序”编码成为有关联的“次有序”编码。陆勤等人还开发出了古籍字的浏览软件。(2)各类深度社会文字复合化字编码Adobe公司开发的Adobe日文字体集Adobe-Japan1包括14658个日文汉字字形。Unicode联盟将这个字体集视为日文汉字的变体形式,为该字体集中的13262个日文汉字分配了编码,并为其注册了14658个表意文字变体序列。Adobe-Japan1使用变体序列的形式来实现,其中有12040个日文汉字一对一映射为1种字形,1084个汉字一对二映射为2种字形,120个汉字一对三映射为3种字形,14个汉字一对四映射为4种字形,另外有4个日文汉字分别映射为5种、6种、8种和15种字形。Unicode联盟为这个字体集中的13262个日文汉字分配了编码,仅使用了15种变体选择符来选择字体集中的14658个日文汉字变体形式。但这个字体集中的大部分汉字,也可视为标准汉字的变体形式而不必为其分配Unicode编码。为这个字体集中的绝大多数汉字分配编码而使用较少的变体选择符,这是对编码资源的一种浪费。1.3.3抗污染字编码形式的选择将错字视为正字的一类变体形式,这种思想符合定义IVS的目标。错字集是一个不断膨胀的开放集合,Unicode标准不可能为每一个错字分配一个固定的编码。我们遵循IVS标准,使用正字加IVS变体选择符表示错字。随着标准汉字数量的增加,与之相关错字也有了表示形式。这样,在不改变基本字符集编码空间的情况下,将无编码的字符变体形式——错字的表示纳入到国际标准框架之中。汉字教学实践证明,每一个错字至少有一个具有Unicode编码的正字与之对应,同一个正字的错字数量一般不会超过240个,即使超过,也可通过错字分类方式限定在240个以内。因此,IVS定义的变体选择符的数量能够满足实际汉字教学和研究需要。以正字为中心,用IVS表示错字编码是一种能够有效解决无编码错字表示和组织管理问题的可行方案。2ivs字处理方案的实现错字集是一个开放的集合,对错字的管理应体现可扩展性。错字管理服务于汉字教学和研究领域,对错字的组织和管理应符合实际教学和研究需要。2.1设置错字编码方案2.1.1书写汉字方面的差错汉字基本是象形文字,错字的错误特征主要体现在书写字形的形体方面。为更好地支持错字的深层次加工处理,错字分类应反映错字的字形特征。错字的错误形式不确定,同一个正字的错字数量也是不确定的,但是错字的错误类型是有限的。一些汉语教学、研究人员,对学习者在汉语习得过程中出现的错字类型作了如次分类:张旺熹(1990)从部件与结构两方面将留学生的错字分为“部件混乱”、“部件错误”、“结构松散”、“结构混乱”(如:)4类;杜同惠(1993)把留学生书写汉字方面的差错归结为“字素混淆”、“字素易位”、“字素遗失”、“笔画增损”、“笔画变形”、“结构错位”(如:)、“音同字错”(如:河->何)、“混音错字”(如:痕->衡)8类;范可育(1993)把外国学生书写汉字的错误归纳为“笔形错误”、“笔画增减错误”、“笔画配合错误”、“部件增减错误”、“部件更换错误”、“部件配合错误”、“笔画和部件综合错误”(如:)以及“写别字”8类;王幼敏(1996)将日本人书写中文汉字的错误归纳为“笔画增损”、“笔画变形”(如:)、“习惯误记”(如:)、“会意字错”(如:末->未)、“混音错字”(如:淋->林)以及“书写不正”6类。以上错字分类研究成果是以汉字的字形、读音等特征为依据的。这些分类或是面向人的认知的,即在错字的形体书写错误分类中参杂了认知因素和音素特征;或者是对错字字形的分类不够细致,丢失了错字错误的详细信息,都不适合使用计算机对错字进行处理。因此,基于汉语教学界对错字分类的研究成果,我们在错字分类中寻找一种人的认知与字形的对应关系,建立一种适合计算机处理的、完全以字形为依据的错字分类体系。由于混音错字、别字是将某个正字误写为其它具有Unicode编码的正字,故混音错字和别字不在我们的研究范围之内。我们将错字的错误类型分为笔画增加错误、笔画缺损错误、笔形错误、部件配合错误、结构错误五种类型。2.1.2配编码表示形式将Unicode定义的编码区间为[E0100…E01EF](VS17…VS256)的240个表意文字变体选择符分成5组,每组48个,按照错误类型使用每组中尚未使用的较小编码值作为该错字的变体选择符,为错字分配编码表示形式。定义如下映射关系:笔画增加错误(strokesincreasingerror,SIE)→Min(VS17,VS18,VS19,…,VS64)首先确定错字所对应的正字,再按照错误类型将错字划分到不同的类别中。属于同一种错误类型的错字使用对应正字的编码值最小的变体选择符IVS,这样一个错字就可以用相应的正字加一个变体选择符的形式表示。错字的编码可以表示为正字编码+变体选择符编码,即正字+变体选择符→错字字形标示符。每一个错字都至少有一个正字与之对应,即每个错字都是某个正字的一种错误形式。因此,以正字为中心,以字形特征为分类依据,使用正字加表意文字变体选择符的形式表示错字,能够有效地组织和管理大量错字。2.2适用于少数民族文字处理的字TrueType字体中的字符和字形之间是一对一映射关系,即一个编码对应一个字形,不适用于处理同一正字具有多种错误形式的错字。OpenType字体是对TrueType的扩展,支持一对多映射,可将两个以上Unicode编码串映射为一个字形。例如::)→。OpenType基于TrueType格式,增加了相应的布局表来实现字形替换、定位、基线对齐、文本齐行等。OpenType字体使用字形替换表GSUB(glyphsubstitution)实现字形替换,支持字符和字形之间的一对一、一对多和多对一替换。少数民族文字处理中的连体字形是一种多对一的映射,它将多个Unicode编码字符序列显示为一个无编码的字形。例如,蒙古文字符<U+1833><U+1820>字符序列显示输出为,<U+182C><U+1825>字符序列显示输出为(如图1所示)。OpenType字体技术支持正字具有多个错误形式的错字显示输出。将正字的错误字形及其替换规则写入GSUB表中,在显示时应用Lookup查找表的GSUB子表中的规则从错字字库中取出相应的错字字形显示输出。OpenType字体技术能够实现将变体序列IVS映射为错字字形,如图2所示。“正”<U+6B63>+VS17<E0100>→“”(笔画增加错误SIE);“正”<U+6B63>+VS65<E0130>→“”(笔画缺损错误SDE);“正”<U+6B63>+VS161<E0190>→“”(部件配合错误RAE)。2.3基于ivs的交叉输出方案2.3.1错字显示输出引擎Windows环境下的布局引擎Uniscribe(Unicode文字处理器)实现从名义字符到变体显示形式的映射。目前,MicrosoftVista系统已经实现了蒙古文布局引擎,支持OpenType蒙文白体字库。错字显示输出引擎将连续输入的由Unicode正字+IVS变体选择符组成的序列显示为一个错字字形。错字显示输出引擎工作流程图如图3所示。由于表意文字变体选择符IVS编码区间为[E0100…E01EF],位于Unicode编码体系第14平面,需要至少20位二进制位来表示,在计算机系统中占用至少3个字节空间。而目前的Windows操作系统只支持UTF8和UTF16,不支持UTF32,所以需要将IVS编码转化为连续的两个UTF16编码,即SurrogatePairs。IVS转化为UTF16的对应关系如下:与编码区间为[E0100,…,E01FF]相对应的SurrogatePairs编码为[DB40DD00,…,DB40DDFF]。2.3.2标记设置和编码OpenType字体在支持TrueType字体的基础上增加了高级布局特征,这些高级布局特征为错字处理提供了较好的支持。我们可将相应特征数据写入OpenType布局表(layout)中,由错字显示输出引擎负责输出相应错字字形。OpenType字库通过设置相应标记的内容实现对布局表的访问。OpenType字库定义的标记有以下4种:语系标记、语种标记、特征标记和基线标记。语系标记用于辨别OpenType字库中的字符位于Unicode编码体系中的位置。错字字库中的错字属于表意文字体系,语系标记设置为CJKIdeographic<hani>。语种标记用于辨识OpenType字库中的字符支持的语言系统,错字字库使用默认的标记Default<dflt>。特征标记用于设置以何种规则从字库中返回一个字形。特征标记中可以定义字形替换GSUB表。错字字库的特征标记设置为StandardLigatures<liga>。如图4(a)所示,错字字库的具体替换规则被写入GSUB表,这是OpenType错字字库最重要的部分。在制作错字字库时,为便于对大量错字进行管理,我们将同一个正字的错字组织在一个字形组GlyphGroup中,如图4(b)所示。基线标记用于为用户传递书写时水平和垂直方向的基线信息。错字字库中不涉及基线标记,可以不对其进行设置。为了使OpenType错字字库支持位于Unicode编码体系扩展平面的表意文字变体选择符IVS,需要设置错字字库的Platform=3,Encoding=10,Format=12。此外,为了使OpenType字库支持CJK表意文字变体序列IVS,还需要在错字字库中追加一个Platform=0,Encoding=5,Format=14的cmap表项。2.4实验结果和分析我们在WindowsServer2003和Vista操作系统下使用“微软拼音输入法”的“Unicode码输入”方式在记事本中进行实验性测试。如图5所示,在记事本中输入“正<6B63>+VS17<DB

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论