CN103235789B - 一种汉字转换为拼音及首字母的方法 - Google Patents
一种汉字转换为拼音及首字母的方法 Download PDFInfo
- Publication number
- CN103235789B CN103235789B CN201310106588.4A CN201310106588A CN103235789B CN 103235789 B CN103235789 B CN 103235789B CN 201310106588 A CN201310106588 A CN 201310106588A CN 103235789 B CN103235789 B CN 103235789B
- Authority
- CN
- China
- Prior art keywords
- phonetic
- chinese character
- sound
- pinyin
- comparison
- 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.)
- Active
Links
Landscapes
- Document Processing Apparatus (AREA)
Abstract
本发明公开了一种汉字转换为拼音及首字母的方法,包括以下步骤;(1)将所有的拼音进行编号;(2)建立汉字拼音的基础对照表,将汉字对应拼音的编号以及拼音首字母按照汉字的Unicode值由小到大的顺序添加到对基础照表中;(3)读取该基础对照表,根据基础对照表将汉字转换为拼音及拼音首字母。本发明使用对照表,对于汉字查找拼音功能,对系统资源的消耗非常小,有效的降低了对于系统资源的消耗;在实施查找过程中,使用数组存储对照表,对于CPU的消耗只是数组的寻址,非常快速,为用户提供更好的使用感受;建立多音字的对照子表,能够同时满足多音字的查询转换。
Description
技术领域
本发明涉及数据归类领域,特别涉及一种汉字转换为拼音及首字母的方法。
背景技术
随着车载电子技术的不断发展,车载娱乐系统也大量成为车辆中的必备产品。车载娱乐系统所提供给用户的功能也在不断的丰富,涵盖了导航功能,蓝牙功能,音视频文件的播放,收音功能等方方面面。 很多应用都会提供给用户较多的列表信息,例如歌曲列表,导航功能中查询到的兴趣点的列表,蓝牙电话本联系人的列表等,当列表信息量巨大的时候,用户就会碰到一个问题:怎样在这些列表中快速查找到自己想要的信息呢。对于使用中文的用户来说,通常的做法是按照拼音的发音将整个列表做个排序,或者是通过输入首字母,快速的将结果做一个过滤。而这些快速查找一条信息的方法中最为核心的部分就是将汉字转化为拼音或者是首字母,然后再通过拼音和首字母来进行排序和过滤。在现有技术中,也不乏一些产品会有针对信息列表提供这样或者那样的查找和过滤功能,而这些方法也通常有一些缺陷。如通过采用数据库的方式来查询,需要建立一个汉字和对应拼音,首字母的数据库。在实际使用时,需要加载数据库引擎,每查一个字,都需要执行一次查询语句,会较为消耗系统资源,而每次查询一个字都需要做一次查询动作,如果大量的汉字需要转换,效率上也会有严重问题。又如通过文本方式,记录每个汉字及其对应的拼音信息,这样查一个字需要通过读取文件的方式把所有信息全部浏览一次,效率非常低下。而对于嵌入式的系统,在内存和CPU资源上都非常紧张,通常的方法在做这样一个功能时,都会遇到性能的瓶颈,使用户陷入等待,影响用户体验。
发明内容
为了实现汉字与拼音及拼音首字母的快速转换,本发明提供一种汉字转换为拼音及首字母的设计方案。
一种汉字转换为拼音及首字母的方法,包括以下步骤:
S10.将所有的拼音进行编号;S20.建立汉字拼音的基础对照表,将汉字对应拼音的编号以及拼音首字母按照汉字的Unicode值由小到大的顺序添加到基础对照表中;S30.读取该基础对照表,根据基础对照表将汉字转换为拼音及拼音首字母。
所述步骤S20的拼音的编号以及拼音的首字母以3个字节存储,具体为拼音的编号存储于第一、二字节,拼音首字母存储于第三字节。
所述读取基础对照表的方法为:建立一个对照数组,将基础对照表中各个汉字对应的拼音编号及拼音首字母顺序存入对照数组中。
所述对照数组为一维数组。
根据基础对照表将汉字转换为拼音及拼音首字母的方法为:
S31.读取将要待转换的汉字的Unicode值;S32.将步骤S31.的Unicode值减去0x4E00,得到一差值;S33.将步骤S32.所得到的差值乘以3所得到的值作为对照数组的下标;S34.根据下标查找对照数组所对应位置的连续三个字节所存储的拼音编号及拼音首字母。
还包括多音字对照子表:二音字对照子表、三音字对照子表以及四音字对照子表。
所述多音字对照子表的建立方法为:
(a)将所有二音字顺序存储于二音字对照子表中,将每个二音字对应的2个读音拼音的编号结合对应的拼音首字母,以2个三字节的顺序存储;(b)将所有三音字顺序存储于三音字对照子表中,将每个三音字对应的3个读音拼音的编号结合对应的拼音首字母,以3个三字节的顺序存储;(c)将所有四音字顺序存储于四音字对照子表中,将每个四音字对应的4个读音拼音的编号结合对应的拼音首字母,以4个三字节的顺序存储。
将多音汉字转换为拼音及拼音首字母的方法为:
S41.多音字在基础对照表中相应存储区域的第一、二个字节存储该多音字在相应对照表中的偏移位置,第三个字节存储其读音数n,n=2,3,4;S42.将基础对照表、二音字对照子表、三音字对照子表以及四音字对照子表依次顺序存储于对照数组中;S43.从对照数组中基础对照表区域读取到某个汉字的存储区域第三字节为读音数n,即判断其为n音字,并根据第一、二字节中的偏移位置,在n音字对应的区域查找该汉字对应的n组拼音编号及拼音首字母。
综上所述,本发明具有以下有益效果:(1)使用对照表,对于汉字查找拼音功能,对系统资源的消耗非常小,有效的降低了对于系统资源的消耗;(2)在实施查找过程中,使用数组存储对照表,对于CPU的消耗只是数组的寻址,非常快速,为用户提供更好的使用感受;(3)建立多音字的对照子表,能够同时满足多音字的查询转换。
附图说明
图1为本发明所述拼音的编号以及拼音的首字母的存储结构示意图;
图2为本发明所述二音字的拼音编号以及拼音的首字母的存储结构示意图;
图3为二音字的在对照数组基础对照表区域的存储结构示意图。
具体实施方式
为了让本领域的技术人员能够更好地了解本发明的技术方案,下面结合附图对本发明作进一步的阐述。
本发明揭示了一种汉字转换为拼音及首字母的方法,包括以下步骤;
S10.将所有的拼音进行编号;所有汉字中(在GB13000中所包含的汉字为20902个)的拼音不超过512个,这样用2个字节的长度就可以表示一个拼音了。再加上首字母一个字节,这样每个汉字用三个字节表示拼音和首字母信息。
S20.建立汉字拼音的基础对照表,将汉字对应拼音的编号以及拼音首字母按照汉字的Unicode值由小到大的顺序添加到基础对照表中。如图1所示,拼音的编号以及拼音的首字母以3个字节存储,具体为拼音的编号存储于第一、二字节,拼音首字母存储于第三字节。
S30.读取该基础对照表,根据基础对照表将汉字转换为拼音及拼音首字母。
建立一个对照数组(此处对照数组为一维数组),将基础对照表中各个汉字对应的拼音编号及拼音首字母顺序存入对照数组中。S31.读取将要待转换的汉字的Unicode值,S32.使用该Unicode值减去0x4E00(0x4E00为Unicode值最小的汉字,即对照表中第一个汉字),得到一差值;S33.将所得到的差值乘以3所得到的值作为对照数组的下标;S34.根据下标查找对照数组所对应位置的连续三个字节所存储的拼音编号及拼音首字母。
由于汉字中还有二音字,三音字及四音字等多音字的存在,其中有二音字2141个,三音字260个,四音字25个,故还设置有多音字对照子表:二音字对照子表、三音字对照子表以及四音字对照子表。
多音字对照子表的建立方法为:(a)将所有二音字顺序存储于二音字对照子表中,将每个二音字对应的2个读音拼音的编号结合对应的拼音首字母,以2个三字节的顺序存储;(b)将所有三音字顺序存储于三音字对照子表中,将每个三音字对应的3个读音拼音的编号结合对应的拼音首字母,以3个三字节的顺序存储;(c)将所有四音字顺序存储于四音字对照子表中,将每个四音字对应的4个读音拼音的编号结合对应的拼音首字母,以4个三字节的顺序存储。其中,二音字的存储结构如图2所示,三音字及四音字的存储结构可由此类推。
将多音汉字转换为拼音及拼音首字母的方法为:
S41.多音字在基础对照表中相应存储区域的第一、二个字节存储该多音字在相应对照表中的偏移位置,第三个字节存储其读音数n,n=2,3,4;;S42.将基础对照表、二音字对照子表、三音字对照子表以及四音字对照子表依次顺序存储于对照数组中;S43.从对照数组中基础对照表区域读取到某个汉字的存储区域第三字节为读音数n,即判断其为n音字,并根据第一、二字节中的偏移位置,在n音字对应的区域查找该汉字对应的n组拼音编号及拼音首字母。
设某字有两个读音,而两个读音的信息记录在对照数组二音字对照子表区域的第123个位置,则在对照数组的基础对照表区域,其对应的三字节记录的信息如图3所示,第三字节中的“2”表示该字有两个音,“123”表示该字存储于对照数组的二音字区域的第123位。查找该字的拼音和首字母时,先按照单音字的方法读取到对应三个字节的信息,则分别为123与2,通过第三字节的“2”,知道其为二音字并在对照数组中查询二音字对照子表,并根据其偏移位置“123”,读取对照数组下标为[20902*3 + 123 * (2*3)] 处的连续6个字节数据,这6个数据就记录了该二音字的两个读音的信息。三音字与四音字的查询方法可依次类推。
本实施例只是本发明的较优实施方式,未进行详细描述的部分均采用公知的成熟技术。需要说明的是,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (5)
1.一种汉字转换为拼音及首字母的方法,其特征在于,包括以下步骤:
S10.将所有的拼音进行编号;
S20.建立汉字拼音的基础对照表,将汉字对应拼音的编号以及拼音首字母按照汉字的Unicode值由小到大的顺序添加到基础对照表中;
S30.读取该基础对照表,根据基础对照表将汉字转换为拼音及拼音首字母
;
还包括建立多音字对照子表步骤,用于将多音汉字转换为拼音及拼音首字母;所述多音字对照子表包括二音字对照子表、三音字对照子表以及四音字对照子表,并
(a)将所有二音字顺序存储于二音字对照子表中,将每个二音字对应的2个读音拼音的编号结合对应的拼音首字母,以2个三字节的顺序存储;
(b)将所有三音字顺序存储于三音字对照子表中,将每个三音字对应的3个读音拼音的编号结合对应的拼音首字母,以3个三字节的顺序存储;
(c)将所有四音字顺序存储于四音字对照子表中,将每个四音字对应的4个读音拼音的编号结合对应的拼音首字母,以4个三字节的顺序存储;
将多音汉字转换为拼音及拼音首字母为:
S41.多音字在基础对照表中相应存储区域的第一、二个字节存储该多音字在相应对照表中的偏移位置,第三个字节存储其读音数n,n=2,3,4;
S42.将基础对照表、二音字对照子表、三音字对照子表以及四音字对照子表依次顺序存储于对照数组中;
S43.从对照数组中基础对照表区域读取到某个汉字的存储区域第三字节为读音数n,即判断其为n音字,并根据第一、二字节中的偏移位置,在n音字对应的区域查找该汉字对应的n组拼音编号及拼音首字母。
2.根据权利要求1所述的一种汉字转换为拼音及首字母的方法,其特征在于,步骤S20所述的拼音的编号以及拼音的首字母以3个字节存储,具体为拼音的编号存储于第一、二字节,拼音首字母存储于第三字节。
3.根据权利要求1所述的一种汉字转换为拼音及首字母的方法,其特征在于,所述读取基础对照表的方法为:建立一个对照数组,将基础对照表中各个汉字对应的拼音编号及拼音首字母顺序存入对照数组中。
4.根据权利要求3所述的一种汉字转换为拼音及首字母的方法,其特征在于,所述对照数组为一维数组。
5.根据权利要求4所述的一种汉字转换为拼音及首字母的方法,其特征在于,根据基础对照表将汉字转换为拼音及拼音首字母的方法为:
S31.读取将要待转换的汉字的Unicode值;
S32.将步骤S31.的Unicode值减去0x4E00,得到一差值;
S33.将步骤S32.所得到的差值乘以3所得到的值作为对照数组的下标;
S34.根据下标查找对照数组所对应位置的连续三个字节所存储的拼音编号及拼音首字母。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310106588.4A CN103235789B (zh) | 2013-03-29 | 2013-03-29 | 一种汉字转换为拼音及首字母的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310106588.4A CN103235789B (zh) | 2013-03-29 | 2013-03-29 | 一种汉字转换为拼音及首字母的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103235789A CN103235789A (zh) | 2013-08-07 |
CN103235789B true CN103235789B (zh) | 2016-08-10 |
Family
ID=48883831
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310106588.4A Active CN103235789B (zh) | 2013-03-29 | 2013-03-29 | 一种汉字转换为拼音及首字母的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103235789B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103617248A (zh) * | 2013-10-28 | 2014-03-05 | 乐视网信息技术(北京)股份有限公司 | 一种名称转换方法及装置 |
CN104317505A (zh) * | 2014-10-12 | 2015-01-28 | 渤海大学 | 一种汉语拼音的输出系统及方法 |
CN106383848A (zh) * | 2016-08-31 | 2017-02-08 | 浪潮软件集团有限公司 | 一种实现的多音字汉字转拼音的方法 |
CN108121692A (zh) * | 2017-12-22 | 2018-06-05 | 苏州麦迪斯顿医疗科技股份有限公司 | 字符转换方法、装置、系统及存储介质 |
CN109982111B (zh) * | 2017-12-28 | 2020-05-22 | 贵州白山云科技股份有限公司 | 基于直播网络系统的文本内容传输优化方法、装置 |
CN110110041B (zh) * | 2019-03-15 | 2022-02-15 | 平安科技(深圳)有限公司 | 错词纠正方法、装置、计算机装置及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1567174A (zh) * | 2003-06-09 | 2005-01-19 | 吴胜远 | 对象表示和处理的方法及其装置 |
CN101118542A (zh) * | 2006-07-31 | 2008-02-06 | 西门子通信技术(北京)有限公司 | 一种中文字符的转换方法及其系统 |
CN102223430A (zh) * | 2011-06-13 | 2011-10-19 | 深圳桑菲消费通信有限公司 | 一种手机联系人多音字排序及搜索方法 |
-
2013
- 2013-03-29 CN CN201310106588.4A patent/CN103235789B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1567174A (zh) * | 2003-06-09 | 2005-01-19 | 吴胜远 | 对象表示和处理的方法及其装置 |
CN101118542A (zh) * | 2006-07-31 | 2008-02-06 | 西门子通信技术(北京)有限公司 | 一种中文字符的转换方法及其系统 |
CN102223430A (zh) * | 2011-06-13 | 2011-10-19 | 深圳桑菲消费通信有限公司 | 一种手机联系人多音字排序及搜索方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103235789A (zh) | 2013-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103235789B (zh) | 一种汉字转换为拼音及首字母的方法 | |
CN100498782C (zh) | 一种在全文检索系统中快速更新数据域的方法 | |
JP2009512923A5 (zh) | ||
EP1692626A1 (en) | Identifying related names | |
CN102890701A (zh) | 情感数据使用的系统和方法 | |
CN103365992A (zh) | 一种基于一维线性空间实现Trie树的词典检索方法 | |
CN100561482C (zh) | 一种嵌入式系统数据库的实现方法 | |
CN110941694A (zh) | 知识图谱的搜索定位方法、系统、电子设备和存储介质 | |
CN103970751A (zh) | 多国语言网页转换系统及方法 | |
CN108319608A (zh) | 访问日志存储查询的方法、装置及系统 | |
CN106503040B (zh) | 适用sql查询方法的kv数据库及其创建方法 | |
CN105701133A (zh) | 一种地址输入的方法和设备 | |
CN102135812A (zh) | 一种多音汉字的输入方法及装置 | |
CN101539433A (zh) | 导航系统中拼音首字母加声调检索的方法及装置 | |
CN114297143A (zh) | 一种搜索文件的方法、显示文件的方法、装置及移动终端 | |
CN101436203B (zh) | 一种记录索引方法及装置 | |
CN103116601A (zh) | 一种提高输入法智能联想准确度的方法及系统 | |
CN103207682A (zh) | 基于音节切分的维哈柯文智能输入法 | |
CN115718795A (zh) | 一种搜索违禁词的红名单实现方法、系统、设备及终端 | |
CN103164484A (zh) | 目标点的名称的索引的建立方法及装置 | |
CN100561469C (zh) | 创建和使用中文语言数据和用户自纠正数据的方法和系统 | |
CN104902091B (zh) | 一种通讯录排序方法及终端 | |
CN101013437A (zh) | 根据文字发音查询文字数据的方法 | |
CN101539428A (zh) | 导航系统中拼音加声调检索的方法及装置 | |
CN101089850A (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 | ||
CB02 | Change of applicant information |
Address after: 516006 Guangdong province Huizhou City Zhongkai high tech Zone and five West Road No. 103 Applicant after: HUIZHOU DESAY SV AUTOMOTIVE CO., LTD. Address before: 516006 Guangdong province Huizhou City Zhongkai high tech Zone and five West Road No. 103 Applicant before: Huizhou Desay SV Auto. Electronics Co., Ltd. |
|
COR | Change of bibliographic data | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |