CN1679023A - 创建和使用中文语言数据和用户自纠正数据的方法和*** - Google Patents

创建和使用中文语言数据和用户自纠正数据的方法和*** Download PDF

Info

Publication number
CN1679023A
CN1679023A CNA038208431A CN03820843A CN1679023A CN 1679023 A CN1679023 A CN 1679023A CN A038208431 A CNA038208431 A CN A038208431A CN 03820843 A CN03820843 A CN 03820843A CN 1679023 A CN1679023 A CN 1679023A
Authority
CN
China
Prior art keywords
syllable
index
array
pinyin syllable
pinyin
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA038208431A
Other languages
English (en)
Other versions
CN100561469C (zh
Inventor
瓦迪姆·富克斯
谢尔盖·V·科洛米茨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BlackBerry Ltd
Original Assignee
2012244 Ontario Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from CA002413055A external-priority patent/CA2413055C/en
Application filed by 2012244 Ontario Inc filed Critical 2012244 Ontario Inc
Publication of CN1679023A publication Critical patent/CN1679023A/zh
Application granted granted Critical
Publication of CN100561469C publication Critical patent/CN100561469C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/126Character encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Document Processing Apparatus (AREA)
  • Machine Translation (AREA)
  • Electrically Operated Instructional Devices (AREA)

Abstract

为多个中文拼音音节中的每一个生成唯一的标识符并且存储在标识符阵列中。还生成多个汉字字符候选列表,每个列表包括与拼音音节关联的汉字字符候选。阵列中的每个标识符具有阵列索引,并且每个列表中的每个汉字字符候选在表中具有候选索引。对于具有多个拼音音节的多个词中的每一个,生成包括关键字和值的数据记录。在词的数据记录中,关键字是标识符阵列中的标识符的阵列索引和词的多个拼音音节中的每个声调信息,而值是在与每个拼音音节关联的候选列表中表示每个拼音音节的候选的候选索引。

Description

创建和使用中文语言数据和用户自纠正数据的方法和***
交叉引用的相关申请
本申请要求2002年7月3日提出的序列号为60/393,948的美国临时申请。在本申请中结合了包括图在内的该临时申请的全部内容作为参考。
技术领域
本发明涉及在电子设备上的语言数据存储和文本输入,特别是为了文本处理和文本输入的目的而创建和使用中文语言数据。
背景技术
在中文普通话中,每个字符(汉字)的发音都是单音节的。中文普通话包括由405个基本“拼音”字和5声的变化组成的10000多个字符。音节表的原则是中文书写***的基础,如Hung和Tzeng,许多音节代表一个发音,并且同一个发音经常由多个不同的符号表示。另外,在中文语言中,每个字之间不用空格分隔,因此在电子设备上输入中文文本时需要能正确分隔字的中文语言数据。研究表明,在大多数情况下,静态的语言数据不足以提供正确的字分隔。只有在带学习用户输入模型的***中为了有效的中文文本输入才提供一定程度的分隔准确度。因此,需要更多的语言数据,这就使得大多数中文文本输入***占用了很高的内存使用。
现有的用来存储和使用用于文本输入目的的语言数据的解决方案采用了象散列表、树、数据库或单词表等数据结构。由于这些解决方案需要足够的内存和代码空间来存储和支持它们所依赖的复杂的数据结构,并且耗费大量的处理资源,因此在许多现代***中不可行。诸如便携式电子设备,例如,包括移动通信设备这样的电子设备只有有限的处理和存储资源,因此不可能使用这些现有的解决方案。
发明内容
根据本发明的实施例,用来将汉语拼音音节转换成汉字的语言数据结构包含多个汉字候选列表,每个列表包括与拼音音节相关联的候选汉字,并且每个列表中的每个候选汉字在列表中都有索引,以及多个语言数据记录,每个语言数据记录对应具有多个拼音音节并且包括一个关键字和值的字,其中每个语言数据记录中的关键字包括语言数据记录对应的字的拼音音节的一串索引和声调信息,而其中每个语言数据记录中的值包括分别与该字的拼音音节关联的候选列表中代表该字的拼音音节的汉字候选的一串索引。
根据本发明另一个实施例的创建中文语言数据的方法包括步骤:为多个汉语拼音音节中的每一个生成标识符,在标识符阵列中存储所生成的标识符,标识符阵列中的每个标识符都有一个阵列索引,生成多个汉字候选列表,每个列表包括与拼音音节关联的候选汉字,每个列表中的每个候选汉字在表中都有一个索引,并且多个字中的每一个都有多个拼音音节,生成由关键字和值组成的数据记录,其中关键字包括用于多个拼音音节中的每一个的标识符阵列中的标识符的阵列索引和多个拼音音节中每一个的声调信息,而其中值包括在与多个拼音音节中的每一个关联的候选列表中代表多个拼音音节中的每一个的候选的候选索引。
根据本发明的其它实施例,提供了利用中文语言数据将汉语拼音音节转换成汉字的***。语言数据包括多个候选汉字列表,每个列表包括与拼音音节关联的候选汉字,并且每个列表中的每个候选汉字在列表中都有一个索引;以及多个语言数据记录,每个语言数据记录对应具有多个拼音音节的词并且包括一个关键字和一个值。每个语言数据记录中的关键字包括语言数据记录对应的字的拼音音节的一串索引和声调信息,而每个语言数据记录中的值包括分别与字的拼音音节关联的候选列表中代表字的拼音音节的候选汉字的一串索引。该***包括:具有代表组成拼音音节的多个字符的键的键盘;配备的从键盘接收输入的拼音音节的输入队列;配备的用来存储多个候选汉字列表和多个数据记录的存储器;输入处理器,操作地耦合到存储器和输入队列并且用来将输入的拼音音节分割成输入字,为分别对应包括输入的拼音音节的每个输入字的语言数据记录查找语言数据记录,然后利用对应的数据记录中的候选汉字索引将每个输入字转换成汉字;显示器;和连接在显示器和输入处理器之间的用户界面,它在显示器上显示输入的拼音音节,并且当输入的拼音音节被输入处理器转换后用候选汉字代替输入的拼音音节。
本发明的其它特征在下面的详细描述中会变得更加明显。
附图说明
图1示出了用于汉语拼音字母(Bopomofo)音节的唯一标识符的阵列;
图2示出了用于拼音音节的唯一标识符的阵列;
图3示出了拼音音节和汉语拼音字母音节之间对应关系的阵列;
图4示出了声调信息阵列;
图5是表示用于多字符的词的语言数据记录格式的方框图;
图6是一个语言数据记录示例的方框图;
图7是表示用于两个字符的词的语言数据记录格式的方框图;
图8是表示用于两个字符的词的语言数据记录示例的方框图;
图9示出了学习语言数据首部的方框图;
图10示出了学习语言数据首部示例的方框图;
图11示出了学习语言数据阵列的方框图;
图12是利用语言数据的方法的流程图;和
图13是利用语言数据的***的方框图。
具体实施方式
根据本发明的一个方面,创建和使用语言数据的***和方法基于中文音节和字符索引。索引能够减少存储语言数据所用的存储器并且与已知的中文文本输入技术相比,加快了查询和存取字词的速度。
在拼音***(1981)中共有410个音节(发音),包括可用于中文输入的405个基本拼音字母和5个声调。拼音音节是由拉丁字母表的26个字母组成,因此中文文本的录入可以通用以拉丁字母表示的键盘。拉丁字母表中的26个字母中的每一个都被指定了0到25之间的一个索引值,表示它在字母表中的位置。例如,字母“A”在索引0,“B”在索引1等等,依此类推,“Z”在索引25。
作为替换,410个中文音节还可以用37个“汉语拼音字母”构成。这些字母驻留在连续的Unicode范围,从0×3105到0×3129,因此也可以用十进制数0到36作为索引。索引0对应Unicode区域中的第一个字母0×3105,索引1对应Unicode区域中的第二个字母0×3106等等,依此类推。
利用上述索引,每个拼音和汉语拼音字母音节都可以用唯一标识的数字表示。根据本发明的实施例,利用下面的公式可以计算任何(n+1)个字母音节的唯一标识数字:
ID=index0*(N0)+index1*(N1)+...+indexn*(Nn),
其中:
index0是音节中第一个字母的索引,
index1是音节中第二个字母的索引,
indexn是音节中第(n+1)个字母的索引,
N是用于音节构成的字母的最大索引。
例如,在汉语拼音字母音节“ㄌ一幺”中,Unicode编号为0×310C的第一个字符为的索引是0×310C减去第一个汉语拼音字母的Unicode编号0×3105。这样,index0=0×310C-0×3105=7。类似地,index1是第二个字符“一”的索引,即0×3127-0×3105=0×0022=34,index2是第三个字符“幺”的索引,即0×3120-0×3105=0×001B=27,由于汉语拼音字母的最大索引是36,所以N=36作为汉语拼音字母音节标识符。因此,根据上述公式,该音节的标识符为:
ID=7*(360)+34*(361)+27*(362)=7+1224+34992=36223
利用0到25之间的indexn和N=25,可以类似地为每个拼音音节计算唯一标识编号。
上述公式允许为每个拼音和汉语拼音字母音节指定唯一的标识符。然后拼音和汉语拼音字母音节保存在各自的阵列中,根据唯一标识符排序。
图1显示了用于汉语拼音字母音节的唯一标识符阵列。图1中的阵列显示了表示前6个标识符和最后一个(第410个)标识符的唯一标识符2、4、6、8、10、12、和14。标识符2到14,以及介于SylBop 6和SylBop 410之间的标识符最好按升序排列,这样SylBop 1就是最小的标识符,而SylBop 410是最大的标识符。图1中的16还显示了范围从0到409的阵列索引。
图2显示了用于拼音音节的唯一标识符的阵列。前6个拼音音节标识符20、22、24、26、28和30,以及最后一个标识符32代表拼音符号标识符阵列中的410个唯一标识符。用于拼音音节阵列的索引34象索引16一样,范围从0到409。
如图1和2所示,汉语拼音字母和拼音音节的标识符驻留在不同阵列中。对于本领域技术人员来说,很显然这些标识符没有通过索引建立的严格的对应关系。在汉语拼音字母音节标识符阵列中索引a-1上的标识符SylBop a和拼音音节标识符阵列中索引a-1上的SylPin a不需要标识汉语拼音字母音节和它对应的拼音音节配对物(副本)。因此,有另外一个包含有关“汉语拼音字母”和拼音音节之间的对应关系信息的阵列。
图3示出了拼音音节和汉语拼音字母音节之间对应关系的阵列。在对应关系阵列中元素40-50和52,以及介于元素50和52之间的阵列元素是指向拼音标识符阵列或汉语拼音字母标识符阵列的索引。指向对应关系阵列的索引54对应拼音标识符阵列和汉语拼音字母标识符阵列中其它的索引。例如,当指向对应关系阵列的索引54对应拼音标识符阵列的索引34时,对应关系阵列中的元素是指向汉语拼音标识符阵列的索引16。这种情况下,对应关系阵列中索引b-1上的阵列元素Index b是对应在拼音标识符阵列中的索引b-1上具有标识符的拼音音节的汉语拼音字母音节所用的汉语拼音字母标识符的汉语拼音字母标识符阵列的索引。换句话说,由SylPin(b-1)标识的拼音音节对应由SylBop(Index b)标识的汉语拼音字母音节。这样,对应关系阵列提供了对应拼音标识符的汉语拼音标字母标识符的索引。很明显,在对应关系阵列中,利用元素索引54可以代替对应汉语拼音字母标识符阵列索引16,然后保存拼音标识符阵列索引。
图4示出了声调信息阵列。声调信息阵列是另一个具有索引0到409,包括410个元素的字节阵列。声调信息阵列包括元素60-70,和元素72,图4中没有显示介于其中的元素。该阵列包括所有410个汉语拼音字母音节的声调信息并且具有与汉语拼音字母音节阵列严格的对应关系。索引c-1上的声调信息元素Tone Info c对应汉语拼音字母标识符阵列相同索引c-1上的汉语拼音字母音节标识符SylBop c。声调信息阵列每个字节的前5位显示了汉语拼音字母标识符阵列相同索引上标识的汉语拼音字母音节是否可以利用5个中文声调的其中之一。
每个拼音和汉语拼音音节都有好几个对应的中文“汉字”,它们形成“候选”列表,利用两字节值分别保存在每个拼音和汉语拼音字母音节的对应阵列中。这种阵列中的每个“候选”在阵列中都有唯一的索引。这样,每个汉字可以用它的音节的一串索引和组成词的相应中文汉字字符的索引表示。
在本发明的实施例中,语言数据包括按分开的阵列组织的长度范围从2到8个音节的汉语词组的记录,其中长度相同的词的记录驻留在同一个阵列中,不用分隔符。图5是显示多个字词组的语言数据记录格式的方框图。
图5中的记录对应具有3个音节的多字符词组,包括拼音1、拼音2和拼音3。对于词组中的每个拼音音节,音节的索引和与音节一起使用的声调索引保存在记录中。82、86和90显示了对应图2中拼音阵列中音节索引的音节索引,而84、88和92显示了声调。索引和声调信息形成了每个音节的条目100、102和104。
如上所述,汉字字符的候选列表保存在每个拼音和汉语拼音字母音节的对应阵列中。索引94、96和98是代表拼音音节的汉字在候选列表中的索引。索引94是对应图5中记录的词组中头一个汉字的拼音1在候选列表中的索引。类似地,索引96和98是分别对应图5中记录的词组第二和第三个汉字的拼音2和拼音3在候选列表中的索引。
一个词组的语言数据记录包括关键字106和值108,其中关键字106是一串索引和代表字的音节的声调信息100、102和104,值108是代表音节的汉字94、96和98的一串索引。为了便于语言数据的有效查询,记录最好按第一个音节的索引排序。
图6是语言数据记录实例的方框图。图6中的语言数据记录具有图5中所示的格式,包括作为关键字122的一串拼音音节索引110、114和118,以及声调信息112、116和120,以及代表一串汉字索引的值124。
拼音索引110是拼音“da15”的拼音标识符阵列中拼音标识符的索引。“da15”中的“15”表示第一和第五声。如果熟悉拼音音节就会知道一声是高音(阴平)、二声是上升音(阳平)、三声是低音(上声)、四声是下降音(去声),而五声是中音(轻声)。每个声调最好与语言数据记录中5位声调信息条目的一个位置关联。通过在声调信息条目相应位置的位上设置一个预定义值来表示拼音字符的每个有效声调。在声调信息条目112中,在第一和第五位的位置上用高比特值表示第一声和第五声的声调。作为替换,预定义的比特值也可以低。图6中其它索引和声调信息条目114/116和118/120的格式类似。
语言数据记录的最小长度取决于数据记录中索引的最小长度。如上所述,共有410个拼音音节,为每个拼音索引建立了9位的最小长度。声调信息条目最好包括每声1位,或每个条目5位。虽然值124中每个候选列表索引只显示了一位,但是应该理解,每个候选列表索引的长度取决于候选列表中的候选个数。由于变长的索引通常需要在索引之间添加分隔符或相对复杂的管理技术,因此一般最好使用定长的索引。这样所有候选列表索引的长度最好取决于最长的候选列表中的候选个数。
本领域技术人员应该理解,大多数存储部件都支持存取字节宽度(byte-wide)存储器段。因此,语言数据记录最好格式化为占据许多全字节。例如,语言数据记录中的每对索引和声调信息可以作为两字节的条目存储,其中至少第一个字节和第二个字节的头一位(即,至少9位)存储索引,而最后5位存储声调信息。类似地,字节宽度候选列表索引形成3字节记录值124,并且对任何一个候选列表都支持多达256个候选。利用这种类型的字节分配,图6中的数据记录由6字节的关键字1 22和3字节的值124组成。
为了进一步使语言数据紧密,两字符的词组最好用专用格式保存。由于大多数中文词组都是两字的,节约与两字词组关联的记录的空间会极大减少所需的整个存储空间。图7显示了两字词组的语言数据记录格式的方框图。
如上所述,在中文文本中只有410个拼音音节。作为起始音节的每个音节都有它自己的配对词组,每个配对词组包括一个起始音节和一个变体。每个起始音节的变体是可以跟在起始音节后的音节。因此,对于一个特定的起始音节,由于它总是一样的,所以不需要在每个配对词组中都保存初始音节。
此外,起始音节的索引与偏移阵列的索引一致(兼容),因此根本不需要保存起始音节,因为它们的索引与偏移阵列的索引相同。偏移阵列是在对应特定起始音节的每个索引上保存该初始音节的第一个变体的索引时,两字符词组的数据记录的阵列中偏移的阵列。例如,偏移阵列的第一个偏移是第一个起始音节的第一个变体的偏移,0是第一个起始音节的第一个偏移。在优选实施例中,根据唯一标识符或标识符阵列中的索引排列起始音节,因此第一个起始音节就是唯一标识符最低、或最高的初始音节。如果第一个起始音节有两个变体,由于第二个起始音节的第一个变体是从第一个记录移2位,因此对应第二个起始音节的第一个变体的偏移阵列中的第二个偏移是2。另外,偏移阵列可以指定每个对应数据记录阵列中起始音节的第一个变体的索引。
每个两字符词组最好具有图7中所示的格式,图7显示了两字符词组的语言数据记录格式的方框图。图7中的记录包括第二音节的索引130、起始和第二音节声调信息132和134,以及分别代表初始和第二音节的每个汉字的索引136和138。上面已经描述了索引和声调信息。
在两字符词组的语言数据记录中,关键字140包括第二音节的索引130和两个音节的声调信息132和134。与图5和6中所示的语言数据记录一样,值142包括一串汉字索引136和138。如上所述,同一个起始音节变体的数据记录被集合在一起使得可以利用偏移阵列找到起始音节的变体。同一个起始音节变体的数据记录也可以按第一个音节的索引130排序。
图8是表示两字符词组的语言数据记录示例的方框图。图8的语言数据记录是图7中所示的专用格式,并且对应两音节词组“da3”“jia4”。数据记录包括关键字154和值156。关键字154包括仅仅第二个音节“jia4”的索引144,及第一和第二音节的声调信息146和148。在关键字154之后,值156包括第一和第二音节的候选列表中的汉字索引。
如上所述,音节索引的最小长度是9,声调信息条目包括每个声调1位、或每个条目5位,每个候选列表索引的长度取决于候选列表中的候选个数,定长索引通常最好取决于最长的候选列表中的候选个数。因此,如图所示,索引144的长度至少是9位,声调信息条目146和148的长度是5位,并且虽然所示的索引150和152只有1位长,但是这些索引可以多于1位。
为了提供全字节长度的两字符词组的语言数据记录,关键字154和值156最好被格式化为占用全字节数。由于索引130或144至少9字节长,因此无法在一个字节中保存索引。每个声调值132、134、146和148最好5位长,这样可以占用不到一个字节。因此,关键字140或154可以存储在,例如,3个字节中,其中索引130/144保存在至少第一个字节和第二个字节的第一位,而声调信息保存在第二和第三个字节的后五位。具有1字节长度、形成2字节记录值138或156的候选列表索引对任何一个候选列表都支持多达256个候选。虽然这种格式提供了全字节长度的数据记录,但是本领域技术人员可以理解,其它数据记录长度也是可以的。
相对于图5中所示的语言数据记录格式,图7中所示的专用格式为每个记录节省了一个音节索引。图5的记录格式包括每个音节的索引,而在图7的记录格式中不保存第一个音节索引。虽然上述偏移阵列支持图7的记录格式,但是由于大多数词组是两字符的词组,因此可以极大地节省内存,这对有限的存储资源特别重要。
通过在设备上安装中文语言数据使得在电子设备上也可以输入中文文本。按如上所述计算每个音节的标识符,然后用来生成图1和2中所示的标识符阵列,图3中的对应关系阵列,和图4中所示的声调信息阵列。利用标识符阵列中的索引创建语言数据记录。两字符词组最好用具有图7中所示格式的数据记录来表示,并且利用偏移阵列来存取。对应具有多于两字符的词组的数据记录最好用图5中所示的格式。利用这些数据格式用相应的中文文本汉字代替用户录入的输入拼音音节。本领域技术人员应该理解,用户输入的拼音音节在显示器上可以用汉语拼音字母代替,然后转换成中文汉字作为文本输入。在大多数的实现中,由安装在电子设备上的、象文本输入软件应用程序或模块的提供者这样的语言数据资源生成阵列和数据记录并使它有效。因此,这种设备的用户在设备上安装以前生成的语言数据,而不必首先生成语言数据。
上述的语言数据由于数据记录的出现简化了中文文本的输入。根据本发明的其它实施例,可以存储用户添加的新词、短语和句子。当用户提交了一个输入的拼音串后,利用上面的数据记录将该串分段并且转换成中文文本汉字音节串显示给用户。当中文文本显示后,如果希望不同的输入文本,用户可以根据,例如,串的任何部分通过调用查找功能来改变候选。当变换完成后,用户已经改变了拼音串的候选,改变后的候选形成了新词并且添加到语言数据中,下面会更详细地描述。
例如,当用户输入拼音串“zhu4 ni3 hao3yun4”后,串可以分段成zhu4/ni3/hao3yun4,对应中文文本“驻你好运”。汉字“驻”是拼音音节“zhu4”的第一个候选。如果用户将第一个拼音候选的“驻”改为作为拼音“zhu4”第四个候选的“祝”,就形成了新词并且添加到语言数据中。
用户改变候选后形成的特定新词取决于输入串中候选的位置。如果用户选择的候选是串中的第一个字,那么串中的下一个字加到第一个字后,然后这两个字就组成一个新词。在上面的例子中,用户改变了第一个拼音的候选,因此串中的第二个拼音加上第一个拼音形成了新词,并且新词的的数据记录被加到语言数据中。新词中第一个拼音的候选是所选的候选。
类似地,当用户选出的候选对应串中最后一个字时,前一个字加上后一个字,两个字组成新词。如果用户选出的候选对应介于两个其它字之间的字时,通过将前面的字加上中间的字并且将后面的字加上中间的字形成两个新词。然后将两个新词添加到语言数据中。
用户输入模型保存在学习语言数据中,它最好包括学习语言数据首部和学习语言数据阵列。图9显示了学习语言数据首部格式的方框图,图10显示了学习语言数据头示例的方框图,而图11显示了学习语言数据阵列的方框图。
学习语言数据可以包括变长的中文词组的数据记录。图9中所示的语言数据首部包括学习语言数据中保存的数据记录的词组长度信息,和这些数据记录在学习语言数据中的位置。首部长度条目160是首部本身的长度,包括首部长度条目。下一个条目162是学习语言数据阵列中出现的词组长度不同的数据记录的数量,下面会详细描述。例如,如果学习语言数据包括两字符和五字符词组的数据记录,那么条目162是2。
学习语言数据首部的其余部分包括词长度和偏移配对。配对数量对应首部条目162中长度不同的词组数量。图9中的首部示出了三个这样的配对164/166、168/170和172/174。如果学习语言数据中保存了多于三个长度不同的词组的数据记录,那么学习语言数据首部包括更多的配对,通常指定为176。每个配对包括表示在学习语言数据中出现的数据记录的词组特定长度的词组长度条目164、168或172,和表示第一个数据记录对于在前面的词组长度条目中表示的词组长度在学习语言数据阵列中的偏移的偏移条目166、170或174。
图10中的学习语言数据首部的示例包括两字节的首部长度条目180,一字节的词组长度数条目182,和三对一字节词组长度条目和两字节偏移条目184/186、188/190和192/194。其中学习语言首部和任何条目的长度都不受图10所示长度的限制。首部的整个长度取决于相关的学习语言数据阵列,并且当新词组长度与现有数据记录的词组长度不同时被添加到学习语言数据阵列中后,由于向学习语言数据阵列中添加了新词组从而可以改变首部的长度。图10中首部的内容将结合图11中所示的学习语言数据阵列在下面做进一步详细描述。
图11中的学习语言数据阵列包括两字符词组的阵列218、五字符词组的阵列220和10字词组的阵列222。学习语言数据阵列中的每种阵列都包括一系列的记录200-204、206-210和212-216。应该懂得学习语言数据阵列取决于用户输入并且可能因用户和电子设备的不同而不同。学习语言数据阵列可以包括或多或少,或与图11中所示的词组长度不同的数据记录。
现在参见图10和11,首部长度条目表示首部是12字节长。如词组长度个数条目182中所示,对应的语言数据阵列包括3个不同长度的词组的数据记录。第一个词组的长度是2个字,由词组长度条目184表示,如200所示,两字符词组的第一个数据记录200在学习语言数据记录中的偏移是12。为了避免图中显得拥挤,虽然图11中的学习语言数据是分开显示的,但是应该懂得12个字节的学习语言数据首部最好放在学习语言数据中的学习语言数据阵列之前。还应该清楚的是,为了便于说明,假设学习语言数据首部和阵列作为多个一字节条目保存在内存中,这样记录200实际上是学习语言数据中的第十三个条目,即从学习语言数据的第一个条目(即,第一个头长度字节)偏移12个条目。
学习语言数据阵列还包括在学习语言数据阵列中从偏移152开始的词组长度条目188表示的用于五字符词组的数据记录。当按如上所述用5个字节专用格式保存两字词组时,在偏移12的第一个两字词组的数据记录200和在偏移152的第一个五字词组的数据记录206之间的140个条目可容纳28个数据记录。
词长度和偏移条目192和194表示学习语言数据阵列中从偏移625开始的10字词组的数据记录。如果图5中的数据记录格式用于五字符词组,每个音节的每个索引/声调对两个字节并且每个候选索引一个字节,那么每个数据记录是15个字节,在学习语言数据阵列中共有30个用于五字符词组的这种15字节的数据记录,占用偏移152到601。在偏移625的条目212之后的学习语言数据阵列的剩余部分存储10字词组的数据记录。
前面的描述和图10和11中所示的学习语言数据的示例假设利用字节的整数偏移来存取语言数据阵列。然而,当学习语言数据首部保存索引、地址或其它指针时,也可以对学习语言数据阵列使用其它的存取机制。
上面描述了语言数据的组成部分。下面会进一步详细描述在文本输入时的语言数据的使用。图12是使用语言数据的方法的流程图。
该方法从接收和缓存用户输入的步骤230开始。本领域技术人员应该理解,通常用拼音音节的形式作为中文文本的用户输入。在步骤232将接收到的用户输入串分段成字,然后在步骤234转换成相应的中文文本。本领域技术人员应该理解,还可以在输入被转换成中文文本前在显示器上用对应的汉语拼音字母音节来代替输入的拼音音节。在步骤234的转换还包括为每个字查询语言数据,如果有的话,还包括学习语言数据,并且利用语言数据中对应的数据记录标识的汉字候选替换输入的拼音串,如果可用的话,还有显示的汉语拼音字母串。
在步骤236,包含汉字候选的、转换后的中文文本在文本输入屏幕上的当前文本条目的位置显示给用户,并且最好代替输入的拼音和显示的汉语拼音字母。然后在步骤238,确定用户是否通过调用和从查找窗口选择改变了某个汉字候选。该方法进行到步骤244,结合已实现的方法将中文文本输入到电子设备,如果用户没有改变任何候选,那么在步骤230继续接收用户的输入。按上面所述输入新词一样,用户的下一个输入被分段并且被转换。
在步骤238中确定用户改变了候选的情况下,那么包括所选候选的候选串被输入到电子设备并且替代输入屏幕上对应输入的拼音串的当前显示的候选串。为了提供如上所述的学习功能,如上所述形成一个或多个新词,然后在步骤242用这个或这些新词更新学习语言数据。
图13是使用语言数据的***的方框图。图13的***包括键盘251、输入队列252、用户界面253、输入处理器254和显示器256,这些都在电子设备250中提供。
所提供的大多数键盘251都包括表示用于拼音音节输入的字符键,可以是诸如QWERTY或DVORAK的全字母数字键盘、电话键盘或一些其它类型的键盘键区。但是,应该理解,可以用,例如,支持用户通过触摸屏输入,或手写输入的图形界面来代替键盘251。在电子设备250中,输入队列252接收并缓存来自键盘251的用户输入。
用户界面253提供电子设备250的用户接口。它接收用户从键盘251的输入,还通过显示器向用户提供输出。用户界面253在显示屏幕156上显示,例如,编辑文本的文本输入屏幕。
输入处理器254通过用户界面253从输入队列252接收缓存的拼音输入。输入处理器254将输入分段为字,并且根据分段后的输入识别中文文本候选。然后在显示器256上显示这些识别出的候选。当中文文本被输入到电子设备250后,如果需要,输入处理器254存取上面的阵列和语言数据记录。如果图13的***支持学习功能,那么输入处理器254还存取和保存学习语言数据记录。
在图13中,阵列和数据记录作为实现输入处理器254的软件代码的一部分保存在输入处理器254中。作为替换,阵列和数据记录也可以保存在输入处理器254的缓冲区或存储器,或至少能访问输入处理器254。这种存储器由一个或多个数据存储区组成并且利用一种或多种存储部件来实现。诸如250这样的电子设备通常包括可写存储器、随机村取存储器(RAM),例如,和只允许读数据的只读存储器(ROM)。虽然为了在断电时也能保留可写存储器中的任何数据而最好使用诸如闪存或电池备用RAM,但是可写存储器可以是易失性的或非易失性的。由于阵列和语言数据记录一旦建立通常就不会改变,因此最好将它们保存在不需要写入存储器的非易失性存储器中。由于当启动学习功能时需要添加新的学习语言数据记录,因此学习语言数据记录最好保存在非易失性可写存储器中。
在优选实施例中,可以通过配置软件程序或软件模块,结合电子设备250上的一个或多个软件程序的操作来实现输入处理器254,使得能利用这种软件程序处理中文文本的输入。
显示器256向电子设备250的用户提供可视的数据输出。例如,在便携式电子设备中,经常采用液晶显示器。
在电子设备250上用来录入中文文本的用户输入是通过按简易键盘251上的键完成的。例如,用户可以利用电子设备250上支持的特定功能通过启动一个特定的软件应用、模块或工具来调用文本条目。无论何时,只要操作或功能需要中文文本的输入,中文文本输入***就会处理用户的拼音输入来预测正确的中文音节。如果不止一个软件程序支持文本输入,那么中文文本输入***最好能由任何软件程序调用的软件模块或工具来实现。作为替换,每种软件程序可以结合软件指令来执行这里所描述的中文文本输入。
如所表现的,用户界面253呈现了显示器256上的文本输入屏幕以帮助文本输入。文本输入屏幕的特定内容和格式取决于,例如,要输入的文本属性,输入文本的功能,或当前使用的软件应用。最初在文本录入屏幕上显示拼音,之后可以用对应的汉语拼音字母代替。由于输入的拼音被分段并转换成中文文本,因此汉字代替了由文本录入***识别或用户选出的汉字候选。
当接收到用户的拼音输入时,输入处理器254通过查询语言数据记录,如果存在的话,还有学习语言数据记录,分段并将拼音输入转换成中文文本。如上所述,用户输入的拼音显示在显示器256上,并且在拼音被分段和转换后用中文文本取代。当用户改变了中文文本中的候选汉字后,输入处理器254用显示器256上的文本录入屏幕上选出的候选替换原有候选,并且在启动学习功能后将一个或多个新词添加到学习语言数据。例如,可以通过根据用户输入的串调用查找功能并且利用键盘251上的导航键或诸如拨轮这样的辅助输入装置(未示出),从对应输入串的候选列表中选择来完成用户的候选选择。在一个实施例中,当调用查找功能后,最好在文本输入屏幕或查找窗口显示用户的拼音输入或对应的汉语拼音字母,用户选择输入串或查找功能应该依据的任何部分。然后用户从输入串对应的一个或多个汉字变体选择,选出的变体取代显示器256上文本输入屏幕上的输入串。
虽然上面的描述指的是输入处理器254执行的功能,本领域技术人员应该理解,输入处理器254的这些功能是由实现中文文本输入法的软件程序、模块或工具中的软件指令指示的。
上面描述的仅是作为例子的优选实施例。上述***和方法的许多改变对本领域的技术人员来说是显而易见的,并且无论是否进行了清楚地描述,这些明显的改变是在所描述和所要求的本发明的范围之内。

Claims (21)

1.一直用于将汉语拼音音节转换成汉字的语言数据结构,该数据结构包括:
多个汉字字符候选列表,每个列表包括与拼音音节相关联的候选汉字字符,并且每个列表中的每个候选汉字字符在列表中都有索引;和
多个语言数据记录,每个语言数据记录对应具有多个拼音音节并且包括关键字和值的字,
其中每个语言数据记录中的关键字包括语言数据记录对应的字的拼音音节的一序列索引和声调信息,而其中每个语言数据记录中的值包括分别与字的拼音音节关联的候选列表中代表字的拼音音节的候选汉字字符的一序列索引。
2.根据权利要求1所述的语言数据结构,其中每个数据记录的长度是字节的整数倍。
3.根据权利要求1所述的语言数据结构,其中每个拼音音节的索引和声调信息被以两个字节存储在数据记录中。
4.根据权利要求3所述的语言数据结构,其中索引长度是10位,而其中声调信息的长度是5位。
5.根据权利要求1所述的语言数据结构,其中多个语言数据记录被存储在多个阵列中,并且其中每个阵列存储对应于具有相同拼音音节数量的词组的语言数据记录。
6.根据权利要求5所述的语言数据结构,其中根据索引和声调信息序列中的第一个索引对多个阵列中的每一个中的语言数据记录进行排序。
7.根据权利要求1所述的语言数据结构,还包括与拼音音节关联的拼音音节标识符的阵列,其中字的拼音音节的索引是拼音音节标识符阵列中分别与字的拼音音节关联的标识符的索引。
8.根据权利要求7所述的语言数据结构,其中每个音节包括从N个字符的字母开始的n+1个字符,并且其中根据下面的公式确定标识符:
ID=index0*(N0)+index1*(N1)+...+indexn*(Nn),
其中:
index0是音节中第一个字母的索引,
index1是音节中第二个字母的索引,
indexn是音节中第(n+1)个字母的索引,并且
N是构成音节所用的字母总数。
9.根据权利要求7所述的语言数据结构,还包括与汉语拼音字母音节关联的中文汉语拼音字母音节的阵列,以及表示每个拼音音节标识符和它对应的汉语拼音字母标识符之间的对应关系的对应关系阵列。
10.根据权利要求1所述的语言数据结构,其中该多个数据记录包括用于两音节词组的语言数据记录,并且其中用于两音节词组的每个语言数据记录包括:
包括两音节词组中的第二个拼音音节的索引和两音节词组中第一个拼音音节和第二个拼音音节的声调信息项的关键字;和
包括分别与第一和第二个拼音音节关联的候选列表中代表第一和第二个拼音音节的候选汉字字符的一序列索引组成的值。
11.根据权利要求10所述的语言数据结构,其中两音节词组的语言数据记录被存储在数据记录阵列中,其中两音节词组的每个语言数据记录是与第一个拼音音节关联的变体,其中与相同的第一个拼音音节关联的变体被在数据记录阵列中分组,并且其中语言数据结构还包括偏移的阵列,每个偏移包括在数据记录阵列中与第一个拼音音节关联的第一个变体的偏移。
12.一种创建中文数据的方法,包括步骤:
为多个汉语拼音音节中的每一个生成标识符;
在标识符阵列中存储所生成的标识符,标识符阵列中的每个标识符具有一个阵列索引;
生成多个候选汉字字符列表,每个列表包括与拼音音节关联的候选汉字字符,每个列表中的每个候选汉字字符在表中都有一侯选个索引;并且
多个字中的每一个具有多个拼音音节,生成由关键字和值组成的数据记录,其中关键字包括用于多个拼音音节中的每一个的标识符阵列中的标识符的阵列索引和多个拼音音节中的每一个的声调信息,而其中值包括在与多个拼音音节中的每一个关联的候选列表中代表每个多拼音音节的候选的候选索引。
13.根据权利要求12所述的方法,还包括按标识符的升序对标识符阵列排序的步骤。
14.根据权利要求12所述的方法,其中生成数据记录的步骤包括为多个两字词组中的每一个生成由关键字和值组成的数据记录,其中关键字包括两音节词组中第二个拼音音节的标识符阵列中的标识符的阵列索引和两音节词组中第一个拼音音节和第二个拼音音节的声调信息,并且其中值包括与第一和第二个拼音音节中的每一个关联的候选列表中,代表第一和第二个拼音音节中的每一个的候选的候选索引的步骤。
15.根据权利要求14所述的方法,还包括步骤:
将两音节词组的数据记录保存在数据记录阵列中,其中具有相同第一个拼音音节的两音节词组的数据记录被在数据记录阵列中分组;
生成偏移阵列,每个偏移包括在数据记录阵列中与第一个拼音音节关联的第一个数据记录的偏移。
16.根据权利要求12所述的方法,还包括在多个数据记录阵列的其中一个存储数据记录的步骤,其中每个阵列存储对应具有预定拼音音节数量的词组的数据记录。
17.根据权利要求16所述的方法,其中该多个数据记录阵列中的每一个中的数据记录被根据每个数据记录中的第一个阵列索引排序。
18.一种利用中文语言数据将汉语拼音音节转换成汉字字符的***,语言数据包括多个候选汉字字符列表,每个列表包括与拼音音节关联的候选汉字字符,并且每个列表中的每个候选汉字字符在列表中具有索引;以及多个语言数据记录,每个语言数据记录对应具有多个拼音音节的词并且包括一个关键字和一个值,每个语言数据记录中的关键字包括语言数据记录对应的字的拼音音节的一序列索引和声调信息,而每个语言数据记录中的值包括分别与字的拼音音节关联的候选列表中代表字的拼音音节的候选汉字字符的一序列索引,该***包括:
具有代表组成拼音音节的多个字母的键的键盘;
配备的从键盘接收输入的拼音音节的输入队列;
配备的用来存储多个候选汉字字符列表和多个数据记录的存储器;
输入处理器,用于操作地耦合到存储器和输入队列并且用来将输入的拼音音节分割成输入字,为分别对应包括输入的拼音音节的每个输入字的语言数据记录查找语言数据记录,然后利用对应的数据记录中的候选汉字字符索引将每个输入字转换成汉字字符;
显示器;和
耦合在显示器和输入处理器之间的用户界面,用于在显示器上显示输入的拼音音节,并且当输入的拼音音节被输入处理器转换时用候选汉字字符代替输入的拼音音节。
19.根据权利要求18所述的***,其中输入队列的配置还用来接收识别表示一个或多个输入的拼音音节的所选汉字字符的汉字字符选择输入,并且其中输入处理器的配置还能确定汉字字符选择输入是否已经被接收,并且当已接收到汉字字符选择输入时,将一个或多个输入的拼音音节输入转换成所选的汉字字符。
20.根据权利要求19所述的***,其中输入处理器的配置还能形成包括一个或多个输入拼音音节的新词,生成对应该新词的新的数据记录,并且在存储器中存储新的数据记录。
21.根据权利要求20所述的***,其中输入处理器的配置还能为对应每个输入字的数据记录搜索语言数据记录和任何新的数据记录。
CNB038208431A 2002-07-03 2003-07-03 创建和使用中文语言数据和用户自纠正数据的方法和*** Expired - Lifetime CN100561469C (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US39394802P 2002-07-03 2002-07-03
US60/393,948 2002-07-03
US10/305,563 2002-11-27
CA002413055A CA2413055C (en) 2002-07-03 2002-11-27 Method and system of creating and using chinese language data and user-corrected data
CA2,413,055 2002-11-27
US10/305,563 US7228267B2 (en) 2002-07-03 2002-11-27 Method and system of creating and using Chinese language data and user-corrected data

Publications (2)

Publication Number Publication Date
CN1679023A true CN1679023A (zh) 2005-10-05
CN100561469C CN100561469C (zh) 2009-11-18

Family

ID=30118652

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB038208431A Expired - Lifetime CN100561469C (zh) 2002-07-03 2003-07-03 创建和使用中文语言数据和用户自纠正数据的方法和***

Country Status (8)

Country Link
EP (1) EP1522027B8 (zh)
JP (2) JP2005531858A (zh)
KR (1) KR100712001B1 (zh)
CN (1) CN100561469C (zh)
AT (1) ATE329317T1 (zh)
AU (1) AU2003250637A1 (zh)
DE (1) DE60305922T2 (zh)
WO (1) WO2004006123A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609455A (zh) * 2012-01-12 2012-07-25 北京中科大洋科技发展股份有限公司 一种实现汉语同音字检索的方法
CN107066104A (zh) * 2016-11-14 2017-08-18 高商展 电脑汉英互读互译键盘最佳键位
CN109901727A (zh) * 2019-03-06 2019-06-18 上海依智医疗技术有限公司 一种获取文字纠错信息的方法和装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070192311A1 (en) * 2006-02-10 2007-08-16 Pun Samuel Y L Method And System Of Identifying An Ideographic Character
CN111354339B (zh) * 2020-03-05 2023-11-03 深圳前海微众银行股份有限公司 词汇音素表构建方法、装置、设备及存储介质
CN113343639B (zh) * 2021-05-19 2023-10-03 网易(杭州)网络有限公司 产品标识码图生成、基于产品标识码图的信息查询方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5893133A (en) * 1995-08-16 1999-04-06 International Business Machines Corporation Keyboard for a system and method for processing Chinese language text
FI112978B (fi) * 1999-09-17 2004-02-13 Nokia Corp Symbolien syöttö

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609455A (zh) * 2012-01-12 2012-07-25 北京中科大洋科技发展股份有限公司 一种实现汉语同音字检索的方法
CN102609455B (zh) * 2012-01-12 2014-12-03 北京中科大洋科技发展股份有限公司 一种实现汉语同音字检索的方法
CN107066104A (zh) * 2016-11-14 2017-08-18 高商展 电脑汉英互读互译键盘最佳键位
CN107066104B (zh) * 2016-11-14 2020-12-11 高商展 电脑汉英互读互译键盘最佳键位
CN109901727A (zh) * 2019-03-06 2019-06-18 上海依智医疗技术有限公司 一种获取文字纠错信息的方法和装置

Also Published As

Publication number Publication date
EP1522027A2 (en) 2005-04-13
DE60305922T2 (de) 2007-04-26
JP2007042146A (ja) 2007-02-15
JP2005531858A (ja) 2005-10-20
WO2004006123A3 (en) 2004-09-02
KR100712001B1 (ko) 2007-04-30
DE60305922D1 (de) 2006-07-20
CN100561469C (zh) 2009-11-18
KR20050043884A (ko) 2005-05-11
AU2003250637A8 (en) 2004-01-23
ATE329317T1 (de) 2006-06-15
EP1522027B8 (en) 2006-08-16
AU2003250637A1 (en) 2004-01-23
EP1522027B1 (en) 2006-06-07
WO2004006123A2 (en) 2004-01-15

Similar Documents

Publication Publication Date Title
CN1258132C (zh) 用于进行字母符号输入的小键盘布局
US7395203B2 (en) System and method for disambiguating phonetic input
US7512533B2 (en) Method and system of creating and using chinese language data and user-corrected data
US7277029B2 (en) Using language models to expand wildcards
KR100656736B1 (ko) 표음 입력 모호성 제거 시스템 및 방법
CN1008016B (zh) 输入处理***
CN1117156A (zh) 修改汉字转换结果的***
CN101038508A (zh) Gb拼音输入法
JP2007042146A (ja) 中国語データおよびユーザ修正データの作成し、かつ、使用する方法およびシステム
JP3532780B2 (ja) 音声仮名文字の入力順序を生成するための入力システム
CN1136496C (zh) 简化拼音-触摸屏鼠标式汉字输入方法
CN1255670A (zh) 汉字五键输入法
CN1379342A (zh) 汉语输入变换处理装置以及汉语输入变换处理方法
JP3492981B2 (ja) 音声仮名文字の入力順序を生成するための入力システム
CN1052200A (zh) 音形义字词兼容编码系列及键盘
EP1691298B1 (en) Method and system of creating and using Chinese language data and user-corrected data
CN1808349A (zh) 中文短语笔画以及语音化文字输入的使用者界面和数据库结构
CN1218932A (zh) 汉语输入变换处理装置及汉语输入变换处理方法
CN1101732A (zh) 汉字变换学习装置
CN1206581C (zh) 混合输入方法
CN1058342C (zh) 汉字编码的计算机输入方法
CN1391157A (zh) 一种文本输入方法及装置
CN1480824A (zh) 按照汉字笔划辅助部首的汉字输入方法及其***
CN1588279A (zh) 利用数字与字母对应关系实现中文信息快速检索的方法
CN1048273A (zh) 袖珍英汉电子字典及使用方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: Ontario, Canada

Patentee after: BlackBerry Ltd.

Address before: Ontario, Canada

Patentee before: RESEARCH IN MOTION Ltd.

CP01 Change in the name or title of a patent holder
TR01 Transfer of patent right

Effective date of registration: 20211115

Address after: Ontario, Canada

Patentee after: RESEARCH IN MOTION Ltd.

Address before: Ontario, Canada

Patentee before: 2012244 ONTARIO Inc.

TR01 Transfer of patent right
CX01 Expiry of patent term

Granted publication date: 20091118

CX01 Expiry of patent term