基于用户反馈的行业拼写错误检查方法

文档序号:6543745阅读:219来源:国知局
基于用户反馈的行业拼写错误检查方法
【专利摘要】本发明公开了一种基于用户反馈的行业拼写错误检查方法,该方法利用分类设计的用户字典,采用N-gram方法对英文文本进行拼写错误检查,并通过大语料数据库搜索来完成正确单词的推荐,从而实现与用户相关联的拼写错误检查。N-gram作为自然语言处理的基本方法,通过单词或语句特征以及语料库中的统计信息对文本中的错误进行检查;分类设计的用户字典根据当前使用者的历史信息,结合语料库的统计数据选择出与用户输入文本中错误单词最相关的推荐单词;使用维特比算法找出数据库中条件概率乘积最大的单词链,提高大语料库中隐马尔科夫模型的计算效率和数据库中统计信息的使用效率。
【专利说明】基于用户反馈的行业拼写错误检查方法
【技术领域】
[0001]本发明是一种英文拼写错误检查方法,利用了包含大量语言信息的语料库、自然语言统计模型以及隐马尔科夫模型等相关技术,涉及自然语言处理特别是英文拼写检查领域。
【背景技术】
[0002]首先对本发明中用到的缩写进行定义:
[0003]NLP (Natural Language Processing):自然语言处理;
[0004]BNC (British National Corpus):英国国家语料库;
[0005]LDC (Linguistic Data Consortium):语言数据联盟;
[0006]LD (Levenshtein Distance):编辑距离;
[0007]N-gram:N 元语法。
[0008]拼写错误检查(Spelling Checker)是NLP的一个重要分支和基础环节,它将自然语言处理为无错误和可理解的文本,对于机器翻译、语音合成、语音识别等高级的NLP技术有着天然的支撑作用。同时,这项技术可以有效提高用户界面的友好性和智能性,具有重要的实际应用价值。
[0009]早期的NLP主要采用基于句法-语义规则的方法。随着语料库建设和语料库语言学的崛起,大规模真实文本的处理成为自然语言处理的主要目标。基于规则的方法在发展多年以后,依然不能突破准确率和效率两方面的制约,而统计方法逐渐展现出在自然语言处理领域更多的优势。自然语言处理中越来越多地使用基于统计的自动学习方法来获取语言知识,这也包括拼写错误检查在内。基于统计的方法主要涉及语料库和统计语言模型两个方面。
[0010]多个组织和研究机构提供了各自的语料库及其各种统计数据,如面向文本分类研究的中英文新闻分类语料、BNC, LDC、Gutenberg项目提供的4200多本免费电子书、万篇随机抽取论文中文DBLP资源、UCI评价排序数据等。
[0011]Google的Brants与Franz将网页文本用Penn Treebank的方式进行了元素化,总共产生了超过IT的数据,详细内容如表I所示。Google公布的基于IT网页文本数据的5-grams语料库是目前基于统计方法的比较全面的英文语料库。该语料库提供了从I?5-grams的统计信息,为基于统计方法的自然语言处理提供丰富的分析数据来源。
[0012]语料库方面,字典为单词纠错提供了最基本的非词错误检查能力,设计具有良好的管理接口、可扩展的标准字典,可以为用户提供单词检测的基本功能和提高系统性能;支持统计方法的语料库是实现拼写错误检查的基础,它为自然语言处理模型提供了规模可观、信息详实的可用数据;基于语义的语料库是专业领域划分的优良模型,但由于语法规则的低效,这一方法无法得到实用。需要采用统计方法间接地实现行业分类的语料库。
[0013]传统的拼写错误检查注重于解决将正确单词输入为无效单词的非词错误检查,常用的方法是使用一个可靠的词库和确定的距离测度,如LD。由于人工建立可靠词库的代价很高,传统的拼写检查使用的词库是比较小的。随着统计模型被引入到拼写错误中,错误模型与N-gram语言模型成为拼写错误检查系统的关键组成部分。Kukich提出错误概率的转移矩阵与特征向量在拼写纠错中的应用,是后来N-gram方法实现的基础。Brill和Moore证明了一个好的统计模型是提高拼写检查精度的关键,但建立这样的错误模型需要对纠错词组做大量的手工标记,这涉及到极高的成本。Whitelaw等使用Web文本在一定程度上提高了这一效率。随着Web技术和应用的发展,拼写错误检查也越来越受到关注,更多的拼写错误类型被提及,如漏写、错增字母,交换若干字母的顺序,错误的合并、拆分单词,误用单词等等。这些方法主要解决的问题是查找输入错误、搜索候选单词空间和建立候选单词评分函数。
[0014]现有拼写错误检查模型中,大部分都是基于N-gram模型的离线模型,这一方法现在已经成为拼写检查研究的主流。模型的主要思路是使用扩展的贝叶斯公式计算自然语言中的统计信息,最大的特点是采用了统计方法、模型简单高效。当前研究主要使用的工具是N-gram模型、扩展的贝叶斯公式和隐马尔科夫模型。分为用贝叶斯公式统计单词概率、使用隐马尔科夫模型求解N-gram模型参数以及贝叶斯公式中隐马尔科夫模型的快速求解这几个方面。模型的效率和实用性是这一领域迫切需要解决的问题。

【发明内容】

[0015]技术问题:在拼写错误检查系统中,语料库作为整个模型的基础,其中的计算和查询过程不可避免的成为整个系统的性能瓶颈。如果语料库基于语法规则或者只统计单词出现的频次,在查询过程中很容易出现规则爆炸导致的性能低下或者因统计数据不足导致的计算结果不准确。拼写错误检查模型方面,简单的根据某一测度进行匹配或者只采用N-gram计算模型,前者获得的检查结果存在较大的误差,后者对系统的性能产生较大的影响。本发明要解决的技术问题是系统缺少基于用户反馈的动态调整能力,无法有效的综合使用多种语料库信息。针对不能有效利用多种语料库的问题,采用用户字典、行业语料库和核心语料库相互结合、加权计算的方法。这种方法具有查询快速,计算结果准确,对上下文环境适应性高等特点,能够在不同的用户和文本环境下自动调节语料库对不同部分的使用,有效的提高系统效率和保证结果准确性。本发明通过使用维特比算法对N-gram模型中的马尔科夫链进行计算,获得最有可能的正确单词构成的集合。在语料库中根据错误单词前N-1个单词对各个可能的单词进行概率的计算,按照LD测度和单词在语料库所处的部分计算权值,获得按照正确单词的出现概率排序的推荐列表。根据用户选取的正确单词以及上下文,将用户文本中的信息统计入系统的语料库中。系统得到新的统计信息后,根据N-gram模型中的统计算法,对语料库数据表中相关记录的单词频次和条件概率进行修正,使得语料库与用户的实际使用同步,记录所有历史文本的统计数据,完成拼写错误检查系统的整体更新。
[0016]技术方案:
[0017]为解决上述技术问题,本发明利用N-gram语料库数据和相关的统计方法,提出了一种基于用户反馈的行业拼写错误检查方法。该拼写错误检查方法具体如下:
[0018]一种基于用户反馈的行业拼写错误检查方法,包括步骤:
[0019]I)语料库和用户字典的获取与建立:[0020]语料库分为核心语料库和行业语料库,作为存储语言信息的核心统计数据,保存着整体统计语言和行业用语的词法、语法和语义信息,当进行拼写错误检查时,核心语料库和行业语料库为拼写检查模型提供所有的单词、语句信息,给出整个语言的全局数据;同时,根据用户自行构建的字典,获取关于用户的特殊语料信息;
[0021]在数据库中,定义数据表对整体的语料及用户语料信息进行存储;
[0022]2)拼写检查模型的构建:
[0023]拼写错误检查模型的构建是以N-gram模型对语料库的统计信息进行计算,取得条件概率最大的单词链组合,步骤包括:
[0024]21)单词的正确性判断:对文本中的单词做核心语料库的匹配,如果单词不在核心语料库中,再依次使用行业语料库和用户字典进行判断;如果前述三种数据表中均不存在,则判断为错误单词,进行下一步;
[0025]22)正确单词的推荐:根据各语料库中与错误单词在编辑距离下相近的单词,计算这些单词的概率及其上下文联合概率,再按各个语料库的权值计算与错误单词最相关的正确单词,选择所有语料库加权后概率最大的若干个单词构成正确单词的推荐列表;
[0026]3)通过拼写检查模型中的错误检查和单词推荐对用户输入的文本进行处理;
[0027]4)更新与用户相关的文本统计信息、字典和语料库:对用户输入的文本和选择的正确单词进行统计,将文本中的正确单词信息和上下文信息统计入用户字典、核心语料库和相应的行业语料库。
[0028]所述步骤I)中,有效语料库以及用户字典的必要条件包括:
[0029](I)用户字典中不存在错误单词,也即必须是从牛津、朗文等公认的标准字典中获取的正确单词,或者用户自定义的行业或特殊单词;
[0030](2)核心语料库足够大,不存在行业、时效等偏向性,并且必须包含有N-gram信息,用来提供基本的单词上下文统计信息;
[0031](3)行业语料库按照需求进行初步的划分,并根据用户的选择自然生成,单个用户可以是多个行业语料库的使用者。
[0032]所述步骤21)中,使用维特比算法在N-gram模型中快速计算当前单词在核心语料库、行业语料中的概率,并获得当前单词与前N-1个单词出现的联合概率,实现对当前单词正确性的判定。
[0033]所述步骤22)中,对错误单词所在的位置使用N-gram模型在行业语料库与核心语料库中进行搜索,并通过编辑距离以及单词出现概率在用户字典中进行匹配,以获得最有可能的单词列表;对于每个单词在不同语料库中的概率,采用加权概率对推荐单词列表进行排序,然后向用户给出排序后的推荐结果。
[0034]所述步骤4)中,系统对用户输入的文本进行错误检查后,计算用户输入中的文本统计信息,为用户字典和语料库中的N-gram数据提供更新信息,将相应的数据表更新后,用新的语料库数据和用户字典提供错误检查服务。
[0035]本方法中,使用的统计语言模型就是使用隐马尔科夫模型检查语料库中使得以错误单词所在位置的上下文相关单词链出现概率最高的单词作为正确单词列表,各个语料库具有不同的权值,通过语料库内单词的概率和语料库的加权计算,得到排序后的推荐单词列表。拼写错误检查通过用户对推荐单词的选择完成。[0036]本方法基于N-gram自然语言处理模型,采用核心语料库、按行业分类的语料库、用户字典和统计语言模型,为用户输入的文本提供错误检查和正确单词推荐的功能。在用户输入一段文本后,服务器对文本进行元素化,将文本切分为N元文法下的单词链集合,从而计算每个单词链中最后一个单词在语料库中的条件概率。统计语言模型计算出若干个概率最大的单词作为正确单词的备选集合,如果原单词在备选集合中,则判定原单词正确,否则用户从备选集合中选择一个单词作为正确单词。
[0037]本发明针对拼写错误检查系统的效率和实用性问题,利用分类语料库加权计算的方式,结合LD测度和搜索算法,以先查错后推荐的方式进行单词拼写错误检查,可以高效快速的实现错误检查和上下文关联性更强的单词推荐;采用了维特比算法,提出了一种统计语言模型,能够快速计算用户文本中单词在语料库中加权概率最大的单词列表。获得推荐单词列表的用户,根据实际情况选择正确的单词并反馈给系统,系统将用户选择的单词及其上下文统计信息加入到和用户相关的语料库中:通过统计模型计算该单词在核心语料库、行业语料库和用户字典中的更新数据并添加到数据表中,以新的数据对下一次到来的用户文本进行拼写错误检查,从而实现了系统能根据实际使用环境和不同的用户为文本提供拼写错误检查的特性。
[0038]有益效果:本发明具有语料库使用效率高、数据基于用户实际反馈进行调整等特点,使得系统的实用性强,检查速度快,数据同步性高(根据使用情况及时更新语料库数据);结合使用多个不同的语料库,能够在多用户、高并发请求的环境下有效的实现高效的拼写错误检查。
【专利附图】

【附图说明】
[0039]图1为本发明所述的N-gram统计模型图。
[0040]图2为本发明所述的拼写错误检查系统结构图。
[0041]图3为本发明的具体实施流程图。
[0042]图4为拼写错误检查功能模块图。
[0043]图5 为 GooglelT N-gram 数据信息表。
【具体实施方式】
[0044]下面结合附图和具体示例对本发明再作进一步详细的说明。
[0045]本发明的基于用户反馈的行业拼写错误检查方法,主要解决目前拼写错误检查中缺少用户关联和快速搜索大语料库的问题,涉及到自然语言处理、用户字典设计以及数据库搜索等相关技术。该方法利用分类设计的用户字典,采用N-gram方法对英文文本进行拼写错误检查,并通过大语料数据库搜索来完成正确单词的推荐,从而实现与用户相关联的拼写错误检查。N-gram模型(图1)作为自然语言处理的基本方法,通过单词或语句特征以及语料库中的统计信息对文本中的错误进行检查;分类设计的用户字典根据当前使用者的历史信息,结合语料库的统计数据选择出与用户输入文本中错误单词最相关的推荐单词;使用维特比算法找出数据库中条件概率乘积最大的单词链,提高大语料库中隐马尔科夫模型的计算效率和数据库中统计信息的使用效率。整个系统的结构和各部分的功能模块划分如图2、图4所示,以下为各部分的设计原理和实施细节的描述。[0046]1、语料库和用户字典的获取与建立:
[0047]语料库分为核心语料库和行业语料库,作为存储语言信息的核心统计数据,保存着整体统计语言和行业用语的词法、语法和语义信息,当进行拼写错误检查时,语料库为拼写检查模型提供所有的单词、语句信息,给出统计语言的全局数据;同时,根据用户自行构建的字典,获取关于用户的特殊语料信息,并通过统计用户输入的文本记录其历史信息;在数据库中,定义数据表对各个语料库及用户输入信息进行存储。具体的表结构如下:
[0048](I)用户字典表结构
【权利要求】
1.基于用户反馈的行业拼写错误检查方法,其特征是,包括步骤: 步骤一、语料库和用户字典的获取与建立: 语料库分为用户字典、核心语料库和行业语料库,作为存储语言信息的核心统计数据,保存着整个语言的词法、语法和语义信息,当进行拼写错误检查时,语料库为拼写错误检查模型提供所有的单词、语句信息,给出整个语言的全局数据;同时,根据用户输入的文本以及使用情况,获取新的关于用户的语料信息,更新语料库和用户字典; 在数据库中,定义数据表对整体的语料及用户输入信息进行存储; 步骤二、拼写错误检查模型的构建: 拼写错误检查模型的构建是以N-gram模型对语料库的统计信息进行计算,取得条件概率最大的单词链组合; 步骤三、系统交互界面通过使用拼写错误检查模型中的错误检查和单词推荐对用户输入的文本进行处理; 步骤四、更新与用户相关的文本统计信息、字典和语料库:对用户的输入和选择的正确单词进行统计,将正确文本中的单词信息和上下文统计入用户字典、核心语料库和相应的行业语料库。
2.根据权利要求1所述的基于用户反馈的行业拼写错误检查方法,其特征是,所述步骤一中,有效语料库以及用户字典的必要条件包括: (1)字典中不存在错误单词,也即必须是从牛津、朗文等公认的标准字典中获取的正确单词,以及用户自定义的行业或特殊单词; (2)核心语料库足够大,不存在行业、时效偏向性,并且必须包含有N-gram信息,用来提供基本的单词链统计信息; (3)行业语料库按照需求进行初步的划分,并根据用户的选择自然生成,某个用户可以是多个行业语料库的使用者; (4)用户字典是根据用户的输入需求构造的字典,可以让用户自行管理。
3.根据权利要求1所述的基于用户反馈的行业拼写错误检查方法,其特征是,所述步骤二中,具体包括: 步骤2.1单词的正确性判断:对文本中的单词做标准字典的匹配,如果单词不在标准字典中,再依次使用行业语料库和用户字典进行判断;如果前述三种数据表中均不存在,则判断为错误单词,进行下一步; 步骤2.2正确单词的推荐:根据编辑距离和单词链联合概率,采用各语料库加权计算与错误单词最相关的正确单词,选择组合概率最大的若干个单词构成错误单词的推荐列表。
4.根据权利要求3所述的基于用户反馈的行业拼写错误检查方法,其特征是,所述步骤2.1中,使用维特比算法在N-gram模型中快速匹配当前单词在各个语料库中的出现概率,并获得当前单词与前N-1个单词出现的联合概率,实现对当前单词正确性的判定。
5.根据权利要求3所述的基于用户反馈的行业拼写错误检查方法,其特征是,所述步骤2.2中,通过编辑距离以及单词出现概率对推荐单词列表进行排序,然后向用户给出推荐结果;用来排序单词列表的权值是对单词在各个语料库中的概率进行加权计算获得的。
6.根据权利要求1所述的基于用户反馈的行业拼写错误检查方法,其特征是,所述步骤四中,对用户输入的文本进行错误检查后,计算用户输入中的文本统计信息,为用户字典和语料库中的N-gram数据提供更新信息,将相应的数据表更新后,用新的语料库数据和字典提供错误检查服务。
7.根据权利要求1所述的基于用户反馈的行业拼写错误检查方法,其特征是,使用隐马尔科夫模型检查语料库中使得以错误单词所在位置的上下文相关单词链出现概率最高的单词作为正确单词列表,各个语料库具有不同的权值,通过语料库内单词的概率和语料库的加权计算,得到排序后的推荐单词列表;拼写错误检查通过用户对推荐单词的选择完成。
8.根据权利要求1所述的基于用户反馈的行业拼写错误检查方法,其特征是,采用用户字典、核心语料库、行业语料库和统计语言模型,在用户输入一段文本后,服务器对文本进行元素化,将文本切分为N元文法下的单词链集合,从而计算每个单词链中最后一个单词在语料库中的条件概率;统计语言模型计算出若干个概率最大的单词作为正确单词的备选集合,如果原单词在备选集合中,则判定原单词正确,否则用户从备选集合中选择一个单词作为正确单词。
9.根据权利要求8所述的基于用户反馈的行业拼写错误检查方法,其特征是,统计语言模型采用维特比算法,计算用户文本中单词在语料库中加权概率最大的单词列表;获得推荐单词列表的用户,根据实际情况选择正确的单词及其上下文统计信息加入到和用户相关的语料库中;通过统计语言模型计算该单词在用户字典、核心语料库和行业语料库中的更新数据并添加到数据表 中,以新的数据对下一次到来的用户文本进行拼写错误检查。
【文档编号】G06F17/27GK103885938SQ201410149427
【公开日】2014年6月25日 申请日期:2014年4月14日 优先权日:2014年4月14日
【发明者】杨明, 罗军舟, 倪俊辉, 马成平, 任新才 申请人:东南大学, 焦点科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1