CN102866781B - 一种音字转换方法和系统 - Google Patents
一种音字转换方法和系统 Download PDFInfo
- Publication number
- CN102866781B CN102866781B CN201110187942.1A CN201110187942A CN102866781B CN 102866781 B CN102866781 B CN 102866781B CN 201110187942 A CN201110187942 A CN 201110187942A CN 102866781 B CN102866781 B CN 102866781B
- Authority
- CN
- China
- Prior art keywords
- phonetic
- whole sentence
- entry
- cutting route
- result
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 176
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 83
- 238000005520 cutting process Methods 0.000 claims abstract description 162
- 238000004364 calculation method Methods 0.000 claims abstract description 11
- 230000008569 process Effects 0.000 claims description 43
- 238000012545 processing Methods 0.000 claims description 17
- 235000013399 edible fruits Nutrition 0.000 claims description 2
- 230000015572 biosynthetic process Effects 0.000 abstract description 3
- 150000001875 compounds Chemical class 0.000 description 52
- 230000003796 beauty Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 11
- 238000010801 machine learning Methods 0.000 description 10
- 239000012634 fragment Substances 0.000 description 9
- 206010028916 Neologism Diseases 0.000 description 8
- 230000018109 developmental process Effects 0.000 description 8
- 238000013461 design Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 101100261000 Caenorhabditis elegans top-3 gene Proteins 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 239000000047 product Substances 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 2
- 239000007795 chemical reaction product Substances 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000003203 everyday effect Effects 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000012827 research and development Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 235000009470 Theobroma cacao Nutrition 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 244000240602 cacao Species 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000002354 daily effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000029087 digestion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 125000004494 ethyl ester group Chemical group 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 238000000465 moulding Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 201000007094 prostatitis Diseases 0.000 description 1
- 230000007474 system interaction Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000013518 transcription Methods 0.000 description 1
- 230000035897 transcription Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Landscapes
- Document Processing Apparatus (AREA)
Abstract
本发明实施例提供一种音字转换方法和系统,所述方法包括:整句生成步骤,按照拼音切分路径权重计算规则,对以当前字符结尾的拼音流的所有拼音切分路径排序,选择所述所有拼音切分路径中权重值最高的第一预定数量的拼音切分路径进行整句生成;Unigram出词步骤,对所述以当前字符结尾的拼音流的所有拼音切分路径进行Unigram出词;处理步骤,将所述整句生成结果和所述Unigram出词结果进行去重和排序,获得所述以当前字符结尾的拼音流的音字转换结果。通过本实施例的方法和系统,实现了拼音到汉字的转换,通过将可能的整句或词组或汉字候选去重后按一定顺序排序,提高了整句生成效率。
Description
技术领域
本发明涉及输入法,尤其涉及一种在输入法中使用的音字转换方法和系统。
背景技术
近年来,移动通信和国际互联网成为当今世界市场潜力最大,发展最为迅猛,前景最为广阔的两大产业。本世纪初,全球移动用户总数仅为7.2亿左右,互联网用户为3.6亿左右。到2010年,全球移动用户数突破50亿大关;国际互联网用户超过了20亿。我国移动用户的总数也于今年超过了5亿,互联网用户则接近4亿。随着这两大产业的迅速发展和技术进步,越来越多的人希望在移动的过程中高速地接入互联网查询获取信息及完成工作。于是,体现移动通信与互联网相结合的移动互联网成为历史的必然。
移动互联网是一个覆盖全球的以宽带IP为技术核心,可同时提供话音、传真、数据、图像、多媒体等高品质电信服务的新一代开放的电信基础网络。目前,移动互联网正逐渐渗透到人们生活工作的各个领域,短信、媒体播放、游戏、移动办公、位置服务等丰富多彩的移动互联网应用正在深刻改变信息时代的社会生活。2010年初,国务院常务会议决定加快推进电信网、广播电视网和互联网三网融合,并明确提出了推进三网融合的阶段性目标,更是将发展移动互联网业务推向了我国经济发展优先发展的战略高度。
移动互联网的主要终端设备包括智能手机,具备上网功能的媒体播放器(mp4播放器),平板电脑等便携设备。其中,智能手机(Smart Phone)是移动互联网的直接终端,是用户体验移动互联网各项服务的窗口。它具备通话、个人信息管理、媒体播放、电子邮件、基于无线数据通信的浏览器等先进功能,并配有操作系统。与传统手机相比较而言,智能手机的电话功能不占优势,但是网络应用是传统手机无法实现的。随着移动互联网在我国的迅速发展,智能手机也获得了迅速的普及。2010年中国智能手机市场分析报告显示:2010年我国智能手机出货量连续三个季度破千万。另据全球电信软件市场研究公司AnalysysMason发布的最新报告称,2010年~2014年预计全球智能手机销量年均增长率为32%,其中,超过50%的增长来自亚太和拉丁美洲等发展中市场。具备上网功能的媒体播放器由于其能随时随地满足人们欣赏视频音乐和上网冲浪的愿望而备受人们的喜爱,成为便携式娱乐设备的新宠。平板电脑则是一种新型的便携式移动设备,具备普通笔记本电脑的一切功能,还具备触控或手写等便于操作的功能,成为人们移动办公、休闲娱乐的必备之选。
苹果公司于2007年推出的智能手机iphone、媒体播放器ipod touch,以及2010年推出的平板电脑ipad无疑是近年来涌现出来的最引人注目的移动互联网终端设备。iphone是结合照相摄像、个人数码助理、媒体播放器和无线通讯装置的,具有Multi-touch触摸屏界面的智能手机,由苹果公司首席执行官史蒂夫.乔布斯在2007年1月9日举行的Macworld年会上宣布推出,并于2007年6月29日在美国上市。2007年11月,iphone被《时代》杂志选为2007年度最佳发明。2008年6月9日,苹果于全球开发者大会2008(Worldwide Developer Conference2008)上发表新一代iphone-iphone 3G及iphone 2.0固件。2008年7月11日,全球22个国家和地区率先发售iphone 3G。2009年6月8日,苹果在全球开发者大会2009上宣布了新一代的iphone 3GS,并于6月19日开始发售。2010年6月7日,苹果于全球开发者大会2010发表新一代的iphone 4。2010年6月24日,iphone 4在美国、法国、德国、英国、日本五个国家率先上市,随即扩展至全球。2009年10月1日,中国联通官方开放了中国大陆地区预定iphone的网页,同年10月30日下午17时开始在北京世贸天阶举行中国大陆首发仪式。2009年11月1日,iphone正式在中国大陆由联通发售。仅仅用了一年多时间,iphone在中国市场的销量就翻了一番。目前iphone4成为已经成为中国大陆最为热销的智能手机之一。ipodtouch是一款由苹果公司推出的便携式媒体播放器,在2007年9月5日举行的“The Beat GoesOn”产品发表会中公开。ipod touch可以比喻成不含电话及GPS等功能的iphone(An iphonewithout a phone),造型较轻薄,是苹果公司以″最好玩的ipod″为概念所推出的ipod。目前已经升级至第四代,成为时尚人士的新宠。ipad是苹果公司于2010年1月27日发布的一款平板电脑,定位介于苹果的智能手机iphone和笔记本电脑产品(MacBook、MacBook Pro与MacBookAir)之间,提供上网、电子邮件、电子书、音频视频播放等功能。2010年9月ipad正式进入中国市场,已经成为最为热销的平板电脑。
上述的三款苹果产品均采用了IOS操作系统,IOS是由苹果公司为iphone开发的操作系统,供iphone、ipod touch以及ipad使用。与苹果的基于Mac OS X操作系统一样,它也是以Darwin为基础的。IOS的系统架构分为四个层次:核心操作系统层(the Core OS layer),核心服务层(the Core Services layer),媒体层(the Media layer),可轻触层(the Cocoa Touch layer)。IOS的用户界面最典型的特色是对多点触控操作的支持。它允许用户采用滑动、轻按、挤压、旋转等操作与系统交互,便于用户使用。苹果公司支持第三方应用程序研发,于2008年发布了软件开发工具包,允许全世界的开发人员开发iphone和ipod touch应用程序,Xcode是iphone软件开发工具包的开发环境。第三方程序开发者开发出应用后,需经过苹果的审核才能通过App Store进行发布和下载。并非所有的软件都会通过苹果的审核,例如苹果不支持中文输入法的研发。
苹果IOS系统配置中文输入法包括一个手写输入法和一个拼音输入法。IOS系统配置手写输入法能进行简体中文和繁体中文的手写输入。用户在触摸屏上手写输入法的输入区按正确笔顺输入汉字后,输入法在输入区右侧竖排的候选列表中列出候选字。用户选择后,输入法还提供该字的联想字,用户可以持续点击联想字以提高输入的效率。苹果手写输入法的优点在于手写识别正确率比较高,手写输入符合人的书写习惯,对于不知读音的字也能正确输入,缺点是输入效率比较低。IOS系统配置的拼音输入法为用户提供了全拼整句输入、带联想功能的全拼词输入等多种输入方式。全拼整句输入方式是IOS 4.0以上版本提供的新的拼音输入方式。在全拼整句输入方式中,用户连续打入一句话的全拼字符串,在用户键入的过程中,输入法将音字转换结果显示在候选窗中,用户选择候选窗中的正确字词,直至音字转换全部正确为止。在IOS 4.0以下版本中,用户只能采用带联想功能的全拼词输入方式输入汉字,在这种输入方式中,用户打入一个词的拼音串后,该拼音对应的候选词在候选窗显示出来,用户选择后,在候选窗中自动显示出该词对应的联想词供用户进一步选择。IOS系统配置输入法的优点在于输入方式简单,无需学习即可上手,缺点是音字转换正确率比较低,选字环节需浪费大量时间,输入效率比较低,另外未能对中国人的输入习惯(如平卷舌不分的模糊音,双拼等等)提供必要的支持。
尽管苹果公司不支持第三方输入法研发,国内许多著名IT公司仍旧纷纷推出了自己的IOS平台输入法。其中,比较著名的输入法有:百度输入法、QQ输入法、搜狗输入法、Wefit输入法等等。百度iphone输入法是目前IOS平台上最受欢迎的第三方输入法,是一种支持全拼、简拼、双拼、模糊音,具有整句输入和带有联想的词输入等输入方式的输入法,最新版本(2.0)带有拼音自动纠错功能,还提供了T9、笔画、五笔等输入方式。QQ iphone输入法是腾讯公司推出的输入法。搜狗iphone输入法是搜狗公司推出的输入法。Wefit输入法是由威锋网开发团队推出的iphone输入法。这些输入法的功能特点与百度输入法类似。与IOS系统自带中文输入法相比较而言,这些由国内IT公司自主研发的输入法均针对中国人的输入习惯进行了特别的设计,为用户在IOS平台上的中文输入提供了更加丰富的选择。
发明人在实现本发明的过程中发现,以上这些输入法尽管较系统自带的输入法在符合中国人的输入习惯方面均有了不同程度的提高,但仍然存在一些缺点,主要体现在:
1、多数第三方输入法都支持整句输入,但整句输入音字转换的准确率还比较低。
2、双拼是一种对生母韵母进行编码,两键输入一个拼音音节的拼音输入方式。在进行语句输入时,因为按键次数较少,适于手机全键盘的输入。多数输入法未能提供对双拼输入的有效支持。个别输入法允许用户自定义双拼,但用户自定义难度较大。
3、手机等移动平台全键盘按键较小,进行连续拼音输入时非常容易按错,影响了整句输入的效率。多数输入法没有提供连续输入拼音自动纠错的功能。
4、许多用户发音不准(如z|zh不分),多数输入法未能提供对模糊音输入的支持。
发明内容
本发明实施例的主要目的在于提供一种在输入法中使用的音字转换方法和系统,通过对用户输入的拼音流切分结果进行拼音到汉字的转换,以提高整句生成的效率。
本发明实施例的上述目的是通过如下技术方案实现的:
一种音字转换方法,所述方法包括:
整句生成步骤,按照拼音切分路径权重计算规则,对以当前字符结尾的拼音流的所有拼音切分路径排序,选择所述所有拼音切分路径中权重值最高的第一预定数量的拼音切分路径进行整句生成;
Unigram出词步骤,对所述以当前字符结尾的拼音流的所有拼音切分路径进行Unigram出词;
处理步骤,将所述整句生成结果和所述Unigram出词结果进行去重和排序,获得所述以当前字符结尾的拼音流的音字转换结果。
一种音字转换系统,所述系统包括:
整句生成单元,用于按照拼音切分路径权重计算规则,对以当前字符结尾的拼音流的所有拼音切分路径排序,选择所述所有拼音切分路径中权重值最高的第一预定数量的拼音切分路径进行整句生成;
Unigram出词单元,用于对所述以当前字符结尾的拼音流的所有拼音切分路径进行Unigram出词;
处理单元,用于将所述整句生成结果和所述Unigram出词结果进行去重和排序,获得所述以当前字符结尾的拼音流的音字转换结果。
本发明实施例的有益效果在于,通过本实施例的方法和系统,实现了拼音到汉字的转换,通过将可能的整句或词组或汉字候选去重后按一定顺序排序,提高了整句生成效率。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:
图1为应用本发明实施例的音字转换方法的输入法系统的结构示意图;
图2为本发明实施例的音字转换方法的流程图;
图3为对一条拼音切分路径进行整句生成的一个实施例的流程图;
图4为拼音切分路径“yi’zhi’mei’li’de’xiao’hua”对应的整句生成示意图;
图5为对一条拼音切分路径进行整句生成的另外一个实施例的流程图;
图6为用户输入字符示意图;
图7为对以当前字符结尾的拼音流的一条拼音切分路径进行Unigram出词的流程图;
图8为拼音切分路径“yi’zhi’mei’li’de’xiao’hua”的Unigram出词示意图;
图9为将整句生成结果和Unigram出词结果进行去重和排序的流程图;
图10为机器学习示意图;
图11为Word词典结构示意图;
图12为Unigram词典结构示意图;
图13为Bigram词典结构示意图;
图14为用户词库结构示意图;
图15为用户词典结构示意图;
图16为本发明实施例提供的音字转换系统组成示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
图1为应用本发明实施例的音字转换方法的输入法系统的结构示意图,如图1所示,该输入法系统包括用户交互子系统、音字转换子系统和辅助工具子系统。其中,用户交互子系统完成输入法与用户和操作系统的信息交互,其包括:设置模块、初始化模块、键盘响应模块和输入界面模块;音字转换子系统是输入法系统的核心部分,其完成拼音串到汉字串的转换,该音字转换子系统包括:拼音流切分模块、音字转换模块以及机器学习模块;辅助工具子系统为音字转换提供语言模型资源,其包括语言模型训练模块。另外,图1所示的输入法系统还包括数据库,该数据库用于保存拼音切分词典、用户词库、语言规则库、系统词库以及语言模型等,数据库中存储的各类数据用于为音字转换子系统和辅助工具子系统提供必要的支持。
本发明就是对图1所示的输入法系统中音字转换子系统的音字转换模块进行的改进。该音字转换模块的主要功能是实现拼音到汉字的转换,并将可能的汉字候选去重后按一定顺序排序。其中拼音转换为汉字的方式包括整句生成和Unigram出词。整句生成是指对某些特定的拼音切分路径,预测出最有可能对应的句子;Unigram出词是指对于所有可能的拼音切分路径,预测出所有可能的前缀词组或字。最后,将整句生成的结果和Unigram出词的结果去重并按照特定的规则进行排序,完成整个拼音汉字转换过程。以下将结合附图对本实施例的音字转换方法和系统进行详细说明。
本发明实施例提供了一种音字转换方法,如下面的实施例1所述。
实施例1
图2为本发明实施例提供的一种音字转换方法的流程图,请参照图2,该方法包括:
整句生成步骤201:按照拼音切分路径权重计算规则,对以当前字符结尾的拼音流的所有拼音切分路径排序,选择所述所有拼音切分路径中权重值最高的第一预定数量的拼音切分路径进行整句生成;
Unigram出词步骤202:对所述以当前字符结尾的拼音流的所有拼音切分路径进行Unigram出词;
处理步骤203:将所述整句生成结果和所述Unigram出词结果进行去重和排序,获得所述以当前字符结尾的拼音流的音字转换结果。
为了使本实施例的方法更加清楚易懂,以下对以上各步骤的处理分别进行说明。
对于步骤201:
由于整句生成的效率较低,无法对所有可能的拼音切分进行整句生成。目前,按照拼音切分路径权重计算规则对所有可能的拼音切分路径排序,并选择分数最高的几条(第一预定数量)路径进行整句生成。例如可以选择分数最高的4条路径进行整句生成。
其中,对一条拼音切分路径进行整句生成,可以通过图3所示的方法来实现,也可以通过图5所示的方法来实现,以下分别加以说明。
请参照图3,该方法包括:
步骤301:根据核心词库和用户词库确定当前拼音切分路径中每一个拼音对应的所有词条;
其中,在一条拼音切分路径的每一个拼音下面都有一列词组,表示在该拼音切分路径下以此拼音结尾的所有可能的词条。此词条包括两个方面:1、核心词库。此词库包含大部分常用词,存储于核心词典中;2、用户词库。此词库包含此用户高频使用的个性化词组,存储于用户词典中。
步骤302:对于所述当前拼音路径中的每一个拼音,分别计算所述当前拼音切分路径下,以所述当前拼音的每一个词条结尾所对应的整句中概率最大的整句,将所述概率最大的整句对应的相关信息存储于相应的词条节点,根据预定策略选择第二预定数量的词条作为所述当前拼音的词条;
其中,计算当前拼音切分路径下,以每一个词条结尾所对应的整句中概率最大的整句,可以通过以下方法来实现,该方法包括:
S1:根据当前词条Ai的长度确定所述当前词条的前驱拼音B;
S2:分别计算所述前驱拼音B的每一个词条Bj到所述当前词条Ai的整句的概率;
S3:将所述整句的概率中的最大值对应的整句作为以所述当前词条Ai为结尾所对应的整句中概率最大的整句。
其中,整句的概率是指以词条Bj结尾的概率最大整句再接上词条Ai后生成的新整句概率。例如词条Ai为“美丽”,词条Bj为“枝”,则表示以“枝”结尾概率最大的整句再接上词条“美丽”后的新整句“*枝美丽”的概率。
其中,步骤S2分别计算所述前驱拼音B的每一个词条Bj到所述当前词条Ai的整句的概率,可以通过以下方法来实现,该方法包括:
S21:判断所述前驱拼音B的每一个词条Bj与所述当前词条Ai是否具有Bigram关系;
S22:如果所述Bj与所述Ai具有Bigrma关系,则将所述Bj中保存的结果E(Bj),与所述Bj和所述Ai的Bigram关系的对数Log(Bigram(Bj,Ai))的和E(Bj)+Log(Bigram(Bj,Ai))作为所述Bj到所述Ai的整句的概率;
S23:如果所述Bj与所述Ai不具有Bigrma关系,则将所述Bj中保存的结果E(Bj),与所述Bj的Alpha值的对数Log(Alpha(Bj)),以及与所述Ai的概率的对数Log(Pro(Ai))的和E(Bj)+Log(Alpha(Bj))+Log(Pro(Ai))作为所述Bj到所述Ai的整句的概率。
其中,概率最大的整句对应的相关信息包括:1、以该词条结尾所对应的概率最大整句的概率值,也就是在前述“分别计算所述前驱拼音B的每一个词条Bj到所述当前词条Ai的结果”中提到Bj中保存的结果E(Bj);2、以该词条结尾所对应的概率最大整句的前驱词条,例如词条“美丽”的前驱拼音下词条有“之”、“枝”等,但概率最大整句的前驱词条为“枝”。其中,前述相关信息1用于进行计算,前述相关信息2用于计算结束后通过最后一个词条将整个整句回溯出来,即“花”>“小”>“的”>“美丽”>“枝”>“一”。以上只是举例说明,在具体实施时,可以根据需要存储其他与概率最大的整句相关的信息,本实施例并不以此作为限制。
步骤303:选择所述当前拼音切分路径的最后一个拼音下的所有词条节点中概率最大的词条节点,根据所述概率最大的词条节点中存储的相关信息,回溯所述当前拼音切分路径,将所述当前拼音切分路径对应的整条句子输出。
在本实施例的方法中,对于特定某一条拼音切分路径的整句生成。主要采用了Viterbi算法和N元语法模型。以下以图4所示的拼音切分路径“yi’zhi’mei’li’de’xiao’hua”对应的整句生成过程为例,对图3所示的方法进行详细说明。
请参照图4。本实施例的整句生成是以拼音为单位从左向右扫描整个拼音切分路径,对某一个具体的拼音A,其整句生成的详细步骤如下:
步骤401:查询在此拼音切分路径下以拼音A结尾的Unigram词条,并作为词条节点A1、A2、A3、A4...An存储于拼音A下。该步骤401对应前述步骤301的处理。
例如,图4中以拼音“li”结尾的Unigram词条有“里”、“李”、“美丽”、“丽”等词条。
步骤402:对拼音A下的所有词条节点A1、A2、A3、A4、…、An,分别计算此拼音切分路径下以词条A1、A2、A3、A4、…、An结尾所对应的整句中概率最大的,并将相关信息存储于相应的词条节点中。然后从A1、A2、A3、A4、…、An中选择概率最大的几个(第二预定数量)作为最后的词条节点保留在拼音A下,剩下的词条节点舍弃。该步骤402对应前述步骤302的处理。
例如,图4中拼音“li”下有至少4个词条节点“里”、“李”、“美丽”、“丽”,分别计算“yi’zhi’mei’li”所对应“***里”、“***李”、“**美丽”、“***丽”概率最大的,并将结果分别存储于“里”、“李”、“美丽”、“丽”词条节点中。
在Viterbi算法计算过程中,一般每个拼音下面对应的词条节点为200~300个,随着拼音长度的增加,计算量会非常大。但最终需要的结果并非所有的,而是最有可能的那一个,所以本实施例对每个拼音对应的词条节点个数进行优化。对每一个拼音所对应的所有词条节点均通过最小堆进行管理,堆大小可以设定为20。这样每个拼音下只保存最有可能的20个词条节点。
例如,对于拼音“li”下的所有词条,可以按照各词条的概率从大到小的顺序保留前20个词条作为拼音“li”的词条节点。
步骤403:对最后一个拼音M下的所有词条节点M1、M2、M3、M4、…、Mn选择其中概率最大的,并根据词条节点中存储的相关信息回溯将整条句子输出。该步骤403对应前述步骤303的处理。
例如,图4中最后拼音为“hua”,其下的词条节点有“花”、“话”、“校花”、“消化”,其中概率最大的词条节点为“花”,根据词条节点“花”中的存储的信息进行回溯,最后的得到的结果为“一枝美丽的小花”。
在前述步骤402中,计算某拼音切分路径下以某一词条Ai结尾所对应的整句中概率最大的方法如下:
步骤4021:根据词条Ai的长度确定其前驱拼音B,由于整个计算过程是以拼音为单位从左向右扫描的,所以此时前驱拼音B下的所有词条节点B1、B2、B3、B4、…、Bn均已保存了计算结果。该步骤4021对应前述步骤S1的处理。
例如,图4中拼音“li”下的节点“美丽”,由于词条“美丽”的长度为2,则其前驱拼音应为“zhi”。并且根据上述的计算步骤,拼音“zhi”下的词条节点“之”、“枝”、“一直”、“一致”已保存了“yi’zhi”所对应“*之”、“*枝”、“一直”、“一致”概率最大的。
步骤4022:分别计算从B1、B2、B3、B4、…、Bn到Ai的结果,并将结果中的最大值存储于Ai中。
其中,若词条Bj和词条Ai有Bigram关系,则用Bj中保存的结果E(Bj)加上词条Bj和词条Ai的Bigram关系Bigram(Bj,Ai)的对数,即E(Bj)+Log(Bigram(Bj,Ai));若词条Bj和词条Ai没有Bigram关系,则用Bj中存储的结果E(Bj)加上词条Bj的Alpha值Alpha(Bj)的对数,然后再加上词条Ai的概率Pro(Ai)的对数,即E(Bj)+Log(Alpha(Bj))+Log(Pro(Ai))。
例如,图4中拼音“li”下的节点“美丽”,此时分别计算从拼音“zhi”下的词条节点“之”、“枝”、“一直”、“一致”到词条“美丽”的结果,若有Bigram关系如“枝”和“美丽”,则结果为E(“枝”)+Log(Bigram(“枝”,“美丽”));若没有Bigram关系如“一致”和“美丽”,则结果为E(“一致”)+Log(Alpha(“一致”))+Log(Pro(“美丽”)),并将概率最大的相关信息存储于词条节点“美丽”。
通过以上方法,最终得到的图4所示拼音切分路径的整句概率的公式为:
Log(Pro(一))+Log(Bigram(一,枝))+Log(Bigram(枝,美丽))+Log(Bigram(美丽,的))+Log(Bigram(的,小))+Log(Bigram(小,花))。
通过本实施例方法,在存储二元语法模型时,将相应概率值的对数值存储而非概率值本身。这样所有的乘法运算均转变为加法运算,减轻了小型移动设备的计算负担。
图3所示实施例的整句生成是以拼音为单位从左向右扫描整个拼音切分路径,按照前面介绍的方法进行整句生成。
然而,由于生成整句的过程非常耗时,本发明实施例还提供了一种整句生成方法,通过设计相应的缓存机制提高生成整句的效率。缓存机制是指通过申请额外的空间(缓存)存储有用信息,使得下次计算可以直接基于缓存里存储的有用信息来进行计算,从而提高效率,解决用户在句子输入较长后出现响应速度变慢的问题。
由于在用户输入过程中,需要对用户每次按键进行响应。因此在对拼音切分路径“yi’zhi’mei’li’de’xiao’hua”进行响应之前,已经对拼音切分路径“yi’zhi’mei’li’de’xiao’hu”进行过响应。在这种情况下,可以通过缓存记录“yi’zhi’mei’li’de’xiao’hu”响应结果,并基于此结果来对“yi’zhi’mei’li’de’xiao’hua”进行响应。
与图3所示实施例中每次都从左向右扫描整个拼音串并计算可能的整句不同,本实施例的整句生成方法只从当前输入的字符计算可能的整句,如图5所示,该方法包括:
步骤501:根据核心词库和用户词库确定所述当前字符对应的拼音的所有词条;
步骤502:分别计算所述当前拼音切分路径下,以所述每一个词条结尾所对应的整句中概率最大的整句,将所述概率最大的整句对应的相关信息存储于相应的词条节点,根据预定策略选择第二预定数量的词条作为所述当前拼音的词条;
步骤503:选择所述当前拼音切分路径的最后一个拼音下的所有词条节点中概率最大的词条节点,根据所述概率最大的词条节点中存储的相关信息,回溯所述当前拼音切分路径,将所述当前拼音切分路径对应的整条句子输出。
在本实施例中,步骤502和步骤503的处理与前述步骤302和步骤303的处理相同,在此不再赘述。
在本实施例中,由于每次对拼音路径权重TopN的路径生成整句,则相应的缓存需要存储N条路径动态规划的结果。当对某一条拼音切分路径生成整句时,首先让其跟缓存中存储的N条路径进行匹配并找出公共前缀最长的路径,然后在缓存中存储的相关信息基础上生成整句,并把最后结果保存在此缓存中,为下次生成整句保存相关信息。
在用户输入过程中,根据图3所示实施例的方法,每输入一个字符,都进行一次拼音切分和音字转换。例如,用户在输入“yizhimeilidexiaohua”的过程中总共进行了19次拼音切分和音字转换。正常的逻辑是每次的拼音切分和音字转换都从头开始,例如用户已经输入了“yizhimeilidexiao”,接着输入字符“h”,这时对新的字符串重新“yizhimeilidexiaoh”进行拼音切分,然后对新的拼音切分结果重新进行音字转换。由于图3所述方法的计算量和用户输入的字符串长度是成正比,即用户输入的拼音串越长,计算量越大,具体表现为用户输入越长,输入法反应越慢。所以,图5所示实施例的方法增加了“缓存”机制。
如图5所示,首先,假设用户已经输入了“yizhimeilidexiao”,此时可能有多种拼音切分结果,对于此拼音串,其切分结果按拼音切分中的排序规则进行排序可能的结果为:
“yi’zhi’mei’li’de’xiao”、
“yi’zhi’mei’li’de’xia’o”、
“yi’zhi’mei’li’de’xi’ao”等
接下来,对Top3拼音切分路径进行音字转换。此时,Top3的拼音切分路径每个拼音下的词条节点均已存储了计算结果。此时,用户输入字符“h”,重新进行拼音切分排序结果为:
“yi’zhi’mei’li’de’xiao’h”、
“yi’zhi’mei’li’de’xi’ao’h”、
“yi’zhi’mei’li’de’xia’o’h”等
此时在对拼音切分路径“yi’zhi’mei’li’de’xiao’h”进行音字转换时,根据图5所示实施例的方法,首先将其和缓存中3条路径,也即:
“yi’zhi’mei’li’de’xiao”、
“yi’zhi’mei’li’de’xia’o”、
“yi’zhi’mei’li’de’xi’ao”
进行匹配,发现“yi’zhi’mei’li’de’xiao”和“yi’zhi’mei’li’de’xiao’h”公共前缀最长为6(相同前缀拼音长度),并且缓存中“yi’zhi’mei’li’de’xiao”每个拼音下的词条节点相关信息均已在上一轮音字转换中计算,此时无需从“yi”开始计算,而是直接从第7个拼音“h”开始计算即可。即直接查询以第7个拼音“h”结尾的词条,并在其下建立相应的词条节点,然后根据每个词条节点中词条长度确定其前驱拼音,然后按前面所述的方法进行计算。
当然,输入字符“h”后其拼音切分路径“yi′zhi′mei′li′d′e′xiao′h”也有可能排在Top3,此路径和缓存中的最长前缀则为4,此时直接从第5个拼音“d”开始计算即可。其中,“h”、“d”均为简拼,表示生母为“h”、“d”的所有拼音。
为了确保缓存空间的充分利用,需要避免两条路径都基于缓存中存储的同一条路径生成整句。如图6所示,在用户输入“yizhimeilidexiao”后,系统会计算拼音切分路径中所有拼音下的词条节点里的信息。接下来用户输入“yizhimeilidexiaoh”,此时系统只需从拼音“h*”(简拼)继续进行计算即可,而无需按照基本算法中每次都从左向右扫描整个拼音串。从图5所示的流程中可以看出,缓存机制减少了大部分计算,极大程度的提高了用户按键响应速度。
以上对步骤201进行了详细说明,通过步骤201的处理,对某些特定的拼音切分路径预测出了最有可能对应的句子。
对于步骤202:
在音字转换过程中,除了生成整句外,还需要生成较短的词组或字,方便用户进行更加灵活的输入。由于需要确保将用户所有想输入的汉字展示给用户,所以必须对所有有可能的拼音切分路径进行Unigram出词。
其中,对以当前字符结尾的拼音流的一条拼音切分路径进行Unigram出词,可以通过图7所示的方法来实现,请参照图7,该方法包括:
步骤701:确定所述拼音切分路径的所有前缀;
步骤702:判断每一个前缀对应的词组是否已经存在于预先建立的去重词组;
步骤703:如果全部存在,则将所述所有前缀对应的词组作为所述拼音切分路径的Unigram出词结果;
步骤704:如果全部不存在,则根据核心词库、用户词库以及生僻词库查询每一个前缀对应的所有词组,将所述所有词组作为所述拼音切分路径的Unigram出词结果;
步骤705:如果部分存在,则根据核心词库、用户词库以及生僻词库查询不存在的每一个前缀对应的所有词组,将存在的前缀对应的词组以及所述查询获得的不存在的前缀对应的词组作为所述拼音切分路径的Unigram出词结果。
其中,拼音切分路径的前缀是指,分别以拼音长度1、2、3…对原始拼音切分路径从头进行截取,新生成的拼音切分路径即为原始拼音切分路径的前缀。
在本实施例中,在对于特定某一条拼音切分路径进行Unigram的过程中,主要是进行词典查询操作。下面以图8所示的拼音切分路径“yi’zhi’mei’li’de’xiao’hua”对应的Unigram出词过程对图7所示的方法进行说明。请参照图8:
在大多数情况下,拼音切分路径不止一条。例如“yi’zhi’mei’li’de’xiao’hua”其对应的拼音切分结果还有可能为“yi’zhi’mei’li’de’xiao’hu’a”。由于Unigram出词需要对所有可能的拼音切分结果进行出词,所以在对“yi’zhi’mei’li’de’xiao’hua”进行Unigram出词时会查询“yi’zhi”的结果;同样,在对“yi’zhi’mei’li’de’xiao’hu’a”进行Unigram出词时也会查询“yi’zhi”的结果。这样会导致重复查询,并且多余的结果会对去重增加额外的负担。
因此,本实施例的方法在对多条拼音切分结果进行Unigram出词前建立一个去重数组,在每次查询前先看去重数组中是否已存在该前缀及对应的词组。若已存在,则不进行查询;否则,正常查询,查询完成后再将此查询存储到去重数组中,避免下次重复查询。
其中,对该拼音切分路径所有前缀查询其可能对应的所有词组。此词组包括三个方面:1、核心词库。此词库包含大部分常用词,存储于核心词典中;2、用户词库。此词库包含此用户高频使用的个性化词组,存储于用户词典中;3、生僻词库。此词库包含大量的生僻字、词组,存储于生僻词典中。例如,图7中前5条前缀均没有结果,第六条前缀“yi’zhi”其对应的查询结果有:“一直”(核心词库)、“乙酯”(用户词库)等;第七条前缀“yi”其对应的查询结果有:“一”(核心词库)、“祎”(生僻词库)等。
以上对步骤202进行了详细说明,通过步骤202的处理,对所有可能的拼音切分路径,预测出了所有可能的前缀词组或字。
对于步骤203:
得到了整句生成结果和Unigram出词结果后,还需要对所有结果进行去重和排序。
其中,将所述整句生成结果和所述Unigram出词结果进行去重和排序,可以通过图9所示的方法来实现,请参照图9,该方法包括:
步骤901:对所述整句生成结果和所述Unigram出词结果进行权重调整;
步骤902:根据哈希表对权重调整后的结果进行去重,去掉相同的结果中权重相对较低的结果;
步骤903:对去重后的结果进行排序,获得所述以当前字符结尾的拼音流的音字转换结果。
在本实施例中,由于最终的整体排序均是按照词典中所存储的概率进行的,但由于整句生成和Unigram出词是完全独立的两个出词方法,所以其概率没有可比性。因此,本实施例的方法在整体排序之前,先对所有结果进行权重调整。
对于所有的结果(包括整句生成结果和Unigram出词结果),如果完全匹配,即该结果中汉字数目和其对应的拼音切分路径拼音数目一样,则该结果权重增加一个数值,例如增加10000;如果不完全匹配,即该结果中汉字数目小于其对应的拼音切分路径拼音数目。则该结果权重增加另一个数值,例如增加汉字数目*1000。由此,可以实现对所有结果的权重调整。
例如,“qim”对应的拼音切分路径可能为“qi’m”和“qin”(智能纠错结果),其中“qin”对应的所有结果“亲”、“琴”等均是完全匹配,则所有权重增加:10000;而“qi’m”对应的结果中“起码”、“期末”等为完全匹配,其权重增加:10000,但“起”、“其”等其汉字数目为1但其对应的拼音切分路径“qi’m”对应的拼音数目为2,为不完全匹配,所以其权重增加:1*1000=1000。
完成所有结果的权重调整后,可以通过哈希表对最后结果进行去重,若结果一样但权重不一样,则保留权重较高的结果。去重后进行排序即完成所有音字转换过程。
以上对步骤203进行了详细说明,通过步骤203的处理,对整句生成结果和Unigram出词结果,进行了权重调整和去重及排序,完成了拼音切分路径的音字转换过程。
通过本实施例的方法,实现了拼音到汉字的转换,通过将可能的整句或词组或汉字候选去重后按一定顺序排序,提高了整句生成效率。
根据本实施例的方法,还可以在用户使用输入法的过程中采用机器学习方法智能的进行学习,并根据用户的一些特定输入习惯优化出词结果,为用户提供个性化的输入体验。
在本实施例中,机器学习的方法可以通过比较输入法自动生成的语句(原语句)和用户最终选择的语句(目标语句)不同,采用规则和统计相结合的方法对现有模型进行调整,使其更符合用户输入习惯。
在本实施例中,机器学习的内容包括:学习新词、调整现有词词频、去除噪音。以下通过举例对以上机器学习的内容进行说明,在本例中,设定原语句为S,目标语句为ABCDE(由于目标语句需要用户多次选择确认,则每一个字母表示用户一次选择确认的词语)。请参照图10。
对于学习新词:
由于数据稀疏问题,现有模型不可能完全包括所有的词组,缺少的词组在音字转换过程中只能有更小的词组片段生成,严重影响整句生成精度,通过本实施例设定的规则从用户行为中挖掘出新词组添加到现有模型中能够有效地填补缺少的词组,提高精度。本实施例设定的规则如下:
首先,比较S和ABCDE,将不一样的片段作为新词组,单字除外。例如:B和E和S中所对应的片段不一致,但由于B为单字,则只将E作为新词组。如果有连续几个片段不一致例如C、D、E,则将CDE组合在一起作为一个新词组,而非分别作为三个新词组。
其次,比较S和ABCDE,如果不一样的片段为单字,则看其左右是否也有一个单字,如果有则合并为一个新词组。例如:B为单字,且A为单字则将AB作为一个新词组;但由于C不是单字,则BC不能作为一个新词组。
再次,如果ABCDE小于等于6汉字,则将ABCDE整体作为一个新词组。
通过以上规则的设定,从用户行为中挖掘出新词组添加到现有模型中,能够有效地填补缺少的词组,提高精度。
对于调整现有词词频:
现有词词频不准确在一定程度上也会导致原语句和目标语句不一致,可以通过分析用户行为动态的调整现有模型中某些词组的词频。现有规则如下:
首先,比较S和ABCDE,将不一样的片段的词组的词频提高,单字除外。例如:B和E和S中所对应的片段不一致,但由于B为单字,则只将E的词频提高。如果有连续几个片段不一致例如C、D、E,则将CDE组合在一起作为一个词组,而非分别作为三个词组。
其次,比较S和ABCDE,如果不一样的片段为单字,则看其左右是否也有一个单字,如果有则合并为一个词组来提供词频。例如:B为单字,且A为单字则将AB作为一个词组来提高词频;但由于C不是单字,则BC不能作为一个词组来提供词频。
再次,如果ABCDE小于等于6汉字,则将ABCDE整体作为一个词组提高词频。
最后,如果S的词频被提高过,则降低S的词频。
通过以上调整词频的处理,提高了整句生成的效率和精度。
对于去除噪音:
用户在使用过程中,由于误操作可能会产生一些噪音信息。而这些噪音信息会对现有模型做出一些不合理的调整,对出词结果产生不好的影响。为此需要相应的去噪机制将这些噪音信息从有用信息中过滤出来。
在本实施例中,假设对词组E进行调整(添加为新词组或调整此词组词频),具体去噪步骤如下:
首先,在缓存区查看E是否已经存在,若不存在着先存入缓存区。
其次,若E已经在缓存区中,则删除缓存区中与E同拼音的所有词组,然后将E从缓存区转移到用户习惯信息区。
在本实施例中,当首次对某一词组进行调整(添加为新词组或调整此词组词频)时,由于此时无法确定此次调整是否是用户误操作导致还是用户输入习惯的真实表现,所以暂时将调整信息保存到缓存区中;若对该词组进行了多次调整,则认为此调整并非用户误操作,将调整信息转移到用户习惯信息区,同时可以认定在缓存区中与此词组同拼音的词组很有可能为噪音信息,应该将其滤掉。
另外,用户习惯信息区容量较大,并且其内的词组在一般情况下是不会被删除的,只有当用户习惯信息区满时,才会删除一些极不常用的词组,保证用户习惯信息的时效性;而缓存区较小,通过频繁的插入、删除操作及时的过滤掉用户误操作信息,达到去噪的效果。
在本实施例中,机器学习的过程中,也即学习新词、调整现有词词频以及去除噪音等过程都只是针对于用户词典的操作。机器学习目前只影响Unigram出词结果,在进行Unigram出词的时候,除了查询Unigram词典,系统还会查询用户词典。1、新词学习,这些新词会在Unigram出词中查询用户词典的时候查出;2、调整现有词词频,这些现有词在Unigram出词中查询Unigram词典和查询用户词典均会查出,但由于用户词典查出的权重会高于Unigram词典的,在通过最后的去重操作后只会留下权重高的用户词典出词,由于和原先权重相比权重更高了,则此词在最后的排序中会更靠前一些,这样用户最后看到的现象是选过的词排序会越来越靠前;3、去除噪音,由于用户经常会误选,导致一些不合理的新词进入用户词典,这些词同样会通过Unigram出词中查询用户词典的时候查出,这时则需要通过一定的方法将这些新词去除。
以上对音字转换和机器学习进行了详细说明。而支持音字转换和机器学习的系统资源也必不可少,以下对支持本发明实施例的系统资源进行说明。
在本实施例中,系统资源包含了系统词库、语言模型库、用户词库、语言规则库。以下分别进行说明。
对于系统词库:
系统词库用于存储汉字串到数字ID之间的映射关系。由于数字比较比字符串比较快很多,所以在整个输入法内部都是用数字ID代替汉字串操作,只是在最后给用户进行展示的时候才获取相应的汉字串。
图11为系统词库的Word词典的结构示意图,如图11所示。其中:
文件头记录整个词对应ID词典的相关信息。包括文件长度、文件头长度、文件体偏移。
表1为Word词典文件头内容细节表。
文件头内容(Word词典文件头) | 占用空间 |
文件长度 | 4Byte |
文件头长度 | 2Byte |
文件体偏移 | 2Byte |
表1
词头区记录普通词的数量(普通词的个数),普通词区对应的偏移(普通词区的起始位置),特殊词的数量(特殊词的个数),特殊词区对应的偏移(特殊词区的起始位置),词流区的偏移(词流的开始位置)。表2为Word词典词头内容细节表。
内容(Word词典词头) | 占用空间 |
普通词的数量 | 4Byte |
普通词区对应的偏移 | 4Byte |
特殊词的数量 | 4Byte |
特殊词区对应的偏移 | 4Byte |
词流区的偏移 | 4Byte |
表2
普通词区记录词编号(词的编号),对应词偏移(该编号对应在词流中的位置),词权重(该编号对应的权重值)。其中,该普通词区可以按词的编号排序,方便二分查找编号。表3为普通词区内容细节表。
内容(普通词区) | 占用空间 |
词编号 | 4Byte |
对应词偏移 | 4Byte |
词权重 | 4Byte |
表3
特殊词区记录特殊信息(表示所有特殊词的一些共有的信息),平滑值(特殊词的共有的默认平滑值),词编号(词的编号)以及对应词偏移(该编号对应在词流中的位置)。表4为特殊词区内容细节表。
内容(特殊词区) | 占用空间 |
特殊信息 | 4Byte |
平滑值 | 4Byte |
词编号 | 4Byte |
对应词偏移 | 4Byte |
表4
词流区记录词串。词串存储每个词,每个词以‘\0’字符结尾。
对于语言模型库,包括Unigram词典和Bigram词典。
在本实施例中,Unigram词典用于存储词的拼音、权重、汉字串ID等相关信息。在本发明实施例中,首先根据词所含汉字个数,把词分为1区,2区,3区,4区。1区表示汉字所含个数为1的词。2区表示所含汉字个数为2的词。3区表示所含汉字个数为3、4的词。4区表示所含汉字个数为5、6、7、8的词。在查询时,根据词的长度便能确定应该去哪个区查询。然后,把该词的所有声母提取出来。再根据声母编号找到该声母编号对应的韵母起始位置和终止位置。再在那段区间里查询韵母对应的词的编号。
例如,要查“中国”,首先确定其长度为2。在“词长度偏移区”查找到声母二区的开始和结束偏移假设是1024和2048。然后再在该区查找声母ID。在本实施例中,可以定义词的声母编码规则为拼音“zh’ongg’uo”的声母ID为((ID(zh)<<8)|ID(g))。三个字以上的以此类推。假设中国的声母ID为10048。由此便在偏移区间[1024,2048]中查找10048所在的位置。找到后,便能得到该声母编号对应的所有韵母的位置和个数。同理再在韵母区间里查找其韵母编号(编码方式同声母)对应的词编号。由此便能查出“zh’ongg’uo”所对应的所有词,例如“中国”,“种过”等。
图12为Unigram词典结构图示意图。如图12所示,其中:
文件头与图11所示的Word词典的文件头相同,在此不再赘述。
拼音头记录的内容如表5所示。
内容(拼音头) | 占用空间 |
声母区开始偏移 | 4Byte |
声母区结束偏移 | 4Byte |
韵母区开始偏移 | 4Byte |
韵母区结束偏移 | 4Byte |
词编号区偏移 | 4Byte |
词编号区结束偏移 | 4Byte |
表5
声母区记录的内容如表6所示。
内容(声母区) | 占用空间 |
词长度区偏移 | 24Byte |
声母1区 | ... |
声母2区 | ... |
声母3区 | ... |
声母4区 | ... |
表6
其中,词长度区偏移记录的内容如表7所示。
内容(词长度区偏移) | 占用空间 |
声母1区开始偏移 | 2Byte |
声母1区结束偏移 | 2Byte |
声母2区开始偏移 | 2Byte |
声母2区结束偏移 | 2Byte |
声母3区开始偏移 | 4Byte |
声母3区结束偏移 | 4Byte |
声母4区开始偏移 | 4Byte |
声母4区结束偏移 | 4Byte |
表7
其中,声母1区记录的内容如表8所示。
内容(声母1区) | 占用空间 |
编号 | 1Byte |
对应韵母偏移 | 2Byte |
对应韵母个数 | 2Byte |
表8
其中,声母2区记录的内容如表9所示。
内容(声母2区) | 占用空间 |
编号 | 2Byte |
对应韵母偏移 | 2Byte |
对应韵母个数 | 2Byte |
表9
其中,声母3区记录的内容如表10所示。
内容(声母3区) | 占用空间 |
编号 | 4Byte |
对应韵母偏移 | 2Byte |
对应韵母个数 | 2Byte |
表10
其中,声母4区记录的内容如表11所示。
内容(声母4区) | 占用空间 |
编号 | 8Byte |
对应韵母偏移 | 2Byte |
对应韵母个数 | 2Byte |
表11
韵母区记录的内容如表12所示。
内容(韵母区) | 占用空间 |
词长度区偏移 | 24Byte |
韵母1区 | ... |
韵母2区 | ... |
韵母3区 | ... |
表12
其中,词长度区偏移记录的内容如表13所示。
内容(词长度区偏移) | 占用空间 |
韵母1区开始偏移 | 2Byte |
韵母1区结束偏移 | 2Byte |
韵母2区开始偏移 | 2Byte |
韵母2区结束偏移 | 2Byte |
韵母3区开始偏移 | 4Byte |
韵母3区结束偏移 | 4Byte |
韵母4区开始偏移 | 4Byte |
韵母4区结束偏移 | 4Byte |
表13
其中,韵母1区记录的内容如表14所示。
内容(韵母1区) | 占用空间 |
编号 | 1Byte |
对应词偏移 | 2Byte |
对应词个数 | 2Byte |
表14
其中,韵母2区记录的内容如表15所示。
内容(韵母2区) | 占用空间 |
编号 | 2Byte |
对应词偏移 | 2Byte |
对应词个数 | 2Byte |
表15
其中,韵母3区记录的内容如表16所示。
内容(韵母3区) | 占用空间 |
编号 | 4Byte |
对应词偏移 | 2Byte |
对应词个数 | 2Byte |
表16
其中,韵母4区记录的内容如表17所示。
内容(韵母4区) | 占用空间 |
编号 | 8Byte |
对应词偏移 | 2Byte |
对应词个数 | 2Byte |
表17
词编号区记录的内容如表18所示。
内容(词编号) | 占用空间 |
编号 | 4Byte |
表18
在本实施例中,Bigram词典的主要功能是根据输入词ID查询预期关联的词以及权重。词典首先按照第一个词ID建立索引(升序),记录关联词的起始和结束位置,第二词同样按照升序排列。针对第一/二词均可以进行折半查找(O(log(n)+O(log(m)),查找ID对应权重。
图13为Bigram词典结构图示意图。如图13所示,其中:
文件头与图11所示的Word词典的文件头相同,在此不再赘述。
词头记录的内容如表19所示。
内容(词头) | 占用空间 |
Bigram总数量 | 4Byte |
第一词区偏移 | 4Byte |
第二词区偏移 | 4Byte |
表19
第一词区记录的内容如表20所示。
内容(第一词区) | 占用空间 |
词编号 | 2Byte |
对应第二词偏移 | 4Byte |
对应第二词总个数 | 2Byte |
表20
第二词区记录的内容如表21所示。
内容(第二词区) | 占用空间 |
词编号 | 2Byte |
对应bigram权重 | 4Byte |
表21
在本实施例中,对于系统词库和语言模型库,所有偏移均为相对偏移。即相对它所在区域的偏移,例如:文件体偏移是指相对文件起始位置,普通词区偏移是指相对文件起始位置,特殊词区偏移是指相对文件起始位置,词流区偏移是指相对文件起始位置,声母/韵母区开始/结束偏移是指相对文件起始位置,词编号区开始/结束偏移是指相对文件起始位置,对应词偏移是指相对词流区起始位置,声母n区开始/结束偏移是指相对声母区起始位置,韵母n区开始/结束偏移是指相对韵母区起始位置,对应韵母偏移是指相对韵母n区起始位置,词偏移是指相对词编号区起始位置。另外,由于所有ID都是有序存储,故二分查找最坏情况时间复杂度应为:max(log(声母区n所含id数)*log(韵母n区所含id数))n=1,2,3,4。
对于用户词库:
在本实施例中,用户词库是为了弥补核心词典词库的不足,更改候选字序、词序,提高长句准确性而设计的。用户词库拥有较高的可扩展性,支持动态编辑。用户词库主要通过两种方式导入字词:1.新词自动学习;2.外部词典导入。
图14为用户词库结构示意图。如图14所示,其中:
文件头与图11所示的Word词典的文件头相同,在此不再赘述。
声母区头记录的内容如表22所示。
内容(声母区头) | 占用空间 |
内存池空闲偏移 | 4Byte |
内存池已用节点数 | 4Byte |
空闲 | 9Byte |
表22
声母区单元记录的内容如表23所示。
内容(声母区单元) | 占用空间 |
声母id | 8Byte |
左子树偏移 | 2Byte |
右子数偏移 | 2Byte |
所对应韵母在韵母区开始偏移 | 2Byte |
平衡树平衡标记 | 1Byte |
内存池下一单元偏移 | 2Byte |
表23
韵母区头记录的内容如表24所示。
内容(韵母区头) | 占用空间 |
内存池空闲偏移 | 4Byte |
内存池已用节点数 | 4Byte |
空闲 | 6Byte |
表24
韵母区单元记录的内容如表25所示。
内容(韵母区单元) | 占用空间 |
韵母id | 8Byte |
所对应词在词母区开始偏移 | 2Byte |
对应同声母的下一韵母偏移 | 2Byte |
内存池下一单元偏移 | 2Byte |
表25
词区头记录的内容如表26所示。
内容(词区头) | 占用空间 |
内存池空闲偏移 | 4Byte |
内存池已用节点数 | 4Byte |
空闲 | 18Byte |
表26
词区单元记录的内容如表27所示。
内容(词区单元) | 占用空间 |
词字符串 | 19Byte |
对应词同拼音的下一词偏移 | 2Byte |
词属性 | 1Byte |
词权重 | 4Byte |
内存池下一单元偏移 | 2Byte |
表27
缓存区头记录的内容如表28所示。
内容(缓存区头) | 占用空间 |
内存池空闲偏移 | 4Byte |
内存池已用节点数 | 4Byte |
空闲 | 31Byte |
表28
缓冲区单元记录的内容如表29所示。
内容(缓存区单元) | 占用空间 |
声母id | 8Byte |
韵母id | 8Byte |
词字符串 | 19Byte |
词权重 | 4Byte |
内存池下一单元偏移 | 2Byte |
表29
图15为用户词典结构示例图,该示例中的用户词典是图14所示的用户词库的一个示例。请参照图15,在该用户词典中,声母区为平衡二叉树结构,其他3区为链式结构,查找的时间复杂度为声母区:O(log(n)),其他3区:O(n)。在本实施例中,可以对该用户词典里面的词附加词性信息,其中,词性可以分成核心词和新词,核心词是核心词典内的词,加入用户词典以更新候选词词序;新词也就是核心词典内没有的词。在本实施例中,对每次添加词语的请求,可以先判断该词是否在用户词典中,如果在用户词典中,则清理缓冲区中同拼音的词,更新该词在词典区中的权重;如果不在用户词典中,则判断其词性,如果是核心词,则清理缓冲区中同拼音的词,并将该词加入到词典区中;如果是新词,则判断该词是否在缓冲区中,如果在缓冲区中,则将其移到词典区中,否则将其加入到缓冲区中,同时清理缓冲区中同拼音的词。
对于语言规则库:
在本实施例中,语言规则库是指生产整句所利用的规则。在本实施例中,为了进一步提升音字转换的准确性,还可以引入语言学规则来描述语言单位间长距离的约束关系,如“一枝美丽的小花”中量词“枝”对“花”存在约束关系,在一个实施例中,可以通过引入正则表达式规则来描述这种约束关系,正则表达式具有简单快速,易于扩充的优点,语言规则库可以保存用于描述语言搭配规则的正则表达式的集合。
通过本实施例的音字转换方法,可以达成如下有益效果:
1、通过本实施例的音字转换方法,实现了精准的音字转换。为测试本实施例的音字转换方法的音字转换精度,发明人设计了如下实验:首先实现一个字音转换程序,能够将汉字串转换为无音调拼音串。给定一个测试语料库,首先将它转换为拼音串,进而将拼音串通过本实施例的音字转换方法转换为汉字串,将这个结果与原始汉字串进行自动比对,从而获得音字转换的准确率。经北大人民日报语料库2000年一月份语料测试表明,目前本实施例的音字转换方法的准确率为89%,百度拼音为85%。
2、本实施例的音字转换方法融合了智能纠错技术,智能纠错使用户获得了前所未有的输入体验。对用户输入的容错,使用户不再小心翼翼地按动键盘,输入的按键速度大幅提升。
3、通过本实施例的音字转换方法,使得候选窗中不仅仅包含当前候选字词,而是将具有较大生成概率的短语至于前列,便于用户尽早地选择更多的局部正确音字转换结果,提高输入的效率。
4、通过本实施例的音字转换方法,对双拼的充分支持进一步提升了输入的效率。双拼是输入效率最高的拼音输入方式之一,其输入效率已经接近汉字输入每字按键的理论极限。本实施例的方法是对双拼支持最充分的输入法,极大地方便了双拼输入用户的使用。
5、通过本实施例的音字转换方法,对全拼与简拼混合输入的方式使用户体验到一种随心所欲输入拼音的新体验。
6、通过本实施例的音字转换方法,对模糊音的支持方便了有特别口音用户的使用。以上的一些设计,极大地提高了应用本实施例的音字转换方法的输入法的输入效率,提升了用户的输入体验。
本实施例提供的音字转换方法所涉及的各项技术方案,均针对移动平台硬件配置相对较低,系统资源较少的特点进行了专门的设计,对技术性能进行了优化,使得本发明所提及的各项技术方案在实际应用中响应迅速,智能化程度高,使用户在使用输入法过程中获得流畅、快速、精准的输入体验。
本发明实施例还提供了一种音字转换系统,如下面的实施例2所述。由于该音字转换系统解决问题的原理与上述实施例1的方法相似,因此该音字转换系统的实施可以参见实施例1的方法的实施,重复之处不再赘述。
实施例2
图16为本发明实施例提供的一种音字转换系统的组成框图,请参照图16,该系统包括:
整句生成单元161,用于按照拼音切分路径权重计算规则,对以当前字符结尾的拼音流的所有拼音切分路径排序,选择所述所有拼音切分路径中权重值最高的第一预定数量的拼音切分路径进行整句生成;
Unigram出词单元162,用于对所述以当前字符结尾的拼音流的所有拼音切分路径进行Unigram出词;
处理单元163,用于将所述整句生成结果和所述Unigram出词结果进行去重和排序,获得所述以当前字符结尾的拼音流的音字转换结果。
在本实施例2中,整句生成单元161具体用于对所述第一预定数量的拼音切分路径的每一条进行整句生成。
在一个实施例中,该整句生成单元161包括:
第一确定模块1611,用于根据核心词库和用户词库确定当前拼音切分路径中每一个拼音对应的所有词条;
第一处理模块1612,对于所述当前拼音路径中的每一个拼音,用于分别计算所述当前拼音切分路径下,以所述当前拼音的每一个词条结尾所对应的整句中概率最大的整句,将所述概率最大的整句对应的相关信息存储于相应的词条节点,根据预定策略选择第二预定数量的词条作为所述当前拼音的词条;
第一生成模块1613,用于选择所述当前拼音切分路径的最后一个拼音下的所有词条节点中概率最大的词条节点,根据所述概率最大的词条节点中存储的相关信息,回溯所述当前拼音切分路径,将所述当前拼音切分路径对应的整条句子输出。
在另外一个实施例中,该整句生成单元161包括:
第二确定模块1611’,用于根据核心词库和用户词库确定所述当前字符对应的拼音的所有词条;
第二处理模块1612’,用于分别计算所述当前拼音切分路径下,以所述每一个词条结尾所对应的整句中概率最大的整句,将所述概率最大的整句对应的相关信息存储于相应的词条节点,根据预定策略选择第二预定数量的词条作为所述当前拼音的词条;
第二生成模块1613’,用于选择所述当前拼音切分路径的最后一个拼音下的所有词条节点中概率最大的词条节点,根据所述概率最大的词条节点中存储的相关信息,回溯所述当前拼音切分路径,将所述当前拼音切分路径对应的整条句子输出。
在前述整句生成单元161的两个实施例中,第一处理模块1612和第二处理模块1612’分别用于计算当前拼音切分路径下,以每一个词条结尾所对应的整句中概率最大的整句,该第一处理模块1612和第二处理模块1612’可以分别包括:
确定子模块16121,用于根据当前词条Ai的长度确定所述当前词条的前驱拼音B;
计算子模块16122,用于分别计算所述前驱拼音B的每一个词条Bj到所述当前词条Ai的整句的概率;
处理子模块16123,用于将所述整句的概率中的最大值对应的整句作为以所述当前词条Ai为结尾所对应的整句中概率最大的整句。
其中,计算子模块16122具体用于判断所述前驱拼音B的每一个词条Bj与所述当前词条Ai是否具有Bigram关系;在所述Bj与所述Ai具有Bigrma关系时,将所述Bj中保存的结果E(Bj),与所述Bj和所述Ai的Bigram关系的对数Log(Bigram(Bj,Ai))的和E(Bj)+Log(Bigram(Bj,Ai))作为所述Bj到所述Ai的整句的概率;在所述Bj与所述Ai不具有Bigrma关系时,将所述Bj中保存的结果E(Bj),与所述Bj的Alpha值的对数Log(Alpha(Bj)),以及与所述Ai的概率的对数Log(Pro(Ai))的和E(Bj)+Log(Alpha(Bj))+Log(Pro(Ai))作为所述Bj到所述Ai的整句的概率。
在本实施例2中,Unigram出词单元162具体用于对所述以当前字符结尾的拼音流的每一条拼音切分路径进行Unigram出词,该Unigram出词单元162包括:
第三确定模块1621,用于确定所述拼音切分路径的所有前缀;
判断模块1622,用于判断每一个前缀对应的词组是否已经存在于预先建立的去重词组;
出词模块1623,用于在所述判断模块的判断结果为全部存在时,将所述所有前缀对应的词组作为所述拼音切分路径的Unigram出词结果;在所述判断模块的判断结果为全部不存在时,根据核心词库、用户词库以及生僻词库查询每一个前缀对应的所有词组,将所述所有词组作为所述拼音切分路径的Unigram出词结果;在所述判断模块的判断结果为部分存在时,根据核心词库、用户词库以及生僻词库查询不存在的每一个前缀对应的所有词组,将存在的前缀对应的词组以及所述查询获得的不存在的前缀对应的词组作为所述拼音切分路径的Unigram出词结果。
在本实施例2中,处理单元163包括:
调整模块1631,用于对所述整句生成结果和所述Unigram出词结果进行权重调整;
去重模块1632,用于根据哈希表对权重调整后的结果进行去重,去掉相同的结果中权重相对较低的结果;
排序模块1633,用于对去重后的结果进行排序,获得所述以当前字符结尾的拼音流的音字转换结果。
与实施例1提供的音字转换方法所达成的有益效果相同,本实施例提供的音字转换系统所涉及的各项技术方案,均针对移动平台硬件配置相对较低,系统资源较少的特点进行了专门的设计,对技术性能进行了优化,使得本发明所提及的各项技术方案在实际应用中响应迅速,智能化程度高,使用户在使用输入法过程中获得流畅、快速、精准的输入体验。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种音字转换方法,其特征在于,所述方法包括:
整句生成步骤,按照拼音切分路径权重计算规则,对以当前字符结尾的拼音流的所有拼音切分路径排序,选择所述所有拼音切分路径中权重值最高的第一预定数量的拼音切分路径进行整句生成;
Unigram出词步骤,对所述以当前字符结尾的拼音流的所有拼音切分路径进行Unigram出词;
处理步骤,将所述整句生成结果和所述Unigram出词结果进行去重和排序,获得所述以当前字符结尾的拼音流的音字转换结果,
其中,在所述Unigram出词步骤中,对所述以当前字符结尾的拼音流的一条拼音切分路径进行Unigram出词,包括以下步骤:
确定所述拼音切分路径的所有前缀;
判断每一个前缀对应的词组是否已经存在于预先建立的去重词组;
如果全部存在,则将所述所有前缀对应的词组作为所述拼音切分路径的Unigram出词结果;
如果全部不存在,则根据核心词库、用户词库以及生僻词库查询每一个前缀对应的所有词组,将所述所有词组作为所述拼音切分路径的Unigram出词结果;
如果部分存在,则根据核心词库、用户词库以及生僻词库查询不存在的每一个前缀对应的所有词组,将存在的前缀对应的词组以及所述查询获得的不存在的前缀对应的词组作为所述拼音切分路径的Unigram出词结果。
2.根据权利要求1所述的方法,其特征在于,在所述整句生成步骤中,对一条拼音切分路径进行整句生成,包括以下步骤:
根据核心词库和用户词库确定当前拼音切分路径中每一个拼音对应的所有词条;
对于所述当前拼音路径中的每一个拼音,分别计算所述当前拼音切分路径下,以所述当前拼音的每一个词条结尾所对应的整句中概率最大的整句,将所述概率最大的整句对应的相关信息存储于相应的词条节点,根据预定策略选择第二预定数量的词条作为所述当前拼音的词条;
选择所述当前拼音切分路径的最后一个拼音下的所有词条节点中概率最大的词条节点,根据所述概率最大的词条节点中存储的相关信息,回溯所述当前拼音切分路径,将所述当前拼音切分路径对应的整条句子输出。
3.根据权利要求1所述的方法,其中,在所述整句生成步骤中,对一条拼音切分路径进行整句生成,包括以下步骤:
根据核心词库和用户词库确定所述当前字符对应的拼音的所有词条;
分别计算所述当前拼音切分路径下,以所述每一个词条结尾所对应的整句中概率最大的整句,将所述概率最大的整句对应的相关信息存储于相应的词条节点,根据预定策略选择第二预定数量的词条作为所述当前拼音的词条;
选择所述当前拼音切分路径的最后一个拼音下的所有词条节点中概率最大的词条节点,根据所述概率最大的词条节点中存储的相关信息,回溯所述当前拼音切分路径,将所述当前拼音切分路径对应的整条句子输出。
4.根据权利要求2或3所述的方法,其中,计算当前拼音切分路径下,以每一个词条结尾所对应的整句中概率最大的整句,包括:
根据当前词条Ai的长度确定所述当前词条的前驱拼音B;
分别计算所述前驱拼音B的每一个词条Bj到所述当前词条Ai的整句的概率;
将所述整句的概率中的最大值对应的整句作为以所述当前词条Ai为结尾所对应的整句中概率最大的整句。
5.根据权利要求4所述的方法,其中,分别计算所述前驱拼音B的每一个词条Bj到所述当前词条Ai的整句的概率,包括:
判断所述前驱拼音B的每一个词条Bj与所述当前词条Ai是否具有Bigram关系;
如果所述Bj与所述Ai具有Bigram关系,则将所述Bj中保存的结果E(Bj),与所述Bj和所述Ai的Bigram关系的对数Log(Bigram(Bj,Ai))的和E(Bj)+Log(Bigram(Bj,Ai))作为所述Bj到所述Ai的整句的概率;
如果所述Bj与所述Ai不具有Bigram关系,则将所述Bj中保存的结果E(Bj),与所述Bj的Alpha值的对数Log(Alpha(Bj)),以及与所述Ai的概率的对数Log(Pro(Ai))的和E(Bj)+Log(Alpha(Bj))+Log(Pro(Ai))作为所述Bj到所述Ai的整句的概率。
6.根据权利要求1所述的方法,其中,在所述处理步骤中,将所述整句生成结果和所述Unigram出词结果进行去重和排序,包括以下步骤:
对所述整句生成结果和所述Unigram出词结果进行权重调整;
根据哈希表对权重调整后的结果进行去重,去掉相同的结果中权重相对较低的结果;
对去重后的结果进行排序,获得所述以当前字符结尾的拼音流的音字转换结果。
7.一种音字转换系统,其特征在于,所述系统包括:
整句生成单元,用于按照拼音切分路径权重计算规则,对以当前字符结尾的拼音流的所有拼音切分路径排序,选择所述所有拼音切分路径中权重值最高的第一预定数量的拼音切分路径进行整句生成;
Unigram出词单元,用于对所述以当前字符结尾的拼音流的所有拼音切分路径进行Unigram出词;
处理单元,用于将所述整句生成结果和所述Unigram出词结果进行去重和排序,获得所述以当前字符结尾的拼音流的音字转换结果,
其中,所述Unigram出词单元具体用于对所述以当前字符结尾的拼音流的每一条拼音切分路径进行Unigram出词,所述Unigram出词单元包括:
第三确定模块,用于确定所述拼音切分路径的所有前缀;
判断模块,用于判断每一个前缀对应的词组是否已经存在于预先建立的去重词组;
出词模块,用于在所述判断模块的判断结果为全部存在时,将所述所有前缀对应的词组作为所述拼音切分路径的Unigram出词结果;在所述判断模块的判断结果为全部不存在时,根据核心词库、用户词库以及生僻词库查询每一个前缀对应的所有词组,将所述所有词组作为所述拼音切分路径的Unigram出词结果;在所述判断模块的判断结果为部分存在时,根据核心词库、用户词库以及生僻词库查询不存在的每一个前缀对应的所有词组,将存在的前缀对应的词组以及所述查询获得的不存在的前缀对应的词组作为所述拼音切分路径的Unigram出词结果。
8.根据权利要求7所述的系统,其特征在于,所述整句生成单元具体用于对所述第一预定数量的拼音切分路径的每一条进行整句生成,所述整句生成单元包括:
第一确定模块,用于根据核心词库和用户词库确定当前拼音切分路径中每一个拼音对应的所有词条;
第一处理模块,对于所述当前拼音路径中的每一个拼音,用于分别计算所述当前拼音切分路径下,以所述当前拼音的每一个词条结尾所对应的整句中概率最大的整句,将所述概率最大的整句对应的相关信息存储于相应的词条节点,根据预定策略选择第二预定数量的词条作为所述当前拼音的词条;
第一生成模块,用于选择所述当前拼音切分路径的最后一个拼音下的所有词条节点中概率最大的词条节点,根据所述概率最大的词条节点中存储的相关信息,回溯所述当前拼音切分路径,将所述当前拼音切分路径对应的整条句子输出。
9.根据权利要求7所述的系统,其中,所述整句生成单元具体用于对所述第一预定数量的拼音切分路径的每一条进行整句生成,所述整句生成单元包括:
第二确定模块,用于根据核心词库和用户词库确定所述当前字符对应的拼音的所有词条;
第二处理模块,用于分别计算所述当前拼音切分路径下,以所述每一个词条结尾所对应的整句中概率最大的整句,将所述概率最大的整句对应的相关信息存储于相应的词条节点,根据预定策略选择第二预定数量的词条作为所述当前拼音的词条;
第二生成模块,用于选择所述当前拼音切分路径的最后一个拼音下的所有词条节点中概率最大的词条节点,根据所述概率最大的词条节点中存储的相关信息,回溯所述当前拼音切分路径,将所述当前拼音切分路径对应的整条句子输出。
10.根据权利要求8所述的系统,其中,所述第一处理模块用于计算当前拼音切分路径下,以每一个词条结尾所对应的整句中概率最大的整句,所述第一处理模块包括:
确定子模块,用于根据当前词条Ai的长度确定所述当前词条的前驱拼音B;
计算子模块,用于分别计算所述前驱拼音B的每一个词条Bj到所述当前词条Ai的整句的概率;
处理子模块,用于将所述整句的概率中的最大值对应的整句作为以所述当前词条Ai为结尾所对应的整句中概率最大的整句。
11.根据权利要求9所述的系统,其中,所述第二处理模块用于计算当前拼音切分路径下,以每一个词条结尾所对应的整句中概率最大的整句,所述第二处理模块包括:
确定子模块,用于根据当前词条Ai的长度确定所述当前词条的前驱拼音B;
计算子模块,用于分别计算所述前驱拼音B的每一个词条Bj到所述当前词条Ai的整句的概率;
处理子模块,用于将所述整句的概率中的最大值对应的整句作为以所述当前词条Ai为结尾所对应的整句中概率最大的整句。
12.根据权利要求10或11所述的系统,其中,所述计算子模块具体用于判断所述前驱拼音B的每一个词条Bj与所述当前词条Ai是否具有Bigram关系;在所述Bj与所述Ai具有Bigram关系时,将所述Bj中保存的结果E(Bj),与所述Bj和所述Ai的Bigram关系的对数Log(Bigram(Bj,Ai))的和E(Bj)+Log(Bigram(Bj,Ai))作为所述Bj到所述Ai的整句的概率;在所述Bj与所述Ai不具有Bigram关系时,将所述Bj中保存的结果E(Bj),与所述Bj的Alpha值的对数Log(Alpha(Bj)),以及与所述Ai的概率的对数Log(Pro(Ai))的和E(Bj)+Log(Alpha(Bj))+Log(Pro(Ai))作为所述Bj到所述Ai的整句的概率。
13.根据权利要求7所述的系统,其中,所述处理单元包括:
调整模块,用于对所述整句生成结果和所述Unigram出词结果进行权重调整;
去重模块,用于根据哈希表对权重调整后的结果进行去重,去掉相同的结果中权重相对较低的结果;
排序模块,用于对去重后的结果进行排序,获得所述以当前字符结尾的拼音流的音字转换结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110187942.1A CN102866781B (zh) | 2011-07-06 | 2011-07-06 | 一种音字转换方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110187942.1A CN102866781B (zh) | 2011-07-06 | 2011-07-06 | 一种音字转换方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102866781A CN102866781A (zh) | 2013-01-09 |
CN102866781B true CN102866781B (zh) | 2015-10-07 |
Family
ID=47445687
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110187942.1A Expired - Fee Related CN102866781B (zh) | 2011-07-06 | 2011-07-06 | 一种音字转换方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102866781B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107291730B (zh) * | 2016-03-31 | 2020-07-31 | 阿里巴巴集团控股有限公司 | 对查询词提供校正建议的方法、装置、及概率词典构建方法 |
CN105913848A (zh) * | 2016-04-13 | 2016-08-31 | 乐视控股(北京)有限公司 | 一种基于最小堆的路径存储方法、系统和语音识别器 |
CN105955986A (zh) * | 2016-04-18 | 2016-09-21 | 乐视控股(北京)有限公司 | 一种字符的转换方法及装置 |
CN107247519B (zh) * | 2017-08-16 | 2020-09-29 | 北京搜狗科技发展有限公司 | 一种输入方法及装置 |
CN110245331A (zh) * | 2018-03-09 | 2019-09-17 | 中兴通讯股份有限公司 | 一种语句转换方法、装置、服务器及计算机存储介质 |
CN112232195B (zh) * | 2020-10-15 | 2024-02-20 | 北京临近空间飞行器系统工程研究所 | 一种手写汉字识别方法、装置及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101493812A (zh) * | 2009-03-06 | 2009-07-29 | 中国科学院软件研究所 | 一种音字转换方法 |
-
2011
- 2011-07-06 CN CN201110187942.1A patent/CN102866781B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101493812A (zh) * | 2009-03-06 | 2009-07-29 | 中国科学院软件研究所 | 一种音字转换方法 |
Non-Patent Citations (2)
Title |
---|
一种语句级汉字输入技术的研究;徐志明等;《高技术通讯》;20000131;第2000年卷(第01期);51-55 * |
基于支持向量机的音字转换模型;姜维等;《中文信息学报》;20070331;第21卷(第2期);100-105 * |
Also Published As
Publication number | Publication date |
---|---|
CN102866781A (zh) | 2013-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102866782B (zh) | 一种提高整句生成效率的输入法和输入法系统 | |
US10156981B2 (en) | User-centric soft keyboard predictive technologies | |
CN101183281B (zh) | 一种输入法中候选词的相关词输入的方法及系统 | |
US8745051B2 (en) | Resource locator suggestions from input character sequence | |
CN102866781B (zh) | 一种音字转换方法和系统 | |
US7979425B2 (en) | Server-side match | |
US8356041B2 (en) | Phrase builder | |
US20160188573A1 (en) | Integration of domain information into state transitions of a finite state transducer for natural language processing | |
CN101539836A (zh) | 一种人机界面交互系统和方法 | |
US10275483B2 (en) | N-gram tokenization | |
CN107704102A (zh) | 一种文本输入方法及装置 | |
US20070164782A1 (en) | Multi-word word wheeling | |
CN102184028A (zh) | 获取与输入按键序列相对应的候选字符串的方法与设备 | |
CN102063194A (zh) | 用于供用户进行文字输入的方法、设备、服务器和系统 | |
CN103383699A (zh) | 字符串检索方法及系统 | |
WO2020232881A1 (zh) | 文本分词方法及装置 | |
CN110083683A (zh) | 基于随机游走的实体语义标注方法 | |
CN102866783B (zh) | 一种拼音流切分方法和系统 | |
CN102929864A (zh) | 一种音字转换方法及装置 | |
JP5231484B2 (ja) | 音声認識装置、音声認識方法、プログラム、及びプログラムを配信する情報処理装置 | |
CN114328798A (zh) | 搜索文本的处理方法、装置、设备、存储介质和程序产品 | |
CN103440046A (zh) | 日文输入方法及系统 | |
CN114296561A (zh) | 用户词库的获取方法、候选词的生成方法及装置 | |
CN100561469C (zh) | 创建和使用中文语言数据和用户自纠正数据的方法和系统 | |
CN102902363A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20151007 |