著录项信息
专利名称 | 一种整句生成方法及装置 |
申请号 | CN200710178040.5 | 申请日期 | 2007-11-23 |
法律状态 | 暂无 | 申报国家 | 中国 |
公开/公告日 | 2008-04-09 | 公开/公告号 | CN101158969 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F17/30 | IPC分类号 | G;0;6;F;1;7;/;3;0;;;G;0;6;F;1;7;/;2;7查看分类表>
|
申请人 | 腾讯科技(深圳)有限公司 | 申请人地址 | 广东省深圳市南山区粤海街道科技中一路腾讯大厦16层
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 腾讯科技(深圳)有限公司,深圳市世纪光速信息技术有限公司 | 当前权利人 | 腾讯科技(深圳)有限公司,深圳市世纪光速信息技术有限公司 |
发明人 | 张会鹏 |
代理机构 | 北京派特恩知识产权代理事务所(普通合伙) | 代理人 | 张颖玲;王黎延 |
摘要
本发明公开了一种整句生成的方法,该方法包括:对各候选词两侧上下文分词;在词表中查询每个候选词与所述上下文的共现词频;根据得到的共现词频计算每个候选词与上下文构成整句的概率,选择与上下文构成整句概率最大的候选词输出。本发明还公开了相应装置,该装置包括:查询模块、第一缓冲区、第二缓冲区、整句输出模块;其中,第一、第二缓冲区,分别用于存储当前拼音输入的上、下文;查询模块,用于在词表中查询各候选词词频、各候选词与上下文词组共现词频;整句输出模块,用于计算根据每个候选词与上下文共现的条件概率,并选择条件概率最大的候选词与上下文构成整句输出。本发明整句输出准确率更高。
1.一种整句生成的装置,其特征在于,该装置包括:
用于截取光标两侧上下文并对所截取的上下文分别进行分词的模块;
用于对当前拼音输入划分音节并获取每个音节候选词的模块;
用于在输入法词表中查询各音节的全部候选词、各候选词词频、上下文单个词词频、各候选词与上下文的共现词频的模块;
用于分别计算各音节候选词的条件概率并对每个音节选取条件概率最大的确定为候选词的模块;以及
用于组成整句输出的模块。
2.一种整句生成的方法,其特征在于,该方法包括:
A、截取光标两侧上下文,并对所截取的上下文分别进行分词;
B、对当前拼音输入划分音节,获取每个音节的候选词;
C、在输入法词表中查询各音节的全部候选词、各候选词词频、上下文单个词词频、各候选词与上下文的共现词频;
D、分别计算各音节候选词的条件概率,对每个音节选取条件概率最大的确定为候选词,组成整句输出。
3.根据权利要求2所述的整句生成的方法,其特征在于,步骤A中根据缓冲区大小,截取光标两侧上下文,且遇到标点结束截取。
4.根据权利要求2所述的整句生成的方法,其特征在于,步骤A中所述分词为将上下文根据输入法词表分别划分为若干个词。
5.根据权利要求2所述的整句生成的方法,其特征在于,所述方法还包括:根据输入法词表,采用原始文本训练,存储共同出现的词的共现词频。
6.根据权利要求5所述的整句生成的方法,其特征在于,所述原始文本训练步骤包括:
选取若干文本并扫描;
对扫描结果进行分词;
统计分词结果,存储单个词、各词组的共现词频;
其中,共现词频词组中包含的词的个数,根据缓冲区的大小确定。
7.根据权利要求2所述的整句生成的方法,其特征在于,所述候选词的条件概率根据如下公式计算:
其中,A表示光标两侧上下文的单个词,B表示所述候选词;P(B)表示所述候选词出现的条件概率;a和b为0~1之间的数,且a与b之和小于1;fAB、fA以及fB分别表示A、B两个词的共现词频、A词的词频以及B词的词频;F表示所构成整句中的所有词的词频总和,N表示所构成整句中的总的词数。
技术领域\n本发明涉及汉字输入技术,特别是一种整句生成方法及装置。\n背景技术\n在打字的过程中,经常需要对已输入的文字进行修改,如删除个别的词句或插入个别的词句,这样,就需要根据新插入的词或词句生成新的整句。传统的输入法在句子中间插入词或句子与在其他场合输入时的处理方式并没有什么不同。目前比较常用的为最大概率法。下面以拼音输入法为例进行详细说明。\n在拼音输入法中,一个汉语拼音串可以对应多个候选词。如“dajia”这个拼音串对应的候选词可以有:大家、打架、大甲、打假、大加等等。为了提高用户的输入体验,在设计输入法软件的时候需要为候选词进行一个合理的排序,一般是按照候选词的词频进行排序,如从“大家”到“大加”,词频逐渐减小。\n最大概率法实现整句预测的基本原理是:对应用户输入的一串拼音串,一般存在着多种候选词语的组合方案,通常先找出对应这个拼音串可能出现的所有候选词,然后在这些候选词的组合中找到一个概率最大的组合方案作为最后的整句生成结果。\n例如输入“womendoushipingfanren”拼音串,经过音节划分后的音节序列为“wo’men’dou’shi’ping’fan’ren”,根据这个音节序列,查询该输入法下的拼音词典,得到图1所示的词组结构。其中,每一条弧线代表一个词。\n从图1中可以看出,每一条弧线对应着一个或多个候选词,从上到下按照词频从高到低排序,而且每一条弧线都隐含有词频信息(图中没有标出),词频信息指的是拼音串所对应的所有候选词中词频最大的词的词频,图1虚线框中的词即为词频最大的词。在目前的输入法中,只给用户提供一个候选整句信息,只有词频最高的词才有效,也就是说词频排在第二位以后的词,比如:窝,门,斗士等,不会在最后的候选整句结果中出现。因此图1可以简化为图2。\n根据图2所示,利用两点间最短路径算法求出概率最大的一条路径,即最有可能的候选词组合方案,作为最后的整句生成结果,并作为候选词窗口的第一位输出,在图2中以虚线标出。但是使用该方法,只能选择词频最高的词,如果第一候选词不正确,用户要重新选择每个词组,准确率不高。\n发明内容\n有鉴于此,本发明的主要目的在于提供一种整句生成方法及装置,能简单高效地生成整句,并能提高选词的准确率。\n为达到上述目的,本发明的技术方案是这样实现的:\n一种整句生成的装置,该装置包括:\n用于截取光标两侧上下文并对所截取的上下文分别进行分词的模块;\n用于对当前拼音输入划分音节并获取每个音节候选词的模块;\n用于在输入法词表中查询各音节的全部候选词、各候选词词频、上下文单个词词频、各候选词与上下文的共现词频的模块;\n用于分别计算各音节候选词的条件概率并对每个音节选取条件概率最大的确定为候选词的模块;以及\n用于组成整句输出的模块。\n一种整句生成的方法,该方法包括:\nA、截取光标两侧上下文,并对所截取的上下文分别进行分词;\nB、对当前拼音输入划分音节,获取每个音节的候选词;\nC、在词表中查询各音节的全部候选词、各候选词词频、上下文单个词词频、各候选词与上下文的共现词频;\nD、分别计算各音节候选词的条件概率,对每个音节选取条件概率最大的确定为候选词,组成整句输出。\n步骤A中根据缓冲区大小,截取光标两侧上下文,且遇到标点结束截取。步骤A中所述分词为将上下文根据输入法词表分别划分为若干个词。所述方法还包括:根据输入法词表,采用原始文本训练,存储共同出现的词的共现词频。\n所述原始文本训练步骤包括:选取若干文本并扫描;对扫描结果进行分词;统计分词结果,存储单个词、各词组的共现词频;其中,共现词频词组中包含的词的个数,根据缓冲区的大小确定。\n所述候选词的条件概率根据如下公式计算:\n其中,A表示光标两侧上下文的单个词,B表示所述候选词;P(B)表示所述候选词出现的条件概率;a和b为0~1之间的数,且a与b之和小于1;fAB、fA以及fB分别表示A、B两个词的共现词频、A词的词频以及B词的词频;F表示所构成整句中的所有词的词频总和,N表示所构成整句中的总的词数。\n本发明所提供的整句生成方法及装置,在根据候选词生成整句时,考虑到当前候选词位置两侧的上下文,这样能充分利用输入上下文的信息,生成的候选结果准确率更高,从而提高了用户的输入体验。\n附图说明\n图1为现有输出整句的词组结构示意图;\n图2为简化的现有输出整句的词组结构示意图;\n图3为本发明装置示意图;\n图4为本发明方法流程图;\n图5为本发明输出整句词组结构示意图。\n具体实施方式\n本发明的基本思想是:对原始文本进行训练,使其包含共现词词频。通常,输入法都会带有自己的词表、划分词组的方式即分词方法,根据原始文本训练每个词出现的次数,即词频。本发明在原始文本训练过程中,除了统计单个词的词频,还要各种词组共同出现的频率,即共现词词频,并将统计结果保存在词表中备用。当用户输入文本时,选择当前拼音输入的候选词中与上下文组成整句概率最大的,与上下文生成整句输出。\n本发明所述装置如图3所示,该装置包括:分词模块、统计模块、查询模块、左缓冲区、右缓冲区,其中,\n分词模块用于根据输入法词表将文件划分为若干词组;\n统计模块用于统计单个词、共现词的词频,将统计结果存入词表;\n查询模块用于从词表中查询当前拼音输入的各候选词的词频、各候选词与上下文词组的共现词频;\n左、右缓冲区分别用于存储当前拼音输入的上、下文;实际应用中,也可以将分别存储上、下文的缓冲区命名为前、后缓冲区等等,只要功能相同即可,基于此,本发明将分别存储上、下文的缓冲区统称为第一缓冲区和第二缓冲区;每次进行插入词汇的操作,对上一次缓冲区的内容进行覆盖;\n整句输出模块用于计算当前拼音输入的每个候选词与上下文共现的条件概率,并选择条件概率最大的候选词与上下文构成整句输出。\n采用本发明所述方法之前,根据原始文本对输入法进行训练,使其包含共现词词频,将共现词频保存在词表中。\n原始训练的过程是:选取若干文本并扫描;对扫描结果进行分词;统计分词结果,存储单个词、共现词频;其中共现词频词组中包含的词的个数,根据缓冲区的大小确定。例如缓冲区存放1个词,那么只需训练两个词共现词频,如果缓冲区存放2个词,那么需要训练3个词的共现词频和两个词的共现词频,以此类推。\n例如:当前光标所在位置两侧的内容是“现在|股市大涨”,这里,“|”代表光标。用户想在光标位置处插入“沪深”这个词,如图4所示,有以下步骤:\n步骤1:获取光标两侧上下文,对上下文分词,并将分词结果放入缓冲区。\n从光标两侧获取文本内容,获取文本的长度根据用户的需要确定,例如,设定为十个字、二十个字等等,只要不超过缓冲区能够容纳的范围即可。并且,遇到标点符号则停止,本例中取缓冲区存放两个字。\n然后,将所获得的上下文内容分别传送到分词模块,由分词模块根据输入法词表对所获取的上下文分别进行分词,并将上文的分词结果放入左缓冲区,下文分词结果放入右缓冲区。对应前述例子,将“现在”这个词存放左缓冲区,将“股市”这个词存放到右缓冲区。\n步骤2:对当前拼音输入划分音节,获取每个音节的候选词,并在词表中查询各音节的全部候选词、各候选词词频、上下文单个词词频、各候选词与上下文的共现词频。\n根据候选词的上下文,由分词模块对“hu’shen”划分音节后,对应的词输出情况如图5所示:查询模块从左、右缓冲区分别调取上下文,并在词表中寻找各候选词的词频、各候选词与上下文分别共现的共现词频,将查询结果传送到整句输出模块。\n本例中,查询模块根据上下文,查找“护身”、“沪深”、“护身股市”、“现在护身”、“现在沪深”、“沪深股市”的词频,并传送到整句输出模块。将“现在”、“hushen”、“股市”分别标记为A、B、C,其中“hushen”的对应的候选词,分别标记为B1、B2、B3等等。\n步骤3:确定每个音节的候选词,并输出整句。\n计算每个音节的全部候选词与上下文构成整句的概率,选择与上下文构成整句概率最大的候选词输出。\n整句中B出现的概率可根据如下公式计算:\n\n其中,P(B)表示各候选词出现的条件概率,a和b是0~1之间的数,并且a和b之和要小于1,根据原始文本的训练经验或者选取最大概率情况下的候选词的最优化方法得出a、b的值,fAB、fA、fB分别表示AB两个词共现词频、A词的词频、B词的词频,F表示所构成整句中的所有词的词频总和,N表示所构成整句中的总的词数。本实施例中,a取0.85,b取0.12。如果A词在原始文本中没有出现,则词频计为0,如果A词、B词两个词没有共现,则共现的词频也计为0。fAB、fA、fB均从词表中查找,F是指A词、B词、C词的总的词频,N在此处取3。对各候选词B的每个候选项B1、B2,分别计算PB1、PB2,选择概率大的输出。\n如果两个词共同出现过,那么,该两个词之间存在条件概率,这两个词的概率乘积要大于没有共同出现过的两个单独词。从词表知,“沪深”和“股市”存在共现词频,而“护身”和“股市”不存在共现词频,则“沪深”与“ 股市”的概率乘积要大于“护身”和“股市”之间的概率乘积,从而选择“沪深”作为当前拼音输入的最终选项,整句输出模块输出“现在沪深股市”。\n下面再举一个例子,说明当缓冲区存放多个词时的情况。\n本例中,当前光标所在位置两侧的内容是“周末我们去|十三陵水库游玩”,用户想输入“北京市昌平区”两个词,缓冲区存放两个词,那么,整句生成方法包括:\n步骤601:获取光标两侧上下文,对上下文分词,并将分词结果放入缓冲区。\n将“周末”、“我们”、“去”、“十三陵”、“水库”、“游玩”,分别标记为词D、E、H、L、M和S。左缓冲区按照句子原来的顺序依次存放“我们”、“去”;右缓冲区依次存放“十三陵”、“水库”。\n步骤602:对当前拼音输入划分音节,获取每个音节的候选词,并在词表中查询各音节的全部候选词、各候选词词频、上下文单个词词频、各候选词与上下文的共现词频。\n对“beijingshichangpingqu”的划分结果为“beijingshi”、“changpingqu”、标记为词J、词K,查找上下文中的单个词词频、各候选词的词频,即词D、E、H、L、M和S的词频fD、fE、fH、fL、fM和fS,词J、词K候选词各有两个分别为J1“北京市”、J2“背景是”、K1“昌平区”、K2“长平区”,词频分别为fJ1、fK1、fJ2、fK2,以及计算中需要的上下文共现词频fEH、fHJ1、fHJ2、fJ1K1、fJ1K2、fK1L、fK2L、fEHJ1、fEHJ2、fHJ1K1、fHJ1K2、fHJ2K2、fHJ2K2、fJ1K1L、fJ1K2L、fJ2K1L、fJ2K2L、fK1LM、fK2LM。\n步骤603:确定每个音节的候选词,并输出整句。\n计算每个音节的各候选词与上下文构成整句的概率,选择与上下文构成整句概率最大的各候选词组成整句输出。\n此时,计算每个各候选词出现的条件概率的公式,以词J为例,为:\n\nfEHJ为词J与缓冲区中上文词E、词H共现词频,fEH为缓冲区中的词E和词H共现词频,fJ为词J的词频;此时的总词数N为缓冲区的词加上当前要输入的词,即N为6;F即为根据不同候选词所选6个词的总词频;a、b的取值同实施例一。\n根据公式(2),分别计算当前拼音输入的各个候选词与缓冲区中的上下文构成整句的条件概率PJ1、PJ2、PK1、PK2,选择概率最大的候选词J1、K1组合输出,得到“北京市昌平区”输出。\n类似的,当缓冲区中存放多个词,当前的光标处需要插入多个词的时候,要预先训练相应个数的词的共现频率,并计算欲插入词的每个候选词在整句输出时的条件概率,以其中条件概率最大的构成整句输出,该输出结果可能在语意上不完全是一句话,但是避免了对词汇的一个一个的选择过程,大大提高了用户输入的满意度。\n以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
法律信息
- 2013-11-06
专利权的转移
登记生效日: 2013.10.15
专利权人由腾讯科技(深圳)有限公司变更为深圳市世纪光速信息技术有限公司
地址由518044 广东省深圳市福田区振兴路赛格科技园2栋东403室变更为518057 广东省深圳市南山区粤海街道科技中一路腾讯大厦16层
- 2010-06-02
- 2008-06-04
- 2008-04-09
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2003-11-05
|
2002-04-23
| | |
2
| |
2007-11-14
|
2007-05-14
| | |
3
| |
2007-11-14
|
2007-06-01
| | |
4
| |
1995-10-25
|
1994-04-18
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |