中文文本自动校对系统的研究与实现_第1页
中文文本自动校对系统的研究与实现_第2页
中文文本自动校对系统的研究与实现_第3页
中文文本自动校对系统的研究与实现_第4页
中文文本自动校对系统的研究与实现_第5页
免费预览已结束,剩余4页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、中文文本自动校对系统的研究与实现摘要:随着“互联网+”时代的到来和快速发展,新媒体(微博、微信公众号、博客、论坛、新闻客户端等)已成为人们生活中不可分割的一部分,很多新闻媒体平台,每天原创新闻发布量巨大,采用人工审核已经不切实际。因此,高速处理海量内容的中文文本自动校对系统的研究具有重要的实际意义和广泛的应用领域。本文对中文文本的校对内容进行了分析,将其分为两大类,分别为错别字和敏感信息。本文采用政府网站及今日头条的文本内容作为训练语料,利用n-gram模型对分词后的语料进行统计分析形成二元知识模型库与上下文语境库,再构建错别字混淆集,然后通过计算目标词对应的混淆集中的混淆词在二元知识模型库与

2、上下文语境库中的支持度,来实现中文文本自动校对系统的自动查错与纠错。该设计方案目前已成功应用于一些政府网站,现已部署五台服务器,每台服务器每天能够处理一百万万篇文章,抽取分析结果显示,该系统的召回率为78.9%,准确率为85.6%,具有较好的应用前景。关键字:n-gram模型,混淆集, 支持度,自动校对Research and Implementation of Chinese Text Automatic Proofreading SystemGONG Yong-Gang, Fu Jun-Ying, LIAN Xiao-Qin, Li Yu-Ying(School ofInformation

3、 Engineering and Computer, Beijing Technology and Business University, Beijing 100048, China)Abstract: With the advent and rapid development of the “Internet+” era, new media (microblog, WeChat public account, blogs, forums, news clients, etc.) have become an integral part of peoples lives. Many new

4、s media platforms have huge amounts of original news releases every day, so manual review is not practical. Therefore, the study of the Chinese text automatic proofreading system for high-speed processing of massive contents has important practical significance and a wide range of applications. This

5、 article analyzes the proofreading content of Chinese texts and classifies them into two categories, namely typos and sensitive information. The article uses the text of government websites and headlines today as training corpus, uses the n-gram model to perform statistical analysis on the segmented

6、 corpora to form a binary knowledge model library and context library, then Build a typo confusion set, and by calculating the support degree of the confused words in the confusion set corresponding to the target word in the binary knowledge model library and the contextual context library. To achie

7、ve automatic error correction and correction of Chinese text automatic proofreading system. The design scheme has been successfully applied to some government websites, five servers have been deployed and each server can process one million articles per day. Extraction analysis showed that the recal

8、l rate of the system is 78.9% and the accuracy rate is 85.6%, which has a good practical application effect.Keywords: N-gram model, Confusion set, Support degree, Automatic proofreading1 引言随着“互联网+”时代的到来和快速发展,新媒体(微博、微信公众号、博客、论坛、新闻客户端等)已成为人们生活中不可分割的一部分,很多新闻媒体平台,每天原创新闻发布量巨大,而新闻的时效性使其会在短时间内被各大媒体广泛转载转发,同

9、时被数以亿计的网民所阅读。因此,新闻内容中如果存在错别字、政治类敏感词等不良信息,则有可能产生极其恶劣影响。以今日头条为例,今日头条每天的发布量高达50万条,采用人工审核是不切实际的。因此,必须在稿件发出前采用基于上下文语境的自动识别技术手段才能确保“及时、准确”发现问题、定位问题、解决问题。所以高速处理海量内容的中文文本自动校对系统的研究具有重要的实际意义和广泛的应用领域。此外,自动校对系统还有着深远的理论意义,自动校对研究多年来一直是自然语言领域的研究难题1。早在20世纪60年代,国外就开展了英文文本的自动校对研究23,目前已取得了较高的准确率和召回率,并且部分研究已经成果化。中文自动校对

10、发展相对较晚,于 90 年代研究人员开始对中文文本自动校对方法开展研究和探索。目前国内有一些科技公司和高等院校或研究机构都投入了一定的人力和财力开展这方面的研究4,其研究方法主要分为以下几类:基于机器学习的方法5、基于语义信息的方法6,以及基于概率统计的方法7。基于机器学习的方法将中文拼写纠错看成是词的歧义消解问题,这种方法必须依靠预先定义的混淆集,对于不在预先定义的混淆集中的词没有办法检查其正确性。基于语义信息的方法不需要预先定义的混淆集,这种方法的本质是基于正确的词与其周围的词之间满足某种语义的联系,而拼写错误的词不满足这种语义联系,这种方法最大的缺点是适用的范围比较小,无法发现大多数错误

11、。利用概率统计方法来识别错别字的是采用词和词性的n-gram统计语言模型的方法,这种方法基于大规模语料统计词的n-gram序列,通过n-gram概率来发现错别字,一般认为低概率序列是错误的,高概率序列是纠错建议的候选列表8。这种方法查错效果比较好,但需要大规模的语料库进行训练。调研各新媒体平台对于自动校对系统的核心需求,系统需要具备错别字纠正、政治类敏感词预警并实施常态化检测等功能。采用n-gram统计语言模型的方法,具有智能自主学习、处理速度快、查错能力强、适应范围广的优点。所以本文采用基于n-gram模型的概率统计与规则相结合的方法实现中文文本的自动校对。目前市场上还没有类似的成熟产品,因

12、此该系统的研发具有非常重要的实际应用价值。2 中文文本自动校对系统的总体设计中文文本自动校对系统在程序设计上,采用实用性强,开源的Tomcat作为本系统的运行环境,使用JSP语言开发平台的前台显示部分,使用Java语言编写后台各功能模快。数据存储方面,使用mongDb数据库来存储错别词混淆集。 全局配置与开发上使用nutz框架结构进行数据访问、参数配置的实现。系统的主要功能由采集模块、词库、训练模块、校对模块及API接口五部分组成。本文的自动校对系统具体实现流程有如下几个步骤:(1) 首先通过爬虫采集不小于4G的政府网站和今日头条的文本内容,作为语料库备用;(2) 构建错别词混淆集,并把这些资

13、源以合适的数据结构储存到mongoDb中;(3) 使用开源的代码Hanlp对上述语料库进行分词,在分词的基础上进行n-gram模型的训练,并获取上下文特征;(4) 采用概率统计与规则相结合的方法进行中文文本的校对;(5) 在中文文本校对完成后给出纠错建议或实现自动纠错,并把词库中没有的词手动添加到词库。图1 中文文本自动校对系统的总体框架 3 采集模块3.1 训练语料的获取训练n-gram模型需要大量的语料,本文训练语料的获取主要是采用网络爬虫技术,采集政府网站和今日头条的网页内容,以txt的形式存储起来。然后采用开源的代码Hanlp对文本进行分词,为后面n-gram模型的训练做准备。本文采用

14、Hanlp的优势在于可以将未分词成功的目标词人工添加到分词词库,实现目标词的正确分词,从而降低漏报率。3.2 混淆集的构建随着中文校对工作的发展,汉字的错别字混淆集在错别字识别中越来越重要9,中文文本的自动查错与纠错的实现必须基于错别字混淆集,所以错别字混淆集在中文文本的自动校对中具有重要的意义。本文对中文汉字在文本中经常出现的同音词错误、音似字错误构建错别字混淆集。3.2.1 同音词混淆集的构建目前大多数人用的都是拼音输入法,相同拼音可选择的词语很多,一般情况下需要用户选择正确的词语10,但是有时候由于人们可能会输入最靠前的选项或者候选选项太多,人们可能输入成候选选项中的某一个,这些都会造成

15、同音词错误。由此可见同音词错误是错别字模块的重要词库。一个词的同音词混淆集(Homonym Dic )是指词与其相应的同音词的集合,记为:HD(w) = w1,w2,w3,wn例 相应的混淆集记为:HD(相应)= 响应,想赢,相迎,相映,项英,翔鹰 记为的混淆集记为:HD(记为)= 几位,纪委,极为,即为,机位,即位 真的的混淆集记为:HD(真的)= 朕的,贞德,震得,真得同音词混淆集构建流程图如下图2所示:图2 获取同音词混淆集的流程图最后输出的同音词混淆集的存储格式如下图3所示:图3 同音词混淆集存储模式3.2.2 音似词混淆集的构建一些正确的字和它的错别字有一个共同点,一个汉字的拼音是由

16、一个声母和一个韵母组合而成,如果正确字和其错别字的声母相似或相同并且韵母也相似或相同,则称这两个字为音似字11。如:音同时为“zhou”的有“洲周州轴粥舟咒皱”;音同为“zou”的有“揍奏走邹驺”,通过总结相似拼音的字集,我们构建出音似表。音似词混淆集的构建与同音词混淆集的构建步骤一致,只不过是把同音词的汉语拼音表换成了音似表。3.2.3 其它混淆集的构建形似词、义似词、成语常见错误及由于发音习惯而造成的错别字的构建为从网络收集,然后人工整理得到。4 预处理模块自然语言从它产生开始,逐渐演变成一种上下文相关的信息表达和传递的方式,因此让计算机处理自然语言,一个基本的问题就是为自然语言这种上下文

17、相关特性建立数学模型12。这个数学模型就是自然语言处理中常说的统计语言模型,它是今天所有自然语言处理的基础。N-Gram(有时也称为N元模型)是自然语言处理中一个非常重要的统计语言模型,通常在NLP中,人们基于一定的语料库,可以利用N-Gram来预计或者评估一个句子是否合理。本文的预处理模块就是利用N-Gram来预计或评估某个词在当前句子中的合理性。4.1 n-gram语言模型语言模型是一个概率分布,指派概率给特定的字符串P(w1, w2,. wn),其中wn代表语言模型中的某个词13。对于一个由n个词构成的句子Sentence = w1, w2,. wn,其概率为:Ps=Pw1Pw2w1Pw

18、3w1w2Pwnw1wn1=inP(w1|w1wi1)公式中,第i个词出现wi的概率由单词之前的i-1个词w1w2wi1决定,将前i-1个词w1w2wi1称为第个单词的前文。随着前文长度的增长,一个词可能拥有的不同前文的数量将会按指数级增长14。假设一个词汇的集合大小为L,即其中有L个分词。当前文长度为i-1时,i处的词会出现Li-1种不同的前文。此时为了给出句子中的第i个词的概率,就必须要考虑到这里所有的Li-1种不同的前文的情况,统计模型中的参数的个数会达到Li个14。随着i的不同,参数的个数也会呈指数级变化,计算量也会增加,所以本文只考虑i=2,3的情况。当 n=1 时,即表示出现在第

19、i 位上的词wi独立于历史,称之为一元语法模型;当 n=2 时,即表示出现在第i位上的词wi仅与它前面的一个词wi1有关,称之为二元语法模型,也可称为一个马尔可夫模型,记为Biggram;当 n=3 时,即表示出现在第 i 位上的词 wi仅与它前面的两个词wi2wi1有关,称之为三元语法模型,也可称为二阶马尔可夫模型,记为Trigram15。本文采用n-gram模型来统计二元模型与上下文特征实现中文文本的自动校对。4.2 二元模型知识库的构建二元模型知识库是基于二元模型的中文文本校对的最基本的资源。用于构建语言模型的大型文本称为训练语料,一般情况下,用来训练语言模型的训练语料规模在几百万个词左

20、右。本文采用各媒体资源作为训练语料,并且经过HanLP分词系统分好词。在分词的基础上统计语料中所有相邻两个词同现的次数,即一个句子s=w1w2w3wn,连续的两个词,同现的频次。例如:“我/今天/做/工作/汇报。”统计 在大规模语料中的出现次数。算法流程如下所示:1:Begin 2:建立存储2元模型的结构3:读入一行S4:按空格将S分割5:while S.length2 6:for each word in S do 7:head Word=arrayi,tail Word=arrayi+1 8:if head Word,tail Word 都不是符号9:如果存在,数目加 1,如果不存在,存入

21、结构 10:循环5-9的步骤13:End4.3 上下文语境知识库的构建上下文语境知识库的构建与二元模型知识库的构建思路一样,唯一不同的是上下问语境在二元模型的基础上进行了改进,统计的是当前词的周围出现的是哪些词。例:“深受/v, 广大/b, 基层/n, 医务/b, 工作/vn, 者/rzv, 的/ude1, 欢迎/v, 。/w”统计的在大规模语料库中出现的次数。5 校对系统校对模块主要分为错别字与敏感词两种类型。错别字类分为同音词、音近词错误,成语错误,词语搭配错误,多字、少字错误,双字错误,的地得错误等等,以上错误又可以绝对错误和非绝对错误;敏感词类分为不文明用语、宗教类用语、港澳台问题、领

22、导人排序问题以及一些其它政治性错误等。本系统错别字的识别方法主要是基于n-gram模型的概率统计与规则结合的自动校对方法;敏感词的识别需要根据政治规范性写出相对应的规则进行校对。本文主要介绍的是错别字的校对。 5.1 绝对错误绝对错误主要包括成语错误、双字错误,指的是这个词是不存在的,即一定是错误的。例“一枝之长”就是绝对错误,应该为“一技之长”。对于这种错误,我们用写简单规则的方法,对错别词进行简单替换。其步骤如下:(1) 输入句子、文本或网络链接;(2) 对上述句子文本或网络链接里面的文本采用hanlp 进行分词;(3) 通过双数组Trie树遍历mongDb数据库中的错别词,分别与分词进行

23、匹配(4) 若匹配成功,则该词错误,通过简单规则,对该词进行直接替换,否则循环第(3)步的操作。本系统采用双数组 Trie 树(Double-Array Trie)实现对字典的快速查询,用于词条的快速检索16。双数组Trie树的使用既减少 Trie 树占用的空间并且保证了查询的效率,有效降低 Trie 树的空间浪费17。下面非绝对错误的数据库查询部分也用到了双数组Trie树。5.2 非绝对错误非绝对错误指的是需要根据上下文语境才能判断出这个句子中的某个词是否正确。例“天仙宝宝称自己因为家庭问题心理不舒服,想出来喝酒解闷”这句话中的“心理”这个词是存在的,但是根据上下文语境,它放在这儿就是不合适

24、的,这就需要我们根据上下文语境来判断。下面以非绝对错误里面的同音词为例,介绍中文文本校对系统的校对流程,如下图5所示:图5 中文文本自动校对流程图其中文本支持度的计算公式如下:supwi,ej=lnp(wi,ej)kip(wk|ej)其中p(wi,ej)为wi,ej同时发生的概率。wi为文本中的同音词,ej为wi当前文本的二元特征与上下文。其中pwiej=fre(wi,ej)kfrewk,ej+,fre(wi,ej)为wi,ej同时出现的频率,由于fre(wi,ej)可能等于0,所以取=0.12。基于二元模型与上下文查错纠错的原理主要是根据这种现象来判断待校对文本的正确与否,其思路是通过混淆集

25、来判断句子中的错别词,相当于从混淆集中选择一个最适合当前上下文的词,这是一个排歧的过程,评价特定上下文对特定目标的支持度,选择支持度最高的词。如果支持度最高的词与原句子中的词是相同的,那么该句子中的词是正确的;如果不一致,则该句子中的目标词可能是一个错别词。6 API接口查错系统对外以API接口的形式提供服务,拟采用主流的nutz开发框架来实现。Nutz是近年来国内兴起的一个轻量级的框架结构。Nutz是一组轻巧的开源框架,功能比较全,主要涵盖了数据持久化(Data Persistent),反转控制(IOC),Web框架(MVC)18。Nutz的各个部分可以独立使用,比如在Spring里采用nu

26、tz.Dao,又比如在nutz.Ioc里使用Hibernate等。Nutz是一组轻便小型的框架的集合,它所有的功能均不依赖第三方的jar包,它的使命就是“解决第三方类库在WEB项目开发中的低效问题”,并且作者保证nutz代码绝对不会膨胀,jar包只有4M,性能也会在不断提升与完善。 7 结束语目前本系统已经开发完成,并且已部署5台服务器,每台服务器每天能够处理100万篇文章,具有高速、高效的特点。为了评估本系统的有效性,从大量的数据中,随机抽取1000篇文章进行人工分析。分析后的结果为:该系统的准确率为85.6%,召回率为78.9%,具有较高的召回率和准确率。因此,中文文本自动校对系统的研究具

27、有重要的实际意义。另外在现有的版本上,我们会通过用户的反馈对中文文本自动校对系统进行不断地完善,对于误报率、漏报率较高的错别词,我们会采用n-gram模型与特殊规则相结合的方法降低误报率和漏报率,从而提高整个系统的召回率与准确率。参考文献:1 石敏. 中文文本自动校对系统D. 江苏科技大学, 2015.2 Kukich K. Techniques for automatically correcting words in textJ. Acm Computing Surveys, 1992, 24(4):377-439.3 Rachele De Felice, Stephen G.Pulman

28、. A classifier-based approach to preposition and determiner error correction in L2 English. Proceeding of the 22nd International Conference on Computational Linguistics, Coling 2008,167-1764 颜建强,高新波. 一种基于Google的ORC的结果校对新方法J.计算机学报2014.37(6):1261-12675 侯锋. 中文报业出版的文字质量智能辅助控制技术研究D.国防科学技术大学,2010.6 郭充,张仰森.基于知网义原搭配的中文文本语义级自动查错研究J.计算机工程与设计,2010,31(17):3924-39

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论