APP下载

基于自然语言处理的文本自动校对系统及实验结果分析

2023-03-30王燕凤

科学技术创新 2023年5期
关键词:例句语料库语义

王燕凤

(西北民族大学,甘肃 兰州)

随着“互联网+”时代的到来,数字办公成为主流,数字图书也越来越多,在这一背景下文本自动校对的需求越来越迫切,中文文本自动校对逐渐成为热门研究课题。目前常用的文本自动校对系统大多存在算法复杂、工作量大、耗费时间多等弊端,实用性较差。本研究设计了一种基于自然语言处理的文本自动校对系统,并对其应用效果进行了实验分析。

1 基于自然语言处理的文本自动校对系统

1.1 字词校对

1.1.1 语料库的构建

该系统字词校对功能的实现方式是检查相邻的字与字之间、字与词之间、词与词之间是否存在错误。本研究统计了2020 年1-12 月份《人民日报》中的文章,共计377 万字,整理成一个18.5 M的语料库。通过分词和词性标注处理,从字词组合特点、词性等方面综合分析系统进行自动化文本校对处理时的规律特点。实际上,使用大数据技术进行数据自动分析、整合,建立语料库后,应定期根据人们用词习惯来更新语料库的内容,提升自动校对的准确度。

1.1.2 基于接续关系的查错

本研究根据字词间的二元接续关系检查目标字串附近字词的相邻关系。假设有一个字串为A1A2…Ai-1AiAi+1…An,如果需要判断Ai(这里Ai为单个汉字或词语)与相连字词间的关系,根据语言学中的”二元模型”理论,只需要检查Ai-1和Ai,以及Ai和Ai+1的关系即可。在一个包含了海量字词的语料库中,假设从Ai-1到Ai的转移概率为P(Ai/Ai-1),并且P 满足一定的阈值限定,则认为Ai-1和Ai存在二元接续关系。在文本自动校对系统的应用中,要想判断Ai是否出错,可以先判断Ai-1和Ai是否接续。如果接续,则Ai没有出现错误,完成本次查错;如果不接续,还需要继续判断Ai和Ai+1是否接续。如果两者也不接续,可以认定Ai出现错误[1]。

1.2 语法成分的查错算法

基于语法成分的查错策略如下:首先利用规则库中的规则处理被检查的句子,成功识别出该句子中的主语、谓语等成分块;然后按照“从下往上”的顺序,依次进行短语、短句的结构纠错校对。此时,断句所使用的标点符号、空格,都可能影响自动校对系统的准确性,需要引起重视。文本自动校对系统在语法查错时,需要提前进行句子的预处理,进行相关短句的串联和捆绑,从而起到提高识别精度、保证分析结果正确的效果[2]。对于句子中的不同成分(如主语、谓语、宾语、补语等),采取的识别和检查策略各有不同,这里以谓语为例,识别和检查算法如下:

1.3 语义校对

1.3.1 建立依存关系

本系统采用基于实例的语义查错,具体方法为:确定待校对的句子后,首先对该句子的组成结构展开分析。收集网络系统中相关的句子案例,组成一个集合n。分别计算集合n 中每一个实例与待校对句子的相似度,并挑选出相似度最高的实例i。将i 与待校对句子进行对比,即可得出查错结果。该方法虽然操作起来比较简单,但是由于集合n 中的实例数量较多,语义相似度计算的工作量大。为了减轻相似度计算的工作量,本研究提出了一种基于依存关系的解决办法。根据语义依存语法,词之间的关系是有方向的,根据两者之间方向的不同,可以建立起支配与被支配的关系,这种关系就是依存关系。其中,支配词又叫做中心词,可以表现它所在短语的主要语法、语义特征[3]。

1.3.2 句子相似度计算

语义相似度计算是语义查错的关键,利用依存关系进行相似度计算时,只需要考虑那些有效搭配(全句核心词和直接依存于其有效词组成的搭配)之间的相似程度。通常情况下,句子中的有效词主要是动词、名词和形容词。现在以2 个例句为例,介绍计算方法。

例句1:事发后,伤员被及时送往就近医院救治。

例句2:晚上七时左右,所有伤员被送到了医院。

根据语义依存关系构建两个例句的依存树,见图1。

根据图1 可知,在例句1 中,“送往”是关键词,搭配结构是:送往__伤员、送往__医院、送往__救治;例句2 中,“送到”是关键词,搭配结构是:送到__伤员、送到__医院。这样一来,只需要计算两者之间的相似程度即可,从而简化了相似度计算的工作量,并且对提高校对结果的精确度也有一定帮助。相似度计算公式为:

图1 例句1 和例句2 的依存树

结合表1 的权重定义,例句1 和例句2 的相似度为:

表1 搭配匹配权重的设计

根据相似度结果,将待检测句子与相似度最高的句子进行对比,即可判断是否存在语义错误,从而完成语义校对。

1.4 文本校对

1.4.1 构造易混淆词典

不同于上文介绍的字词查错和语法查错,文本自动校对分为2 方面的内容,即查错和纠错。纠错是根据查找出来的错误,提出相应的改正策略。针对常规纠错方法存在的弊端,本研究在设计文本自动校对系统的纠错模块时,吸取了上述方法各自的优势,提出了一种新的纠错方法。首先,综合考虑了中文文本中常见错误的类型,以及每种错误的特征,完成有关词典内容的收集,作为系统自动识别错误用词的参照物。一旦发现文本错误,应结合同现概率表,选出一些可替换的词汇作为纠错建议。如果无法产生纠错建议,则采用人工添加的方式,将纠错建议和对应的错误字串一同添加到易混淆词典中,使得易混淆词典具备了自学能力。这样就可以不断的丰富词库中的易混淆词,从而让文本自动校对系统的纠错能力得到持续提升[4]。易混淆词典的自学习原理见图2。

图2 易混淆词典的自学习原理

1.4.2 纠错算法编程

现阶段,文本自动校对系统可以对一些字词级错误给出相应的纠错建议,但是对于语法错误、语义错误则很难给出准确的纠错建议。因此,本研究使用了纠错产生算法对除字词级错误以外的其他错误类型进行纠错。以例句3“我们认为可疑延长时间。”为例,“可疑延长”是文本自动校对系统查找出的错误字。纠错产生算法的编程思路如下:

2 文本自动校对系统的搭建与实验

2.1 系统的文本自动校对流程

本研究设计的文本自动校对系统由校对预处理模块、查错模块(包括字词级查错、语法级查错、语义级查错3 部分)和校对纠错模块组成。其功能实现流程为:

步骤1:输入或打开一个文本,按照顺序读入单句,并进行文本的预处理。采取双向模式匹配法,依托预选设定好的词库,识别汉字文本的组成结构,确定词组的词性。

步骤2:构造字频向量、二元词性同现频率表,得到查错知识库。利用该系统的查错模块,识别词组之间的连接顺序、连接方式是否存在错误,完成基础纠错任务。另外,通过对句子中成分是否完整进行分析,精准识别语法错误,这需要选用依存文法对语义错误进行查错。

步骤3:借助于易混淆词典、同现概率表,对上一步中查找出来的错误进行定位,并生产相应的纠错建议,完成纠错。

步骤4:纠错完毕后,执行一个判断程序“文本处理是否结束?”如果有未处理的文本,则返回步骤1,继续读入尚未处理的文本,并重复上述步骤;如果文本处理完毕,则由系统自动生成语料文本,并在人机交互界面上显示处理结果,文本自动校对程序结束[5]。

2.2 实验内容

从某杂志的127 篇文章中,挑选出185 个正确句子,以及180 个存在错误的句子,其中有50 个字词级错误句子、110 个语法级错误句子和20 个语义级错误句子。部分病句如下:

(1)他是本地一家知名企业的总载。(“载”为错别字,应为“裁”)

(2)本县苹果的品种非常多,这里无法一一例举。(“例举”应为“列举”)

(3)德国总理授予法院获得签发“禁止未成年人进入酒吧证”的权力。(多字,应删除“获得”)

将其放到同一个文本中,输入本研究设计的文本自动校对系统。为保证系统校对结果的客观性和直观性,本次实验中引入了以下参数:

(1)召回率=正确发现句子数/实际错误句子数×100%。

(2)误报率=(发现错误句子数- 正确发现句子数)/ 发现错误句子数×100%。

(3)查准率=1- 误报率。

2.3 实验结果

文本自动校对结果见表2。

表2 测试结果

结合表2 数据可知,本研究设计的文本自动校对系统具有较高的召回率和查准率,基本上能够维持在70%以上。其中,该系统对于文本中语法级错误句子的召回率和查准率最高,分别达到了89.1%、89.2%。

3 结论

本研究设计的文本自动校对系统可以实现字词查错、语法查错、语义查错,并且能够对查找出来的文本错误,提出相应的纠正建议。从实验结果来看,该系统对常见文本错误的查准率和召回率均达到了70%以上,表明本研究设计的文本自动校对系统可以快速、准确地完成对目标文本的错误查找。下一步,还需要继续扩充语料库,并且不断优化语料库的语言规律,从而使文本自动校对系统更广泛地适用于不同领域、不同风格的文章。

猜你喜欢

例句语料库语义
语言与语义
《语料库翻译文体学》评介
好词好句
“上”与“下”语义的不对称性及其认知阐释
好词好句
好词好句
基于COCA语料库的近义词辨析 ——以choose和select为例
好词好句
基于JAVAEE的维吾尔中介语语料库开发与实现
认知范畴模糊与语义模糊