一种根据中文语言模型构建输入法词库的方法与流程

文档序号:11627608阅读:354来源:国知局

本发明涉及计算机输入法领域,特别是涉及根据中文语言模型自动生成的输入法词库。



背景技术:

在中文输入法领域,汉字编码技术和词库技术是两大核心技术。经过上世纪80年代以来30多年的发展,汉字编码技术已经趋于成熟和稳定,目前输入法创新发展的空间和潜力已集中到输入法词库技术上,但就目前输入法词库技术发展现状看,无论是面向台式电脑标准键盘开发的输入法,还是面向移动终端如手机触摸屏开发的输入法,以及面向语音识别领域开发的输入法,其词库均存在五个方面的问题:

一是词库“小而不全”。词库词语主要来源于各类词典中的通用词语,以及日常人工积累的各类词语,其词库规模通常在几万条至十几万条之间,由于规模小,且绝大部分是规范的、“词典”类的静态词语,因而满足不了汉语言灵活多样的动态交流需求,录入者无法以字词组合式整体录入,导致录入体验差、效率低。这类“小而不全”的代表性的输入法有以王码五笔输入法为代表的各类形码输入法,以及拼音输入法领域的全拼输入法、智能abc拼音输入法、紫光拼音输入法、拼音加加输入法等等;

二是词库“大而不全”。代表性的输入法有搜狗拼音输入法、百度输入法等,这类输入法词库通常是基于“词典类通用词语+搜索引擎发现新词热词”构建的,词典类通用词语来源于各类辞书及日常积累,“搜索引擎发现新词热词”是通过已有专利如《一种获取新词的方法、装置以及一种输入法系统》(公开号:cn1924858b)、《互联网热词挖掘方法及装置》(公开号:cn104679738a)、《提供新词或热词的方法及系统》(公开号:cn102163198a)、《词库生成方法及其系统、输入法及输入系统》(公开号:cn103853746a)等专利技术实现的,其基本原理是通过搜索引擎收集网页上的用户输入框中的内容,然后经过分词技术处理,并与后台语料库比较并达到某频率阈值后,确定为热词、新词,最终收录进输入法词库。随着新词、热词的不断积累,词库规模通常在几十万条至近百万条之间,如果再加上“云”词语,能供用户检索的词库能够达到几百万条甚至近千万条之巨,虽然规模空前扩张,但由于采用的是从用户输入框中的海选技术,而用户在输入框中搜索的往往是一些热门的人名、地名、新闻事件,以及网络流行语等,很少有人在输入法框中搜索“在此基础上、难道是、不是说、越说越快、吃过饭后、说都说不清、飞了、跑了、一辆接一辆、反咬一口”这样的词语,因此,通过搜索引擎技术很难收集到这些最接近汉语言本质核心、最具普遍性应用的“大块头”、高质量的输入法词语。再看所谓的新词、热词,其实它们在使用上存在很大的局限性,其一是生命周期非常短,当时比较热门的词语,有可能没过多久就被无情地淘汰了,如“我的爸爸是李刚、中国式过马路、apec蓝、元芳体……”等等;其二是使用范围非常窄,在人们日常输入文档及对话交流中,遇到所谓新词、热词的几率非常小,因此靠新词、热词来提高输入效率和输入体验效果是非常有限的;其三是热衷于使用新词热词的人群规模也有限。《语言文字报》2016年1月6日第2版(总第953期)刊文《小学高段学生使用年度新词语情况调查》(刘海平、杨传鑫)显示,“在使用年度新词语的态度上,明确表示‘喜欢’的占28.76%,而‘无所谓’和‘说不清’态度分别占45.15%和19.40%;持‘不喜欢’态度的为6.69%”,“在使用年度新词语的频率上,17.57%的学生‘经常使用’年度新词语,55.85%的学生‘偶尔使用’,而‘几乎不用’‘从未使用’的比例分别为16.72%和10.37%”。综上所述,搜索引擎发现新词热词方法并不适合于构建输入法核心词库,只适合于作为一种补充,单纯地利用 这种技术构建输入法词库,会导致许多真正有价值的输入法词语并没有真正挖掘出来,甚全混进了大量的无用的“垃圾”词语,出现“大而不全”的现象;

三是词库内容难以记忆。无论对于“小而不全”词库,还是对于“大而不全”的词库,都需要人为地记忆词库里面包含了哪些词语,没包含哪些词语,这样,在使用输入法时才能按照词语方式进行录入。可面对输入法词库里小到几万、十几万,大到近百万甚至上千万而又没有任何语言规律和特征的词语,用户很难记忆,因而为高效使用词库造成了极大障碍;

四是词库词语“收而难管”。目前的输入法词库,基本上是汉语语料的简单堆砌,词语上面没有附带任何语言信息和词库管理信息,因而无法对词库中的词语进行分类、挑选、增删、排序等必要的管理,导致输入法词库升级改造难、定向定制功能差、重复维护工作量大,不利于输入法词库发展;

五是输入体验差、效率低。由于现有的输入法词库或是照抄照搬辞书词语、或是一味追求网络新词热词,没有从汉语言交流本质上研究字词组合规律,因而很难做到按照语言交流时的语音停顿规律和语义完整性要求进行输入,直接导致了文字录入和语言交流相脱节、录入效率低下的问题。



技术实现要素:

本发明的目的是为了解决上述输入法词库内容“小而不全、大而不全、难以记忆、词库内容难以管理、录入者输入体验差、效率低”等问题,

为实现以上目的,本发明是通过以下技术方案来实现的:

一种根据中文语言模型构建输入法词库的方法,由中文语言模型模块和造词模块组成,

所述的中文语言模型模块,用于为造词模块批量生成词语时提供构词信息以及为最终生成的词库提供词库管理信息;所述造词模块用于根据中文语言模型模块提供的构词信息自动批量生成词语。

所述的中文语言模型模块由模型标识子模块和模型构词信息子模块组成,模型标识子模块收录中文语言模型,中文语言模型由代表造词主体的字符串标识、前缀、插入成分和后缀组成,附加在造词主体前面的为前缀,附加在造词主体后面的为后缀,插入造词主体中间的为插入成分,前缀、插入成分和后缀可以只出现其一,也可以共现,另外,插入成分可以包含一个或多个;所述的造词主体指的是造词模块中的造词主体子模块所收录的用于造词用的基础词语;模型构词信息子模块主要由按照口语、书面语、专业用语等进行分类的语言性质信息数据表,及按照主谓、动宾、定心等进行分类的词语结构类型信息数据表,及按照表时间、空间、数量、程度等进行分类的语义范畴信息数据表,及按照疑问、陈述、祈使、感叹进行分类的语气类型信息数据表,及按照主动、被动、使动等进行分类的语态类型信息数据表,以及修饰层级、排序权重信息数据表等组成;所述的中文语言模型模块中的中文语言模型根据中文语音停顿特点和语义完整性要求进行开发。

所述的造词模块由造词主体子模块、词类标注子模块和词语结构标注子模块组成,造词主体子模块收录供造词用的基础词语,这些基础词语称为造词主体;词类标注子模块将造词主体子模块中的基础词语进行词类标注,划分为名词、动词、形容词、代词、副词、数词、量词、介词、连词、助词、叹词、拟声词等具体数据表;词语结构标注子模块将造词主体子模块中的基础词语进行词语结构标注,划分为主谓、述宾、述补、定心、状心、量心、数量、并列、反序、重叠、顺递、复指、杂糅、介词短语以及同义词、反义词、平行词等具体数据表。所述的造词模块中的词类标注子模块和词语结构标注子模块中的数据表均为造词主体设置断点信息,用于造词时对造词主体执行插入操作以及对造词主体前后两部分分别加以处理。

为了实现本发明的目的,本发明提供了一种根据中文语言模型批量生成输入法词库词语的方法,包括以下三个步骤:

步骤1:提炼中文语言模型,并以此为基础构建模型标识子模块和模型构词信息子模块;

步骤2:通过《现代汉语词典》等工具书及人工收集方式,选取基础性、通用性的造词素材,并以此为基础构建造词主体子模块、词类标注子模块和词语结构标注子模块;

步骤3:利用数据库处理软件,将中文语言模型模块中的模型构词信息子模块和造词模块中相应数据表的信息相关联,利用数据库查询语句批量生成输入法词库词语。

为了实现本发明的目的,进一步将本发明拓展到各专业输入领域,本发明还提供了一种根据中文语言模型构建专业词库的方法,包括以下四个步骤:

步骤1:提炼中文语言模型,并以此为基础构建模型标识子模块和模型构词信息子模块;

步骤2:建立专业词语造词素材库;

步骤3:以上述专业词语造词素材库为基础,构建造词主体子模块、词类标注子模块和词语结构标注子模块;

步骤4:利用数据库处理软件,将中文语言模型模块中的模型构词信息子模块和造词模块中相应数据表的信息相关联,利用数据库查询语句批量生成输入法专业词语。

为了实现本发明的目的,本发明还提供了一种基于中文语言模型对词库内容实施有效管理的方法,由语料模块和词库信息模块组成,其中,语料模块收录中文语言模型模块中的造词模块生成的全部词语;词库信息模块的构成与中文语言模型模块中的模型构词信息子模块完全相同,并由其传递数据信息。

为了实现本发明的目的,本发明还提供了一种在输入法提示框中提示模型词语的方法,包括以下三个步骤:

步骤1:在输入法码表中,增加中文语言模型信息,使码表中的每条词语和中文语言模型形成一一对应关系;

步骤2:在输入法引擎中增加搜索码表时,按照中文语言模型查找所对应的词语的功能;

步骤3:在输入法提示框中增加查看模型词语的图标或按钮,或其他类似的提示性标志,当正在输入的编码对应的是一组模型词语时,激活该标志,当把鼠标光标移动到该标志上面时,显示中文语言模型,当用鼠标单击或按下预先定义的键盘按键时,显示该中文语言模型对应的全部词语。

有益效果

通过本发明构建的输入法词库,充分反映了汉语言句法和词法特点,特别是语言交流中的字词组合规律,使录入者可以采用接近自然语言交流中的语音停顿方式和语义完整性进行输入,创造了一种仿真的自然语言交流环境,提高了录入体验;

通过本发明构建的输入法词库,实现了以中文语言模型为统领,对语言交流中各种字词组合规律进行全面系统概括,从而建立起了统一规范的输入法词库收词标准,保证所构建的词库词语应心尽收,解决了以往输入法词库收集词语不全面、不系统、无标准的问题,杜绝了用户对词库内容无从把握、录入中因缺少词语而打空码进而回删现象的发生;

通过本发明构建的输入法词库,是以汉语言内在规律为根本,以本求源,有目标、有重点地“主动”生成词语的过程,与通过搜索引擎“海捞”新词热词方向截然相反,并有着本质的区别,其准确性、普适性、实用性全面提高,并能有效阻断“垃圾”词语进入,因而在词库使用过程中节省了计算机资源,提高了检索效率,杜绝了垃圾词语对录入者的影响;

通过本发明构建的输入法词库,录入中使汉语言字词组合率大幅提升,单字录入现象趋近于零,录入者在输入过程中避免了以往“挤牙膏”式单字录入方式,实现了“大块头”整体录入,录入效率可以提高30%以上,创造了可观的工作效率和社会效率与效益;

通过本发明构建的输入法词库,由于里面的绝大部分词语都是基于中文语言模型生成的,录入时用户只要记住其中的一条词语,那么就可断定与之具有相同特征的所有词语都被收录 了,比如,尝试将“吃完饭后”整体录入成功了,那么与此相似的“洗完澡后、交完钱后、吵完架后、买完菜后……”等等都可以作为一个词语放心大胆地整体录入了,这种特征使用户从记忆输入法词库中数量繁多的词语向记忆数量有限的中文语言模型的转变,记忆量大幅减少,如果再配合输入法提示框中的中文语言模型提示功能,就能更加方便地掌握词库中收录的词语,进一步增强录入体验和效率;

通过本发明构建的输入法词库,通过在中文语言模型上附加完整的语言信息和词库管理信息,并利用数据库技术,实现了以模型造词、以模型管理词库的目标,较好地解决了词库无法精细管理的问题,使词库的日常维护、精细挑选、面向特定领域定制,以及升级改造变得异常简单,使以往输入法词库“收而难管”的问题得到的有效解决;

另外,由于采用本发明开发的输入法词库,是通过挖掘中文语言模型构建的,本质上体现了中文语言的特点和规律,因此,除了能够应用到传统键盘和触摸屏等输入法领域外,还可应用于涉及中文信息处理的其它多个领域,如语音识别输入法、机器人对人类语言识别等,并且使其识别效率和准确率得到大幅度提升。

具体实施方式

本发明的基本思想是利用中文语言模型构建输入法词库并对其实施有效管理。根据这一基本思想,下面对本发明内容中的相应模块做进一步说明并结合实施例详细阐述如下:

1、提炼中文语言模型

中文语言模型主要从三个维度进行提炼。

一是根据语言交流时的语义完整性和语音停顿规律进行提炼。先说语义完整性,是指语句中具有完整意义的字词组合体。例如,如果将“吃饭、干活、唱歌、交钱、做作业”分别作为一个语义单位,那么,“吃完饭后、干完活后、唱完歌后、交完钱后、做完作业后”都应视作与之对应的完整的语义单位,按照这个思想,分析“吃完饭后、干完活后、唱完歌后、交完钱后、做完作业后”,实质上是由动宾结构的词语“吃饭、干活、唱歌、交钱、做作业”中间插入“完”,再加后缀“后”形成的,由此,可提炼出“动词+完+宾语+后”的字词组合模型,用verb代表动词,obj代表宾语,那么中文语言模型就可表示为:“verb完obj后”,以此代表“吃完饭后、干完活后、唱完歌后、交完钱后、做完作业后……”等一大批词语;再说语言交流时的语音停顿规律,以“千年古刹座落在黄山脚下”一句为例,按照说话人正常的语音停顿习惯,应该如“千年/古刹/座落在/黄山脚下”所示,这样,以其中的“座落在”为提炼要素,就可归纳出“动词+在”的字词组合,用“verb”表示动词,那么这个中文语言模型就可表示为“verb在”,它就代表了“座落在、消失在、丢在、写在、挂在……”等一大批词语;

二是按照汉语词类和词语结构生成短语的规律进行提炼。结合现代汉语语法知识,所说的汉语词类主要指名词、动词、形容词、代词、副词、介词、连词、助词、叹词、数词、量词、拟声词等,所说的词语结构主要指述宾结构、主谓结构、定心结构、状心结构、述补结构、量心结构、并列结构、反序结构、重叠结构、杂糅结构、介词结构等。不同的汉语词类具有不同的生成短语规律,以形容词为例,可与“很”、“非常”、“极了”等紧密结合,用adj表示形容词,由此可提炼出“很adj”、“非常adj”、“adj极了”等中文语言模型,分别代表“很冷、很困难、很大方……”、“非常好、非常漂亮、非常紧张……”、“冷极了、快极了、贵极了……”等各自一大批词语;不同的词语结构同样具有不同的生成短语规律,以动宾结构为例,词语中间可插入“着、了、过”,后面可加后缀“前、后”等,若以verb代表动词,obj代表宾语,可提炼出“verb着obj、verb了obj、verb过obj、verb过obj后、verbobj前”等相关模型,以此分别代表“唱着歌、吃着饭、上着网、喝着茶……”、“丢了钱、旷了工、停了课……”、“洗过澡、卖过菜、唱过戏……”、“交过钱后、刷过牙后、买过菜后……”以及“吃饭前、睡觉前、上网前……”等等各自一大批词语。

三是按照汉语句式的构形规律来提炼。所说的句式主要指疑问、陈述、祈使、感叹四大句式。每种句式都有不同的构形特点,据此可提炼出不同的中文语言模型。比如疑问句式,在构形上,常见的有“……吗、……吧、难道不……吗”,以verb代表动词,adj代表形容词,据此,可提炼出“verb吗、adj吧、难道不verb吗”等等中文语言模型,以此分别代表“交吗、学吗、吃吗……”、“冷吧、难吧、漂亮吧……”、“难道不交吗、难道不学吗、难道不写吗……”等各自一大批词语;再如祈使句式,其构形特点是,经常要求某人做什么或不做什么,以verb代表动词,据此可提炼出“快verb、别verb、一定verb”等中文语言模型,以此分别代表“快说、快走、快去……”、“别动、别说、别走……”、“一定来、一定说、一定交……”等等各自一大批词语。同样,根据陈述句式和感叹句式也可以提炼出一大批中文语言模型。

提炼出中文语言模型后,还要在其上面要附有必要的语言信息和词库管理信息。包括:语言性质,主要指是否口语、书面语、专业用语等信息;结构类型,主要指是否动宾结构、主谓结构、定心结构、状心结构、述补结构、量心结构、并列结构、反序结构、重叠结构、杂糅结构、介词结构等信息;语义范畴,主要指是否表时间、空间、数量、程度、归属、判断、结果等信息;语气类型,主要指是否表疑问、陈述、祈使、感叹语气信息;语态类型,主要指是否表主动、被动、使动语态信息。另外还要附有修饰层级和排序权重等信息。上述附着信息的方法为:在数据库数据表中设置相应字段来实现。

2、构建造词模块。造词模块是自动批量生成词库词语的基础平台,其中各数据表中的词语即中文语言模型中所指的造词主体。在造词模块中,无论是构成词类标注子模块的数据表,还是构成词语结构标注子模块的数据表,都应进一步附加详细的子分类信息,以适应造词时精准选择造词主体的需要。例如,以noun代表名词,“noun人”这个中文语言模型代表的是“中国人、美国人、加拿大人、北京人、上海人、鞍山人、东北人……”等一大批词语,造词时,需要用词类标注子模块中的名词表作为造词主体进行造词,但通过观察发现,“noun”仅限于表示国家、地区、城市等地点的名词,而不是名词表中的全部,这样,就需要名词表能够细分出地点名词,才能实现精准造词。下面将造词模块中的主要数据表细分情况分列如下:

词类标注子模块中,名词细分为:物质名词、抽象名词、生命名词、可数名词、方位名词、时间名词、地点名词、称谓名词;代词细分为:人称代词、指示代词、疑问代词、特殊代词;动词细分为:行为动词、状态动词、及物动词、趋向动词、情态动词;形容词细分为:性质形容词、状态形容词;量词细分为:个体量词、集合量词、度量词、不定量词、准量词、复合量词、动量词、借用量词、宏观量词;副词细分为:时间副词、地点副词、程度副词、范围副词、频率副词、语气副词。词类标注子模块中的其他数据表细分情况不再繁述。

词语结构标注子模块中,主谓结构细分为:名-动型、名-形型、代-动型、代-形型;述宾结构细分为:动-名型、动-代型;述补结构细分为:动-形型、动-数-量型、动-趋型;定心结构细分为:形-名型、名-名型、动-名型、数-量-名型。词语结构标注子模块中的其他数据表细分情况不再繁述。

除了为造词模块中各数据表附加详细的子分类信息外,还要为各数表中的词语(也就是造词主体)设置断点,用于造词时执行插入操作以及对造词主体前后两部分分别进行处理。对于词语结构标注子模块中各数据表词语,其断点位置与该结构的分界点相同,以动宾结构数据表为例,如里面的词语为“吃饭、赶火车、挤兑人、上班、唱歌……”,其动宾分界点可表示为“吃-饭、赶-火车、挤兑-人、上-班、唱-歌”,那么,为它们标注的断点也落在该处,这一点不难理解。这里着重说明一下词类标注子模块中各数据表词语的断点设置原则,词类标注子模块数据表中的词语大多是单纯结构,中间很难断开,这时,只需在其中间位置设置断点即可,以形容词表为例,如里面的词语为“大方、红火、慌张、漂亮……”,则设置断点后的形式为“大-方、红-火、慌-张、漂-亮……”,有了断点,就可以分别根据中文语言模型 adjleftadjleftadjrightadjright、adjleftadjrightadjright、adjleftadjleftadjrightadjright地”(adjleft和adjright分别代表形容词断点左右两个部分)批量生成“大大方方、红红火火、慌慌张张、漂漂亮亮……”、“大方方、红火火、慌张张、漂亮亮……”,以及“大大方方地、红红火火地、慌慌张张地、漂漂亮亮地……”等各自一大批词语了。

3、根据中文语言模型批量生成词库词语的实施例。

分为三个步骤:

步骤1:提炼中文语言模型

假设提炼出了“verb不com、verb也verb不com、adj是adj点、adj归adj、adj极了”六个中文语言模型(其中verbcom表示动补结构,verb和com分别为动补结构“动词”部分和“补语”部分,adj代表形容词),以此为基础,定制中文语言模型模块;

步骤2:在造词模块中的词类标注子模块和词语结构标注子模块中分别定制形容词表和动补结构词语表,假定形容词表中的内容为“难、紧张、贵、远、长、大、艰苦……”等计3000条词语;动补结构词语表中的内容为“看清、洗净、走快、吃完……”等计5000条词语,每条词语中间均设断点;

步骤3:利用sql数据库查询语言,根据中文语言模型模块提供的构词信息,对上述形容词表和动补结构词语表中的词语整体或断点左右两个部分进行组合拼接,生成所需的词语。例如对于形容词表,当用“adj是adj点、adj归adj、adj极了”造词时,利用形容词表中的词语整体,通过拼接方式,各自生成了“难是难点、紧张是紧张点、贵是贵点、远是远点、长是长点、大是大点、艰苦是艰苦点……”、“难归难、紧张归紧张、贵归贵、远归远、长归长、大归大、艰苦归艰苦……”,以及“难极了、紧张极了、贵极了、远极了、长极了、大极了、艰苦极了……”3000条词语。与此类似,对于动补结构词语表,当用“verb不com”生成词语时,要拼接成“动补词语左部+不+动补词语右部”的形式,一次性生成了“看不清、洗不净、走不快、吃不完……”计5000条词语;当用“verb也verb不com”生成词语时,要拼接成“动补词语左部+也+动补词语左部+不+动补词语右部”的形式,一次性生成了“看也看不清、洗也洗不净、走也走不快、吃也吃不完……”计5000条词语。

4、利用中文语言模型建立词库管理系统实现对词库内容进行有效管理的实施例。

分为三个步骤:

步骤1、构建语料模块,该模块用于收录本发明中的造词模块生成的全部词语,每条词语均对应生成它的中文语言模型;

步骤2、构建词库信息模块,该模块与本发明中的中文语言模型模块中的模型构词信息子模块完全包容,并由其传递数据信息。另外附加了存留时限信息,用来衡量词语生命周期长短,具体设定为长、一般、短三种等级,以便用于及时从词库中删除过时的词语;附加了语块类别信息,具体分为语义性词语和语音停顿性词语。另外,对排序权重规定了规范性、书面性、通用性、形似性、结合性、特殊因子六个单维度权重和综合权重,以满足重码词语排序及定制特定词库的需要。

步骤3、上述两个模块建立后,就可以利用数据库平台进行有效管理了。比如说,出于降低重码率或考虑用户接受习惯,对于词库中“难极了、紧张极了、贵极了、远极了、长极了、大极了、艰苦极了……”等一大批词语,只想保留“难极了、贵极了、远极了、长极了、大极了……”等“单字形容词+极了”构成的词语,而要删除“紧张极了、艰苦极了……”等“两字及以上形容词+极了”构成的词语,只需利用数据库查询语言从语料模块中查找来源于“adj极了”模型、且长度大于3的词条,并从词库中删除即可;再如,如果要挑选不同修饰层级的词库词语,以便合理控制词库容量,可在查询时通过合理设置修饰层级值来实现,这里假定将修饰层级值设置为1,那么,从“很好、太美了、真不错、飞了、走吗……”里面查询时,含有两级修饰的“太美了、真不错……”便被过滤掉了,只剩下“很好、飞了、走吗……”等一级修饰词语了。

5、利用中文语言模型对批量生成的词语自动完成拼音编码的实施例。

大家都知道,在开发拼音输入法制作码表过程中,为词语添加拼音编码是一件浩繁的工程,虽然可以利用程序软件自动注音,但由于汉语中大量多音字的存在,必然需要经过人工校验,而利用中文语言模型模块和造词模块相互配合,可以轻松的解决这个难题。方法是首先定制一个注音信息表,对中文语言模型中的“前缀、插入、后缀”等成分单独进行注音,另外再对造词模块各数据表中的造词主体进行注音,这两项工作完成后,利用数据库查询语言进行词语和编码拼接,自动批量生成的所有新词语就自动完成了注音,大大减少了工作量,且正确率100%,免去了人工校对之苦。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1