基于搜索引擎的中文关键字纠错系统

基于搜索引擎的中文关键字纠错系统
引言
在当今社会,信息的重要性日益凸显,如何有效的收集和传播成为了一项重要的技术。作为信息收集的有效手段之一,搜索引擎越来越多的得到人们的关注,例如Google,百度等大型搜索引擎迅速成为IT产业中最炙手可热的公司。搜索引擎面向社会各个阶层的大众用户,为了具有更好的交互性和可操作性,有必要为用户输入关键字提供纠错。一个搜索引擎的关键字纠错能力,可以人性化的指导用户尽可能的搜索到需的信息,这在一定程度影响着搜索引擎服务质量的好坏。
基于搜索引擎的中文关键字纠错系统(以下简称作“纠错系统”)尝试纠正用户输入的中文关键字中可能存在的错误,并把可能的正确输入推荐给用户。该系统能够发现用户输入中出现的选字错误,注音错误,字形错误以及其他的一些错误,并向用户推荐用户可能希望输入的正确关键字。该系统能够有效的为用户输入关键字提供指导,并能纠正一些现有的搜索引擎不能纠正但是在使用中经常出现关键字错误。
1. 应用背景:
进入信息时代,人类社会信息化进程加快,信息的重要性日益凸显,信息不仅成为与物质、能源同等重
要的战略资源,而且获取信息也成了竞争角逐的重要手段。在这样的背景下,Google[2],百度[3](图1)等大型搜索引擎为广大用户提供了一个搜索和交流信息的平台,并且迅速的崛起。根据05年8月的统计数据,Google的月访问量为8040万人,位居全美网站第四位,而排名第一的是另一著名搜索引擎Yahoo(但Yahoo同时也提供其它服务)。而在中国,百度以37%的市场份额成为全球最大的中文搜索引擎[1]。
热转印墨水配方
镀层厚度检测
图1:Google和百度
作一个好的搜索引擎,不但需要有迅捷的搜索速度和全面的搜索内容,人性化的操作和指导也是搜索引擎服务质量好坏的重要标准。因此,大多搜索引擎都提供了高级搜索的功能以及一些人性化的附加功能,自动纠错就是其中的一种(图2,图3)。
图2:百度的自动纠错功能
图3:Google的自动纠错功能
由于中文是一种表意文字,它在词的切分以及词义方面的复杂性使得很多中文系统的处理比其他拼音文字要复杂的多。对于中文关键字的纠错也不例外,不考虑语义层次的信息(在语义层次上英文的规范化程度比中文要高很多,因此中文处理也要远远难于英文),英文纠错往往上只有简单的拼写错误,且不存在复杂的分词问题;而一个中文纠错系统需要面临的第一个问题就是中文分词问题。在中文中,单字往往都会有它自身的意义,而任意几个中文汉字组合在一起可能都会有某种含义,而交集型歧义和组合型歧义更是会经常出现。例如中文中“米兰球星”,在系统不考虑语义的情况下既可以正确的分词为“米兰/球星”,又可以分词为“米/兰球/星”(“兰球”是“篮球”的一种常见的不规范的使用方法,事实上,汉字使用的不规范也是中文纠错处理所面临的一大障碍)。而在假设输入关键字有错误的前提下,分词的难度就更大了。
即便解决了分词问题,中文输入所可能出现的错误也是五花八门多种多样,例如拼音输入时的选字错误(将“篮球”误为“蓝球”),由发音的不规范而导致的注音错误(将“邹韬奋”误为“周韬奋”),由于形近字造成的字形错误(将“彬彬有礼”误为“杉杉有礼”)等。因此,处理基于搜索引擎的中文关键字纠错,是一项很复杂的工作,虽然现有的很多搜索引擎(百度,Google等)都提供中文关键字纠错的功能,但是大部分还都停留在纠正简单错误的基础上,因此,为了能够提供更加人性化的服务,搜索引擎的中文关键字纠错功能还是有很大的改进
空间的。
本文所介绍的基于搜索引擎的中文关键字纠错系统,采用将分词和纠错并行处理的方法,利用搜索引擎关键字的长度一般比较短的特点,尽可能全面地考虑用户可能需要查询的内容,并尝试纠正用户输入中可能存在的错误。
偏心轮在报告的一下部分,首先介绍了纠错系统的概要设计,然后分模块介绍了系统的实现,以及工作成果,最后是对所做工作的总结和讨论。
2. 系统概要设计:
纠错系统主要由训练模块,纠错模块和学习模块三个部分组成,如图4所示。
图4:纠错系统设计示意图
训练模块使用一个语料库,训练成字符树的存储结构,供纠错模块查询。并为保证字符树能够完整地读入内存,首先使用hash的方法将语料库中的词条分类。
纠错模块通过分词,纠错和查字符树,对用户的输入进行处理,并对可能有错误的用户输入,给出系统的推荐词条。
学习模块通过记录并学习用户的输入,自动的为系统添加用户经常查询但系统中没有的词条,以增强系统的功能。
3. 系统实现:
在这一部分将详细介绍纠错系统中各个功能模块的实现。
首先介绍一下系统的界面和使用方法。纠错系统界面采用如图5所示的网页形式。
图5:纠错系统界面
用户在对话框中输入想要查询的关键字,系统将分析用户输入的关键字,如果没有发现错误,则输出“关键字准确”;如果系统发现在用户输入的关键字中可能出现错误,则输出“您要查的是不是:”+系统推荐词条。
3.1. 训练模块实现:
路网训练模块的主要任务是使用语料库中的词条训练纠错模块可用的简单,快速的查结构。在纠错系统中,选用了字符树作为词条的查结构。
图6:字符树电厂脱硫滤布
纠错系统使用了课程提供的“人民日报语料库”[4]的一部分以及一些自己手工加入的词条。训练模块首先对语料库进行必要的清理和处理,由于语料库是以分词的,因此系统直接去除其中的单字,并从中提取词条,形成一张词表。这张词表一方面作为字符树的训练语料,另一方面也作为在纠错模块中对用户输入关键字进行分词时使用的分词词表。
在得到词表之后,使用一个汉字拼音对照表对词表中的每一个词条注音。对于多音字,则需要另一个多音字对照词表,在系统中,对于在注音过程中发现的每一个多音字使用手工的方法注音,从而得到了多音字对照词表。这个词表在纠错模块中为用户输入的关键字注音时也会用到。
然后,训练模块使用已注音的词表训练如图6所示的字符树。注意到当语料库中的词条很多时,整棵字符树可能会很庞大,有可能不能直接读入内存。因此系统使用hash的方法把词条分类,对每一类的词
条训练一棵字符树。在纠错模块需要在字符树中进行查时,只需利用hash函数到对应的字符树,并将其读入内存之后进行查。在纠错系统的实现过程中,使用简单的首字母的方式来最为hash函数,即首字母不同的词条在不同的字符树中。对于hash函数可能的改进,将在最后的讨论中提及。并且,由于选用的词库很小,为了方便起见,实际系统并没有把训练好的字符树写入磁盘,而是全部保留在内存中。
在对词表中的所有词条处理完毕之后,系统就得到了一组字符树。在用户输入关键字并进行查询时,纠错模块可以通过对应的字符树快速准确的到匹配的词条。
3.2. 纠错模块实现:
数字电视接收器纠错模块主要由分词,字符树查,纠错三部分组成。用户输入查询关键字后,纠错模块首先对关键字进行分词,并对每个非单字的词条在对应的字符树中查匹配的词条,如果没有到匹配的词条,则认为该词条可能出现错误,对该词条进行错误纠正之后重新在对应的字符树中查。最后,系统输出“关键字准确”或者输出系统推荐词条。

本文发布于:2024-09-25 09:38:56,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/344828.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:纠错   系统   用户
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议