错别字检查-文章智能纠错的技术难点有哪些?

编辑:pitaya02        日期:2020-09-08

一套良好的搜索引擎文本纠错系统,可以对用户输入的查询词进行文本纠错提示,或直接向用户显示正确结果,提高搜索引擎的智能化程度。与传统文本文本纠错相比,搜索引擎的文本纠错有几个难点:第一,搜索引擎的 query很短,由几个独立的 keywords组成;第二,用户输入比较随意,错误率高达10-15%.第三,在移动设备上,由于屏幕较小,有大量的手写和语音输入,用户的错误率更高。

通过在 web和 querylogs查询文本纠错,主要是通过在 doc上敲击特征点来推断用户输入错误是否进行文本纠错.通过分析用户的 sessions和点击行为,通过在 doc上搜索特征信息,分析用户的改写行为,挖掘出一组高度可信的文本纠错对。上述两种方法都有一个前提,即搜索引擎必须拥有超大型的 web语料,搜索 logs以及用户点击数据,数据规模直接决定着文本纠错系统的优劣,比如 session数据足够大,离线挖掘出的文本纠错对可以覆盖较高的错误率。而且只有少数几个商业搜索引擎才能获得这些大型数据,垂直业务数据的规模也非常小。

关于垂直搜索引擎,特别是较小的垂直 apps,如何进行查询文本纠错,文献中几乎没有讨论.一般的做法是,利用商业搜索引擎对垂直搜索引擎直接作用于网页搜索训练的文本纠错模型。但在我们调查的过程中,发现不同垂直企业的用户检索目的各不相同,导致文本纠错的方式也不尽相同.例如,用户输入“消除星星”,在音乐企业中,应将文本纠错改为歌曲“小星星”;在游戏 app发行平台上,应将游戏 app改为游戏 app “消除星星”。

传统文献学中的文本文本纠错包括“字词”错误文本纠错和“词与词搭配”错误文本纠错两大类.早期的一般是第一类,利用编辑距离进行相似查找。另一种错误类型,是利用检测 query中词条的上下文搭配来判断是否有错误,使用噪声通道和语言模型作为主要的文本纠错方法。举例来说," peace"和" piece"在上下文"a_of cake"中只能使用" piece"。英语也有将两者与训练模型相结合进行预测,进行字词文本纠错的。在方法论上,又分为基于字典和基于模型两种文本纠错模式.前者是通过离线建立字典或挖掘好的字典,查找确定是否需要进行文本纠错。后一类是近年来的研究热点,基于大规模 web语料和 querylogs,通过噪声通道、语言模型、排序模型、分类模型等方法进行文本纠错(Eg, Cucerzan and Brill 2004; Ahmad and Kondrak,2005; Li 。

近年来有一些文献提出了错误修正的框架。一个是采用排序的方法,对候选结果计算多维特征值,通过排序公式计算最终得分,取 topN或显示分数超过某个阈值。二是把问题转化为分类问题,标注一些正负例子,正负例子是文本纠错结果,负例子是不出结果或错结果,离线训练一个二分类模型,在线进行预测。

利用用户行为挖掘潜在的错误修正对,也是近年来的研究热点. Liyun ru 2013在文献中进行了归纳,首先根据用户 cookie和时间序列将连续搜索行为划分为几个 session;然后根据 search和 click的行为特征从 session中挖掘出尽可能多的 pair作为候选;最后结合诸如 doc和 query这样的特征对候选进行排序,从而获得精度较高的错误修正对。

与英文 term相比,中文 term的错误纠正问题更加严重.首先,中文 term之间没有分隔符, term本身不能用于错误识别,必须依赖上下文。第二,中文输入法类型较多,除拼音、五笔式等输入法外,加上无线设备屏幕和键盘都很小,手写设备和语音输入也比较频繁,导致错误类型较多。举例来说,「泡字」与「泡字」、「泡字」字形相近,本身就是正确的汉字,必须依靠上下文。

在文献讨论中,几乎所有的基本问题都是基于网页搜索的查询文本纠错,对于垂直搜索的查询文本纠错,很少有文献讨论,本文详细论述了垂直搜索与网页搜索的区别,并提出了基于垂直搜索的查询文本纠错框架 DCQC。

纵向搜索特征

纵向搜索与横向搜索存在较大的差异,主要表现在以下四个方面:第一,横向搜索意向比较分散,用户需求多种多样,如“导航”“天气”“库存”“视频”等;第二,纵向业务用户意向比较明确,如在音乐 app中搜索,用户可以找到“歌曲”“歌手”“专辑”“mv”等;第二是数据量,网页搜索几乎需要索引所有的网页(千亿级),垂直企业只需要索引特定领域的所有数据,比如音乐领域只有几百万首歌曲。再次,用户的搜索数量与点击数量之间并不具有可比性,每天网页搜索产生上亿次的搜索流量,而且还需要专门的团队来消除噪音;而垂直 apps, query logs噪音很大,即使是某些 apps中的搜索记录, search和 click都不够完美,可用性很差。四是网络搜索的商业搜索引擎不多,如 google、 baidu、 bing等,专业团队对用户行为进行分析,研究查询文本纠错算法;垂直 apps网站数以百万计,有许多需要搜索,而且开发团队较小,没有精力开发查询文本纠错系统。

纵向 apps的爆发式增长,也反映了因特网从 pc到无线客户端的转变,一个面向纵向业务的通用文本纠错框架的出现。

文本纠错框架 DCQC与基于垂直搜索的 Web搜索相比,垂直 apps可利用的数据量小、噪音大,而且不同 app有自己的特殊要求,文本纠错结果差异较大,需要量身定制。本文提出了一套面向垂直业务的通用文本纠错框架 DCQC,它包括文本纠错层和决策层,可以方便地扩展到任何领域,并构建了一个满足业务本身需要的文本纠错系统。

该层由一个或多个独立的集群组成,每个集群负责管理域数据。这种方法的优点是一个领域的所有垂直 apps可以共享数据,不同领域中的垂直 apps使用数据不会交叉,从而保证不同领域中的文本纠错需求的多样性。与网页检索中的索引模块相似,采用倒排索引形式,在汉字和拼音两个维度下建立多种倒排索引。从汉字和拼音两个维度对搜索结果进行搜索,将候选结果进行粗排序,并保留一定数量的搜索结果。除数据不一致外,不同领域集群具有公共性,可任意扩展。

高质量1 DCQC框架

决策阶段为精算阶段,对召回层传递的结果进行特征性计算,利用多个模型进行预测,业务还可以插入自己需要的策略代码,实现结果的个性化。

Route Module:可以根据业务需求指导哪些领域集群的数据回收,通常一个垂直 app只回收该领域集群的数据,但是也有跨多个领域的业务,如娱乐 app需要 music和 video两个领域数据,业务可以通过简单的配置实现这一功能。

特性计算:包括五个方面的特性。首先是用户特征,包括地域、年龄等,比如广东人很容易把“f”写成“h”,这样就可以更好地计算转移概率。另一类为拼音特征,由于流行的是拼音输入法,造成的错误多为拼音错误,包括全拼、简拼、模糊音、声母编辑距离、韵母距离等。第三是笔顺、五笔等字形,如用“自”字错误写成“自已”。第四,数据资源的权威性,包括域内资源的热度和检索频率等,比如,音乐 app中歌曲的播放次数等。第五,以上基本特征信息的统计、排序等。

联机预测:该模块包括基本模型和预测模型,基本模型包括语言模型、关联模型等。预报模式有分类模式、分类模式等。本文采用 svm分类模型,对结果进行二分类,并根据用户日志反馈进行自我学习。

在垂直应用程序和 web页面中,资源数据之间并不是孤立的,而是存在某种联系。首先我们来看几个例子,在音乐 app里,歌手“吴俊余”唱了一首《17岁的雨季》,这两个数据资源是一种“唱”的关系;在视频 app里,电视台“湖南卫视”制作了一档娱乐节目“变形计”,这两个数据资源是一种“制作”的关系。同理,音乐产业也是如此,歌唱家“唱”歌,歌唱家“发”专辑,专辑“包括”歌等;在录像产业中,导演“拍”片,演员“演”电影,演员“演”娱乐节目,导演“拍”电视剧等等;在小说产业中,导演“写”小说,小说“包括”主角等等。

定义1:资源数据——在垂直企业中,数据被分成几类,每一类中都有完整含义可以单独表达。举例来说,在音乐行业,歌曲,歌手,专辑, mv,歌词这些分类所涵盖的数据都是资源数据。

定义2:数据关联——如果两个资源数据之间存在某种关系,那么它们之间就存在数据关联。

定义3:相关热度——两个相关资源共同作用的频率。举例来说,两个人被共同点击倒的次数,或者在同一个段落里出现的次数等等。

相关性挖掘

实际上,关联数据通常是从两个方面来构建的。第一,在垂直业务中的一个记录包含多个字段的情况下,垂直业务本身的数据之间存在大量关联,而这个记录中的任何两个字段之间也存在关联。这类数据是关联数据的主要组成部分,也是垂直企业的优势所在。

第二是从网页进行挖掘,传统的知识图谱由三元组(spo)组成,关联挖掘最大的区别在于只需要挖掘两个有一定关系的数据,而不需要记录非常明确的关系。其基本过程如下:第一,对句子进行句法分析,从句法树中查找出主语(s)、谓语(p)、宾语(o)三个部分,选择主语(s)和宾语(o)作为候选关联数据;第二,将垂直数据和 query logs相结合统计候选关联数据,将高频率筛选后放入关联数据集合中。

在分析 query logs时,关联文本纠错发现了一个有趣的现象:许多查询串常常包含两个或更多的资源片段,而且这些 query错误的比例很高。理由分析应为用户输入多个片断以获得一个明确的结果,而不愿获得一个结果列表;错误比率较高应是用户记忆较差,希望通过两个或更多片断之间的联系来获得明确的结果。但如果一个或多个片段中有错误,那么结果就会很糟糕,因为这些片段本身就代表了正确的资源。举例来说,在视频应用中 query “变形记湖南卫视”,包含了两个资源片段,电影“变形记”,电视台“湖南卫视”,两者都是正确的,两者之间没有任何关系,这种情况下可能会出现错误,用户真正需要的是“湖南卫视”的一档娱乐节目“变形记”,正确的文本纠错形式应该是“变形记湖南卫视”->“变形记湖南卫视”。下面是更多的音乐 app示例:

相关性文本纠错是指利用数据间的相关关系,判断用户输入的多段资源是否存在错误,然后进行文本纠错处理。由于每个资源片断可能是正确的资源,因此错误纠正的目的是寻找多个片断是否存在语义关联,因此该错误纠正是一种新的错误纠正类型。把整个过程分成三步走:

步骤1,片断分割。把 query分割成可独立表达的语义片断,在分割过程中尽量保证资源的完整性。

步骤二,计算片段之间是否有关联。在有关联的情况下退出,否则为每个片段寻找候选结果。该算法利用噪声信道模型,从观测的 query output (O),推测正确的候选者 input (i),得到几个最有可能得到高分的候选者。

步骤三,对每一段的候选结果进行拼接,拼接后可能会出现多串,利用关联关系计算分数,返回分数最高的一段作为文本纠错结果。该算法表达如下:假定 query分割为两段S1和S2的文本纠错序列和可算出任意两段S1和S2的组合得分,其中 u (si)、 u (sj)分别代表S1和S2, f (si, sj)表示基于噪声信道模型计算的 si和 sj在相关数据中的热度, f (si)、 f (sj)分别代表 si和 sj本身的热度。最后得分最高的一组为最终得分。

我们选择了一个垂直 app—— QQ music来验证我们的算法, qq music是腾讯公司推出的最大的中文在线音乐平台,每天搜索大约6000 w次。在每月 querylogs中,随机抽取3 w条 query条,分别抓取 baidu网页搜索到的文本纠错结果和自己的文本纠错结果,取两个文本纠错结果的并集共3.1 k,用于人工标注,其中200条是存在关联文本纠错的,作为实验数据集合。对 baidu网页搜索文本纠错结果的抓取,主要是为了对比垂直文本纠错框架与网页搜索文本纠错效果,而 baidu是中文网页搜索中最权威的文本纠错框架。通过对3.1 k数据集和网页文本纠错对比,召回率提高了28.5%,F1提高了0.26。对200个存在关联文本纠错的集合,我们的方法回收率提高了42.4%,F1提高了0.39,说明我们的垂直通用文本纠错框架及关联文本纠错算法能够明显地胜过网页搜索的文本纠错结果,也证明垂直企业需要建立自己的文本纠错系统。

火龙果智能写作是全球第一款中英双语语法检查校对产品,运用火龙果智能写作技术进行错别字文本校对,除错别字校对以外,还可以对语法、标点等进行校对。

火龙果智能写作官网https://www.mypitaya.com

积极拥抱变化,才能更好的应对这个时代


智能写作-智能纠错已取代人工纠错