版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 中文语法自动纠错系统的研究与实现 王浩畅 周锦程【摘 要】文章将从中文语法错误修正中进行解释,主要包括以下几个部分:语料库的编写,基于高质量的汉语语料库,通过机器学习进行语法错误特征分析和语料库纠错方法,基于模型进行训练;预处理数据,消除数据噪声,从而获得高质量的数据;语法错误,句子分割前的自动分割和词性标注,通过提高分词的正确性来提高语法错误识别的准确性;建立N-Gram模型并基于CRF模型检测语法错误。【Key】语法纠错;分词;N-Gram;序列标注TP399 A 1674-0688(2020)02-0081-050 引言近年来,随着中国经济势力的增强和国际地位的提升,中国人在国际经济文
2、化交流中的影响日益重要。因此,世界各国对汉语学习的需求日益增多,截至目前,已有超过70多个国家颁布了法令,建立了全职岗位,并在国家教育系统中将汉语教育归纳其中。英国、法国、德国、美国、意大利、西班牙、加拿大等国家已将汉语视为除各国母语外的第二外语。根据中国国家汉语国际推广领导小组的数据统计,除中国外,在世界上使用中文的人数已超过1亿人1。继续升温的“中国热”为世界推广汉语带来了良好的机遇。如何提高汉语学习效率也成为一个新的挑战。据统计,中文学习的困难主要体现在听、说、读、写的技巧。其中写作是最难学习和掌握的。在写作中,。句子由短语和单词结构组成的规则已经成为最常见的错误之一。对于中文语法自动纠
3、错系统,技术指标投入使用需要时间,因此中文语法修正成为一个具有挑战性的问题。在20世纪80年代早期,研究人员对语法错误纠正(GEC)2进行了研究,并经历了3个发展阶段。第一代系统使用简单的字符串匹配和替换来识别和纠正错误。第二代系统使用语法规则分析文本,并通过编写错误模板匹配纠正语法错误。第三代系统使用数据驱动方法从大规模原生或学习者语料库中提取词汇语法。系统机器式不断地学习构建模型用来自动检测语法的对错。2018年,在Grammatical Error Correction(GEC)方面被证实为领先的方法是Sequence to Sequence(seq2seq)。在seq2seq基础架构上
4、提出了一种新的fluency boost learning and inference(推断学习机制),该机制通过“error-correct”进行学习训练,在过程中产生多个“error-correct”,将纠错模型提炼到更高的水平,以便逐步纠错。与自动检测英语语法相比,汉语语法检测起步较晚,语法相对灵活,没有固定的形态性,但存在汉语语料库积累不足、无覆盖汉语语法等问题。校正需要基于词语、语法和语义的分析,汉语语法纠错技术的难度高于英语纠错。因此,对这一课题的钻研显得尤为重要。1 分析结构1.1 语料库准备中文语法错误的自动纠正需要基于高质量的中文语料库。通过机器学习,对语料库的语法错误特征和
5、纠错方法进行了分析和总结,对实际检测模型进行了训练。常见的汉语语法错误主要包括成分缺陷(不完整主语、不完全谓词、不完整对象),不正确的错配(不恰当的主谓错配、不匹配的动词动词、状语和中心词之间不恰当的不匹配、定语和中心词、补语和中心的不恰当匹配),词汇不匹配,结构混乱,词汇使用不当,回声;语料库3中相应的句子错误可以分为4类:冗余、缺失、误用和无序。冗余:指句子中出现多余的词,如“我现在刚准备休息”,正确应为“我刚准备休息”;缺失:指句子中缺失必要的词导致句子不完整,如“小咪性格很温顺的一只猫”,正确应为“小咪是性格很温顺的一只猫”;误用:指句子中存在误用的词导致影响句子语义,如“桂林以山水著
6、名”,正确应为“桂林以山水闻名”;乱序:指句子中词位置错误,调换位置后句子会更通顺,如“我想去上海下个月”,正确应为“我下个月想去上海”。本实验采用了搜狗实验室的中文语料库和频率语料库,对互联网开放。根据实验需要,将语料库分训练、验证和测试3个部分4。训练集包括3 000多篇。部分文章包含语法错误的1 000多个句子,以及纠正每个错误句子的方式,训练集将用于语法错误检测模型的训练;验证集包含300多个句子,用于语法错误检测模型。参数优化;测试集包含超过2 000个句子,其中一半是冗余、缺失、误用和根据错误类型乱序,以此评估模型的性能與准确性。1.2 数据预处理实际生活中的数据往往受到噪音、数据
7、损失和数据变化的影响,造成数据集的质量不佳5。基于这些数据的实验可能导致实验结果不准确,因此有必要对数据进行预处理,以提高实验结果的准确性。具体处理措施如下:对于语料库中混合汉语和英语的句子,由于英语单词会增加分析汉语语义的难度,因此使用汉语替换英语单词方便系统识别。例如,“我在澳大利亚悉尼学习”被“我是悉尼,澳大利亚上学”所取代。对于句子中括号的解释性词语,使用括号以降低复杂性。例如,“乒乓球单人比赛一般采用7场比赛或4场比赛和3场比赛(场均11分)”取代“乒乓球单人比赛一般采用7场胜利或3场胜利在5场比赛中。减少标点符号对句子的影响,删除句子中出现的引号,并标上标点符号的特殊含义。正如评论
8、家所说,“具有形式和精神的结合,充满活力”取代了神笔马良笔下那栩栩如生的画,形式和精神都充满活力。减少数字对句子的影响,并用中文替换句子中出现的数字,例如“离家5分钟学走路”和“从我家到公司5分钟”。1.3 分词与标注处理采用语法错误集自动纠错时,句子需要被分段和词性标。分词是解决中文文本最基本的前提条件,也是Chinese Human-Machine Natural Language Interaction的基础模块6。良好的中文分词算法可以提升Natural Language Processing效果,更好地帮助系统理解复杂的汉语。因此,分词是关键步骤,分词准确率越高,语法错误识别的准确性
9、就越高。本课题将使用开源的Han Language Processing(简称HanLP)7进行分词和注释处理。HanLP是Natural Language Processing的一个工具包,基于算法和模型,并具备低耦合、高性能、多功能、新语料等包括自定义的优势,功能包括HMM-Bigram和由字构词等中文分词、TextBankKey提取、TextBank自动Summary、HMM和CRF等词性标注、KMeans等自动推断聚类数目、文档语义相似度计算等。HanLP有两种方式引用。(1)直接在Maven的pom.xml引用hanlp:com.hankcshanlpportable-x.x.x(2
10、)下载data数据包,该数据包存在模型和词语7,词法分析会使用到词语词典,句法分析会使用到模型;下载perties包,通过修改配置文件引入HanLP-data数据包,并将perties放到src或resources目录下进行编译8。示例:“我喜欢在睡前喝一杯牛奶,听一些轻音乐,因为能帮助我快速入眠。”程序运行后得到的词法分析结果如图1所示,句法分析结果如图2所示。1.4 N-gram模型N-gram模型9的基本思想是在大小为n字节的滑动窗口中操作文本内容,形成长度为n的字节段序列。每个字节段称为一个克计算所有克的出现频率,并根据预设阈值进行过滤,以形成密钥克列表,即文本的向量特征空间,每个列表
11、克是特征向量维度。这个模型假设如下,第n个词语的出现与前面的n-1个词语存在关系,而与其他词语无任何关系。每个词语出现概率之积就为整个句子是否正確的概率。通过直接计算出来自语料库的n个单词同时出现的次数,可以判断这些概率是否合理。假设句子T是由词序列y1,y2,y3,yn组成,用公式表示N-Gram语言模型如下:P(T)=P(y1)p(y2)p(y3)p(yn)=p(y1)p(y2|y1)*p(y3|y1y2)*p(yn|y1y2y3),Tri-Gram和Bi-Gram为教常见的N-Gram模型。两个模型可用公式表示如下:一元Bi-Gram:P(T)=p(w1|begin)p(w2|w1)p(
12、w3|w2)*p(wn|wn-1)二元Tri-Gram:P(T)=p(w1|begin1,begin2)p(w2|w1,begin1)p(w3|w2w1)*p(wn|wn-1,wn-2),这个概率显然不是很好,运用马尔科夫链的假设,假设这个词仅仅与之前几个有限的词相关,就可以减少计算的长度而不必追溯原始单词。即,在一阶的马尔科夫条件下,P(w1,w2,w3,wn)=P(w1)P(w2|w1)P(w3|w2)P(wn|w_n-1)。N-gram是一个有创造性的模型,随着N的变大,形成的矩阵数量也越大,例如语句包含6 000个单词,bigram模型方法可生成6 0006 000的矩阵,trigra
13、m模型可生成6 0006 0006 000的矩阵。但其中会含有大量为零的值,导致整个句子的概率会变成零,会出现稀疏矩阵问题。因此,需要利用数据平滑技术,目的是使句子N-gram概率之和等于1。算法的原理是对概率空间做重构,弥补给之前未出现过的N-gram,降低出现过的N-gram的概率,常用的数据平滑处理方式10如下:拉普拉斯平滑。要求任何N-Gram在训练语料库中出现一次或多次。Good-Turing方法。减少出现非零的次数,并将其他概率分解到0概率中。拉依达方法。若测量数量大于等于50,则非等置信概率计算非零事件的减损值,然后根据该方法将其分配给其他0个概率事件,低阶分布。绝对损伤法。减少
14、固定次数非零的出现概率,并将其他概率分解到0概率中。线性损伤法。将次数减少到个位,并分解到其他0个概率事件。1.5 利用N-gram模型10评估句子合理概率基于N-gram,每个单词是独立分布的,即P(D,E,F),其中D、E和F没有任何交集,所以P(D,E,F)=P(D)P(E)P(F),比如语句“我热爱唱歌”,P(D=我,E=热爱,F=热爱)=P(我)P(“热爱”)P(唱歌);每个词语在语料库中的统计数量为我:221;热爱:272;唱歌:391。按照以上信息就可以得出P(D,E,F),也就是这个句子正确的概率为P(D,E,F)=P(D)P(E)P(F)=13/M*16/M*23/M。对于二
15、元模型,针对P(D,E,F)=P(D)P(E|D)P(F|E),各单词与左边相近的词相关联,例如“我热爱唱歌”,P(D=我,E=热爱,F=唱歌)=P(我)P(“热爱”|“我”)P(唱歌|“热爱”);每个词语在语料库中的统计数量为我-我:0;我-热爱:114;我-唱歌:1;热爱-我:0;热爱-热爱:3;热爱-唱歌:162;唱歌-我:0;唱歌-热爱:0;唱歌-唱歌:0。按照以上信息可以得出P(D,E,F)等于句子的合理概率。P(D,E,F)=P(D)P(E|D)P(F|E),P(D)= 221/M,P(E|D)=114/221,P(F|E)=162/272。1.6 基于CRF模型检测语法错误CRF
16、即条件随机场为条件概率分布模型P(A | B),指输入随机变量A条件下的另一组输出变量B的概率分布模型,为满足CRF序列模型,必须对每个句子做分割,再提取这个单词相关的特性。该信息主要包括词的从属语法树中词性的结构特征和对其他词的依赖。根据句级N-gram的概率值和高稀疏度部分,序列标注能更好地分析词与词之间的关系及词本身的特性,并且不会有稀疏问题,能更准确地识别出语句错误的具体位置。同时,CRF具备较强的推理能力,能利用相似、非独立性的逻辑进行训练;也可完全运用上下文数据作为特性,亦可任意添加其他外部特征,方便模型信息的获取,使模型更加丰富。此外,CRF的在性能表现上更加优秀,具备更强的融合
17、能力,识别效果优于MEMM。2 技术应用语病辨认认为检查句中中存在的错误,语病分类为检测句子的错误类型,语病定位为辨认句子的错误位置。其中,错误类型有4种:少词、多词、用词错误、词序错误,对于缺词和错词,需提供修正的建议。具体的错误样本数据见表1。(1)引入一些新的语言学特征(先验知识)。(2)概率集成方法(集成多个Bi-LSTM+CRF模型)。(3)模板匹配用于后处理。语病修正(对缺词错误,以及使用不当错误进行纠正):系统采用端到端神经网络模型结合词汇点互信息,根据语境和语言信息腾出语言位置,猜测正确的词汇量。目前来看,纠错算法分为两个方向:基于规则、深度模型。中文纠错分为两个步骤。第一步是
18、谬误检测,第二步是谬误纠正。谬误检测部分通过中断单词segmenter切断单词。由于句子包含拼写错误,因此从单词大小和单词粒度中切出单词的结果中存在许多切割错误,检测到错误的结果形成一组可疑的错误位置。谬误部分是遍历所有可疑错误位置,并用类似相近的词语替换错误位置的单词,然后通过语言模型计算句子混淆程度,比较并排序所有候选集结果,并获得最佳校正词。3 实验与分析纠错方式共计两步:检测和纠错。检测主要通过分词器进行切词,由于切词结果存在切分错误的情况,所以检测时分别从字、词两个颗粒度触发整合,形成错误候选集。通过检测模型逐个定位疑似错字词,长句切分为短句,取得疑似错字词的同音词、同义词,使用候选
19、字词进行替换,通过翻译模型进行倒序处理,纠错逐个处理,并集中指定的词直接取得所有可能正确结果(PS:对非中文的错字不做处理)。为了使纠错效果更好,本次使用了seq2seq_attention模型,但是也存在一个缺点,就是模型容易拟合。(1)中文切词代码如下。def chineseWordSegmentation(sentence,cut_type=word,pos=False):中文切词功能:传入参数1:sentence:句子文本;:传入参数2:cut_type:word use jieba.lcut; char use list(sentence);:传入参数 3:pos:enable PO
20、S:返回:listif pos:if cut_type = word:word_pos_seq=posseg.lcut(sentence)word_seq,pos_seq =,for w,p in word_pos_seq:word_seq.append(w)pos_seq.append(p)return word_seq,pos_seqelif cut_type = char:word_seq = list(sentence)pos_seq =for w in word_seq:w_p = posseg.lcut(w)pos_seq.append(w_p0.flag)return word_
21、seq,pos_seqelse:if cut_type = word:return jieba.lcut(sentence)elif cut_type = char:return list(sentence)(2)中文糾错处理逻辑如下。长句文本切分成短句文本:sentences = re.split(r;|,|。|?s|;s|,s,sentence)调用模型库,进行倒序操作:maybe_errors = sorted(maybe_errors,key=operator.itemgetter(2),reverse=True)遍历纠错,逐个处理:before_sent = sentence:beg
22、in_idxafter_sent = sentenceend_idx:如果集中制定的词,直接取结果:if err_type = error_typeconfusion:corrected_item=since.custom_confusionitem否则则取出所有可能正确的词(对非中文的错字不做处理):if not is_chinese_string(item):continuemaybe_right_items = since.generate_items(item)if not maybe_right_items:continuecorrected_item = since.lm_corr
23、ect_item(item,maybe_right_items,before_sent,after_sent)(3)系统输入“我们都因该学会思考”,程序执行后检测出错误词语“因该”,并替换成“应该”,最终正确语句为“我们都应该学会思考”。具体实验结果如图3所示。参 考 文 献1Lei Zhang,Ming zhou,Haihua Pan.Automatic detecting/correcting errors in Chinese text by an approximate word-matching algorithmD.Association for Computational Lin
24、guistics,2000(10):248-254.2Jianbo Zhao,Mingzheng Li,Weijie Liu,et al.Detection of Chinese Grammatical Errors with Context RepresentationM.United Kingdom:ALTA Institute,University of Cambridge,2018:22-24.3Junjie Yu,Zhenghua Li.Chinese Spelling Error Detection and Correction Based on Language Model,Pr
25、onunciation,and ShapeJ.Proceedings of The Third CIPS-SIGHAN Joint Conference on Chinese Language Processing,2011(10):220-223.4Chuen-Min Huang,Mei-chen Wu,Ching-Che Ch-ang.Error Detection and Correction Based on Chinese Phonemic Alphabet in Chinese TextJ.Computational Linguistics and Chinese Language Proces-sing,2007:27-44.5K J Chen,M H Bai.“Unknown word detection for Chinese by a corpus-ba
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年注册测绘师资格考试测绘管理与法规模拟题(附答案)
- 铁路货场搬迁项目交通影响评价
- 市政污水处理厂安全生产管理方案
- 2026年湖北交安c考试试题及答案解析
- 2026年副高职称考试全科(副高)真题及答案
- 森林防火通道建设项目使用林地可行性报告
- 2026年(副)主任医师(妇产科)试题及答案
- 足球训练基地建设工程交通影响评价
- 农产品冷链物流项目经济效益和社会效益分析报告
- 历史遗留矿山生态修复项目土地复垦方案报告书
- 腹股沟疝修补术后慢性疼痛研究进展2025
- 校园防汛安全隐患排查台账
- GB/T 7631.7-2025润滑剂、工业用油和有关产品(L类)的分类第7部分:C组(齿轮)
- 徒手控制警务技能教案教学讲义课件
- 二次供水安全培训课件
- 辽宁省丹东市2024-2025学年高一下学期期末教学质量监测物理试卷(含答案)
- 监理廉洁从业课件
- GB/T 2423.21-2025环境试验第2部分:试验方法试验M:低气压
- 北京积水潭医院贵州医院招聘笔试真题2024
- 宫腔镜的保养与维护
- 人教版2024版历史八年级上册第四单元第12课《中国共产党诞生》创新教学设计
评论
0/150
提交评论