基于统计的英语语法纠错模型的研究与实现.pdf

申明敬告: 本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。

文档介绍

基于统计的英语语法纠错模型的研究与实现.pdf

密级桂林电子科技大学硕士学位论文(全日制专业学位硕士)题目基于统计的英语语法纠错模型的研究与实现(英文)ResearchandImplementationofEnglishGrammarErrorCorrectionModelBasedontheStatistics研究生学号:1208521104研究生姓名:荣尊合指导教师姓名、职务:周娅(教授)申请学位门类:工程硕士学科、专业名称:计算机技术提交论文日期:2014年9月论文答辩日期:2014年12月万方数据 万方数据 摘要摘要随着教育信息化的倡导,英语教学方式也有了多元化的需求,计算机技术在日常教学中的应用越来越多,各种教学辅助软件大量涌现。然而,英语教学与汉语教学存在诸多差异,语法使用尤其不同,而且对于中国的英语学习者来说,掌握好英语语法知识比较困难。一个针对中国英语学习者的语法纠错系统,不仅能给学习者一个语法错误的反馈,也可以使学习者针对语法知识进行自主学习,所以说,研究针对中国学生的英语语法纠错模型,并将其在实际的系统中进行实现是非常有意义的课题。本文主要运用统计的方法分析研究了中国大学生在英语四六级写作中常出现的语法错误,对国内外一些相关的英语语法检查器进行了阐述,介绍了语法检查相关的关键理论及模型在实现过程中用到的关键技术,构建了基于统计的英语语法纠错模型,并将其应用在实际的系统中,实现了对英语作文中语法错误的自动检查与纠正。本文的研究成果主要分为以下两部分:1、本文基于统计的语法纠错模型在对训练语料进行预处理的过程中,用到了N元语法模型和互信息理论,在句法分析时运用了短语切块技术,原有方法是进行完词性标注就构建句法解析树,没有考虑词与词之间的依赖关系,即没有将英语中的短语、词组进行单独处理,这样在构建句法树时,会降低其准确率,也会影响到后面的语法纠正环节,短语切块技术会在词性标注的基础上,对英语中存在的短语、词组进行切分,然后再对其进行构建句法树,这样会增加构建句法树的准确率,结合在计算特征权重的过程中运用了互信息的方法,又进一步提高了语法纠正的准确率,从而提高了整个语法纠错模型的准确率。2、本文在研究构建语法纠错模型的基础上,搭建了包括单词、语法纠错和作文评分模块的核心批阅模块E-Learning,又将其在基于B/S架构的实际系统中进行了实现,在实现的过程中主要运用了SSH(Struts、Spring、Hibernate)框架,MySQL、jQuery等技术,最终学习者可以在网页上对于自己提交的英语作文进行智能批阅,得到语法纠错结果并将结果保存在数据库中。同时,又初步构建了一个语法知识库,使得在浏览器前端给出语法错误反馈的同时又提示了相应的语法知识,从而更有利于学习者对英语语法的了解与掌握。关键词:英语语法纠错、短语切块、互信息、SSHI万方数据 AbstractAbstractWiththeadvocateofeducationinformatization,needsforEnglishteachingmethodstendtobediverse.Moreover,itismoreandmorepopulartoapplycomputertechnologyindailyteaching,andallkindsofauxiliaryteachingsoftwarespringup.However,therearemanydifferencesbetweenEnglishteachingandChineseteachingespeciallyforgrammar,asitisdifficulttolearnEnglishgrammaticalknowledgeforChinesestudents.AsyntaxerrorcorrectionsystemwhichaimingatChineselearnersofEnglishcannotonlygivelearnersasyntaxerrorfeedback,butalsotrainupthemtobeself-regulatedlearners.Hence,itisaverymeaningfulsubjecttostudygrammarerrorcorrectionmodelaimingatChinesestudents"Englishandevenimplementsitintheactualsystem.Inthisstudy,statisticalmethodisusedtoanalyzethegrammarerrorsofChinesecollegestudentsinCollegeEnglishTest;Somebasictheoryisintroduced,includingforeignrelatedEnglishgrammarchecker,relevantessentialtheoryandmodelsandkeytechnologyusedintheprocessofimplementation;Acorrectionmodelbasedonstatisticsisbuiltandappliedtotheactualsystem,whichgivesrisetotherealizeofautomaticallycheckingandcorrectingforgrammarerrorinEnglishcomposition.Theresearchachievementofthispaperisdividedintotwopartsasfollows:1.Inthispaper,thetechnologyofphrasechunking,theN-grammodelandmutualinformationtheoryareappliedwhensyntacticanalysisisinprogress,whichisintheprocessofthepreprocessingforthetrainingcorpus.However,theoriginalmethodistobuildthesyntaxparsingtreeoncethepartofspeechtaggingisfinished,withouttakingintoaccountthedependenciesbetweenwords,namelynottodisposephrasesinEnglishseparately,whichwillreduceaccuracywhenbuildingasyntaxtree,andevenaffectthesubsequentprocessofgrammarcorrection.ThetechnologyofphrasechunkingwhichisbasedonpartofspeechtaggingisappliedtocutthephrasesinEnglishcomposition,thenbuildasyntaxtreewiththesephrases.Suchoperationwillincreasetheaccuracyofconstructingsyntaxtree.Moreover,whenthisoperationiscombinedwiththemutualinformationintheprocessofcalculatingtheweightoffeature,theaccuracyofgrammarcorrectionisfurtherimproved,soastothewholegrammarerrorcorrectionmodel.2.Inthispaper,thecoremarkingmodulewhichiscalledE-Learninghasbeenbuilt,whichincludesword,grammarerrorcorrectionmodelandessayscoringmodelbasedonthegrammarerrorcorrectionmodel.TheE-LearninghasbeenappliedintheactualsystemofB/Sarchitecture.ThemaintechnologyincludesSSH(Struts、Spring、Hibernate)II万方数据 Abstractframework,MySQL,JQueryandetc.intheprocessofitsimplementation.Finallythelearnercanintelligentlycorrecttheircompositionssubmittedbythemselvesonthewebandagainthegrammarsyntaxerrorcorrectionresultswhicharesavedinthedatabase.Atthesametime,agrammarknowledgebaseispreliminarilybuilt,makesthebrowserfront-endshowsthegrammarerrorfeedbackaswhileassuggeststhecorrespondinggrammarknowledge,thus,itismoreconduciveunderstandandmastertheknowledgeofEnglishgrammarforlearners.Keywords:Englishgrammarerrorcorrection,Phrasechunking,Mutualinformation,SSHIII万方数据 目录目录摘要----------------------------------------------------------------------------------------------------IAbstract--------------------------------------------------------------------------------------------------II第一章绪论-------------------------------------------------------------------------------------------1§1.1课题的研究背景--------------------------------------------------------------------------1§1.2课题的来源及研究意义-----------------------------------------------------------------2§1.3课题的目标及主要工作-----------------------------------------------------------------3§1.4论文组织结构-----------------------------------------------------------------------------4第二章国内外相关研究----------------------------------------------------------------------------6§2.1语法检查方法概述-----------------------------------------------------------------------6§2.2相关研究现状-----------------------------------------------------------------------------6§2.2.1规则语法检查方法---------------------------------------------------------------6§2.2.2统计语法检查方法---------------------------------------------------------------8§2.2.3其他方法--------------------------------------------------------------------------10§2.3本章小结----------------------------------------------------------------------------------11第三章关键理论与技术---------------------------------------------------------------------------12§3.1语料库概述与常见语法错误----------------------------------------------------------12§3.1.1语料库概述-----------------------------------------------------------------------12§3.1.2常见语法错误--------------------------------------------------------------------12§3.2N-gram语法与互信息-------------------------------------------------------------------13§3.2.1N-gram语法----------------------------------------------------------------------13§3.2.2互信息-----------------------------------------------------------------------------15§3.3词性标注----------------------------------------------------------------------------------15§3.3.1词性标注集-----------------------------------------------------------------------16§3.3.2词性标注器-----------------------------------------------------------------------17§3.4句法分析----------------------------------------------------------------------------------17§3.4.1短语切块--------------------------------------------------------------------------17§3.4.2句法分析--------------------------------------------------------------------------18§3.5SSH框架技术----------------------------------------------------------------------------19§3.5.1Struts框架-------------------------------------------------------------------------20§3.5.2Spring框架------------------------------------------------------------------------21§3.5.3Hibernate框架--------------------------------------------------------------------23§3.6数据库技术-------------------------------------------------------------------------------25§3.7本章小结----------------------------------------------------------------------------------26IV万方数据 目录第四章语法纠错模型的设计---------------------------------------------------------------------27§4.1总体结构----------------------------------------------------------------------------------27§4.2预处理-------------------------------------------------------------------------------------27§4.3训练处理----------------------------------------------------------------------------------32§4.3.1特征提取--------------------------------------------------------------------------32§4.3.2计算特征值及权重--------------------------------------------------------------36§4.4纠错处理----------------------------------------------------------------------------------38§4.5本章小结----------------------------------------------------------------------------------40第五章语法纠错模型的实现---------------------------------------------------------------------41§5.1系统的整体框架-------------------------------------------------------------------------41§5.2核心模块E-Learning的实现----------------------------------------------------------42§5.3模型在系统中的实现-------------------------------------------------------------------43§5.3.1需求分析--------------------------------------------------------------------------43§5.3.2数据库设计-----------------------------------------------------------------------44§5.3.3数据持久层实现-----------------------------------------------------------------44§5.3.4业务逻辑层实现-----------------------------------------------------------------48§5.3.5表示层实现-----------------------------------------------------------------------50§5.4语法知识库的实现----------------------------------------------------------------------53§5.5本章小结----------------------------------------------------------------------------------56第六章实验与评估---------------------------------------------------------------------------------57§6.1实验环境与测试语料-------------------------------------------------------------------57§6.2运行结果----------------------------------------------------------------------------------58§6.3评估结果与分析-------------------------------------------------------------------------60§6.4本章小结----------------------------------------------------------------------------------64第七章总结与展望---------------------------------------------------------------------------------65§7.1全文工作总结----------------------------------------------------------------------------65§7.2研究展望----------------------------------------------------------------------------------66参考文献-----------------------------------------------------------------------------------------------67致谢--------------------------------------------------------------------------------------------------70作者在攻读硕士期间主要研究成果--------------------------------------------------------------71V万方数据 第一章绪论第一章绪论§1.1课题的研究背景科学技术的发展以及全球信息化的趋势为人们提供了灵活丰富的通信交流方式。伴随着人与人之间相互了解的加深,需要处理的各种语言信息量快速增多,不同语言之间的沟通障碍已经成为了制约经济、社会发展的一个重要因素。人们迫切需要用自[1]动化的手段处理海量的语言信息。如何跨越不同语言之间沟通交流的鸿沟,已经成为当下社会发展、进步面临和要解决的问题,同样也是诸多研究者想要挑战的课题。在当今社会,英语的流行度不言而喻,除了作为美国、英国、加拿大等世界上多个国家和地区的官方语言之外,同时,全球有10多亿的人将英语作为第二语言(非母语)[2]进行学习使用,是全球各种场合使用十分普遍的语言。英语的使用已经渗透到了世界的每一个角落,各国之间的科技合作、人文交流、经济往来和政治协商等,英语都被用作最主要的沟通语言。据不完全统计,我国约有4亿人在学习或者使用英语,这其中涵盖了在校学生和已经步入社会上的人们。这和英美及加拿大的总人口量大致相当。英语作为第二语言[3]使用者的人数已经远远超过了英语作为母语使用者的人数。这使得中国成为了世界上拥有英语学习者最多的国家。如此庞大的英语学习人群给中国的英语教育带来了前所未有的压力。英语听说读写的四项技能当中,写作是难度最大的部分,也是应用最多,涉及知识面最广的部分,尽管有非常多的人在学习和使用英语,但他们当中大多数人都存在着词汇量欠缺及语法知识较弱的问题,这些问题使写作成为了中国人学习英语的劣势所在,并且对于中国英语学习者来说写作过程中存在的语法错误尤其突出。对于中国学生而言,英语作为一门具有复杂语言体系的外语,仅仅依靠老师的课堂教学和教科书很难将英语学好。这使得英语教学必须进行创新,在教学途径和方式上朝多元化方向发展,单纯的课堂教学已经不能很好的满足英语教学的需要。而计算机作为辅助人类认识世界和改变世界最有效的工具,必定在以后的英语教学中起到越来越大的作用。科研人员探索使用计算机解决人类在语言沟通上的障碍,实现人与计算机之间的高效通信,这就是自然语言处理技术。自然语言处理技术是利用计算机技术对人类交流中海量自然语言信息进行处理与加工的技术,通过研究语言的能力、特点及应用,通过建立统计、计算的框架来构[4]建语言模型。然后,运用这些模型解决人与人、人与计算机之间交流沟通的问题。其研究范围非常广泛,包括机器翻译、信息检索、文档分类、自动文摘、语音识别等。近年来,随着自然语言处理技术快速发展,在文本信息处理、机器翻译等领域取得了丰硕成果,为实现英语语法纠正提供了技术保障。同时自然语言处理技术使得人类与1万方数据 基于统计的英语语法纠错模型的研究与实现计算机之间能够使用自然语言进行沟通交流,这就使得英语语法纠错模型的研究构建以及在实际系统中的有效运用提供了理论技术基础及可行性。目前,对英语句子进行语法检查与纠正的方法主要有基于统计的方法和基于规则的方法。使用统计方法的前提是要训练大规模的语料,然后通过使用机器学习方法构建的统计模型对英语句子中的语法错误进行检查,这种方法比较好的解决了规则方法中的规则冲突和语法覆盖度比较有限的问题。但是基于统计的方法会存在过于依赖语料库及数据稀疏的问题。基于规则的方法需要首先人工构建语法规则库,再根据设定的限定条件对英语句子进行语法检查,这种方法的好处是对特定语法规则进行建库,[45]从而比较有针对性。英语的表达方式、语言特点及使用规范比较特殊,相比与中文差异较大,英语当中的语言规范在对语言用法相对严格的写作当中体现尤其明显。这就对于运用计算机技术进行英文文本处理的辅助教学工具有了特殊的要求,人们希望它们可以修正语法错误,从而获得良好的写作风格等。正对以上现状和不足,本课题利用自然语言处理技术,通过基于统计的方法构建一种合理有效的语法纠错模型,能够针对学习者写作过程中出现的语法错误进行提示并给予纠正意见,同时能够针对不同的语法错误给出相应的语法知识点提示,然后将这一模型应用到实际的教学系统中,从而使得学生在没有老师指导和教材辅助的情况下也能够积极主动的学习。§1.2课题的来源及研究意义本课题来源于教育部人文社会科学研究项目“不依赖主题的大学英语作文自动评分技术研究”,研究目的是通过使用自然语言处理技术来智能纠正作文中的语法错误,从而为大学英语作文自动评分打下基础。语法错误的类型主要包含介词错误、词性混淆、冠词错误、动词格式错误、名词单复数不一致、词汇搭配错误、片段错误、主谓不一致和情态(助)动词失误等。英语作为世界上使用最广泛的语言,大多数人使用英语来进行沟通交流,这让英语变成了人们生活中不可缺少的部分。中国人通过学习英语这一有效途径来适应信息全球化和市场国际化,这使得英语学习的重要性更加突出。英语对于中国学习者来说是第二语言,要想很好的掌握使用英语不太容易,他们需要非常多的练习,并且对于出现的语法错误能做出及时的发现与知道如何更正,这样才能比较好的提高写作能力[5]。国内外大部分研究者都认为,英语写作是学习英语的重要组成部分,是评价英语[46]学习者英语水平最有效的方式。然而批改英语作文无疑是一项非常费时费力的工作,进而增加了老师的教学负担。据统计,现在我国的师生比已经远低于1%。这使得老师越来越没有时间和精力来批阅写作。所以目前急需能够自动批阅作文的教学软件来缓解老师的教学压力。因此,如果能够利用自然语言处理技术自动检查英语学习者在写作过程中存在的语法错误,并给出相应的修改意见,以及语法知识点提示,既2万方数据 第一章绪论能够减轻老师的工作压力,又可以让学生尽快得到自己写作的一个整体反馈,学生可以全面了解作文中的语法存在的错误信息以及纠正意见并且可以通过语法知识点提示来有针对性的改进自己知识缺陷,这对于提高学生的写作水平也会有很大的帮助。目前,针对英语作文语法检查与纠正技术的研究有了一些不错的成就,一些成熟的系统已被广大人们所熟知和使用,不过这些系统大多数都是通过基于规则的分析方法构建开发的,其适用的人群主要是针对母语为英语的学习者,不适合英语为非母语的英语学习者使用。中国式英语具有其自身的独特特点,国外开发的一些系统不太适合于中国学生使用。对于一个好的英语语法检查器而言,应该充分考虑到文本的上下文信息,词法和语义信息来进行语法检查,而且其自身的鲁棒性要足够好。所有这些使得目前的一些语法检查器需要进一步的改进和完善。而本课题主要是探索一种主要针对中国英语学习者适用的纠错模型,对中国的英语学习者在英语写作方面经常出现的语法错误进行检查与纠正。另外,在短语切块及句法分析方面的技术已经取得了非常显著的成果,这些成果可以应用到语法检查模型当中。再结合自然语言处理相关技术实现对英语文本的自动检查和纠正,这对于提高学生的英语水平非常有利,同时大大减轻了老师批阅学生作文的负担,从而使老师拥有更多的时间和精力关注作文的结构和语义表达。同时,语法纠错作为作文自动评分的一个重要指标,可以提高英语作文自动评分的客观准确性。§1.3课题的目标及主要工作[6]Kukich曾将英语写作错误分为五级,它们分别是拼写,语法,语义,结构和语用错误,其难度逐渐增加。目前,微软的MicrosoftWord自带的拼写检查功能可以比较好的实现拼写检查,此外,有不少研究者在拼写检查方面已经做了大量工作,也取得了很不错的效果。相比较而言,在语法检査方面的工作相对较少,能够使用的教辅工具更是比较少。本文的主要目标是对于语法错误设计并实现一个适用于大学英语教学的英语作文语法自动检查及纠正的模型。然后将该模型运用到实际的大学英语读写智能教学系统中。目前,英语文本自动检查方法可以大概分成四类,基于规则的分析方法、统计分析方法以及规则和统计相结合的方法和模式匹配的方法。统计分析方法是建立在大规模的语料库的基础上,通过统计机器学习的理论方法构建数学模型,克服了传统基于[7]规则的方法中存在的语法覆盖度有限、规则冲突等问题。本课题研究的主要内容如下所示:1、深入了解国内外英语语法自动检查技术的相关研究现状,了解现有语法检查系统的架构及其主流技术,在前人的基础上,对已有的模型进行设计完善,增加比较成熟先进的理论方法,对模型中的部分模块进行重新架构,使语法错误检查及纠正获得较高的正确率。3万方数据 基于统计的英语语法纠错模型的研究与实现2、深入研究语法检查与纠正模型的关键理论。包括N-gram模型、数据平滑技术、互信息、词性标注的相关技术、词性标注集的选择、短语切块及句法分析树结构的生成,这些都是构建语法检查模型所需的基本预处理技术。上下文特征的提取是建立语法纠错模型的最重要部分,怎样选取正确的上下文特征、设置上下文特征的区分效度,构建特征权重的分配函数,提供正确的纠正建议以及给出相应的语法知识点提示都是本文研究的重点。3、深入研究J2EE理论,掌握Struts+Spring+Hibernate框架和MyEclipse开发工具;掌握前段展示层jQuery技术;MySQL数据库技术以及Tomcat服务器技术。参与完成实验室项目“大学英语读写智能教学系统”,并将语法纠错模型整合到实际的系统中,整合完善系统的核心批阅模块E-Learning,然后测试完善系统的相关工作。从本论文的主要内容看,包括两大部分,一部分是语法检查与纠正模型的构建与完善,其中关键技术主要是语料的预处理、特征的选取、权重计算、纠错建议的生成和语法知识点提示的给出。另一部分就是参与完成实际的教学系统,将语法纠错模型在实际的系统中实现。§1.4论文组织结构本文的正文部分有七章,其内容组织结构如下:第一章:绪论。一开始介绍本课题相关的研究背景,又介绍了本课题来源及研究意义,再者是本课题的目标和主要工作,最后列出论文的组织结构。第二章:国内外相关研究。主要介绍了在这一领域国内外相关的研究状况以及一些主流的英语语法纠错方法,如基于规则的语法纠错方法、基于统计的语法纠错方法以及统计和规则相结合的英语语法纠错方法等。以及这些方法当中涉及到的相关研究成果。第三章:关键理论与技术。主要介绍语法检查相关的基础理论,阐述了语法错误的种类;介绍了本课题所涉及的自然语言处理理论方法,包括语料库、N-gram模型、互信息、词性标注、短语切块、句法分析等,以及一些常见的英语语法错误。还介绍了模型在实际系统中实现所用到的关键技术,如SSH(Struts、Spring和Hibernate技术),以及有关的数据库技术。第四章:语法纠错模型的设计。首先介绍了语法纠错模型的总体结构,纠错模型的预处理、训练处理以及纠错处理方法及总的流程,在归纳和总结前人工作的基础上,在介词纠错过程中完善互信息理论的应用,从而提高介词纠错的准确率;并在英语句子的词性标注和构建句法树中间引入短语切块的概念,从而更准确的构建句法树,进而运用于语法纠正的训练和检查阶段。第五章:语法纠错模型的实现。本章介绍了实际系统的整体框架,三层设计所用到的理论技术,系统学生端的整体框架,核心批阅模块E-Learning的整体结构,语法4万方数据 第一章绪论纠错模型在核心批阅模块中运作流程,初步构建了一个英语语法知识库,在系统给出语法纠正提示的同时,给出相应的语法知识点提示。第六章:实验与数据分析。首先介绍系统测试的软硬件环境和测试语料;然后是介绍了评估指标、对在实际系统中测试得到的实验数据进行分析;再者展示了模型在实际系统中的最终运行结果,接下来是模型在系统中的性能分析以及几种语法错误纠错结果进行的分析对比,阈值对正确率和召回率的影响,短语切块添加前后对部分语法错误带来的影响以及与其它方法纠错结果的对比等。第七章:总结展望。对本文所做工作进行了概括总结,说明本语法纠错模型的价值,说明了研究取得的成果以及本模型所存在的不足,以及在实际系统中运行存在的弊端,并对下一步工作做出展望。5万方数据 基于统计的英语语法纠错模型的研究与实现第二章国内外相关研究§2.1语法检查方法概述语法检查技术是伴随着自然语言处理技术的发展而形成的,模式匹配是最早的语法检查方法,例如模式“yourright”则会被建议修改为“you"reright”。这种方法可以简单地构建一个语法检查器,但这样的语法检查器没有多大的用处。可想而知,英语写作当中存在着无数这样的模式规则,我们不可能全部一一罗列出来,然后通过简单的模式匹配进行语法检查。近年来,自然语言处理相关技术得到了突飞猛进的发展,针对英语写作中出现的语法错误进行检查和纠正国内外已经有了大量的研究,且研究成[5]果丰硕,已经在实际的教学当中应用。但是从使用的效果来看,这些著名的语法检查器并没有达到用户的要求。于是研究人员从较高的层次来研判文本的信息,提出词性标注(PartofSpeechTagging,简称PoSTagging)的方法,词性标注可以为句子中的每个单词标注出其词性,比如名词、代词,形容词等。大多数的语法检查器都可以进行词性标注,基于规则的方法可以根据预先编写好的规则来检查写作中存在的语法错误。然而,当单词进行词性标注之后,因为增加了额外的信息,这会对编写规则带来诸多限制。例如,应将单词短语看成一个整体,像“NewZealand”,我们称之为“短语块”。很显然,英语当中这些短语块也没有办法通过编写规则的手段全部罗列出来[5]。伴随着自然语言处理研究领域的逐渐增大,计算机技术的迅猛发展,基于统计和数据驱动自然语言处理方法开始逐步兴起。此外,目前在国内有些人在中文自然处理领域,开始探索使用统计和规则相结合的方法来作为研究方向。本课题是基于统计的方法构建了英语语法纠错模型并进行了实现。§2.2相关研究现状§2.2.1规则语法检查方法基于规则(rule-based)的方法在语法检查器中被广泛使用。比较容易发现的错误可以用简单的规则进行检查,如标点重复等。如果一个英语句子比较复杂,那么需要用比较复杂的规则来进行检查。基于规则的语法检查器比较早的版本有EasyEnglish、Park语法检查器和FLAG语法检查器等,使用最广泛的有MicrosoftWord、[10][11]WordPerfectd、LanguageTool、GrammarianProX,这些工具都可以用于多种语言。它们都是通过使用一些确定的语法规则来检查句子或短语的,因此,最主要的不足之处就是受到不同语种的限制,一种规则不能被多种语言重复利用。基于规则的句法检查器流程图如图2.1所示。1、基于规则的语法检查器6万方数据 第二章国内外相关研究EasyEnglish是由IBM开发英语语法检查器,使用网络图表示的句法树来检查发现错误,用模式来形式化语法错误,然后与构建的句法树匹配,是基于规则的方法和[8]“英语槽语法”(EnglishSbtGrammar)开发的语法检查器。然而,当一个句子不能被正确解析从而不能构建完整的语法树时,该语法检查器将不能够很好地工作。此外,无论是商用还是免费的工具,该语法检查器目前还没有公开发行的版本。Park的语法检查器是一种专门为英语作为第二语言(EnglishasSecondLanguage,简称ESL)的英语学习者开发应用的语法检查器,用其来检查作文当中的典型错误,[9]它是通过规则方法和Prolog方法相结合的方法来实现的语法检查器。该语法检查器能够手动添加规则,新规则可以代替失效的旧规则。这些规则可以给用户反馈信息,而对于正确的句子则不会返回任何信息。图2.1基于规则的句法检查器流程图2、基于LanguageTool的OpenOffice工具LanguageTool可以被集成在OpenOffice中,用于语法检查,它的工作过程比较简单。使用辅助工具将文本切分成句子,然后再将所有句子中的单词分割成词次,并进行词性标注,最后将文本与系统中早先建立的规则库进行匹配,规则被定义成了XML文档的形式。LanguageTool通过搜索、对比定义在XML规则库中的规则范例检查并纠正发生错误的文本。LanguageTool中用到的规则是通过手工建立的,其中包括搭配错误、句法结构错误、易混单词错误、手工拼写错误、使用不标准的短语、坏的写作风格等错误类型。LanguageTool的语法规则描述的是发生错误的文本,而不是描述正确的句子,这个过程与学习一门新语言的过程相反。这种方法最重要的步骤就是构建语法规则库。图2.2中的例子就是一个“way”错写为“was”的规则实例,这些编写好的规则被存储在一个grammar.xml的文件中。规则7万方数据 基于统计的英语语法纠错模型的研究与实现构建的基本元素包括:元素rule有两个属性,属性id表示处理此规则的内部识别符,必须唯一,属性name显示错误类型;pattern元素包括如下属性,属性mark_from和mark_to表示标记的范围,属性marker的内部被标记为错误;token元素包括属性regexp,它是说明给定的词性是一个正则表达式的格式;message元素表示如果此规则被匹配,message中的信息将被显示给用户。根据这些XML的基本元素和属性,我们自己就可以编写新的语法规则,然后将其添加到规则库中,以便在语法检查和纠正的过程中使用。图2.2LanguageTool中规则库截图基于规则的语法检查方法应用比较简单、纠错的准确率和效率都比较高,并且对于一些特殊的固定搭配、一些单词的特殊用法、固定的语法格式、时态数的一致性等具有比较好的纠错效果。但是由于语言使用的多变性和灵活性,构建语法规则的过程是一个长期而复杂的过程,由于其局限于固定的语法使用规范,使得语法检查类型的[15]覆盖度非常有限。§2.2.2统计语法检查方法使用统计的方法进行语法检查,我们一般认为有两种不同的方式可以成功实现语法纠错的目标,一种是使用统计数据库中的数据与需纠正文本进行直接对比,从而获得正确表达。该方法需要训练大量的文本以获取一个用来进行文本语法检查的模型。本文使用的就是这种方法对语法错误进行检查与纠正。另一种被广泛应用于语法检查的方法就是统计数据分析的方法。目前为止,该方法还处于理论研究层面,并未被应用于任何实际产品中。但是由于统计机器学习方法的迅速发展,以语料库为研究基础和对象的语料库语言学快速崛起,使得该方法越来越被广大研究人员所认可,并得到广泛的应用。以下介绍两种先进的统计语言学方法[15]。1、噪声信道模型8万方数据 第二章国内外相关研究[16][17]Y.AlertPark和RandyLevy提出了一个基于噪声信道模型的语法纠错技术,它使用整个句子的上下文对句子进行语法纠错。噪声信道模型的基本理论主要包括两部分——基本的语言模型和噪声模型。前者是一个概率模型,它根据给定的概率生成一个没有错误的句子。使用EM(Expectationmaximization,即期望最大化)算法来计算出噪声模型的参数,然后,概率噪声模型获得这个没有错误句子,再根据计算出来的参数确定是否应该插入不同类型的错误使句子不正确,例如拼写错误、介词使用错误、单词格式错误等等。在这个模型当中需要通过贝叶斯法则计算一个后验概率p(Sorig|Sobs),这里的Sorig是原始句子,即通过基本的语言模型建立的没有错误的句子,Sobs是观察到的错误句子,如公式(2-1)所示。p(S|S)p(S)obsorigorigp(S|S)=(2-1)origobsp(S)obs基本的语言模型可以使用现有的、比较成熟的概率模型来估计参数,例如PCFG模型、N元语法模型等;噪声模型,运用一些方法从一组特殊的作者(如中国英语学习者)的写作错误中学习参数。通过语言模型,生成多个没有错误的句子,计算在当前给定错误句子的基础上,使得上式后验概率最大的没有错误的句子,将其作为正确纠错建议输出给使用者。使用噪声信道模型的方法不需要包含正确句子的庞大语料库,但需要一个包含错误句子的数据集,这种方法避免了在提取特征提取时因为将错误信息作为特征提取出来而导致纠错效率降低的问题。但噪声信道模型存在修正过度的问题,容易偏离作者[15]的本意,造成误判。2、分类模型分类模型也是语法检查中最常用的统计学方法之一,尤其在确定类型的语法检查与纠正的过程中经常用到,如限定词错误和冠词错误等。在进行语法检查的相关研究时经常会用到分类模型,下面就简单介绍一下分类模型在介词和冠词方面的应用和研究现状。介词的使用对于英语为非母语学习者来讲是比较困难的,据统计,介词使用的出错率在整个英语学习者语法错误量中占有很高的比重。Chodorow利用多种词汇和词性特征,包括邻近介词的动词短语和名词、词性标记、单词词元等,来评估包括报纸新闻文章和中高级英语学生的英文文章在内的大量数据,纠错范围覆盖了34个常用[22]介词,最终最大熵算法的准确率是69%。Felice用到了复杂的语法特征、WordNet类别特征和各类型的词性特征,同时还用到了一些从句法树中提取的语法关系(如直接或间接宾语等),这些语法关系可以用作很强的介词检查特征,Felice运用一个投9万方数据 基于统计的英语语法纠错模型的研究与实现票感知器算法训练了最常用5个介词,然后将英国国家语料库的数据子集作为测试[23]集,得到了75.6%的正确率,是一个相对比较好的结果。在冠词方面比较早的研究是使用决策树的方法从华尔街日报(WallStreetJournal,简称WSJ)中提取出“a/an”或“the”,这项研究用来提高日语到英语翻译系统的准确率;在这个过程中决策树使用了30,000多个特征,其中包括词汇特征,比如名词短语前后的单词;抽象特征,包括中心名词后面过去式格式的动词等;使用决策树对高频率[18]中心名词进行分类,总的分类准确率为78%。Minnen提出了一种基于记忆学习的方法来选择冠词“a/an”、“the”和“null”,他使用到的特征是从宾州句库中提取的,例如中心词的词性、名词短语的中心词、以及名词短语中的其他限定词等;还有一些特征是从日语到英语的翻译系统中提取的,例如名词短语中心词的语义类、可数性倾向等;19][20]模型获得的最高检查准确率为83.6%[。JohnLee使用应用对数线性模型对遗漏的冠词进行自动恢复,它阐述了一种具有竞争力的分类模型来对冠词进行生成和描述,从而恢复正确的句子。Han等人描述了一种使用最大熵分类器的方法来为名词短语选择冠词,这个过程中使用了上下文的一些特征,当分类器的训练集规模达到600万名[21]词短语时,该分类方法的准确率达到了87.99%。上述文献中的方法,都是基于分类模型提出的,每一个介词或冠词都代表了一种使用类别,其基本宗旨都是通过特征提取,判断所使用的介词或冠词属于哪一个类。分类模型是语法检查中被使用最为广泛的统计学方法之一,其优势是对于某种特定的错误类型具有较强的纠正能力,从而可以弥补通过规则方法很难判断的功能词错误纠正的弊端。但同时,该方法不是完美的,他不能解决所有的语法问题,它会受到错误类型的限制。§2.2.3其他方法1、模式匹配的方法语法检查最早使用的方法就是模式匹配。这种方法的基本原理是将普通的语法错误和与之对应的纠正方法放在一起,然后存储在数据存储器中。将待检测的句子或句子片段与存储在数据空间中的错误条目进行匹配,如果匹配成功,错误就会被检查出来,然后再根据存储器中与该错误条目对应的正确修正条目进行纠正。这种方法对于存储空间中含有的错误条目和纠正建议,语法检查是相当有效的,并且准确率和效率都很高,但没有普遍适用性。该种方法要求每一个细微的语法差别就需要一个模式进行对应匹配,例如,错误句子“shesmile”和“shetell”,虽然两个句子都是缺少表示第三人称单数的字母“s”,但是当使用模式匹配时,却需要查找存储器中存在的两个条目“shesmiles”、“shetells”才能对两者的错误进行纠正。2、统计和规则相结合的方法10万方数据 第二章国内外相关研究[6]Critique是一个覆盖范围很广的语法检查器。它使用的是统计和规则相结合的方法。首先Critique通过使用句法分析器来解析作文中的句子,能够解析说明句子正确,反之被认为有错,然后再通过规则的方法检查英语句子,检查主谓一致错误是通过基于规则的方法来进行的。该检查器能够检查五大类错误,包括主谓一致的错误,动词形式(seemtobeen->seemtobe)错误,代词的错误使用(youandI->youandme),易混词使用错误(you’re和your)和标点符号使用错误五类错误。Critique能够反馈给用户信息,这其中包括错误的位置和错误的解释及正误对比。Critique语法检查器没有公[5]开发行的版本。§2.3本章小结本章对语法检查技术所涉及到的相关内容做了简要介绍,随着自然语言处理技术的快速发展,其方法主要分为模式匹配、规则匹配、统计模型、统计与规则相结合四种。基于上述分类,重点对现存的被广泛使用的语法检查器和最新的语法检查研究方法进行分析,简要介绍了EasyEnglish、Park和Critique语法检查器,详细介绍了基于LanguageTool的OpenOffice语法检查器,以及噪声模型、分类模型两种最新的统计学方法,并分析其优缺点,为本文之后的应用奠定了基础。11万方数据 基于统计的英语语法纠错模型的研究与实现第三章关键理论与技术§3.1语料库概述与常见语法错误§3.1.1语料库概述统计自然语言处理方法中需要收集大量的文本来作为语料,然后对这些语料进行词性标注等处理,进而构建语料库。选择什么样的语料库对于统计自然语言处理来讲非常重要,这会影响到模型的建立和效率。目前世界上有一些著名的比较成熟的标准语料库以及一些特殊的语料库。比如第一个机读语料库和第一个平衡语料库——布朗语料库,它的架构一直是平衡语料库的标准,含有一百多万的词汇;另外还有一些网络可直接使用的英语语料库,像英国国家语料库,它是英国牛津出版社、大英图书馆等机构联合开发的大型语料库,目前包含的词汇已经过亿;特殊的语料库如谷歌的n-grams语料库,他不是一个纯英文文本的语料库,而是包含单词的N元结构;中国[28]学习者英语语料库(ChineseLearnersEnglishCorpus,CLEC)囊括了包含中学生、大学英语四六级、专业英语低级与高级在内的(五个等级分别是ST2到ST6)5种学生的语料一百多万词,并对其中的言语失误进行了标注,CLEC各级语料分布如表3.1所示。表3.1CLEC各级语料分布CLEC语料分布类型词次ST2208,088ST3209,043ST4212,855ST5214,510ST6226,106总计1,070,602§3.1.2常见语法错误在英语学习过程中,我们会遇到各种各样的语法错误,对于中国学生来讲比较常见的语法错误包括词形错误(拼写错误、构词错误以及大小写错误)占20.57%,词汇错误(包含替换、缺失、冗余、歧义、单词种类)占23.81%,句法错误(结构缺[14][28]陷、标点错误、没有断句、片段错误)占15.01%,剩余是其他语法错误所占比例。本文所涉及的语法错误包括介词错误、冠词错误、词性混淆错误、主谓不一致错误、助动词错误、单复数不一致错误、动词搭配错误、重复错误、片段错误、动词形态错误和形容词比较级最高级错误。下面对涉及的相关错误类型进行举例说明。1、介词错误12万方数据 第三章关键理论与技术例句:Hersuccessdependsfromhisparents.(修改为:on)2、冠词错误例句:Itissaidthattherewillbetheheavyraintomorrow.(修改为:a)3、词性混淆错误例句:Thefootballteamdoesnothavethepossibletowin.(修改为:possibility)4、主谓不一致错误例句:Shegohomealone.(修改为:goes)5、助动词错误例句:Dohemakealotofworkinthisactivity?(修改为:Does)6、单复数不一致错误例句:Therearealotofappleintheorchard.(修改为:apples)7、动词搭配错误例句:Tomwantstogoingtotheplaygroundwithhisfather.(修改为:togo)8、重复错误例句:Hefinishedthetaskbybyhimself.(修改为:by)9、片段错误例句:Itisobviousthathasproblems.(修改为:从句加上主语)10、动词形态错误例句:Jackhasfinishhishomewoek.(修改为:finished)11、形容词比较级最高级错误例句:Shanghaiisthemorebeantifulcityinourcountry.(修改为:most)§3.2N-gram语法与互信息§3.2.1N-gram语法我们假设给定一个任意的英文句子s,由一系列特定顺序的单词组成,分别是w1,w2,w3,…,wn构成,s出现的概率p(s)为:p(s)=p(w)p(w|w)p(w|ww)p(w|ww)121312ll11l(3-1)pww(ii|11w)i1其中p(w)表示第一个单词w出现的概率,p(ww|)指在单词w出现的前提下,11211单词w出现的概率,以次类推。可以认为单词w出现的概率取决于它之前的所有词,2i由于语言的规律性,句子中后面出现的单词会受到句子中前面出现单词的影响,前面单词可以对后面出现的单词起到预测作用。13万方数据 基于统计的英语语法纠错模型的研究与实现我们设想在一个理想的状态下,预测每一个单词出现的概率都要考虑整个句子的前面的单词概率的话,从数学计算的角度来讲,通常考虑的历史不能太长,一般只考虑每个词前面n-1个单词构成的历史,即N-gram模型:p(ww|w)(3-2)iin11iN-gram模型又被称为一阶马尔科夫链。一般的N元模型中N的取值为2、3或者4,这时候被称为bigram(二元语法),trigram(三元语法)和quadgram(四元语法)模型。原则上,N元语法模型的N越大越好,考虑越多的历史,就会对结果进行更精确的预测。但如果把数据划分到太多的类别中,就有大量的参数要去估计。例如我们[31]使用的词表有10000个词,那么参数数量的估计值如表3.2所示。表3.2N元语法模型参数数量模型参数二元模型10000×9999=100million2三元模型10000×9999=1trillion316四元模型10000×9999=1×10由表3.2可知,即使有一个特别大的语料库用来减少数据稀疏问题,但目前编程实现一个五元语法模型并不是一个很现实的事情,所以一般选用的N元语法是bigram和trigram。在估计条件概率(3-2)的时候,我们采用最大似然估计的方法。以二元语法为例,通过计算二元语法模型出现的频率,统计二元语法wi-1wi在给定的训练文本中出现的次数c(wi-1wi),计算公式如下所示:c(wi-1wi)p(wi|wi-1)=(3-3)∑c(wi-1wi)wi用来构建语言模型的文本语料称为训练语料,对于N元语法模型,使用的训练语料的规模一般要有几百万词,本文进行特征提取和语法纠错的N元语法模型最高阶数为四元。在语言的使用当中,常用词数量比较有限,大部分单词都很少被用到,那么需要注意的问题是,由公式(3-1)我们不难发现,如果训练预料中某些单词没有出现,那么就会出现N元语法的频次为零的情况,其相应的最大似然估计值也会为零,那么计算得到的整个句子的概率也为零,这是不合理的,这就遇到了数据稀疏问题。解决上述问题的方法有两种,一个是扩大语料库的规模,另一个是针对估计的方法采用平滑技术来解决零概率问题。平滑技术是指产生一种更准确的概率来调整最大似然估计的技术。常用的平滑技术包括Good-Turing估计法、Laplace平滑、Kneser-Ney14万方数据 第三章关键理论与技术平滑方法和Katz平滑方法。本文使用了Laplace平滑,又称“加1平滑”。尽管Laplace平滑技术还存在一些弊端,但对于本课题针对大学生英语教学和写作而言,不常见单词比较少,使用最高四元语法模型,Leplace平滑技术也能实现比较高的效率。其主要思想为:((,Nww,...,w,w)1)12ii-1p(www|,,...,w)(3-3)ii12-1((,Nww,...,w)B)12i-1假定N元语法出现的次数比实际出现的次数多一次,所以上式中分子的位置上加1,分母中B表示单词表的大小,这样即使单词序列w1,w2,...,wi-1,wi在训练语料中共现的情况为零,但得到的条件概率也不为零。§3.2.2互信息互信息源于信息论中的一个概念(Fano1961),它是度量一个消息中两个信号之[29]间的相互依赖程度,它是均衡非负的。假设X是一个随机离散变量,自信息用来描述一个随机变量中不确定性的数量,它表示信源X每发出一个符号能提供的平均[32]信息量。自信息又称为熵,X的熵H(X)定义为:HX()-px()log2px()(3-4)xR其中x属于离散集合R,概率分布为px()PX(xx),∈R,一个变量的熵越大,它的不确定性就越大,那么正确估计其值的可能性就越小。根据熵的连锁规则,有H(X,Y)=H(X)+H(Y|X)=H(Y)+H(X|Y),将上面的公式推导得到HXHXY()-(|)HYHYX()-(|),记作I(X;Y),I(X;Y)表示X和Y的互信息。它表明了在得到Y的值后X的不确定性减少的数量,即Y的值可以透露多少关于X的信息量。利用公式(3-4)将I(X;Y)展开:p(x,y)I(X;Y)=H(X)-H(X|Y)=H(X)+H(Y)-H(X,Y)=∑p(x,y)log(3-5)p(x)p(y)x,y互信息是指不同变量之间的相关程度:若IXY(;)0,表示X与Y之间高度相关。若I(X;Y)=0,表示X与Y之间是相互独立的。若I(X;Y)<<0,表示X和Y的分布是互不相关的。互信息的用途十分广泛,在词义消歧、词类汇聚等问题的研究中都有较好的应用,本文将其与N-gram语法模型结合,用来实现语法纠错。§3.3词性标注词性标注需要建立在句子边界识别或者断句和分词的基础之上,由于本课题组在这方面已经做了大量的工作,本文没有对作文的断句和分词作进一步的研究,所以本文也就没有在这方面进行阐述。15万方数据 基于统计的英语语法纠错模型的研究与实现§3.3.1词性标注集词性标注(Part-of-Speechtagging,PoStagging)是将文本中的词汇分类以及相应的标注它们的过程。词性标注的结果是文本中的所有单词都被标记为某个形态句法特征。词性标注是信息提取、句法解析、语法检查和机器翻译等自然语言处理应用必要的预处理过程。在词性标注的过程中,单词的词性可能不确定,加上其上下文语境的不同,因而会使单词的形态句法特征存在多种可能,这就会产生歧义。尽管词性标注系统可以通过训练大规模语料来得到,但词性标注仍然有很多问题需要解决。表3.3几种不同标注集的规模标注集基本大小总标记数Brown87179PennTreebank4884CLAWS1132271CLAWS2166302CLAWSc562145表3.4两种不同的标注集对一个例句进行标注句子BrownPennTreebankShePPSPRPwasBEDZVBDtoldVBNVBNthatCSINtheATDTjourneyNNNNmightMDMDkillVEVBherPPOPRP...所有词性标注的集合称为标注集。词性标签定义的并不十分严格,常用标签包括名词、动词、副词、限定词、形容词和副词标签。名词又可分成单数名词与复数名词,动词可分成一般现在时和过去时态等等。每种语言都有其特定的形态学特征,其所用的标注集也是特定的。对于英语标注集而言,比较有影响的是美国的Brown标注集,用来对著名的Brown语料库进行标注;兰卡斯特开发的一系列的标注系统CLAWS(ConstituentLikelihoodAutomaticWord-taggingSystem),用来对Lancaster-Oslo-Bergen语料库进行标注;PennTreebank标注集是计算语言学领域中使16万方数据 第三章关键理论与技术[15]用最为广泛的标注集,它是Brown标注集的一个简化版本。表3.3是几种标注集规模的简要总结,表3.4是针对同一个句子使用不同的标注集进行标注的结果。§3.3.2词性标注器词性标注的工作由词性标注器(PoStagger)来完成,常见的词性标注器有Brill词性标注器、Qtag词性标注器、Tnt(Trigrams’n’Tags)词性标注器以及Stanford词性标注器等,下面对这几种词性标注器做一下简要介绍。(1)Brill1994年Brill开发了Brill词性标注器,其通过错误驱动和形式转化的方法使词性标注有了比较高的精度。该方法通过预定义的规则集来指派单词词性,且该过程是一个不断迭代的过程。已知单词将指派最常用标签,未知单词一般指派成名词词性。此[33]过程不断重复直到得到最终正确结果。(2)Qtag[5]Qtag是一个基于统计的词性标注器,他的健壮性比较好,但它不是一个开源的词性标注器,其算法思想体现在Tufis和Mason的论文当中,该标注器源码大概20K大小。(3)TnT(Trigrams"n"Tags)[34]TnT标注器是基于隐马尔科夫模型的Viterbi算法实现的。其使用了平滑算法,并基于线性插值法来实现,各自的权重由被删除了的差值来进行决定。使用后缀树和连续抽象来解决词性不能够正确判定的单词。(4)Stanford词性标注器Stanford词性标注器是基于最大熵的方法来实现的标注器,通过使用标记好的文[5]本来训练条件概率模型,再用此模型为每标签分配概率值,用其来评估标注结果。本课题的词性标注工作就是基于PennTreebank词性标注集和Stanford词性标注器来实现的。§3.4句法分析§3.4.1短语切块对每个单词进行处理的工作需要由词性标注来完成,构建英语句子的句法树需要靠句法解析的方法来实现。然而如果没有考虑句子当中的短语,而是在进行完词性标记之后就进行句法分析,构建句法树,这无疑会影响到句法树构建的准确性和效率,所以我们运用了短语切块的方法,短语切块(PhraseChunking)的处理过程介于对英语单词的词性标记和构建句法解析树的过程中间,其实现的基本原理是给包含几个单词的词组分配一个标签。比较常见的短语块包括名词短语、动词短语等。典型的名词短语包含名词(代名词)、定语和形容词。动词短语包含单个动词或者是其不定式的17万方数据 基于统计的英语语法纠错模型的研究与实现形式。名词短语像theapple,theredapple等。由于形容词列表的长度不受限制,进[5]而可以从理论的角度来推断名词短语的长度也没有限制。在切块工作进行之前,我们需要得到一个已经标记好词性的文本,也就是说切块工作是建立在词性标记的工作之上。切块器(Chunker)有两类,一类是基于规则的切块器,即使用手写规则用于描述那些词性序列创建什么块的切块器,另一类是基于统计的切块器,即由经过词性标记好的文本来进行训练得到的切块器。也可以将这两种方[5]法结合起来。切块过程的输入是做过词性标记的文本,也就是说短语切块是建立在词性标记的基础之上,因而其得到的准确率绝对不会高于对输入的文本进行词性标注的准确率。目前,最好的短语切块器的准确率为94%,低于词性标注器的准确率。OpenNLP库是一个开源的开发工具包,它是基于机器学习的方法来对文本进行处理,可以实现对英语句子的切分、词性标记、专有名词识别、短语切块和句法分析等功能。这些任务一般都需要比较先进的文字处理服务功能。§3.4.2句法分析通过判定输入的句子结构是否合乎给定语法的过程被称为句法分析,一般用树状数据结构表示句法结构,从而被称为句法分析树,通过句法分析来确定句子中的句子结构,像短语,动词的主语、宾语等。现在,自然语言应用的越来越普遍,尤其对文[35]本处理的需求快速增加,这进一步凸显了句法分析的重要作用。句法分析是语法纠错过程中十分重要的一步。通过对英文句子的句法分析,得到句子的句法结构和短语结构,并用其作为语法检查模型的特征来训练N元语法模型。句法分析的方法可以分为基于规则和基于统计两类方法。基于规则的方法首先必须要人工编写语法规则,输入的句子通过与预先编写好的规则进行比对来做出分析,此方法对于某些特定的应用和某些领域的句法分析效果比较好,但是人工编写规则既费时又费力,另外还要求编写者有较高的语言学功底,同时人工编写很容易造成疏漏,由于编写的规则主要是针对某些特定的问题和领域,这样很不容易移植句法分析系统[36]。目前的统计语法分析方法大致分为两种类型,一种是基于语法驱动的方式,另一种是基于数据驱动的方式。目前,主流的句法分析技术都是运用的基于统计的方法。比较具有代表性的有[8]Stanford句法分析器和Berkeley句法分析器。本课题使用的是Stanford句法分析器。1、Stanford句法分析器Stanford句法分析器是由斯坦福大学开发的句法分析工具,是一个开源项目,能够支持多种语言,其通过使用Java语言并基于概率统计的句法分析方法来实现的,[37]从2002年12月的Version1.0到2014年7月的Version3.3.1,共历经了25个版本。与传统句法分析器相比较,Stanford句法分析器拥有合理而多样化的设计。该分析器18万方数据 第三章关键理论与技术使用的文法包括概率上下文无关文法和词汇化依存文法;它使用的是训练数据来自宾州树库;它的输出结果包括分析树和分词、词性标注文本等等。2、Berkeley句法分析器Berkeley句法分析器是由伯克利大学开发的开源句法分析器,也可支持多种语言。它是一个彻底的基于上下文无关文法的句法分析器;可以以文本(每行一个句子)为单位向分析器进行输入,分析得到的结果可以以文件的形式输出,且句子的所有分析结果都包含在输出文件当中;可以通过设置将程序的输出形式改为句法分析树形式,这样可以使结果更加直观;可以输出特定的句法分析树和每棵树的概率值;分析器的输入对象必须是经过处理后的分词结果,它不包含分词功能。§3.5SSH框架技术SSH框架是多个框架的集成,包括Struts、Spring和Hibernate,是现阶段非常流行的开源集成框架,用来构建易于扩展、灵活的多层Web应用程序。使用SSH框架技术能够使开发人员方便快捷地搭建结构清晰的三层系统结构,这三层包括表示层、业务逻辑层、数据持久层。在SSH框架中,Struts作为系统的整体基础架构,负责MVC(ModelViewController,MVC)的分离,以及在模型部分对前端业务进行控制与跳转;而Hibernate则针对数据库做持久化性能的支持,Spring框架作为一个轻量级的IoC(InversionofControl,IoC)容器,负责定位、查找、创建和管理对象及各层次对象间[38]的依赖关系,另一方面能使Struts和Hibernate更好地工作。图3.1是使用SSH构建系统的基本流程。表示层业务层持久层UILayerBusinessLayerPersisitenceLayerSpringHibernateStrutsMVCServiceLocatorTransactionsDAOClassesDataSource/HibernateSessionConnectionPoolStrutsAction,ManagementQueryLanguageActionForm,BusinessServiceSupportandotherJSPetcClassesHibernateservicesDomainModelBusinessObjects图3.1SSH构建系统的基本流程通过图3.1得知,使用SSH框架构建系统的基本业务流程是:前端表示层主要是通过JSP页面来实现不同界面之间的交互,并能够实现请求跟响应的功能,然后Struts通过配置文件将ActionServlet接收来的请求转交给相应Action进行处理;SpringIoC容器负责在业务层中管理服务组件,具体职能是对Action提供模型组件和该组件的对象数据处理(DataAccessObject,DAO)组件来完成业务逻19万方数据 基于统计的英语语法纠错模型的研究与实现辑,并通过提供事务处理容器组件和缓冲池来保证数据完整性,从而进一步提升系统性能;数据持久层则必须要通过Hibernate的对象化映射功能来和数据库打交道,并处理DAO组件的请求数据以及返回最终的结果。通过使用SSH框架技术来开发的系统,能够做到模型和视图跟控制器的完全分离,以及数据持久层跟业务逻辑层的分开。从而可以提高系统的可复用性,降低不同层之间的耦合度,从而能够在开发系统的过程中加快效率。§3.5.1Struts框架Struts框架是阿帕奇基金会提供开发的优秀开源框架,该框架通过使用JavaServlet/JSP技术,使用MVC模式分离页面表示层与业务逻辑层,使用该框架可以比较方便地开发JavaWeb项目。Struts核心模块是一个功能强大的控制器,它集成了多种技术,包括JavaServlet、JavaBean与XML等多种标准技术。使用JavaBean、JSP技术实现Struts框架的视图层和模型层。模型层当中Struts框架能够和数据库技术(如[38]Hibernate)结合运用;在视图层中Struts可以与多种表示层技术相结合。Struts体系结构与工作原理如图3.1所示。Struts使用MVC设计模式将Servlet技术和JSP技术实现表示层的功能。Struts实现了MVC的各项特性,并做了相应的扩展与变化。MVC即模型视图控制器,是当今JavaWeb开发使用的一种主流设计模式。Struts的体系结构包含模型层、视图层及控制器三部分。1、模型(Model)Struts框架中,由系统内部的状态和改变状态的操作两部分组成模型层。Struts内部状态一般情况下由ActionFormBean来表示。所有这些Bean可以根据不同的需求将其设计成有持续状态的或者是有需要时才获取数据的状态。比较大的应用程序一般按照层次结构对事务逻辑进行封装。而比较小型的程序,在Action中就可以实现所有的方法。2、视图(View)一般通过Jsp技术实现Struts的视图层。Struts框架含有自定义的扩展标签库,可以很方便地帮助用户创建具有全球国际化的用户界面。Struts包含的标签库有:BeanTags、LogicTags、HTMLtags等等。3、控制器(Controller)Struts控制器组件是由ActionServlet类来为每一个请求用户实例化一个Servlet类。然后通过XML配置文件将用户的请求URL和具体的Servlet类关联起来;用户的逻辑操作以及与与其它层进行的数据交互通常由Action类来实现。页面的跳转与下一个逻辑操作由ActionMapping负责处理。程序运行的方向顺序由ActionForward配合ActionMapping来完成。Struts体系结构与工作原理如图3-1所示。20万方数据 第三章关键理论与技术1控制器请求Servlet浏模型览42JavaBean器实例化5视图3响应JSP数据库图3-1Struts体系结构与工作原理Struts框架目前有两个版本:Struts1和Struts2。ActionServlet充当Strut1的控制器角色,struts-config.xml配置文件是用来描述模型和视图以及控制器间的对应关系的并能够转发视图请求,并进一步来组装数据模型。模型视图控制器中的模型部分,被分成了系统内部数据状态和改变这些状态的逻辑动作两个子系统,Struts1中的两个需要继承实现的超类ActionForm与Action分别于这两个子系统对应。Struts1中的视图(View)端,除了使用标准的JSP技术以外,还可以使用大量的标签库以及整合其他类型的表示层组件技术产品,例如XSLT,VelocityTemplates等。Struts1核心构成如图3.2所示。Struts模型视图控制器ModelViewControllerActionFormActionStrutstaglibJSPActionServlet图3-2Struts1核心构成Struts2是第二代产品,它将Struts1与WebWork的技术进行整合,成就了全新的Struts2框架。新框架与原框架的结构差别非常大。Struts2以WebWork为核心,通过拦截器的方法处理用户请求,这样也能够将ServletAPI与业务逻辑控制器能够完全脱离,所以可以将Struts2理解为WebWork的升级产品。本课题的系统是基于Struts1框架开发实现的。§3.5.2Spring框架21万方数据 基于统计的英语语法纠错模型的研究与实现Spring框架以interface21框架为基础,旨在打造一个轻便,容易开发、测试及部署的轻量级框架。在J2EE的应用当中,Spring能够提供多层间的解决方案,它不单单是解决哪一层方案。其能够将表示层、业务逻辑层以及持久层贯穿在一起,从而使得其在企业级开发中比较适合。Spring实现了与已有框架(Struts和Hibernate)的有[39]效对接与整合,并没有将其取代。1、Spring框架的优势1)轻量级。Spring框架大小仅1MB多,从大小和开销方面都比重量级框架EJB和JavaBean要少很多,做到了真正意义上的轻量级。2)控制反转(InversionofControl,IOC)。Spring通过控制反转的技术保证了系统模块之间的松耦合。容器在初始化对象时就将依赖传送给它,并非等着对象来请求或者在容器当中进行依赖查找。3)面向方面的编程(AspectOrientedProgramming,AOP)。Spring通过将应用程序的业务逻辑和系统级服务分离,减少两者之间的耦合性。系统被AOP分成通用逻辑(日志、异常等)和核心业务逻辑。从而使开发人员能够专注在业务逻辑上的处理。4)容器。Spring可以被视为容器,其含有应用对象生命周期和配置,并对其进行管理。5)框架。Spring能够配置一些简单组件,从而来组成较为复杂的应用。在Spring当中通过对相应XML文件的配置来声明应用对象。2、层次结构Spring框架是一个分层架构,由6个模块组成。在Spring核心容器上对基于Spring模块的程序进行开发。在服务器开始运行时加载Spring定义组件或模块,并以Bean的方式对模块进行维护和管理,如创建、配置等。1)核心容器。这一部分实现了Spring框架的基本功能,由工厂模式实现的主要组件是BeanFactory。该组件使用了IoC模式的概念,其作用是分离应用的配置文件、依赖性规范文件和实际的应用程序。2)Spring上下文。此部分是配置文件,用来提供Spring框架运行过程中的上下文信息。3)SpringAOP。Spring框架通过配置文件来实现AOP编程。开发应用程序时使用AOP模块来把对象的事务管理交给Spring来处理,而不是依赖EJB组件,在此过程中只需事先在编程中进行声明性处理。4)SpringDAO。该部分抽象层为异常处理提供层次结构。这种层次结构能够管理程序在运行过程中抛出的异常及在运用不同数据库的过程中出现的异常。异常层次结构能够帮助应用程序在开发过程中进行异常处理,从而可以减少这方面的编程工作。22万方数据 第三章关键理论与技术5)SpringORM。ORM即对象关系工具,它含有Hibernate、iBatisSQLMap等,这一对象关系工具符合Spring的事务结构和DAO中的异常层次结构。ORM帮助关联Spring框架与Hibernate框架。6)SpringWeb。该部分结构是建立在应用程序当中上下文模块的基础之上,它能够给出基于Web应用程序的上下文信息。这使得Spring框架能够与Struts框架进行集成。在多种请求处理的过程中以及绑定请求和域对象参数时,Web模块可以简化工作。§3.5.3Hibernate框架Hibernate是一个开源的映射框架,其结构为对象关系。Hibernate实现了对JDBC[40]的封装,从而可以用对象编程的思想来操纵数据库。可以替代JDBC进行使用,如应用于JavaWeb程序开发。1、核心接口介绍Hibernate的核心接口如图3.3所示。通过这些接口可以对事务进行存取以及控制持久化对象。Session接口执行操作被持久化的对象CRUD。但使用这一接口时需要注意线程安全问题,因为Session对象的线程不安全。在实际项目开发过程中,若要使用该对象,需要由专人负责线程安全;初始化Hibernate由SessionFactory接口完成,并由该接口充当数据源代理,对Session对象进行创建。Session接口用到了设计模式中的工厂模式。在项目中每一个数据库都需要指定一个SessionFactory,项目中使用SessionFactory的数量由用到的数据库数量决定;配置Hibernate、服务启动以及创建SessionFactory对象的工作由Configuration这个接口来完成;与事务相关的操作由Transaction这个接口来负责;接口Query和接口Criteria则通过使用SQL和HQL语言实现对数据库的查询。Hibernate基本执行流程如图3.4所示。SessionSessionFactoryHibernate核心接口ConfigurationTransactionQuery和Criteria图3.3Hibernate的核心接口2、Hibernate主键详解1)Assigned23万方数据 基于统计的英语语法纠错模型的研究与实现Assigned方式的主键值生成是由程序来完成,并在save()之前对其进行赋值,否则会抛异常。需要程序自动设置生成主键,如某数据库表的关键字格式被指定为日期[41]+字母,此时需要使用Assigned方式进行预先计算。2)IncrementIncrement方式在产生新的主键值时使用到了自增长方式,这要求像Oracle或者DB2这样能够支持Sequence的数据库做底层,还要进一步在映射文件中设置Increment标记,使用Hibernate自身来对该方式进行维护。这种方式对所有数据库都适用。3)IdentityIdentity方式与底层数据库有关,不同的数据库会采用不同的主键值增长方式。这种方式只有在数据库支持Identity时才能使用,例如MySQl数据库中采用的是auto_increment方式实现主键值增长,SQLServer数据库使用的是Identity方式,支持该方式的有SQLServer、Sybase等数据库。Identity有一个优点就是不用Hibernate与用户干涉,从而便于使用。4)SequenceSequence同样要求像Oracle这样能够支持这一方式的底层数据库。支持Sequence方式的其他数据库还包括DB2和PostgreSql等等。Sequence方式实现的程序拥有比较好的移植性,但在移植之前必须考虑数据库是否支持序列的方式,不支持的话必须修改数据库配置文件才能移植。5)NativeNative主键生成方式从字面上来看是本地化的意思,即底层数据库自行选择使用Identity方式,还是Sequence方式,亦或者是Hilo主键生成方式。该主键生成方式因底层数据库的不同而不同。Hibernate能够由底层数据库来自行选择映射方式,所以程序移植性很好,从而使得这种方式适于应用多数据库的项目中使用。24万方数据 第三章关键理论与技术图3.4Hibernate的基本执行流程3、缓存管理Hibernate框架使用两个级别的缓存从而保证了高质量的缓存机制。第一级别的缓存是会话级缓存,它主要工作的范畴属于事务级别,这一级别的缓存管理直接由Hibernate框架执行,正常情况下不受其他应用程序的影响。二级缓存是一个SessionFactory级别的缓存,主要工作涉及进程和集群级别。二级缓存可以人为修改配置文件,并通过程序对其进行加载和卸载。§3.6数据库技术数据库技术已经成为了计算机科学技术众多内容中的一个重要分支。从65年前开始,企业管理及政府行政部门开始逐步引进计算机应用,这使得用户对于处理数据的方法和速度的要求越来越高。到了1968年,诞生了世界上第一个作为商品出现的信息管理系统IMS(InformationManagementSystem),从这时开始,数据库技术进入了迅猛发展的阶段。在全球迅速信息化的今天,因特网又充分放大了数据库技术的重要价值。现如今在办公自动化,计算机工程应用等相关领域都能发现数据库技术的巨[27]大作用。25万方数据 基于统计的英语语法纠错模型的研究与实现数据库技术发展到现在,经历了网状及层次数据库系统、关系数据库系统和以面向对象的数据模型为主要特征的数据库系统三个大的阶段。目前较为常用的数据库系统有DB2、Sybase、MySQL、Oracle、SQLServer等,本系统对数据库要求并不是十分的高,所以本系统选择了体积小、速度快、成本较低的MySQL数据库。§3.7本章小结本章对构建英语语法纠错模型用到的关键理论,以及该模型在实际系统中实现所用到的关键技术,首先是对语料库作了简要的概述,并举例说明了一些常见语法错误;第二小节针对N元语法模型理论进行了阐述,讨论了N值得选定问题以及数据平滑技术。然后是介绍互信息的有关内容,以及互信息和熵的相关理论;第三小节介绍常用的词性标注集和词性标注器,以及本课题所用到的词性标注集和标注器;第四小节介绍短语切块的有关理论和结果以及基于统计方法的句法分析中常用的句法分析器。最后介绍了语法纠错模型在实际系统中实现的关键技术,包括SSH框架技术和数据库技术。26万方数据 第四章语法纠错模型的设计第四章语法纠错模型的设计本章主要介绍对语法检查模型的相关设计,主要涉及语法纠错模型的整体设计、预处理、训练处理和纠错处理,其中对介词检查模型和助动词与N元模型进行了较为详细的阐述。§4.1总体结构本文主要对大学英语作文中经常出现的语法错误进行检查与纠正,构建了语法纠错模型,并在实际系统中实现。在模型总体设计方面,要将分为训练阶段和纠错阶段。这两个阶段都需要对训练语料和待纠错的文本进行预处理,其中包括断句、分词、词性标注、短语切块以及句法解析的过程。大规模语料经过预处理后,训练模块对其得到的数据进行特征提取,并计算特征的权重值,得到语法检查模型。对输入的英文文本进行预处理后,模型纠错模块分析句子中的单词,并进行相应的特征提取,比对训练阶段生成的数据,得出纠错结果。基于上述分析,语法检查与纠正模型的总体结构图如下所示。训练阶段预处理模块语法纠正模型训练模块断短语切块及句法分析语法混句淆集与分训练词语法语料句法分析树结构,统计短语训练语法检查及频率,得到句法树结构文本纠正模型模型词性标提取单词,并统计单词词注频,N元语法共现频率,得到规范化语料完成语断句语法检查法纠错待检查分词短语切预处理后与纠正后的作作文及词块及句的作文文性标法分析语法混淆集注检查阶段预处理模块句子语法检查与纠正模块图4.1语法纠错模型的总体结构§4.2预处理27万方数据 基于统计的英语语法纠错模型的研究与实现语法纠错模型中预处理阶段必不可少,通过这个阶段对语料信息进行分析和处理,从而为后面的模型的构建提供基本的数据。在这个阶段中,首先需要明确使用的语料库信息、词性标注集以及短语切块用到的短语标注集。在满足这些条件的前提之下,然后再对语料进行预处理,这就包括断句、分词、词性标注、统计词频和句法解析的过程。本文主要介绍词性标注、短语切块、句法解析和统计词频的过程。1、语料库语言环境对于应于学习者来说非常重要,这直接影响到他们使用英语的方式和习惯,不同的语用和语感产生了各种各样的语料库,这对统计自然语言处理而言无疑是一个很有挑战性的课题。本文研究与实现的语法纠错模型主要针对中国学生,旨在帮助他们在英语学习的过程中,对在写作过程中出现的语法错误进行检查和纠正,因而本文选择的训练语料是比较有多元化和个性化的数据集,其中包括中国学生使用的教材,新概念英语中的所有文章,以及中国英语学习者语料库中的一部分相关文章。训练语料包括的文章超过两万余篇,三千余万个单词,基本囊括了大学英语四、六级写作中用到的的所有单词和短语。2、标注集和Stanford标注器本文选用PennTreebank标注集对英文文本进行词性标注和短语标注,PennTreebank标注集是美国宾夕法尼亚大学开发的词性标注树库,其优势在于其拥有大规模的树库语料,这种优势使得它在统计自然语言处理领域非常受欢迎的原因之一。它包括36个单词标注、12个符号标注以及26个短语标注,PennTreebank标注集的有关内容见表4.1和表4.2。表4.1PennTreebank词性标注集词性标记解释中文含义词性标记解释中文含义CC并列的连词TO单词TOCD基数UH感叹语DT限定词VB动词的原型EXTHERE的存在式VBD动词的过去式FW外来词VBG动词的现在分词IN介词或从属连词VBN动词的过去分词JJ形容词VBP动词,非第三人称单数形式JJR形容词的比较级VBZ动词,第三人称的单数形式JJS形容词的最高级WDTWH限定词LS列表标记WPWH代词MD情态动词WP$WH物主代词NN名词,单数或物质名词WRBWH副词NNS名词的复数形式#英镑符号NP专有名词的单数形式$美元符号NPS专有名词的复数形式.句子结束标点28万方数据 第四章语法纠错模型的设计PDT前位限定词,逗号POS所有格标志’S:冒号或分号PRP人称代词(左括号PRP$物主代词)右括号RB副词’’直双引号RBR副词的比较级‘左单引号RBS副词的最高级“左双引号RP小品词’右单引号SYM代号(数学或科学符号)”右双引号表4.2PennTreebank短语标注集短语标记中文含义短语标记中文含义用来复杂的名词短语前S简单陈述句NX标识名词短语的头部SBAR从属连词引导的从句PP介词短语Wh-开头的单词或者wh-SBARQPRN插入语开头的短语直接问句SINV倒装句PRT小品词SQ问句QP量词短语ADJP形容词短语RRC相对减少的从句ADVP副词短语UCP协调不同的词组CONJP连词短语VP动词短语FRAG片段WHADJPWH形容词短语INTJ感叹标志WHAVPWH-副词短语NAC不是句中成分WHNPWH-名词短语LST标记列表WHPPWh-介词短语NP名词短语X不确定的结构词性标注统计自然语言处理的基础性工作。语料库词性标注的过程是对标注单词做一个功能性假设的过程,好的词性标注器可以使语法检查获得一个高的正确率。一[33]个高效、准确的词性标注器能够使语法检查获得更加充足的时间。Brill使用基于转换学习的错误驱动方式,使用预定义规则对单词分配词性,然后进行不断迭代,对于已知的单词分配最频繁的词性,对于未知的单词,首先将词性标注为名词,然后经过[42]反复改变使用的错误词性,最终获得正确结果。Stanford词性标注器使用的是最大熵方法,其过程是使用学习线性条件的概率模型,使每个标记都有概率分配以对结果进行评估。另外就是使用隐马尔可夫模型方法,其词性标注的正确率最终可达97.8%。这些方法都是基于PennTreeBank标注集而构造的标注器。本文是基于隐马尔科夫模型的方法来对英语文本进行词性标注,其词性标注格式为“单词/词性”。例如英文句子“Rockwellsaidtheagreementcallsforittosupply200additionalso-calledshipsetsfortheplanes.”的词性标注结果为:29万方数据 基于统计的英语语法纠错模型的研究与实现Rockwell_NNPsaid_VBDthe_DTagreement_NNcalls_VBZfor_INit_PRPto_TOsupply_VB200_CDadditional_JJso-called_JJshipsets_NNSfor_INthe_DTplanes_NNS._.3、短语切块与句法分析自然语言处理中句法分析器的功能是分析得出句子的语法结构,其中有一部分功能可以将句子的短语进行切块,被称之为短语切块,基于统计的自然语言处理当中,短语切块(PhraseChunking)工作在词性标记与句法分析之间进行,其目的是给一个包含若干个单词的序列指派一个标签。例如,如何将几个单词分成一组进而构成一个短语,以及如何处理切分过程中单词与短语之间的关系问题等。通过构建句法分析树的方法来对英文句子进行整句的句法结构分析,此过程对于实现英文句子语法检查与纠正来讲非常重要。基于上面提到的词性标注的结果,得到的短语切块结果如下:[Rockwell_NNP)NP[said_VBD)VP[the_DTagreement_NN)NP[calls_VBZ)VP[for_IN)SBAR[it_PRP)NP[to_TOsupply_VB)VP[200_CDadditional_JJso-called_JJshipsets_NNS)NP[for_IN)PP[planes_NNS)NP._.句法分析的目的是为了模型训练阶段的特征提取。句法分析器的输入不是英文句子的单词序列,而是其对应的词性序列,然而句法分析器在进行句法解析的过程中会遇到结构歧义的问题,本文的句法分析模型是基于上下文无关文法模型,将词汇之间的依赖结构考虑进去,基于短语切块获取的结果,使用最优的上下文无关文法模型和词汇之间依存的句法解析程序,结合词汇信息,考虑与介词短语相关的名词短语中的中心词作用,来提高句法分析的正确率。本文的句法解析程序能够得到句子的句法结构树以及句法的依赖关系,基于上文例句中词性标注和短语切块得到的结果,获取的句法结构树以及依赖关系如下所示:30万方数据 第四章语法纠错模型的设计(ROOT(S(NP(NNPRockwell))(VP(VBDsaid)(SBAR(S(NP(DTthe)(NNagreement))(VP(VBZcalls)(SBAR(INfor)(S(NP(PRPit))(VP(TOto)(VP(VBsupply)(NP(NP(CD200)(JJadditional)(JJso-called)(NNSshipsets))(PP(INfor)(NP(DTthe)(NNSplanes))))))))))))(..)))nsubj(said-2,Rockwell-1)det(agreement-4,the-3)nsubj(calls-5,agreement-4)ccomp(said-2,calls-5)mark(supply-9,for-6)nsubj(supply-9,it-7)aux(supply-9,to-8)advcl(calls-5,supply-9)xcomp(calls-5,supply-9)num(shipsets-13,200-10)amod(shipsets-13,additional-11)amod(shipsets-13,so-called-12)dobj(supply-9,shipsets-13)det(planes-16,the-15)prep_for(shipsets-13,planes-16)4、语料信息词频统计经过上述词性标注、短语切块和句法分析等过程后,在N元语法模型中,使用了最大似然估计方法计算英文单词在语料库中发生的频率,以获得单词的发生概率。语料库中的单词被分成两类,即普通词性单词和特殊词性单词,以便单词之间的区分度,来为训练阶段的特征提取做准备。特殊词形单词包含带连字符单词、缩写词以及专有名词。专有名词包含特殊的人名、地名等。本文使用基于条件随机场的命名实体识别组件判断单词形式。在统计单词词频的过程中,通过遍历语料库中的所有单词,如果单词在链表中没有被记录,则该单词将会在链表中进行记录并将词频置为1,如果有记录,那么会将该单词的词频加1。然后,将这些统计好的“单词-词频”对存储在语料字典中,作为互信息计算的频率数据。本模型获取的语料字典(部分)如下所示:31万方数据 基于统计的英语语法纠错模型的研究与实现invaded^2low-dream^1invades^1basin^3basis^16hampden^1drop^8consumption^12infant^1entity^2futility^1pondered^1estimated^8basic^23jar^3composition^6affectionate^5derived^5kerry^1fathers^5jam^4guilt^5wording^1dozens^7derives^1belongs^8advises^1resist^10jay^1much^315door-close^1jaw^2weary^2column^1fewer^16wears^2update^2small-town^1spectators^4twin^3brightness^3possible^120everest^3ruthless^4shrugged^1remoulding^1cheese-makers^1reached^29spends^3braun^3estimates^3magnitude^1universally^11injection^2optimistically^1minimize^1assertion^1shadows^1hospitals^9reaches^7以单词basis后面的16为例,它代表在链表中出现的次数为16。§4.3训练处理语法纠错模型的关键阶段是训练阶段,由于本课题组在整个语法纠错模型中已经做了一部分工作,尤其在常用语法错误中的冠词错误、助动词错误等方面有了相关的研究,本文在介词纠错方面和N元语法模型方面做了深入研究,并重新架构整合了整个语法纠错模型,并将其在实际的系统中进行实现,所以在模型设计方面本文只阐[46]述N元语法模型和介词纠错模型。在提取特征的过程中,通过使用N元模型对英语句子提取特征并分析,即根据不同错误类型的语境,提取句法树特征和语法关系特征。利用互信息方法计算单词之间的相关度与衡量特征,此外还引入了区分效度的概念,最终计算出训练模型的权重。§4.3.1特征提取不同的特征对于单词选择的影响是很大的,有一些单词的特征比较多余,不能提供有用信息,这不仅会影响到特征选择的执行过程,而且会影响特征选择算法的执行效率。所以需要考虑缩短提取单词特征的时间,提高单词特征的准确性,以在短的时间内得到更加准确的特征,为构建高效、准确的模型打下基础。本文主要介绍一下介词纠错模型与N元语法模型在特征选择方面的内容。1、介词的特征选择介词错误是很常见的一类语法错误,Bitchener在对非母语学生的英语写作资料进行研究发现,介词相关错误占全部语法错误的比例在29%左右。本文训练语料中含有48个不同介词,根据它们出现频率高低的不同,对常用的10个介词进行语法纠正,这10个介词构成的混淆集如表4.3所示。32万方数据 第四章语法纠错模型的设计表4.3介词混淆集oftoinforonwithatbyfromabout训练介词检查模型以提取词汇特征、短语特征和语法特征,词汇特征指通过使用N元语法针对介词所开窗口来提取的单词及其词性,另外还有一些特殊单词;短语特征指介词附近的名词短语或者动词短语及其中心词;语法特征指介词短语修饰的单词或单词对之间的语法关系。本文训练语料中的介词,通过训练提取了20个上下文特征,比如与介词相邻的特殊位置的单词与其词性以及介词前后的短语和短语中心词以及词性,如表4.5所示。这些提取到的特征当中,特征值域差别很大,比如介词前面的短语类型(PHR_pre)的特征值只能是名词(NP)、动词(VP)和形容词短语(ADJP),所以其值域只能为3,从而这个特征只会出现三个特征对“PHR_pre#NP”、“PHR_pre#VP”和“PHR_pre#ADJP”。而相对于其他特征,由于其代表介词前后可能出现的单词个数,其特征值就会非常多了。训练过程中,为了减少数据稀疏问题,“特征#特征值”对发生少于10次的将会被淘汰掉。本文构建的语法纠错模型,通过训练得到了进30万个“特征#特征值”对,这些特征对于模型的正确率起决定性作用。表4.4介词检查模型特征集特征类型特征特征描述特征值的域值BWL介词前一个单词23,620BigramBWR介词后一个单词20,495二元语法BPL介词前一个单词的词性34特征BPR介词后一个单词的词性35TWL介词前两个单词44,446TrigramTWR介词后两个单词54,906三元语法TPL介词前两个单词的词性1,624特征TPR介词后两个单词的词性1,544FP介词后面的短语40,778FH介词后面的短语的中心词19,718PHR_pre介词前面的短语类型3短语特征PNP动词与介词中间的名词或形容词短语29,334PNMod介词前面的名词短语中的形容词修饰3,267PVP介词前面的动词短语23,436PPrep介词前面的介词60词特征PN动词与介词之间的名词或形容词18,329PV介词前面的动词5,22133万方数据 基于统计的英语语法纠错模型的研究与实现PVtag介词前面的动词词性6PVword介词前面的动词的词元5,221PW介词前面的单词的词元2,437介词的语法特征,即介词短语修饰的单词或者单词对之间的语法关系,目前在这方面研究的还比较少,但是一个高质量的介词语法纠错模型中语法特征不容忽视,语言学上将介词短语以及其修饰的句子成分中的中心词(theheadword)称作介词短语的附着词(lexicalhead),介词的附着词相对于介词的选择具有重要作用,本文句法分析过程中增加了介词的附着信息。从4.2节中得到的句法分析树中得知,本文的方法在获得句子句法结构的同时,还获得了语法依赖关系,从其中的prep_for(shipsets-13,planes-16)语法关系,可以看出介词“for”的附着词特征是“shipsets”而非“planes”。句法分析树的准确率决定了介词附着词特征提取的准确率。介词检查模型的基本流程如图4.2所示。开始读入语料库中的句子训练语料库读入介词混淆集介词混淆集(10个常用介词)对每个句子进行短语切块句法树结构及对句子进行句法解析语法依存关系单元数据列表(word/tag)读取单元数据列表中的一个元素判断元素中的word是介词检查模型训练域是否存在于混淆集中?否否判断是否到达单元数据列表末尾?是生成介词检查模型介词检查模型结束图4.2介词检查模型的训练流程图34万方数据 第四章语法纠错模型的设计2、N元模型的特征选择在大学生的英语写作中经常将助动词用错,“be”、“have”、“do”可以作为普通动词或者助动词使用。如动词“be”可用作普通动词,也可用做助动词来构成被动式或者进行时。本文主要从统计自然语言处理的角度来研究语法错误,所以本文主要研究助动词的主语一致性。助动词构成的混淆集如表4.5所示。表4.5助动词混淆集{does,do}{is,am,are}{was,were}{have,has}我们引入普通的N元模型来构建助动词纠错,使用二元模型假定当前状态只与上一个状态有关,三元模型假定当前的状态与邻近两个状态有关。通过互信息衡量N元语法模型的相关性,以确定单词与单词之间的连接强度,如果计算的结果低于阈值,则说明存在异常,可能有语法错误。助动词与N元语法模型的特征集如表4.6所示。表4.6助动词及N元语法模型特征集类型特征特征描述BWL(Brigramwordtoleft)语法词前面的一元单词BPL(BrigramPOStoleft)语法词前面的一元单词词性BWR(Brigramwordtoright)语法词后面的一元单词BWR(BrigramPOStoright)语法词后面的一元单词词性TWL(Trigramwordtoleft)语法词前面的二元单词TPL(TrigramPOStoleft)语法词前面的二元单词词性助动词TWR(Trigramwordtoright)语法词后面的二元单词检查的TPR(TrigramPOStoright)语法词后面的二元单词词性特征QWL(Quardgramwordtoleft)语法词前面的三元单词QPL(QuardgramPOStoleft)语法词前面的三元单词词性QWR(Quardgramwordtoright)语法词后面的三元单词QPR(QuardgramPOStoright)语法词后面的三元单词词性SUBJ(subject)语法词修饰的主语OBJ(object)语法词的直接宾语AUX(Auxiliary)语法词附近的助动词普通NTagTag相邻两个词性的相关性元特征TagTagTag相邻三个词性的相关性考虑到训练语料规模有限以及普通N元模型的不足,普通N元模型只计算到三元模型的相关性,针对其产生的数据稀疏问题,本文使用了简单的Laplace加1平滑35万方数据 基于统计的英语语法纠错模型的研究与实现算法,通过文献统计得知,N等于3时,N元语法模型获得的训练效果相对较好。在相关性检查方面,为了降低语法检查模型的误判率,提高了阈值的设置。当单词的特征值相关度比设置的阀值低时,则说明可能存在连接错误。图4.3为N元语法检查模型的训练过程。开始读入语料中的句子训练语料库读入助动词混淆集助动词混淆集对每个句子进行短语切块句法树结构及对句子进行句法解析语法依赖关系单元数据列表提取单元数据列表中相邻的二元/三元组合,计算组合内部的关联度判断读入元素中的tag域是助动词检查模型训练是否存在于混淆集中?否否判断是否到达单元数据列表末尾?是生成助动词及N助动词及N元元语法检查模型语法检查模型结束图4.3N元语法检查模型训练流程图§4.3.2计算特征值及权重本文在上一节阐述了语法检查当中介词和普通N元语法模型提取到的主要特征。通过构建句法树模型,增大了N元语法模型的跨度,提取了位置不相依,语法相依的单词、短语及其结构,提高了语法纠错的准确率。提取过N元语法模型的特征之后,下一步要做的就是计算特征值。本文通过互信息的方法来计算特征值。基于互信息基础理论,定义公式(4-1)来计算当前单词和上下文特征之间的相关性。36万方数据 第四章语法纠错模型的设计pfw(,)countfw(,)sumMutualInfo(,)fwlog{}log{}(4-1)pfpw()()countf()count()w公式中f指单词上下文特征,w指当前单词,即淆集中的某个介词、助动词、冠词和词性;p(f,w)指单词与其特征在语料库中同时出现的概率;p(f)和p(w)指特征出现的概率及当前词出现的概率。count(*)代表了单词对或单词词性在训练语料库中的出现频率,sum指训练语料库中单词、词组或词性的总数。Church等人通过研究互信息的作用,得出如下结论:(1)如果MutualInfo(,)0fw,说明特征f与当前单词w是正相关关系,两者的结合关系可信明确,且其结合度随MutualInfo(*)值的增加而增大。(2)如果MutualInfo(,)0fw,说明特征f和当前单词w之间结合关系不够明确可信,两者是否关联不能确定。(3)如果MutualInfo(,)0fw,说明特征f和但前次w负相关关系,两者之间有很弱的结合度,其在语料库中同时出现的可能性很低,且其结合度随着MutualInfo(*)值的降低而降低。如果上下文特征和当前单词两者的结合度低于指定的阈值,则说明这种搭配在写作中很少使用,此处可能存在语法错误,需要对其进行纠正。由于每个特征对当前词决定性的贡献大小不同,有些特征对当前词的作用起决定性作用,这时特权重就会很大;有的特征对当前词的作用非常有限,甚至可以忽略。这里讲的特征是指加权后的特征值,也就是特征权重值。本文使用计算特征的贡献度方式来计算某特征相对于当前词的重要性。其表示上下文特征f与相应当前词w之间的区分效度,上下文特征、当前词贡献度与其互信息构成了当前词的特征权重值,如公式(4-2)和(4-3)所示。Weightfw(,)MutualInfo(,)fwContribution(,)fw(4-2)count(f,w)Contribution(f,w)=(4-3)n∑count(f,wi)i=1ncount(f,w)指上下文特征f与当前词w之间的共现频率,∑count(f,w)指上下i=1文特征f与所有当前词混淆集中词项的共现频率之和。如果特征f与当前词具有很高的共现频率,而与当前词混淆集中其他单词的共现频率很低,则说明这个特征对于区分这个单词的效度比较高,其贡献度较高;如果特征f与当前词之间的共现频率很低,而与混淆集中其他单词的共现频率比较高,则说明这个特征对于区分这个单词的效度比较低,其贡献度较低。37万方数据 基于统计的英语语法纠错模型的研究与实现经过特征提取、相关性计算及权重计算以及语法训练过程之后,我们得到了带有权重数据的语法训练模型。下面是介词检查模型中得到的部分数据,以介词”in”为例。in^UnigramLeftWord^france^1.2357in^BrigramRightWord^parramatta^,^5.9307in^UnigramLeftWord^dissidents^5.9307in^UnigramLeftWord^milan^4.9307in^UnigramRightWord^wooden^1.041in^BrigramLeftWord^october^nights^5.9307in^BrigramLeftWord^roughest^places^5.9307in^BrigramRightWord^height^.^4.3458in^BrigramRightWord^height^,^4.6088in^BrigramRightWord^the^increase^1.2028in^PrecedeVerb^hold^0.7918in^BrigramRightWord^college^or^2.4654in^UnigramRightWord^africa^3.1453以第一条为例,需要检查的当前介词时“in”,采用“^”作为分隔符后面的“UnigramLeftWord”指介词的前一个单词,及特征集中的“BWL”,然后后面是特征值“france”,最后是特征权重“1.2357”。下面的一些特征“BrigramLeftWord”、“BrigramRightWord”、“UnigramRightWord”和“PrecedeVerb”分别指几次前面的两个单词、介词后面的两个单词、介词后面的一个单词以及介词前面的一个动词,分别对应于特征集中的“TWL”、“TWR”、“BWR”和“PV”。§4.4纠错处理[46]通过训练阶段中N元模型、互信息与句法树的特征提取、特征权重计算,可以得到介词检查模型、包含助动词的普通N元检查模型、词性检查模型。纠错阶段要用到训练过程中得到的模型数据。F指当前句子中提取的某类型错误的上下文特征,m得到公式(4-4),Scorew()iβjWeightfw(,ji)(4-4)fFjm由公式(4-4)计算当前单词w的分数,即对当前单词进行语法检查,再计算当前单c词混淆集中其他单词分数,取其中分数最高的单词作为w。然后由公式(4-5)计算并o执行纠错,其过程是进行平行替换,用得分最高的单词代替当前单词,从而实现最佳纠错。阈值threshold的设定要经过实验来确定。语法检查的整体流程如图4.4所示。Scorew()othreshold(4-5)Scorew()c38万方数据 第四章语法纠错模型的设计开始读入一篇待检查的作文学生作文读入语法检查模型语法检查模型读入语法混淆集各类混淆集文本断句、分词,词性标注以及短语切块读取句子列表中的一句话句法树结构及对句子进行句法解析语法依赖关系单词词性误用错误的检查与纠正介词错误的检查与纠正其他语法错误的检查与纠正判断是否到达句否子列表末尾?是一篇语法检查与输出语法错误检查与纠正信息纠正后的作文结束图4.4语法检查的总体流程框图语法检查的总体流程首先是读入学生的作文,然后读入语法检查模型进行语法检查,再读入语法的各类混淆集,在对文本进行断句、分词,词性标注和短语切块处理,得到英语作文的句子列表,然后读取句子列表中的一句话并对其进行句法解析,得到句法树和语法依赖关系,根据得到的句法树和语法依赖关系,对应于句子进行单词词性,介词错误等其他语法错与进行检查与纠正,循环检查句子列表中的所有句子,得到最终的语法错去检查与纠正信息。39万方数据 基于统计的英语语法纠错模型的研究与实现§4.5本章小结首先描述语法纠错模型的总体结构,对模型总体框架做一个清晰展示。第二节介绍语法纠错模型预处理阶段的相关工作。包括语料库的介绍、词性标注集与标注器、短语切块与句法分析以及统计语料信息词频。第三节阐述语法检查模型的训练阶段,使用普通N元语法模型和句法树提取特征。主要介绍了介词混淆集、介词模型特征集和介词检查总体流程,另外介绍了助动词与N元模型的特征集,特征提取和检查的总体流程。介词检查模型在进行提取特征时除了考虑词汇特征和短语特征,还考虑了介词的语法特征,即介词短语的附着问题;在助动词和N元模型检查当中,考虑了N元模型的弊端,对权重进行了调整。之后介绍了特征和权重计算的方式,并阐述语法检查模型的数据实例。最后一部分语法检查模型在纠错阶段所用到的判别模型,阐述语法错误纠正的方式和过程,最后给出了语法纠错阶段的整体流程框图。40万方数据 第五章语法纠错模型的实现第五章语法纠错模型的实现基于语法纠错模型的研究及设计完成的基础之上,下一步工作就是如何将构建好的模型在实际的系统中运转起来,实现将理论研究转化为产品,供老师、学生教学与学习来使用,实现研究的真正意义。本文研究设计的模型将在课题组开发的大学英语读写智能教学系统中实现,该系统是基于B/S架构,采用SSH(StrutsSpringHibernate,SSH)框架,MySQL数据库,Tomcat服务器以及jQuery前端技术开发完成的。§5.1系统的整体框架系统的框架是基于系统的需求分析来进行设计软件系统的层次结构,数据库结构及各模块之间控制流程,明确语法纠错模型在系统中的运行流程,设计模型与系统核心模块之间的调用接口,为模型在系统中的实现理清思路,为下一步在系统中编程实现语法纠错功能打下基础。图5.1是语法纠错模型在系统中的结构示意图,后面两节将详细介绍语法纠错模型所处在的系统核心批阅模块E-Learning以及在系统中如何通过SSH框架技术、数据库技术等相关技术来实现语法纠错功能。用户浏览器请求语法纠错作文纠错结果反馈用户大学英语读写智能教学系统表示层(Struts)Model-View-Controller结果核心批阅业务逻辑层E-Learning_模块Spring六大模块ClientE-Learning请求语法纠错模型数据持久层Hibernate五大核心接口存储纠错结果读取原有结果数据库图5.1语法纠错模型在系统中的结构示意图本课题组研发的大学英语读写智能教学系统采用的是B/S架构,系统采用SSH框架技术进行搭建,核心批阅模块E-Learning包括单词纠错模型、语法纠错模型和作文评分模型,语法纠错模型是该核心批阅模块的一部分,如图5.1所示,整个系统采用41万方数据 基于统计的英语语法纠错模型的研究与实现三层架构来实现,即表示层、数据持久层和业务逻辑层,分别使用Struts、Hibernate和Spring框架技术来进行实现。§5.2核心模块E-Learning的实现基于对系统安全性以及系统的运行效率的考虑,本系统在实现作文批阅功能时将核心批阅模块与实际的教学系统完全分离开来,将其单独发布到一个独立的批阅服务器上,并将单词纠错、语法纠错相同的子模块,如词性标注、专有名词识别等独立出来,实现内存的一次性加载,从而来提高批阅效率。图5.2是核心批阅模块E-Learning的组成结构图,核心批阅模块包含单词纠错、语法纠错和作文评分。公共处理模块单词纠错单词错误及纠正程序批改单词调用处理作文批阅的请求批阅的作文公共方法调用语法批改程序语法纠错语法错误及纠正调用作文评分程序作文分数语言表达流畅度作文评分表达内容可读度释放资源词法特征句法特征等批阅结果图5.2核心批阅模块E-Learning结构图将语法纠错模型封装完毕,预留好接口供公共处理模块的方法进行调用,代码如下所示:/***功能:执行语法检查与纠正
*输入:待语法检查的文本
*输出:语法检查与纠正后的结果*/publicstaticStringdoGrammarChecking(StringtextString,List>basicSentence)throwsException{double[]threshold=newdouble[]{-6.0,-0.5,-3.0,-4.1,7.0,7.0};//定义阈值initializingGrammarData();//初始化语法模型returngrammarChecking(threshold,textString,basicSentence);//返回语法检查与纠正的结果}相应在公共处理模块中调用语法纠错模块的代码如下所示:42万方数据 第五章语法纠错模型的实现/***************执行语法纠错模块*********************/CheckCorrectGrammarSentenceccgs=newCheckCorrectGrammarSentence();FormatGrammargrammarResult=newFormatGrammar(ccgs.doGrammarChecking(textString,basicSentence));图5.1中系统调用核心批阅模块的方法E-Learning_Client,即图5.2中的公共处理模块部分,其调用E-learning的封装方法部分代码如下所示:publicStringProcess(StringessayTitle,StringessayContent)throwsHttpException,IOException{Stringurl="http://"+urlString+":8080/E-Learning/ELearning";HttpClientclient=newHttpClient();client.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"UTF-8");//指定传送字符集为GBK格式PostMethodmethod=newPostMethod(url);//访问servletmethod.setRequestBody(newNameValuePair[]{newNameValuePair("essayTitle",essayTitle),newNameValuePair("essayContent",essayContent)});intstatusCode=client.executeMethod(method);InputStreaminputStream=method.getResponseBodyAsStream();//输出反馈结果}//省略线程与释放资源代码E-Learning的构建优化了作文智能批阅的效率,由原来批阅一篇作文接近30秒的时间降低到5秒钟以内,大幅度提高了效率。同时将批阅的核心模块独立出来,增加了批阅模块的安全性和可维护性。§5.3模型在系统中的实现本节主要介绍系统在基于Struts1.2,Spring2.0,Hibernate3.2的B/S三层架构的基础上实现针对输入作文的语法纠错功能。采用表示层、业务逻辑层和数据持久层三层模式来开发系统,可以降低程序的松耦合性,使程序流程更加清晰。三层结构的一般流程为:首先表示层向业务逻辑层发出请求,然后业务逻辑层将表示层发送过来的请求进行分类处理,将处理结果发送给数据持久层。持久层将请求的内容取出并返回给业务逻辑层,然后业务逻辑层将持久层返回的结果进行封装处理,其封装的格式按照表示层能够读取识别的格式进行,再将结果返回给表示层,最后由表示层在客户端浏览器中呈现出来。§5.3.1需求分析大学英语读写智能教学系统是一个辅助英语读写在线学习服务系统,作文的自动批阅是本系统的一大亮点,其中核心批阅功能涉及到单词纠错、语法纠错和作文评分,43万方数据 基于统计的英语语法纠错模型的研究与实现本文针对语法纠错模型做了研究和设计,另外的单词纠错和作文评分由本课题组研究团队的其他人员研究设计完成,本文针对在语法纠错模型实现的过程中,与研究团队负责单词纠错和作文评分的研究人员沟通交流,清楚了他们的核心批改程序的调用方法,最后在E-Learning上统一将三个模块设计整合,得到了完整的作文批改平台。在实现的过程中还考虑了整个系统的其他功能性需求。针对本文语法纠错模型在系统中进行实现应具有的功能性需求是:学生可以通过本系统进行普通的作文写作训练,将写作完成的作文进行实时批阅,得到语法,单词等的批阅结果,并将结果保存到系统的数据库中。§5.3.2数据库设计本模型实现所在的系统使用的是轻量级MySQL数据库。MySQL作为一个小型开源数据库管理系统,其体积小、成本低以及速度快,获得了中小型网站建设者的青睐。虽然在稳定性、运行速度方面还比不上Oracle、SQLServer等大型数据库管理系统,但针对本系统而言,MySQL所提供的功能足以满足要求。规范的数据库设计包括概念设计和逻辑设计两部分,概念设计不受数据库管理系统的影响,可以独立进行,其用来建立能满足用户的数据处理需求、反应真实世界的事物之间相联系的模型。逻辑设计是将概念设计阶段设计好的E-R图转换为与MySQL数据库模型相符的逻辑结构。根据原系统的总体需求,本系统在进行语法纠错模型实现的过程中,在系统所有表的基础上添加了学生作文作业表以及后面实现语法知识点提示用到的语法知识表。学生作文作业数据库表设计如表5.1所示。表5.1学生作文作业表字段名含义数据类型长度十进制是否为空StuEssayAssign_I作文编号varchar300否DStuEssayAssign_作文内容text00是ContentStuEssayAssign_Content作文单词批改结果text00是_WordStuEssayAssign_Content作文语法批改结果text00是_GrammarStuEssayAssign_作文评分批改结果text00是Score_Machine§5.3.3数据持久层实现44万方数据 第五章语法纠错模型的实现本系统数据持久层的实现使用Hibernate框架作为对象映射框架,其功能是将数据库中的数据表与持久化类进行一一映射,这一过程通过配置文件来进行定义。然后,设计者使用面向对象的思想操作数据库。持久化类都是普通的Java类,也就是业界定义的POJO(PlainOldJavaObjects)类,这些类由无参构造方法、属性和进行属性访问的Getter/Setter方法构成,其属性与相应数据库表的字段相对应。数据持久层在数据库与业务逻辑层之间,实现系统程序与数据库交互的功能,其主要定义了与数据库表对应的持久化类以及如何对其进行操作的DAO接口和DAO接口的实现类。DAO接口能够降低数据持久层和业务逻辑层之间的耦合度,便于系统的维护。下一小节介绍的业务逻辑层通过调用DAO接口实现对数据库的访问。接口DAO定义了对持久化类中的对象进行的增、删、改、查等操作方法,然后在其实现类中进行实现。本系统在实现语法纠错模型中定义的DAO接口IStuessayassignDAO代码如下:publicinterfaceIStuessayassignDAO{publicListfindByExample(Stuessayassigninstance);publicvoidupdateByTeacherEvaluation(StuessayassigntransientInstance);publicStuessayassignfindByExampleRetOne(Stuessayassigninstance);publicBooleanisExistThisInstance(StringstuAssignID,StringessayAssignID);publicStringgetStuEssayAssignID();publicStringReturnMaxID();publicvoidUpdateOrInsertContent(StuessayassigntransientInstance);publicvoidsaveComment(StuessayassigntransientInstance);publicvoidsaveContentGrammar(StuessayassigntransientInstance);publicvoidsaveContentWord(StuessayassigntransientInstance);publicvoidsaveContentEssay(StuessayassigntransientInstance);publicvoidsaveStuEssayInfo(StuessayassigntransientInstance);publicStuessayassignfindById(Stringid);publicvoidupdateEndorse(StuessayassigntransientInstance);}实现数据持久层的过程中需要编写与数据库中学生作文表相对应的POJO类,以及与该类相对应的hibernate.hbm.xml配置文件,然后是和DAO接口相对应的实现类。学生作文的POJO类Stuessayassign.java及其对应的Getter/Setter方法如下所示:45万方数据 基于统计的英语语法纠错模型的研究与实现packagecom.ReadWriteSystem.domain;importjava.sql.Timestamp;publicclassStuessayassignimplementsjava.io.Serializable{privatestaticfinallongserialVersionUID=1L;privateStringessayAssignId;privateStringstuEssayAssignContent;privateStringstuEssayAssignContentWord;privateStringstuEssayAssignContentGrammar;privateStringstuEssayAssignContentEssay;privateStringstuEssayAssignEvaluationCommentMachine;privateDoublestuEssayAssignScoreMachine;privateTimestampstuEssayAssignSubmitDate;}……//省略Setter/Getter方法Hibernate通过使用xml配置的映射文件,将持久化与数据库表进行关联,映射文件的内容包括表名、字段及与其他表之间的关联。本文实现语法纠错模型用到的映射文件Stuessayassign.hbm.xml的关键内容如下所示:46万方数据 第五章语法纠错模型的实现(DTD),再使用基本的映射标签定义实体类与数据表的映射关系。映射文件Stuessayassign中包含三部分信息:1、使用class标签指定实体对象类名及相应的数据库表名。name属性指定POJO类为Stuessayassign,table属性指定与POJO类相应的数据库表为stuessayassign。此47万方数据 基于统计的英语语法纠错模型的研究与实现标签指明了类与数据库表之间的关系,也就是每个Stuessayassign对象对应表stuessayassign中的一条记录。2、使用id标签指定主键映射。每个Stuessayassign类的属性id对应数据表stuessayassign中的主键ID。使用generator标签定义主键生成策略为assigned,即数据库采用手动增长的方式生成主键。3、使用property标签来指明类的成员变量与数据表相应字段的映射关系。如Stuessayassign类中的成员变量stuEssayAssignContentGrammar与数据库表stuessayassign中的字段StuEssayAssign_Content_Gramma相关联。接口IQuestionbankDAO中实现语法纠错结果存取数据库的方法如下所示://保存作文语法纠错的结果publicvoidsaveContentGrammar(StuessayassigntransientInstance){try{Stuessayassignstuessayassign=(Stuessayassign)getHibernateTemplate().get("com.ReadWriteSystem.domain.Stuessayassign",transientInstance.getStuEssayAssignId());if(stuessayassign==null)stuessayassign=newStuessayassign();stuessayassign.setEssayAssignId(transientInstance.getEssayAssignId());stuessayassign.setStuAssignId(transientInstance.getStuAssignId());stuessayassign.setStuEssayAssignContentGrammar(transientInstance.getStuEssayAssignContentGrammar());getHibernateTemplate().saveOrUpdate(stuessayassign);log.debug("theupdateissuccessful");}catch(RuntimeExceptionre){log.error("theupdateisfailed!",re);throwre;}}§5.3.4业务逻辑层实现Spring技术贯穿于系统的每一层。本文只介绍其在业务逻辑层的使用情况。业务逻辑层位于数据持久层和表示层中间,用来传递数据,是系统架构的核心部分,它能够将表示层和数据库分离,避免表示层直接操作数据库,从而降低了两者之间的耦合度,便于维护。业务逻辑层注重业务流程的实现,常用来做验证性的工作,从而使系统能够具有很好的健壮性。本系统的业务逻辑层定义了为表示层服务的接口以及其对应的实现类。表示层通过这些接口将用户请求的相关数据发送给业务逻辑层中相对应的方法,下一步是业务48万方数据 第五章语法纠错模型的实现逻辑层使用接口实现类中具体方法,再通过调用持久层当中的DAO接口来对数据处理,然后业务逻辑层将会拿到具体返回结果,并按业务流程选择相应的视图将结果呈现出来。业务逻辑层的服务被封装成Service接口,通过前端jsp实现的进行远程调用以实现各种功能。本模型在系统中具体实现时所定义的接口为IStuessayassignService,其部分代码如下所示:publicinterfaceIStuessayassignService{publicDouble[]calculateTAL(ListstuAssignIDList);publicint[]calculateScore(ListstuAssignIDList);publicvoidupdateByTeacherEvaluation(StuessayassigntransientInstance);publicStuessayassignfindByExampleRetOne(Stuessayassigninstance);publicvoidSaveOrUpdate(Stuessayassignstuessayassign);publicvoidsaveprocessResult(Stuessayassignstuessayassign,Booleanword,Booleangrammar,Booleanessay,Booleancomment);publicvoidsave(Stuessayassignstuessayassign);publicStuessayassignfindById(java.lang.Stringid);publicvoidaddEndorse(Stuessayassignstuessayassign);publicStuessayassignfindbyId(Stringid);}业务逻辑层由接口和相应的实现类组成,其为表示层提供后台业务服务,语法纠错模型实现的过程中定义的业务逻辑层接口的实现类为StuessayassignServiceImpl,业务逻辑层中的接口定义表示层中需要的方法,如保存作文批阅结果的方法,用户通过浏览器向saveprocessResult方法传输保存的作文ID,saveprocessResult方法根据相应的请求将结果保存到数据库中,其部分代码如下所示://保存单词纠错、语法纠错、作文评分结果到数据库中publicvoidsaveprocessResult(Stuessayassignstuessayassign,Booleanword,Booleangrammar,Booleanessay,Booleancomment){if(word)istuessayassigndao.saveContentWord(stuessayassign);if(grammar)istuessayassigndao.saveContentGrammar(stuessayassign);if(essay)istuessayassigndao.saveContentEssay(stuessayassign);if(comment)istuessayassigndao.saveComment(stuessayassign);}系统使用Spring技术实现部分对象的统一管理,实现这一功能不需要具体的代码来实现,Spring通过配置文件applicationContext.xml将有关数据持久层的对象IStuessayassignDAO注入到业务逻辑层,其配置信息如下:49万方数据 基于统计的英语语法纠错模型的研究与实现配置文件中的标签bean的id属性名称必须唯一,通过访问这个id可以使用相应的bean。属性class指bean所用到的java类,其作用是管理Spring注入过程中用到的类中的相应变量。Property指Spring管理的java成员,要求其在class表明的类中具有Getter和Setter方法。§5.3.5表示层实现表示层应用在系统前端,它负责系统与用户打交道,用户通过在前端浏览器上发送请求和数据给后台,然后经过后台处理得到结果,再将其展现给用户。本系统使用Jsp技术设计开发前端。Jsp用来生成动态网页内容,它能够使前端设计人员比较容易地设计出丰富的动态内容。本系统在前端设计上使用了Struts技术,需要对模型层、视图层以及控制器行进行设计。模型层用来存放视图层的数据,并将前台发送的请求翻入ActionForm中,然后再通过Action进行数据提取并送到相应的JavaBean中进行进一步处理;本系统43]视图层设计的用户界面主要采用HTML、CSS和JavaScript[技术进行实现。页面设[44]计使用HTML技术,加护技术使用的是jQuery技术;通过Action类实现控制层的设计,其负责用户的裸机操作和与其它层的数据交互,ActionMapping和ActionForward负责页面跳转和下一步逻辑操作。Struts中使用ActionServlet实现控制器,它可以完成前端的请求控制、转发前端请求以及处理HTTP请求等任务。其流程是ActionServlet接收前端URL请求,然后根据配置文件将其映射给相应的Action类,提交请求中的表单数据给FormBean并执行Action类相应的method方法,然后进行数据获取或执行method中的业务逻辑,最后根据配置文件选择相应的视图以显示给用户。配置文件主要有web.xml和struts-config.xml文件,前者主要负责对标签库和servlet的基本配置,Struts框架组件的配置主要在后者为当中进行完成。实现语法纠错模型所用到的action配置代码如下:50万方数据 第五章语法纠错模型的实现用户提交过来的表单数据填写在ActionForm中,其可以将数据提供给action及将模型中的数据填充到实体中。ActionForm在Struts框架中可以起到保护过滤的作用,前端的数据由ActionForm进行验证之后再发送给Action进行处理。Form类的编写需要继承ActionForm类,StudentEssayAssignForm部分代码如下:publicclassStudentEssayAssignFormextendsActionForm{privatestaticfinallongserialVersionUID=1L;privateStringevaluationComment;privateStringmanualScore;privateStringstuEssayAssignIDPK;privateStringassignmentID;publicStringgetManualScore(){returnmanualScore;}publicvoidsetManualScore(StringmanualScore){this.manualScore=manualScore;}……略具体的执行类需要继承Action类来实现,Action的功能在execute方法中实现,其主要功能是与ActionForm类共同验证前端提交的表单数据;调用存取数据模块等的业务逻辑;绑定动态数据并以HTML文件形式返回给用户浏览器以及根据XML配置文件将处理结果返回给ActionServlet。本系统实现作文批阅的功能的Action部分代码如下:51万方数据 基于统计的英语语法纠错模型的研究与实现publicvoidintelligentProcess(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse)throwsException{json=newString(request.getParameter("json").getBytes("ISO8859-1"),"UTF-8");JSONObjectjsonObj=newJSONObject(json);//将JSON格式的字符串构造成JSON对象StringStuAssignIDString=jsonObj.getString("StuAssignID");//获取JSON对象中的StuAssignID属性的值StringEssayAssignIDString=jsonObj.getString("EssayAssignID");//获取JSON对象中的EssayAssignID属性的值System.out.println(StuAssignIDString+";"+EssayAssignIDString);Stuessayassignstuessayassign=newStuessayassign();stuessayassign.setStuAssignId(StuAssignIDString);stuessayassign.setEssayAssignId(EssayAssignIDString);stuessayassign=iStuessayassignService.findByExampleRetOne(stuessayassign);StringessayContentString=stuessayassign.getStuEssayAssignContent();Essayassignessayassign=newEssayassign();essayassign.setEssayAssignId(EssayAssignIDString);StringessayTitleString=iEssayassignService.findByExampleRetOne(essayassign).getEssayAssignTitle();//获取作文的题目EssayCheckessayCheck=newEssayCheck("127.0.0.1");StringelarningString=essayCheck.Process(essayTitleString,essayContentString);//对作文进行智能批阅JSONObjecteJsonObject=newJSONObject(elarningString);//转成Json对象……略作文批阅结果在前端表示层中实现的部分代码如下所示:52万方数据 第五章语法纠错模型的实现<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>functionsubmitContent2DB(){//将学生写作的作文提交到数据库中varvalue=$("#essayContent").val();if(value=="")returnfalse;varstuAssignId=$("#stuAssignID").val();varessayAssignId=$("#essayAssignID").val();submitEssayContent2DB(stuAssignId,essayAssignId,value);};functionintelligentProcess(){showBlock();varvalueContent=$("#essayContent").val();if(valueContent==""||valueContent=="

 

")returnfalse;varstuAssignId=$("#stuAssignID").val();varessayAssignId=$("#essayAssignID").val();varjsonData={StuAssignID:stuAssignId,EssayAssignID:essayAssignId};//JSON对象varstrData=JSON.stringify(jsonData);//将JSON对象转变成JSON格式的字符串$.post("studentEssayAssign.do?method=intelligentProcess",{json:strData},functioncallback(json){if(json.suc=="1"){hideBlock();$("#contentWord").html(json.contentWord);$("#contentGrammar").html(json.contentGrammar);}}……略上面代码在前端实现了学生作文的自动批阅,并将批阅结果展示在前端页面以及存入数据库中。§5.4语法知识库的实现从学习者的角度来讲,除了其能够清楚在写作过程中的语法错误、如何纠正之外,还应该让学习者对语法错误相关的语法知识有一个直观的了解,本在实现语法纠错模型的过程中,与外国语学院的老师一同初步构建了一个语法知识库,并通过编程在语53万方数据 基于统计的英语语法纠错模型的研究与实现法纠错结果页面中进行实现,在语法纠错结果中,针对每一类语法错误,都有一个概括性的语法提示信息。设计语法纠错提示信息的对应格式示例如表5.2所示。表5.2语法知识点提示信息对应格式示例错误信息语法知识提示信息句子中”XXX”存在冠词是一种虚词,本身不能独立使用,只能置于名词之冠词误用错误前,帮助说明名词所指的人或事物及该名词的含义.冠词分为定冠词(the)及不定冠词(a,an)两类.情态动词是助动词的一种,包括will/would,shall/句子中”XXX”存在情should,may/might,must,need,dare,oughtto,usedto,态动词使用错误hadbetter。情态动词后接动词原形。两个情态动词不能连用。如两个情态动词连用错误用法是:Hewillcanfinishitintwodays.(他两天能完成)。按照表5.1的格式,结合外国语学院老师构建的语法知识库,将其导入数据库,构建的语法知识库在数据库中的部分截图如图5.3所示。图5.3语法知识库在数据库中的截图前端实现语法知识点提示的部分代码如下:54万方数据 第五章语法纠错模型的实现/*处理resultString,并将结果动态显示在前端*/publicStringProcessResult(){doProcess();StringmyResultString=resultString;//获取doProcess中的处理结果String[]firstString=myResultString.split("\|");//第一步将处理结果按“|”标记进行切割StringmaintextString=firstString[0];//作文原文ListsentenceList=newArrayList();for(inti=1;i2){biaojiString=xuhaoList[0]+xuhaoList[2];//去除序号的部分intxuhao=-1;//初始化try{xuhao=Integer.valueOf(xuhaoList[1]);}catch(NumberFormatExceptionnfe){System.out.println(nfe);}finally{error.setXuhao(xuhao);}}error.setBiaoji(biaojiString);//获得错误块中的标记信息j++;error.setTishi(secondSring[j]);//获得错误块中的提示信息j++;error.setTuijian(secondSring[j]);//获得错误块中的推荐信息sentence.error.add(error);//添加一个错误信息}sentenceList.add(sentence);//添加第一个句子的信息}55万方数据 基于统计的英语语法纠错模型的研究与实现§5.5本章小结本章主要介绍了语法纠错模型在系统中的实现过程,其中包括系统的整体结构,纠错模型在系统中的位置,并简要介绍了模型实现所用的技术框架。第一节介绍系统的整体框架,第二节介绍了语法纠错模型搭载的核心批阅模块E-Learning,主要从其程序实现的角度阐述了整个模块的运行流程以及与系统的关系。第三节详细介绍了系统实现语法纠错功能的详细过程,包括系统中的前端表示层和业务逻辑层与持久层的设计与实现。最后一节介绍了在语法纠错结果中语法知识点的具体实现。56万方数据 第六章实验与评估第六章实验与评估本章对英语语法纠错模型在系统中运行结果以及各方面的性能进行评估和总结,首先是系统运行的环境、对模型进行实验评估的指标和实验所用到的测试预料,第二小节将展示模型在系统中的运行结果与语法纠错知识点的运行结果。接下来是通过实验数据对模型进行评估分析。§6.1实验环境与测试语料1、系统运行的软硬件环境部署系统的服务器使用的软硬件环境配置如表6.1所示。表6.1系统的实验环境处理器Intel(R)Pentium(R)CPUG850@2.90GHz2.90GHz硬件环境内存8.00GB操作系统MicrosoftWindows764位操作系统开发工具MyEclipse编程语言Java软件环境运行环境jdk1.6JVM内存大小-Xmx1024M-Xms512M服务器ApacheTomcat7.0Web前端开发库JQuery1.3.2数据库MySQL5.5支持的浏览器IE8,IE9,Firefox本文模型的训练阶段是基于Java工程进行实现的,训练阶段得到的结果已在4.3节有所介绍,测试运行阶段是在实际的系统中进行的,训练阶段的软硬件环境不包括服务器、Web前端开发库、数据库和浏览器。由于训练阶段要计算庞大的语料库,以及句法分析程序和N元语法模型都要求计算机有比较高的配置,所以训练阶段和测试阶段使用了同样比较高配置的软硬件环境。2、评估指标对实验数据进行分析评估的过程中,本文用到了在自然语言处理领域应用较广的评测方法,其包括三个评测指标:系统输出中判断正确的结果个数正确率(P)=100%系统输出的全部结果个数系统输出中判断正确的结果个数召回率(R)=×100%测试语料中实际的正确结果(人工判定)个数57万方数据 基于统计的英语语法纠错模型的研究与实现2(β+1)PRF-测度值=2βP+R计算F-测度值时我们一般取β=1,所以F-测度值又称为F-1值。当取β=1时,2PRF-1=P+R3、测试语料本文所用到的测试语料来自于中国学习者语料库、本校老师提供的学生习作和华尔街日报的部分文章,学生习作已经由老师给出了具体的语法错误,以用来对模型测试时形成对比。中国学习者语料库中的文章分成了不同的级别,且存在着不同程度的词汇和语法错误,这些错误都做了人工标记,这部分语料对语法纠错模型中不同级别的语法错误进行测试。华尔街日报的文章是没有语法错误的范文,本文在使用的过程中人为添加了一些错误,以测试不同的语料对模型造成的影响。§6.2运行结果经过上一章的工作,将语法纠错模型成功在大学英语读写智能教学系统中实现,系统用户通过在页面上写入英语作文,点击“智能批阅”按钮,得到作文语法纠错的批阅结果,语法纠错模型在系统中的运行结果如图6.1所示。58万方数据 第六章实验与评估图6.1语法纠错模型在系统中的运行结果由图6.1可知,系统对于在作文中出现的语法错误进行了比较准确的纠正,首先是系统对英语作文中出现的错误进行了标记,然后给出提示信息,并给出具体的推荐纠错信息,针对相应的语法错误又给出相应的语法知识点提示。5.4节中构建的语法知识库,实现的语法知识点提示功能在系统中运行的结果如图6.2所示。59万方数据 基于统计的英语语法纠错模型的研究与实现图6.2语法知识点提示在系统中的运行结果图6.2所示页面上语法知识点部分默认是隐藏的,鼠标点击“语法知识点”按钮可以将句子语法出错部分的相应语法知识展现出来,便于用户学习查看。语法知识点与相应的语法错误种类是一一对应的,提示什么样的语法错误,就会给出相对应的语法知识。§6.3评估结果与分析本文对英语介词语法错误进行了比较详细的研究,首先进行实验分析一下介词模型在大学英语读写智能教学系统中的智能纠错情况。1、介词检查模型本文阐述的介词检查模型解决了10个常用介词的特征提取与模型训练,在特征提取的过程中,考虑了介词的附着信息问题,训练集大小与准确率之间的关系,在评估介词纠错模型性能的过程中,对10个常用介词中的每个介词进行了测试统计,详细的统计信息如表6.2所示,测试过程中用到了123个测试用例,系统发现的介词错误数为99,正确纠正的介词错误数量为78。表6.1是10个常用介词在语法纠错模型中的检查结果。表6.210个常用介词的检查结果介词oftoinforonwithatbyfromabout错误总数16159131491211915发现介词错141271111797813误数量正确纠正介129589685610词错误数量正确率(%)85.7175.071.4372.7381.8285.7188.8971.4375.076.92召回率(%)75.060.055.5661.5464.2966.6766.6745.4566.6766.67平均78.79%正确率60万方数据 第六章实验与评估从表6.2中的数据能够看出,本系统对大学英语四六级作文中的介词平均纠错率为78.79%,观察数据可知,系统对介词of和介词at的正确率和召回率相对较高,然而整个介词的纠错率不算很高,其原因是英语中的介词数量比较多,且其所在的上下文语境不固定,从而使得训练得到的特征权重值较为松散,特征区分度不高;此外,像介词“in”训练的过程中还包含相似的上下文特征,基于这些原因,系统比较难找到合适的介词,从而影响了介词纠错模型检查与纠正性能,但本文的介词纠错模型想比较以前的工作有了一个很大的提升。2、检查模型的总体纠错效果本文基于统计的语法纠错模型的得到的总体纠错结果如表6.3所示表6.3语法检查模型数据测试结果人工发现机器发纠正的错误类型正确率召回率F-测度值数量现数量个数介词错误123997878.79%63.41%70.27%冠词错误85716084.51%70.59%76.93%词性混淆92787393.59%79.35%68.96%错误动词形态88756992.0%78.41%84.66%错误助动词81655483.08%52.94%66.67%错误主谓不一85725779.17%67.06%72.61%致错误单复数不91795974.68%64.84%69.41%一致错误片段错误84767193.42%84.52%88.75%形容词比较级最高81736082.19%74.07%77.92%级错误动词搭配80675582.10%68.75%74.83%错误重复错误85756282.67%72.94%77.50%平均值88.6475.4563.4587.08%78.71%79.34%从表6.3中可知,本文获得的模型检查正确率为87.08%,召回率为78.71%,尽管在本文在错误检查种类、准确率等方面还存在很大的提升空间,但本文基于统计的语法纠错模型已基本达到语言检查的目标,最终得到的正确率相对比较高,有一定的应用价值。3、阈值对准确率和召回率的影响61万方数据 基于统计的英语语法纠错模型的研究与实现本系统在语法纠错的过程中通过当前单词的权重值与混淆集中的单词权重值进行对比计算,获得一个数值,我们称之为阈值,阈值设置的大小直接会影响到模型检查与纠正的正确率和召回率,通过对介词阈值设定的大小,来测试阈值的大小对介词模型纠错的正确率和召回率的影响,此处的阈值是一个加权值,以便于用图来进行更好的展示,图6.3是阈值大小对正确率和召回率的影响,横坐标代表阈值的加权值,纵坐标是实验获得的正确率和召回率的大小。10.90.80.70.60.5正确率召回率0.40.30.20.100.10.20.30.40.50.60.70.80.91阈值图6.3阈值大小对正确率和召回率的影响由图6.3能够得知,当系统设定的阈值比较小时,模型获得的正确率会比较低,原因是当前句子中单词的权重值比混淆集中的权重值要相对小很多,这时候系统就会对当前没有存在语法错误的单词进行“纠正”,出现了纠错过度的现象,从而会造成系统误判现象比较严重,不过,这时的召回率会很高,即系统能够尽可能多的发现作文中存在的语法错误;当召回率逐渐变大时,系统的误判现象就会越来越少,其正确率也会逐渐增加,不过这时系统发现作文中错误的数量会越来越少,其召回率会逐渐降低。考虑到杜绝误判现象的发生,要略微使阈值设置的高一些。4、短语切块对准确率和召回率的影响本文在以前的工作基础上引入了短语切块技术,将部分单词前后的依存关系考虑进来,而不仅仅是纯粹考虑单词之间的关系,还将单词构成的短语进行组块考虑,这其中主要包括名词短语和动词短语,在训练过程中,通过对英语作文进行词性标注之后,再进行短语切块,然后构建句法解析树,本文在测试系统总体纠错结果的同时,62万方数据 第六章实验与评估对系统在进行短语切块添加前后的对系统纠错准确率和召回率进行了测试统计,结果如表6.4所示。表6.4短语切块前后的实验对比研究错误类型使用短语切块之前的结果使用短语切块之后的结果正确率召回率正确率召回率词性混淆错误88.45%81.26%93.59%79.35%介词错误75.23%66.74%78.79%63.41%单复数不一致错误75.62%61.36%77.68%64.84%主谓不一致错误76.36%66.52%79.17%67.06%单词重复使用错误78.39%74.56%82.67%72.94%由表6.4知,短语切块的运用提高了词性混淆错误、介词错误、单复数不一致错误、主谓不一致错误和单词重复使用错误的准确率,但其召回率有所下降,原因考虑到单词之间的依赖关系之后,再计算当前单词的权重值会使其变大,从而会使更少的语法错误被纠正,所以召回率会有所下降。5、与其他方法的结果对比表6.5检查模型与其他方法的结果对比错误规则方法OpenOffice统计与规则相结合的基于统计的纠错模型类型(基于LanguageTool)方法-句酷批改网正确率召回率正确率召回率正确率召回率词性混95.21%40.26%92.59%84.38%93.59%79.35%淆错误介词92.53%6.12%76.39%66.45%78.79%63.41%错误单复数93.56%46.38%82.56%72.36%74.68%64.84%不一致错误主谓不75.65%26.34%78.96%85.23%79.17%67.06%一致错误单词重70.1%40.5%85.63%70.65%82.67%72.94%复使用错误同样以词性混淆错误、介词错误、单复数不一致错误、主谓不一致错误和单词重复使用错误等五种错误来进行实验,由表6.5知本系统设计的语法纠错模型针对词性混淆错误和介词错误比句酷批改网的正确率要高,但召回率与之相比较低,而与在基于规则的方法,OpenOffice中实验结果相比召回率较高,但正确率较低;单复数不一致错误准确率相对前两种纠错方法较低,但召回率比基于规则的方法要高;主谓不一致错误准确率相对较高,但召汇率比句酷批改网测试结果的召回率要低一些;单词重复使用错误正确率和召回率比基于规则的方法要高。整体来讲,基于统计的纠错模63万方数据 基于统计的英语语法纠错模型的研究与实现型在语法纠错的性能优于OpenOffice中的规则方法和句酷批改网中的规则统计相结合的方法。§6.4本章小结本章主要对语法检查与纠正模型的实现与数据进行评估分析。首先阐述本系统运行的软硬件环境,评估语法纠错模型的一些指标和测试语法纠错模型所用到的语料。第二节阐述语法检查模型在实际系统中的运行结果以及语法知识库的运行结果。最后一部分对本文着重阐述的介词纠错模型进行了测试,并对相关数据进行统计,得到介词检查模型的正确率和召回率,同时评估分析了相关数据及影响数据的因素。然后结合本课题组的研究基础得到了整个语法纠错模型的实验数据,即整个模型的准确率、召回率和F-1测度值。然后由对阈值的设定对正确率和召回率的影响做了测试实验,并进一步进行了说明。又对引入短语切块技术前后进行了实验对比,以及通过实验比较与OpenOffice和句酷批改网中实验结果进行对比分析,由在实际的系统中运行得到的最终实验数据知本文研究的语法纠错模型有一定的使用价值,且在实际的系统中运行效果比较理想,很有实际意义。64万方数据 第七章总结与展望第七章总结与展望§7.1全文工作总结目前,英语已经成为世界上最流行及使用最广泛的语言,几乎地球上的每一个角落都会有人使用英语。学习英语这门语言也是中国学生需要掌握的技能,中国目前的教育方式相对比较单一,导致英语教学质量不够理想,需要智能化的教学手段来改变这种传统单一的教学模式,以提高英语教学质量。随着人工智能与计算机科学技术的发展,自然语言处理技术得到了快速发展,为英语的智能化教学提供了理论和技术依据,随之而来的各种教学辅导软件大量涌现。语法作为英语学习的重要一环,似乎已经成为学习者学习过程中比较难跨过的一道坎,对学生而言,语法运用能力的强弱直接影响到英语写作水平的高低,同时,也会影响到英语阅读和口语水平。本文的研究依托是“不依赖主题的大学英语作文自动评分技术”,主要研究大学英语四六级作文,本文阐述了大学生在英语写作的过程中经常出现的语法错误类型,在本课题组已有研究成果的基础上,主要对介词检查模型进行了研究构建,提高了纠错的准确率。构建了以单词纠错、语法纠错和作文评分为核心内容的核心批阅模块,并将包含语法纠错的核心批阅模块在实际的系统中进行实现,取得了不错的结果,已可以在实际的教学活动中进行应用。本文的研究工作取得的成果如下:1、考虑到语法检查的各项功能,训练模型之前对语料进行了预处理,包括断句、分词、词性标注及句法解析技术,虽然实现上述功能已经有了比较成熟的理论方法,但在进行句法解析之前如果不考虑词组或短语成分,则会影响到句法树构建的效率和准确率,所以在已有研究成果的基础上,引入了短语切块技术,并结合斯坦福的句法解析技术对于处理模块进行重构,为后面的语法检查与纠正打下好的基础。2、特征提取的准确度很大程度上会影响到统计语法检查模型的效率,本文使用N元语法模型进行特征提取,并使用数据平滑技术对可能出现的数据稀疏问题进行处理,在介词纠错模型的检查与纠正的过程中使用了互信息理论,加上与处理阶段的短语切块技术和斯坦福最新的句法解析技术,通过实验证明,介词纠错模型的准确率有了一个比较理想的提高。3、在语法纠错模型的实现过程中,设计架构了核心批阅模块E-Learning,将该模块的核心组成部分的共用部分进行提取,提高了批阅程序的运行效率,并将该部分系统中独立出来,从而提高了系统的安全性和易维护性。运用SSH框架、MySQL等技术将该模块在实际的系统中进行编程实现。此外,通过与英语老师进行沟通合作,初步创建了一个英语语法知识库,使用jQuery技术将其在系统中实现,在语法纠错过65万方数据 基于统计的英语语法纠错模型的研究与实现程中,可以将涉及到的相关语法知识直观展示给用户,从而更有利于学习者英语能力的提高。§7.2研究展望本文使用统计学和自然语言处理技术研究构建了英语语法纠错模型,并使用计算机相关技术将其在实际的系统中进行实现,可以作为英语学习的辅助工具,检查纠正常见的英语语法错误,也可以为作文评分和机器翻译系统提供依据,对于学生的自主学习和减轻老师的作文批阅工作量而言,非常有帮助。但本模型和实现所在的系统都存在不足之处,有待进一步的研究与完善,主要问题有以下几个方面:1、本文语法纠错模型中的介词检查模型考虑的介词数量比较有限,以及有些介词的区分度较低,如介词“in”和介词“on”,不容易判断该使用哪个介词,从而降低了模型的检查与纠正性能,语法纠错模型在进行语法检查与纠正的过程中,虽然引入了短语切块技术,将词与词之间的依赖关系考虑进来,但英语用词的时态、语态,上下文之间的语境,语义理解等问题没有很好的考虑到,这也是自然语言处理领域公认的世界性难题,有待自然语言处理技术的更好发展,更好、更高效算法的提出。2、本文的语法纠错模型所能检查与纠正的语法错误种类比较有限,下一步需要考虑增加纠正更多种类的语法错误,本文是从基于统计的角度来阐述英语语法纠错技术,在增加语法纠错种类方面可以考虑使用规则的方法,或者是统计和规则相结合的方法,目前在中文自然语言处理领域,有些研究者在尝试使用规则和统计相结合的方法来进行研究,针对本文而言,可以考虑单独进行使用规则的方法来对语法纠错进行研究,然后在将统计与规则结合起来进行研究。另外一个思路是在语法纠错的某个阶段进行统计和规则相结合的研究,比如与处理阶段的词性标注,可以在使用统计方法的基础上添加规则,目前,在英语自然语言处理领域还很少有人研究过。3、另外在进行语法纠错模型实现的过程中,使用了B/S架构、SSH等技术,由于作者的编程能力和经验的限制,在系统作文批阅访问承载量方面还不够理想,不能达到预定的目标,还有待进一步的改进和提高。由于研究时间及作者水平有限,文中难免有些不足之处,请各位专家不吝批评指正。66万方数据 参考文献参考文献[1]曹右琦.中文信息处理研究的现状和前瞻[J].语言文字应用.1995.1[2]YanGuoandGulbaharH.Beckett.ThehegemonyofEnglishasagloballanguage:ReclaiminglocalknowledgeandcultureinChina[R].2007.[3]李丽生.英语的全球化与语言的多样性[J].云南师范大学学报(哲学社会科学版),2005(1):8-12.[4]Manaris,B.Naturallanguageprocessing:Ahuman-computerinteractionperspective[J].AdvancesinComputers,1999(47):1-66.[5]刘雷.英语作文智能批改中语法检查的研究与实现[D].北京:北京邮电大学,2012.[6]KarenKukich.Techniquesforautomaticallycorrectingwordsintext.1992.[7]宗成庆.统计自然语言处理[M].北京:清华大学出版社,2008:148-153.[8]项炜,金澎.大规模语料库上的Stanford和Berkeley句法分析器性能对比分析[J].电脑知识与技术.2013[9]AndrewBredenkamp,BertholdCrysinann,MirelaPetrea.Lookingforerrors:Adeclarativeformalismforresource-adaptivelanguagechecking[J].2000.[10]CorelCorporation.WordPerfectOffice[EB/OL].http://www.corel.com/servlet/Satellite/us/en/Product/1207676528492#tabview=tab0,2013-3-28[11]LinguisoftInc.GrammarianProX[EB/OL].http://linguisoft.com/gramprox.html,2013-3-28.[12]GeoffKuenning.InternationalIspell.2003.[13]KevinAtkinson.GNUAspell.2003.[14]黄研洲.大学英语短文单词语法错误纠错模型研究[D].广西:桂林电子科技大学,2011.[15]王晓娟.基于多元特征的英语作文语法纠错模型的研究[D].广西:桂林电子科技大学,2012.[16]AlbertPark,Y.&R.Levy.AutomatedWholeSentenceGrammarCorrectionUsingaNoisyChannelModel[C].Proceedingsofthe49thAnnualMeetingoftheAssociationforComputationalLinguistics(ACL),2011:152-165.[17]West,R.&Y.AlbertPark,R.Levy.BilingualRandomWalkModelsforAutomatedGrammarCorrectionofESL[C].Author-ProducedTextProceedingsoftheSixth67万方数据 参考文献WorkshoponInnovativeUseofNLPforBuildingEducationalApplications,Portland,Oregon2011:170–179[18]Knight,K.&I.Chander.AutomatedPosteditingofDocuments[C].InProceedingofth12NationalConferenceonArtificialIntelligence,Seattle,WA,1994:770-784.[19]Guido,M.&F.Bond,A.Copestake.Memory-basedlearningforarticlegeneration[C].InProceedingsofthe4thConferenceonComputationalLanguageLearningandthe2ndLearningLanguageinLogicWorkshop(CoNLL/LLL),2000:43–48.[20]JohnLee.AutomaticArticleRestoration[C].InProceedingsoftheHumanLanguageTechnologyConferenceoftheNorthAmericanChapteroftheAssociationforComputationalLinguistics(HLT-NAACL),2004:31-36.[21]Han,N.-R.&M.Chodorow,C.Leacock.DetectingerrorsinEnglisharticleusagebynon-nativespeakers[J].NaturalLanguageEngineering,2006,12(2):115-129.[22]Chodorow,M.&J.Tetreault,N.-R.Han.Detectionofgrammaticalerrorsinvolvingthprepositions[C].InProceedingsofthe4ACL-SIGSEMWorkshoponPrepositions,Prague,CzechRepublic,2007:25-30.[23]Felice,R.D.&S.Pulman.Automaticallyacquiringmodelsofprepositionuse[C].InProc.ACL-SIGSEMWorkshoponPrepositions,Prague,CzechRepublic,2007:142-150.[24]阳雪峰,陈文臣.基于Struts+Spring+Hibernate轻量级架构开发[M].北京:机械工业出版社,2009[25]高洪岩.至简SSH:精通JavaWeb实用开发技术(Struts+Spring+Hibernate)[M].北京:电子工业出版社,2010.[26]陈亚辉,缪勇.Struts+Spring+Hibernate框架技术与项目实战[M].北京:清华大学出版社,2013.[27]杨青,杨艳,郑世珏.数据库技术及应用基础教程[M].北京:清华大学出版社,2014[28]外国语言学及应用语言学研究中心[EB/OL].http://www.clal.org.cn/Achievement/Achievement1.htm,2013-3-28[29]孙宏林,俞士汶,浅层句法分析方法概述[J].北京大学计算语言学研究所.2000:74-83[30]陈智鹏.基于统计的搜索引擎中文输入纠错技术研究[D].北京:北京邮电大学.2010[31]Manning,C.D.&Hinrich,S.FoundationsofStatisticalNaturalLanguageProcessing[M].苑春法,李庆中等译.统计自然语言处理基础.北京:电子工业出版社,2005:85-90[32]姜丹.信息论与编码[M].合肥:中国科学技术大学出版社,2001:43-55.68万方数据 参考文献[33]Brill,Eric.SomeAdvancesinTransformation-BasedPartofSpeechTagging.1994.[34]Brants,Thorsten.TnT-AStatisticalPart-of-SpeechTagger.2000.[35]于鸿霞.统计与规则相结合的中英文组块分析[D].哈尔滨:哈尔滨工业大学.2006.[36]Carroll,J.StatisticalParsing[J].HandbookofNaturalLanguageProcessing,2000:525-543[37]TheStanfordNaturalLanguageProcessingGroup.[EB/OL]http://nlp.stanford.edu/software/index.shtml[38]常建功,王向华.搞定J2EE核心技术与企业应用:Ajax,JSP,Struts2,Spring,Hibernate[M].北京:电子工业出版社.[39]CraigWalls.Spring实战(第3版)[M].北京:人民邮电出版社,2013.[40]王建国,王建英.Struts+Spring+Hibernate框架及应用开发[M].北京:清华大学出版社,2013.[41]陈亚辉,缪勇.Struts+Spring+Hibernate框架技术与项目实战[M].北京:清华大学出版社,2013.[42]Toutanova,K.&C.D.Manning.EnrichingtheKnowledgeSourcesUsedinaMaximumEntropyPart-of-SpeechTagger[C].InProceedingsoftheJointSIGDATConferenceonEmpiricalMethodsinNaturalLanguageProcessingandVeryLargeCorpora(EMNLP/VLC-2000).HongKong,China,2000:63-70.[43]单东林.锋利的Jquery[M].北京:人民邮电出版社,2009.[44]朱印宏.犀利开发Jquery内核详解与实践[M].北京:清华大学出版社,2010.[45]李卿.CSCW中基于角色访问控制的研究与改进[D].安徽.安徽理工大学,2012[46]孙琼.大学英语写作的现状及对策.沈阳.沈阳教育学院学报[N].2005.69万方数据 致谢致谢时光飞逝,转眼间,硕士研究生学习生活即将结束,在这两年多的时间里,我获得了许多有益的经验和知识,这其中包括老师的鼓励、教导和批评,同学的建议和帮助,亲友的关心和支持,所有这些为今后的工作和学习打下了坚实的基础。在此,向所有给予我关心和帮助的老师、同学和亲友致以最诚挚的谢意,是你们让我获得了不断前进的动力,帮助我顺利完成学业。感谢周娅老师和黄桂敏老师,周老师治学态度严谨、待人和蔼可亲,黄老师阅历丰富、专业知识渊博、对工作精益求精,他们不仅仅教会了我如何做学问、搞研究,还使我明白了许多为人处世的道理,这将使我受益终生。在此,谨向他们表示诚挚的敬意和深深的感谢!感谢我的同门吴新强、王如意,感谢实验室里的周荣、杨国花、郑智、田昊、秦常修以及龚勋等同学,感谢他们和我共同讨论,沟通交流,一起学习,对我的研究工作提出了很多有益的建议,使我能顺利完成论文,在这里向他们表示真诚的感谢。感谢我的同学:冯东磊、刘镁、黄镜清、朱哲、陈俊峰,感谢他们在生活中对我的关心和照顾,在这里,向他们表示感谢,这两年多的友谊将伴随我一生。感谢我的父母和家人,这么多年来他们无私的关爱和支持一直伴随我成长,对此,现在我还无以为报,唯有风雨兼程的默默努力,我祝愿他们永远平安健康。最后,向所有关心帮助过我的人致以衷心的谢意!70万方数据 作者在攻读硕士期间主要研究成果作者在攻读硕士期间主要研究成果[1]以导师第一作者,本人第二作者在The20143rdInternationalConferenceonInformationTechnologyandManagementInnovation(ITMI2014)会议上发表论文一篇。71万方数据
查看更多

相关文章