一种ES搜索引擎的拼写纠错方法及系统与流程

文档序号:11950365阅读:1131来源:国知局
一种ES搜索引擎的拼写纠错方法及系统与流程

本发明涉及信息技术领域,尤其涉及一种ES搜索引擎的拼写纠错方法及系统。



背景技术:

Elastic Search(简称ES)是一个基于Lucene的搜索服务器,其提供了一个分布式多用户能力的全文搜索引擎,是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。目前,搜索引擎中的拼写纠错,也称拼写检查,是一种被各类搜索引擎广泛应用的功能,能够根据用户输入的错误的查询内容返回正确的查询请求。

现有技术中的拼写纠错方法通常为:依据用户的搜索日志统计提供纠错词后用户点击输入查询词的搜索结果的次数、用户点击纠错词的次数以及点击纠错词的搜索结果的次数;利用统计的用户点击输入查询词的搜索结果的次数、用户点击纠错词的次数以及点击纠错词的搜索结果的次数计算纠错词的纠错优劣值,并依据纠错优劣值生成纠错词的检测结果。但上述现有技术中,只是根据用户的搜索日志进行统计的,若用户的搜索日志不全面,或用户的搜索日志内也存在错误词,则会导致检测结果不准确,即拼写纠错的准确度低。



技术实现要素:

有鉴于此,本发明提供一种ES搜索引擎的拼写纠错方法及系统,其在扩展纠错种类的同时,提高了拼写纠错的准确度。

本发明通过以下技术手段解决上述问题:

本发明的一种ES搜索引擎的拼写纠错方法,包括:采用ansj分词器将用户输入的拼写内容分为若干个词条,其中,所述拼写内容包括拼音、汉字或英文;对每一个词条依次进行错误检测,若存在错误词条,则在错误模型库中查找与所述错误词条匹配的错误模型,并在匹配的错误模型中获取与所述错误词条对应的纠正候选词;根据匹配的错误模型计算每个纠正候选词在每种匹配的错误模型下的得分,并根据每种匹配的错误模型下的得分构成得分向量;采用L2R模型对每个纠正候选词的得分向量进行处理,生成错误模型的评分,并根据所述错误模型的得分和语言模型确定出每个纠正候选词的总分;确定每个纠正候选词的总分中得分最高的纠正候选词,并将得分最高的纠正候选词作为正确的候选词进行显示。

进一步,所述语言模型为纠正候选词在文档中的出现次数与文档中所有字数的比值。

进一步,所述错误模型库包括拼音索引模型;所述拼音索引模型IndexInput_PY=<PingYin,word1,word2......wordn>;其中,IndexInput_PY为拼音索引模型,PingYin是纠正候选词的拼音,word为拼音对应的汉字,n为大于等于1的整数。

进一步,所述错误模型库还包括编辑距离模型;所述编辑距离模型其中,P1(w|c)为编辑距离模型,w为错误词条,c为正确的纠正候选词,Distedit(w,c)为错误词条到正确的纠正候选词之间的编辑距离,length(w)为错误词条的长度,length(c)为正确的纠正候选词的长度,MAX为取最大值。

进一步,所述错误模型库还包括英文语音纠错模型,所述英文语音纠错模型是根据英文发音分别计算纠错候选词为英文的英语读音编码和错误词条为英文的英语读音编码,当c与w的英语读音编码相同时,则P2(w|c)=1;当c与w的英语读音编码不相同时,则P2(w|c)=0;其中,P2(w|c)为英文语音纠错模型,所述英语读音编码为Double Metaphone Code。

进一步,所述错误模型库还包括汉语的拼音纠错模型;采用开源项目pinyin4j将纠正候选词为汉字的转化为汉语拼音,将错误词条为汉字的转化为汉语拼音,并根据所述编辑距离模型计算错误词条到正确的纠正候选词的汉语拼音之间的编辑距离,得到汉语的拼音纠错模型P3(w|c)。

进一步,所述错误模型库还包括受控词汇纠错模型;将正确的纠正候选词与对应的受控词一一对应存储在受控词汇列表中,并记录P(s|c)=1,其中,P(s|c)为受控词汇纠错模型。

进一步,所述错误模型库还包括用户日志纠错;根据预设时间间隔确定出用户日志的查询时间段,并通过所述编辑距离模型查找每个查询时间段内用户日志中的相似词,并根据预先存储的词频信息确定正确的候选纠错词与错误词条对,得到用户日志纠错模型其中,P3(w|c)为用户日志纠错模型,P(w,c)为用户日志中正确的候选纠错词与错误词条同时出现的概率,P(c)为用户日志中正确的候选纠错词出现的概率。

本发明的一种ES搜索引擎的拼写纠错方法具有以下有益效果:

本发明提供了一种ES搜索引擎的拼写纠错方法,若确定有错误词条,则在错误模型库中查找与错误词条匹配的错误模型,并在匹配的错误模型中获取与错误词条对应的纠正候选词,计算每个纠正候选词在每种匹配的错误模型下的得分,得到得分向量,最后采用L2R模型对得分向量进行处理,生成错误模型的评分,并根据错误模型的得分和语言模型确定出每个纠正候选词的总分,并将总分中得分最高的纠正候选词作为正确的候选词进行显示,从而实现了拼写纠错过程,上述拼写纠错过程中,结合了错误模型库中的多种错误模型,使得纠正错误的种类更加全面,同时采用L2R模型得出得分向量的评分,再根据得分向量的评分和语言模型最终确定出的每个纠正候选词的总分,且最终将得分最高的纠正候选词作为正确的候选词进行显示,提高了拼写纠错的准确度。综上所述,本发明在扩展纠错种类的同时,提高了拼写纠错的准确度。

本发明的一种ES搜索引擎的拼写纠错系统,包括:处理单元,用于采用ansj分词器将用户输入的拼写内容分为若干个词条,其中,所述拼写内容包括拼音、汉字或英文;检测单元,用于对每一个词条依次进行错误检测,若存在错误词条,则在错误模型库中查找与所述错误词条匹配的错误模型,并在匹配的错误模型中获取与所述错误词条对应的纠正候选词;计算单元,用于根据匹配的错误模型计算每个纠正候选词在每种匹配的错误模型下的得分,并根据每种匹配的错误模型下的得分构成得分向量;确定单元,采用L2R模型对每个纠正候选词的得分向量进行处理,生成错误模型的评分,并根据所述错误模型的得分和语言模型确定出每个纠正候选词的总分;所述确定单元,还用于确定每个纠正候选词的总分中得分最高的纠正候选词,并将得分最高的纠正候选词作为正确的候选词进行显示。

进一步,所述错误模型库包括拼音索引模型、编辑距离模型、英文语音纠错模型、汉语的拼音纠错模型、受控词汇纠错模型和用户日志纠错模型中的至少一种。

本发明的一种ES搜索引擎的拼写纠错系统具有以下有益效果:

本发明提供了一种ES搜索引擎的拼写纠错系统,若确定有错误词条,则在错误模型库中查找与错误词条匹配的错误模型,并在匹配的错误模型中获取与错误词条对应的纠正候选词,计算每个纠正候选词在每种匹配的错误模型下的得分,得到得分向量,最后采用L2R模型对得分向量进行处理,生成错误模型的评分,并根据错误模型的得分和语言模型确定出每个纠正候选词的总分,并将总分中得分最高的纠正候选词作为正确的候选词进行显示,从而实现了拼写纠错过程,上述拼写纠错过程中,结合了错误模型库中的多种错误模型,使得纠正错误的种类更加全面,同时采用L2R模型得出得分向量的评分,再根据得分向量的评分和语言模型最终确定出的每个纠正候选词的总分,且最终将得分最高的纠正候选词作为正确的候选词进行显示,提高了拼写纠错的准确度。综上所述,本发明在扩展纠错种类的同时,提高了拼写纠错的准确度。

附图说明

图1是本发明提供的一种ES搜索引擎的拼写纠错方法的流程示意图;

图2是本发明提供的一种ES搜索引擎的拼写纠错系统的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参见图1,是本发明提供的一种ES搜索引擎的拼写纠错方法的流程示意图,包括如下步骤:

101、采用ansj分词器将用户输入的拼写内容分为若干个词条。

其中,所述拼写内容包括拼音、汉字或英文。

具体的,首先获取用户输入的拼写内容,然后调用分词器将用户输入的拼写内容分为若干个词条。

需要说明的是,若用户输入的拼写内容为单个拼音、单个汉字或单个英文时,则词条的个数为1;若用户输入的拼写内容为多个拼音、多个汉字或多个英文组成的句子时,则词条的个数至少为2。

102、对每一个词条依次进行错误检测,若存在错误词条,则在错误模型库中查找与所述错误词条匹配的错误模型,并在匹配的错误模型中获取与所述错误词条对应的纠正候选词。

本实施例中,所述错误模型库包括拼音索引模型;

所述拼音索引模型IndexInput_PY=<PingYin,word1,word2......wordn>;

其中,IndexInput_PY为拼音索引模型,PingYin是纠正候选词的拼音,word为拼音对应的汉字,n为大于等于1的整数。

进一步的,所述错误模型库还包括编辑距离模型;

所述编辑距离模型

其中,P1(w|c)为编辑距离模型,w为错误词条,c为正确的纠正候选词,Distedit(w,c)为错误词条到正确的纠正候选词之间的编辑距离,length(w)为错误词条的长度,length(c)为正确的纠正候选词的长度,MAX为取最大值。

进一步的,所述错误模型库还包括英文语音纠错模型,所述英文语音纠错模型是根据英文发音分别计算纠错候选词为英文的英语读音编码和错误词条为英文的英语读音编码,当c与w的英语读音编码相同时,则P2(w|c)=1;当c与w的英语读音编码不相同时,则P2(w|c)=0;

其中,P2(w|c)为英文语音纠错模型,所述英语读音编码为Double Metaphone Code。

进一步的,所述错误模型库还包括汉语的拼音纠错模型;

采用开源项目pinyin4j将纠正候选词为汉字的转化为汉语拼音,将错误词条为汉字的转化为汉语拼音,并根据所述编辑距离模型计算错误词条到正确的纠正候选词的汉语拼音之间的编辑距离,得到汉语的拼音纠错模型P3(w|c)。

进一步的,所述错误模型库还包括受控词汇纠错模型;

将正确的纠正候选词与对应的受控词一一对应存储在受控词汇列表中,并记录P(s|c)=1,其中,P(s|c)为受控词汇纠错模型。

进一步的,所述错误模型库还包括用户日志纠错;

根据预设时间间隔确定出用户日志的查询时间段,并通过所述编辑距离模型查找每个查询时间段内用户日志中的相似词,并根据预先存储的词频信息确定正确的候选纠错词与错误词条对,得到用户日志纠错模型

其中,P3(w|c)为用户日志纠错模型,P(w,c)为用户日志中正确的候选纠错词与错误词条同时出现的概率,P(c)为用户日志中正确的候选纠错词出现的概率。

103、根据匹配的错误模型计算每个纠正候选词在每种匹配的错误模型下的得分,并根据每种匹配的错误模型下的得分构成得分向量。

104、采用L2R模型对每个纠正候选词的得分向量进行处理,生成错误模型的评分,并根据所述错误模型的得分和语言模型确定出每个纠正候选词的总分。

其中,所述语言模型为纠正候选词在文档中的出现次数与文档中所有字数的比值。

具体的,L2R模型是一种监督学习的机器学习排序算法,通过对标注过的训练数据进行学习,将多种排序模型融合起来并产生最优的排序,从而产生对应的纠错词汇。目前L2R模型的训练方法主要有三种,分别是单文档方法,文档对方法以及文档列表方法,其中单文档方法的处理对象是单一词汇,它通过将词汇转化为特征向量后,使用机器学习中常规的分类方法或回归方法来解决排序问题;文档对方法主要是将排序问题归结为二元分类问题,学习目标也转化成了两个词汇的优先顺序问题,这样就可以引入一些经典的二分类方法,例如,通过支持向量机SVM和神经网络等来学习;文档列表方法是将词汇排序的结果列表作为训练数据,通过找到最优的评分函数来解决排序问题。在本发明中采用的是单文档方法,其在保证训练效果的同时,降低训练集的构造难度,虽然算法的复杂度比较高,但是相较于其他两种方法,单文档方法更能专注于自己学习的目标,从而能够获得好的效果。

105、确定每个纠正候选词的总分中得分最高的纠正候选词,并将得分最高的纠正候选词作为正确的候选词进行显示。

具体的,将每个纠正候选词的总分按照从大到小进行排序,最终从排序中获取得分最高的纠正候选词,并将得分最高的候选词确定为正确的候选词显示在输入栏。

需要说明的是,为了保证快速的查询响应,本发明将错误模型库和语言模型均存储在redis等高速缓存中。

本发明提供了一种ES搜索引擎的拼写纠错方法,若确定有错误词条,则在错误模型库中查找与错误词条匹配的错误模型,并在匹配的错误模型中获取与错误词条对应的纠正候选词,计算每个纠正候选词在每种匹配的错误模型下的得分,得到得分向量,最后采用L2R模型对得分向量进行处理,生成错误模型的评分,并根据错误模型的得分和语言模型确定出每个纠正候选词的总分,并将总分中得分最高的纠正候选词作为正确的候选词进行显示,从而实现了拼写纠错过程,上述拼写纠错过程中,结合了错误模型库中的多种错误模型,使得纠正错误的种类更加全面,同时采用L2R模型得出得分向量的评分,再根据得分向量的评分和语言模型最终确定出的每个纠正候选词的总分,且最终将得分最高的纠正候选词作为正确的候选词进行显示,提高了拼写纠错的准确度。综上所述,本发明在扩展纠错种类的同时,提高了拼写纠错的准确度。

如图2所示,其为本发明提供的一种ES搜索引擎的拼写纠错系统的功能示意图,包括:处理单元201、检测单元202、计算单元203和确定单元204。

所述处理单元201,用于采用ansj分词器将用户输入的拼写内容分为若干个词条。

其中,所述拼写内容包括拼音、汉字或英文。

所述检测单元202,用于对每一个词条依次进行错误检测,若存在错误词条,则在错误模型库中查找与所述错误词条匹配的错误模型,并在匹配的错误模型中获取与所述错误词条对应的纠正候选词。

其中,所述错误模型库包括拼音索引模型、编辑距离模型、英文语音纠错模型、汉语的拼音纠错模型、受控词汇纠错模型和用户日志纠错模型中的至少一种。

所述计算单元203,用于根据匹配的错误模型计算每个纠正候选词在每种匹配的错误模型下的得分,并根据每种匹配的错误模型下的得分构成得分向量。

所述确定单元204,采用L2R模型对每个纠正候选词的得分向量进行处理,生成错误模型的评分,并根据所述错误模型的得分和语言模型确定出每个纠正候选词的总分。

所述确定单元204,还用于确定每个纠正候选词的总分中得分最高的纠正候选词,并将得分最高的纠正候选词作为正确的候选词进行显示。

本发明提供了一种ES搜索引擎的拼写纠错系统,若确定有错误词条,则在错误模型库中查找与错误词条匹配的错误模型,并在匹配的错误模型中获取与错误词条对应的纠正候选词,计算每个纠正候选词在每种匹配的错误模型下的得分,得到得分向量,最后采用L2R模型对得分向量进行处理,生成错误模型的评分,并根据错误模型的得分和语言模型确定出每个纠正候选词的总分,并将总分中得分最高的纠正候选词作为正确的候选词进行显示,从而实现了拼写纠错过程,上述拼写纠错过程中,结合了错误模型库中的多种错误模型,使得纠正错误的种类更加全面,同时采用L2R模型得出得分向量的评分,再根据得分向量的评分和语言模型最终确定出的每个纠正候选词的总分,且最终将得分最高的纠正候选词作为正确的候选词进行显示,提高了拼写纠错的准确度。综上所述,本发明在扩展纠错种类的同时,提高了拼写纠错的准确度。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1