2024年6月14日发(作者:)

2012

年第

12

doi

10.3969/.1671-1122.2012.12.009

技术研究

藏文文本编码方案的识别算法

 邢超

,顾益军

,任俊博

(1.中国人民公安大学,北京  100038;2.公安部信息中心,北京  100741)

摘 要:

目前多种藏文编码方案的同时存在,为藏文文本的检索带来了困难。因此,藏文编码的自动

识别成为进行藏文文本处理首先要解决的一个基本问题。结合藏文结构特点和统计学特征,文章提出了一

种基于高频字丁和音节点区位码的藏文文本编码判定算法。经测试证实,该算法在藏文文本编码的判定中

具有很高的准确度。

关键词:

高频字丁;藏文编码;藏文编码识别;音节点

中图分类号:TP393.08 文献标识码:A 文章编号:1671-1122(2012)12-0029-03

Tibetan Text Recognition Algorithm Coding Scheme

XING Chao

1

, GU Yi-jun

1

, REN Jun-bo

2

( 1. Chinese People's Public Security University, Beijing 100038, China;

2. Ministry of Public Security Information Center, Beijing 100741, China )

Abstract: A variety of Tibetan encoding scheme, makes it difficult for the retrieval of the Tibetan text.

Therefore, automatic identification of the encoded Tibetan language has become the Tibetan text processing must

first solve a basic problem. The Tibetan structural features and statistical features, a Tibetan text encoding based

on the high-frequency words small and the sound node area code to determine the algorithm. Has been tested and

confirmed that the algorithm has high accuracy in the judgment of the Tibetan text encoding.

Key words: high-frequency words; Tibetan encoding; Tibetan encoding identification; syllable dot

随着信息技术的深入发展,互联网上出现了越来越多的藏文网页和文件,真实而生动地展示了藏民族的历史发展进程。与此

同时,目前的藏文软件采用各种自定义编码,其中较常见的包括喜马拉雅、同元、华光、班智达。在进行藏文文本的检索、过滤时,

需要首先自动确定目标编码的编码类型。目前多采用以藏文音节点间距和高频音节(非字丁)为特征的识别方法,但此种识别算

法复杂,难以进行实际应用。本文结合藏文字丁出现频率和音节点区位码的特征,提出了一种新的藏文编码识别算法。

1 藏文文本编码方案的识别原理

1.1 藏文文字的特征

藏文是一种拼音文字,有30个辅音字母,4个元音字母和5个反体字。此外还有梵音转写藏文,包括的字符更多,但是较不常用,

主要是在佛教文献中出现。藏文字是以一个或多个字母通过横向和纵向的形式组合而成,其中必须包含一个基字和一个元音,图

1给出了一个藏文字的组成构件。藏文字是由“基字(Root letter)”和可能存在的如前加字(Prefix)、上加字(Head letter)、元

音符号(Vowel)、后加字(Suffix)、再后加字(Post suffix)组成

[1]

1.2 藏文音节点的特征

音节点(Tsheg),又叫隔字音符,是藏文所特有的符号,它是用来分隔藏

文中字与字。根据江狄

[2]

、扎西次仁

[3]

、卢亚军

[4]

分别对于藏文的音节点的

统计结果表明:音节点约占藏文语料全字符的30.00%、30.65%、30.70%。

这说明音节点作为藏文的一种特征在藏文中出现的频率相当高,可以作为某

段文字是否为藏文的重要依据,但是在某些编码方案中,音节点的区位码

位置相同(譬如在同元和班智达方案下均为166/230),因此,我们结合下面

的高频字丁来提高判定的准确度。

图1  藏文字的组成构件

收稿时间:2012-09-25

基金项目:公安部重点研究计划[2011ZDYJGADX016]、中央高校基本科研业务费[YX11134]

作者简介:邢超(1986-),男,河北,硕士研究生,主要研究方向:信息安全与计算机犯罪侦查;顾益军(1968-),男,北京,硕士生导师,副

教授,博士,主要研究方向:信息网络安全;任俊博(1981-),男,陕西,工程师,本科,主要研究方向:网络安全应急响应、信息数据安全。

29

技术研究

2012

年第

12

1.3 藏文高频字丁的特征

任何给定的语言,一些字符比另一些字符使用的频率要

更高一些。这种特定的现象经常被设计成一种数据模型来测

定某种语言

[5]

。譬如汉语中“我”、“的”、“是”之类的词语出

现的频率要明显高于其他词语出现的频率,这些字就是所谓

的高频字。对于拼音文字的藏文来说,也符合这一特性。

江狄

[2]

从《藏汉拉萨口语词典》、《拉萨口语读本  词汇

表》和《藏语简志  词汇表》中采集了常用词语30428条,经

处理得到3926个藏字,扎西次仁

[3]

从《中华大藏经  丹珠尔》

勘本中对藏文字的构件频度、字符频度及字频信息进行了更

加全面和深入的统计分析。卢亚军

[4]

等人利用大型藏文语料

库对藏文字的藏文字符、部件、音节、词汇频度与通用度进

行了统计和分析。王维兰

[6]

等对2000万字的藏文语料做了字

频、音节频度的统计后,我们做了以下的藏文字频的统计,表

1分别列出了三位专家的统计结果中出现频率最高的十个藏文

音节,从表中可以看出,扎西次仁和王维兰两位专家的统计结

果中有7个音节是相同的。江狄的统计和他们有比较大的差别,

这可能是统计对象中词汇量相差极大所导致,另外表中的数

据表明高频音节出现的频率相当高。三人的统计结果中,前十

个音节出现的累计频率分别为:23.16%、18.97%、31.83%。

表1   三种藏文字频的统计结果

序号扎西次仁频度%王维兰频度%江狄频度%

14.973.885.75

22.612.585.4

32.482.245.2

42.372.193.35

52.231.842.93

62.021.372.33

71.821.272.09

81.621.242.01

91.541.231.39

101.501.131.38

高频字丁在各种编码方案中出现的概率由上表统计得出,

选取一个对于藏文单字具有较好覆盖的高频字丁集合代替全

部字丁集合,可以减少藏文编码探测时的字丁检索时间。

1.4 藏文编码的特征

不同的藏文输入法公司和网站采用了不同的藏文编码,

在几十种藏文编码中,国内的藏文输入法公司和网站大都采

用基于GB2312和Unicode的藏文编码,较主流的是方正、华

光、同元和班智达;国外的藏文输入法公司和网站大都采用

基于Unicode的藏文编码。根据编码特性,可以结合分布比例

识别给定藏文文本所采用的编码方案。

表2  基于GB2312的藏文编码

编码名称首字节范围尾字节范围音节点编码

方正编码0xAA-0xAC0xA0-0xFE0xAAAC

华光编码0xB0-0xFB0xA1-0xFE0xE1E2

同元编码0x81-0xEE0x21-0x3D0xA6E6

班智达编码0xB0-0xEB0xAD-0xF30xA6E6

30

表3  基于Unicode的藏文编码

编码名称首字节范围尾字节范围音节点编码

喜马拉雅编码0x0F0x00-0xFF0x0F0B

1.5 现有藏文编码识别算法的研究

根据春燕

[7]

等人的研究,藏文特有的音节点和高频音节

出现的频率很好的满足了藏文文本统计学特征,并以藏文音

节点间距规律和高频音节为特征的识别方法。该方法需要对

音节点的间距进行统计,根据间距的长度进行编码方案的判

定。但是当具有相同音节点码值的编码方案或属于某一类编

码方案在音节点间距上相同时,算法将无法识别这些编码,继

而需要利用藏文的高频音节来识别,此处的藏文高频音节即

为完整的藏文整字,如图1所示,是由不超过7个的字丁组成。

根据每种语言都有自己特定的高频字的原理,藏语中某些词

语出现的频率也会明显高于其他词语出现的频率。但是对藏

文整字,即高频音节匹配的方法过于复杂和繁琐,统计时由

于匹配部件(字丁)较多,对于匹配其它双音节以上的高频音节,

时间较长且统计出现的概率较低,会降低编码方案识别的效

率和准确度。

2 算法描述

2.1 大端(Big Endian)与小端(Little Endian)存储

大端是指低地址存放最高有效字节(MSB),小端则是低

地址存放最低有效字节(LSB)。例如数字0x12345678在大端

存储是0x12345678,但在小端存储是0x78563412。

2.2 读取区位码算法

在对文本读入后需要对每个字符取出所对应的区位码,

供后面统计计算分布比例所用。读入一个字节占8位,是byte

类型,需要转化为int类型。但是int类型在Java中是32位(采

用的是Windows32位操作系统),这时候需要在高位进行补足。

在求出原码后,原来8位变为32位,需要与0xFF进行“&”(与)

操作,将补足后的高位舍去,重新降为8位。

在读入文本的过程中,文本会出现空格,但是空格(内码

为32)会占用一个字节,这样会使后面读入字节向后错一个

字节,从而导致读入顺序的紊乱。所以就需要在此将空格跳过,

保证后面读入的每个字符均是自己对应的两个字节。

2.3 编码方案的识别算法

通过读入每个字丁,提取出它的区位码后进行判定,若符

合某种编码则该种编码计数器加1。当读入藏文字符的第一个

字节为0x0F时,编码方案直接判定为Unicode。这是因为采

用国际标准Unicode的藏文第一个字节均为0x0F,且与其它

编码方案无重叠,保证其唯一性。而其第二个字节在0x00-

0xFF范围内变化,在读入区位码后即对其进行判定。达到一

定阈值时,则判定为喜马拉雅编码。

统计得出分布比例,将读入的字符进行判定,在相对应

的计数器加1后,除以文本长度的一半(因为一个字符是用两

个字节来表示),得出一个分布比例,用来跟阈值进行比较。

确定阈值,根据高频字丁出现的频率,设定合适的阈值,

太高会因高频字丁出现的频率超不过阈值而无法判断;太低

会因某些相同编码而造成编码方案的误判。

在跟阈值进行比较完毕后,我们为了提高准确性,需要利

用藏文特有的音节点进行二次判断。

2.4 具体算法描述如下:

Step1:读入字符, 指定"UTF-16BE" 

Step2:读入字符第一个字节;

int m =(b[i] & 0xff);

如果空格则跳过

否则读入字符的第二个字节;

int n =(b[i] & 0xff);

Step3:函数定义之前首先定义4个计数器:

int sumBZD = 0,sumFZ = 0,sumTY = 0,sumHG = 0;

Step4:分布比例=计数器/文本总长度的一半。

Step5:如果分布比例大于阈值且音节点符合则判定编码

方案,否则继续判定。否则非藏文或者未知编码。

3 实验与分析

选取能够对藏文单字具有较好覆盖的高频字丁集合来代

替全部字丁集合,可以有效的缩短藏文编码探测时的字丁检

索时间。根据对高频字丁个数选取的不同,进行了相应的测试,

测试结果如图2所示。

图2  调整高频字丁个数后的测试结果图

根据测试结果,我们选取了出现频率较高的20个字丁,

这20个高频字丁如表4所示。

表4  选取的20个高频字丁

因为音节点在藏文中出现的频率较高,我们将音节点也算

作一个高频字丁,所以高频字丁一共为21个。然后我们对阈

值进行了调整测试,测试结果如图3所示。

通过对在互联网上摘取的采用各种编码类型的文本提取

后测试表明,本算法识别率为100%,测试结果如表5所示。

2012

年第

12

技术研究

图3  调整阈值后的测试结果图

表5   测试结果

文本来源字数类型结果

中国西藏信息中心(布达拉)3866同元正确识别

刚坚少年报1065同元正确识别

热贡文化中心1789班智达正确识别

西藏大学学报6414同元正确识别

中国藏族中学生网1429喜马拉雅正确识别

藏族文学网1857喜马拉雅正确识别

藏文转换大师转化后的华光文本1789华光[注]正确识别

藏文转换大师转化后的方正文本1789方正[注]正确识别

因为未找到采用华光和方正编码类型的文本,对于采用

这两种编码类型的文本,我们利用杨寿昌等人开发的藏文转

换软件

[8]

进行了转换。测试表明,转换后的采用华光、方正

的文本也能正确识别。通过实验我们发现选择20个高频字丁

加上1个音节点,并且把阈值设为0.2最为合适,测试结果准

确率较高,可以满足实际应用。

4 结束语

本文在语言学上高频字原理的基础上,针对藏文编码的特

点,提出了一种给定未知藏文文本编码方案的识别算法。设计

出一套合理、准确、快速的识别算法,可以有效解决多种编码

同时存在情况下藏文文本编码方案的自动识别问题,为不同编

码的藏文文本一致性转换和检索提供了前提。  (责编  程斌)

参考文献:

[1] 胡书津.简明藏文文法[M].昆明:云南民族出版社,1987.

[2] 江狄.藏文信息处理基本属性分析[J].民族语文,1995,9(02):

37-44.

[3] 扎西次仁.《中华大藏经  丹珠尔》藏文对勘本字频统计分析[J].

中国藏学,1997,(02):122-133.

[4] 卢亚军,马少平,张敏,罗广.基于大型藏文语料库的藏文字符、

部件、音节、词汇频度与通用度统计及其应用研究[J].西北民族大学

学报,2003,(06):32-42.

[5] Shanjian Li,Katsuhiko Momoi. A composite approach to language 

encoding detection[C].The Nineteenth International Unicode Conference 

(IUC19). California,USA. 2001, 9.

[6] 王维兰.现代藏文语言单位频率和频级关系的统计分析[J].科学技

术与工程,2004,5,4(05):413-417.

[7] 春燕.藏文编码识别与转换算法的研究与实现[D].西南交通大学

硕士论文,2010.

[8] 杨寿昌. 藏文转换大师[EB/OL]. http://download.enet.com.cn/eblog/

blog/htm/do_showone/tid_49231.html, 2010-03-01.

31