一种中文垂直搜索的检索串拆分方法
技术领域
本发明涉及一种计算机领域的方法和装置,具体讲涉及一种中文垂直搜索的检错串拆分方法。
背景技术
随着网络信息的爆炸式增长,垂直搜索引擎的数据来源和数据规模也在高速增长,为提高搜索的查准率,使用户获得更好的搜索体验,关键在于理解用户的查询需求,按语义将用户输入的检索串拆分为连续的短语。目前,检索串拆分主要针对网页搜索,拆分方法主要有两类:基于实体词典的方法和基于统计机器学习的方法,基于统计机器学习的方法又可分为有监督的学习方法和无监督的学习方法。
基于实体词典的方法:由人工或半人工的方式收集实体名称词典,在其中查找分词后的检索串的子串,以前向最大匹配、后向最大匹配、最短切分路径等启发式策略获得最终的切分结果。
有监督的学习方法:先人工搜集并切分一定数目的检索串,以之作为语料库,然后使用机器学习方法从语料中学习出相应的切分模型,再利用学习到的模型对新输入的检索串进行切分。
无监督的学习方法:以未切分的数据(检索串或网页数据)作为训练语料,使用机器学习方法从中学习到隐含的模型(如短语的概率分布),并利用这些模型识别新输入的检索串中的短语,完成检索串的切分。
基于实体词典的方法在检索串的切分过程中采用直接查找词典条目的方式识别短语,不使用任何上下文信息,因此对歧义的处理能力比较差。同时为保证词典的质量,词典的构建和更新往往采用人工或半人工方式,导致词典更新速度较慢,影响切分效果。
有监督的学习方法需要足够规模的人工标注数据,由于不同领域的语言规律上的差异,针对不同的垂直搜索,通常需要构建不同的人工标注数据集合,这导致了人力成本方面的巨大开销。
无监督的学习方法采用原始的未切分的数据作为训练集合,因此所形成的短语结构的模型容易引入噪声,加大了短语边界判定上的误差,导致切分准确率的下降。
发明内容
为了克服上述现有技术的不足,本发明提供一种针对中文垂直搜索的检索串拆分方法,该方法基于词典和用户检索语言模型的混合方法来识别中文垂直搜索检索串中的短语,克服了词典方法在处理歧义上的困难,避免了监督学习方法在人工语料标注上的开销,降低了噪声对无监督学习方法切分边界的影响。
实现上述目的所采用的解决方案为:
一种中文垂直搜索的检索串拆分方法,其改进之处在于:所述方法通过实体词典和无监督学习方法拆分中文垂直搜索的检索串,包括以下步骤:I、建立实体词典和语言模型;
II、检索串进行实体名称匹配;
III、处理检索串中非中文字符;
IV、检索串分词;
V、建立候选短语的权值矩阵;
VI、获得检索串所有候选短语的组合的权值;
VII、将权值最大的短语组合作为检索串的拆分结果返回。
进一步的,所述步骤I中实体词典通过人工或半人工方式构建和更新;所述语言模型使用无监督的学习方法根据用户查询日志构建。
进一步的,所述步骤II包括:用户输入所述检索串;实体词典查找所述检索串;若所述检索串为实体名称条目,则将所述检索串作为短语直接返回;否则进入所述步骤III。
进一步的,所述步骤III中遍历所述检索串的词,处理获得的非中文字符;所述处理包括:将非中文字符中的ASCII字符聚集为单词;将宽字符字母和数字转换为ASCII字符;将长数字串进行折叠;识别汉语拼音。
进一步的,所述步骤IV的检索串的分词和学习语言模型使用的分词工具为同一个分词工具,以防止学习到的语言模型无法为切分提供正确的支持
进一步的,所述步骤V包括:步骤1、将所述检索串分词,所有词从左至右依次编号;
步骤2、将所述检索串分为以词为单位的子串,对所述子串分别赋予数值,所述数值用于衡量该子串成为短语的可能性;
步骤3、将所述数值的结构存放候选短语权值矩阵;所述矩阵为上三角阵,元素的行下标和列下标分别表示该候选短语的起始词和结束词的序号;
步骤4、所述检索串被切分为n个词,所述语言模型的最大阶数为m,所述实体词典为D,则候选短语权值矩阵W为n×n上三角阵,候选短语权值矩阵W的计算如下式1:
;其中:|si,j|为候选短语的长度,以词为单位,即|si,j|=j-i+1,freq(si,j)为语言模型中短语si,j的频率;i、j分别表示短语中词的起始序号和结束序号;α(α≥0)为语言模型和实体词典重要性比重的调节参数。
进一步的,若所述语言模型中没有si,j对应的频率,则使用一个很小的正值作为其频率值,或使用平滑方法为其赋值
进一步的,所述步骤VI中计算所有构成整个检索串的所有连续短语组合的得分,所述短语组合的得分为该组合中所有候选短语的权值W的总和。
进一步的,所述步骤VII中选择得分最高的连续短语组合作为切分结果,返回所述检索串的拆分结果。
与现有技术相比,本发明具有以下有益效果:
(1)本发明采用实体词典和无监督的学习相结合的方式实现中文垂直搜索的检索串拆分,克服了词典方法在处理歧义上的困难,无需人工标注检索串切分的语料,避免了监督学习方法在人工语料标注上的开销,降低了噪声对无监督学习方法切分边界的影响,节约大量人工成本。
(2)本发明采用实体词典和无监督的学习相结合的方式实现中文垂直搜索的检索串拆分,算法简单,切分效率高。
(3)本发明采用实体词典和无监督的学习相结合的方式实现中文垂直搜索的检索串拆分,架构可扩展性强,可在线更新实体词典和语言模型。
(4)本发明的候选短语的选择算法(权值计算)整合了词典和语言模型两方面的知识,既保证了切分边界的准确性,又引入了上下文统计信息,解决了切分歧义问题。
(5)本发明算法通用性强,针对新的垂直搜索需求,无需对拆分算法进行重新设计和实现,只需按需求替换相应领域的实体词典和语言模型即可。
附图说明
图1为中文垂直搜索的检索串拆分方法的系统基本框架图;
图2为中文垂直搜索的检索串拆分方法的流程图;
图3为候选短语权值矩阵的结构图。
具体实施方式
下面结合附图对本发明的具体实施方式做进一步的详细说明。
如图1所示,图1为中文垂直搜索的检索串拆分方法的系统基本框架图;中文垂直搜索的检索串拆分方法使用实体词典和无监督的学习方法的混合方法来识别中文垂直搜索检索串中的短语;根据用户查询日志,使用无监督的学习方法构建用户检索语言模型;用户输入检索串,根据实体词典和语言模型对检索串拆分,获取拆分结果。
如图2所示,图2为中文垂直搜索的检索串拆分方法的流程图;中文垂直搜索的检索串拆分方法包括建立实体词典和语言模型;检索串进行领域实体名称匹配,若是领域实体词条,直接进行拆分,若不是则对检索串进行预处理;预处理,处理检索串中非中文字符;检索串分词;根据语言模型和实体词典建立候选短语的权值矩阵;获得检索串所有组合的候选短语的权值矩阵总和,动态规划求得权值矩阵总和最高的切分路径;返回拆分结果。具体说明:
一种中文垂直搜索的检索串拆分方法,该方法通过实体词典和无监督学习方法拆分中文垂直搜索的检索串,包括以下步骤:
步骤一、建立实体词典和语言模型,其中,实体词典通过人工或半人工方式构建和更新;语言模型使用无监督的学习方法根据用户查询日志对应构建。
语言模型(Language Model,LM)的目的是建立一个能够描述给定词序列在检索串所使用的语言中的出现的概率分布。
步骤二、检索串进行实体名称匹配:根据用户输入检索串,在实体词典查找检索串,若输入的检索串为领域实体名称条目,则将该检索串作为短语直接返回;否则进入所述步骤三。
步骤三、预处理,处理检索串中非中文字符;所述处理指针对用户输入的检索串中可能出现的非中文字符等,对其进行特殊处理。如将ASCII字符聚集为单词;宽字符字母和数字转换为ASCII字符;针对长数字串的组合爆炸问题,对长数字串进行折叠;识别汉语拼音等。
步骤四、检索串分词;为保证语言模型的有效性,检索串的分词词典和策略与语言模型无监督学习方法训练语言模型所使用的词典和策略保持一致;即使用的分词工具为同一个分词工具,以防止学习到的语言模型无法为切分提供正确的支持。
步骤五、建立候选短语的权值矩阵:分别获得用户输入的检索串中所有以词为单位的子串数值,所述数值为该子串成为短语的权值,所述数值用于衡量该子串成为短语的可能性;候选短语权值矩阵为存放所述数值的结构;包括以下步骤:
1、将所述检索串分词,所有词从左至右依次编号;
如:对检索串“迅速发展的计算机技术”进行分词,假设其分词结果为“迅速、发展、的、计算机、技术”,对所有词从左至右依次编号,即“迅速/1、发展/2、的/3、计算机/4、技术/5”。
2、根据分词结果给出的权值矩阵的大小,构建权值矩阵,如根据上例中分词结果,可构建5×5候选短语权值矩阵(行、列的下标代表词的序号),候选短语权值矩阵存放所有分词子串成为候选短语的权值,如图3候选短语权值矩阵的结构图所示,该候选短语权值矩阵为上三角阵,元素的行下标和列下标分别表示该候选短语的起始词和结束词的序号;按上述实例的分词结果,W12表示词“迅速”(序号为1)和“发展”(序号为2)构成一个短语“迅速发展”的可能性(权值)。
3、权值的计算,即填充权值矩阵的算法:设检索串被切分为n个词(按上述实例,n=5),语言模型的最大阶数为m(例如5),实体词典为D,则候选短语权值矩阵W为n×n(5×5)的上三角阵,其元素的计算采用如下的经验公式1:
公式1其中:|si,j|为候选短语的长度(以词为单位,即|si,j|=j-i+1,i、j分别表示短语中词的起始序号和结束序号),如上例中s11=1(“迅速”为一个词,其长度为1),而|s45|=2(“计算机技术”为“计算机”“技术”两个词构成,长度为2)。
freq(si,j)为语言模型中短语si,j的频率,该频率由语言模型提供;若语言模型中没有si,j对应的频率,则可以使用一个很小的正值,如10-38,作为其频率值,或者使用其他的平滑方法为其赋值。
α(α≥0)为调节参数,用来整合语言模型和实体词典两个知识来源,在实际使用中通过改变调节参数调节语言模型和实体词典二者在相对重要性方面的比重,即α=实体词典重要性/语言模型重要性,其默认值为1.0。
步骤六、计算能够构成整个检索串的所有连续短语组合的得分,即计算“可能的拆分路径”的权值;顺次连接构成的检索串的短语组合作为一条可能的拆分路径,其权值为该组合中所有候选短语的权值W的总和。
如主对角元所构成的路径s11-s22-s33-s44-s55所对应的可能拆分结果与检索串的分词结果相同(迅速、发展、的、计算机、技术),而s11-s24-s55则对应另一个可能的拆分结果(迅速、发展的计算机、技术);为减少重复计算和存储开销,可使用动态规划来计算最高得分,并记录取得最高得分的路径,而不是所有“可能的拆分路径”的得分。动态规划是在词遍历检索串的过程中,在每往后走一个词时,记录使得当前路径得分最高的前一个短语的最后一个词序号,称之为前驱,当走到最后一个词时,就获得了整个检索串的最高分值,
步骤七、选择得分最高的连续短语组合作为切分结果返回。可反向遍历步骤六的动态规划过程中所记录的历史信息重构该连续短语组合,如假设得到上述实例中的最优路径为s12-s33-s45(迅速发展、的、计算机技术),则返回切分结果“迅速发展、的、计算机技术”。
最后应当说明的是:以上实施例仅用于说明本申请的技术方案而非对其保护范围的限制,尽管参照上述实施例对本申请进行了详细的说明,所属领域的普通技术人员应当理解:本领域技术人员阅读本申请后依然可对申请的具体实施方式进行种种变更、修改或者等同替换,但这些变更、修改或者等同替换,均在申请待批的权利要求保护范围之内。