搜索词纠正方法、装置、电子设备及计算机存储介质与流程

文档序号:27094805发布日期:2021-10-27 16:37阅读:62来源:国知局
搜索词纠正方法、装置、电子设备及计算机存储介质与流程

1.本技术涉及计算机技术领域,尤指一种搜索词纠正方法、装置、电子设备及计算机存储介质。


背景技术:

2.本部分旨在为权利要求书中陈述的本技术的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
3.如今,随着网络上的资源越来越丰富,搜索引擎的使用也越来越广泛。但在搜索引擎的使用过程中,用户有时难以给出准确的搜索词,或者因为笔误而造成了输入错误。例如输入的搜索词中的英文单词拼写错误、中文同音字错误,输入的搜索词与正确的搜索词语义相关但文字不相同等情况。从而,搜索引擎会根据错误的搜索词进行搜索,给出与用户期望的内容不同的搜索结果。


技术实现要素:

4.本技术实施例提供一种搜索词纠正方法、装置、电子设备及计算机存储介质,用以解决现有技术中存在搜索词纠正效果不好的问题。
5.第一方面,本技术一实施例提供了一种搜索词纠正方法,包括:
6.获取输入的搜索词,对所述搜索词进行特征提取,并确定候选集合中不同候选词的特征;
7.根据所述搜索词的特征与所述不同候选词的特征的相似度,从所述候选集合中召回相似度符合要求的第一候选词集合;
8.过滤掉所述第一候选词集合中符合过滤条件的候选词,得到第二候选词集合;
9.对所述第二候选词集合中的候选词进行评分;
10.根据评分结果,确定评分满足要求的候选词为纠错词,并利用所述纠错词纠正所述搜索词。
11.这样,通过对搜索词进行特征提取,与候选集合中的候选词进行相似度比较后召回,之后再对候选词进行过滤和评分,与现有技术相比提升了对搜索词的召回率的同时保证纠正搜索词准确率,提升了用户体验。
12.可选地,所述确定候选集合中不同候选词的特征,包括:
13.对所述候选集合中不同候选词按照至少一种语言元素的类型拆解,并提取拆解得到各类型的语言元素对应的向量;
14.将所述各类型的语言元素对应的向量利用长短期记忆人工神经网络lstm模型进行特征提取;
15.将提取特征后得到各类型的语言元素对应的向量合并,得到所述候选词的表征向量;
16.其中,所述lstm模型通过输入样本中有正确纠错关系的候选词,以输出对应的向
量合并得到的表征向量与样本中搜索词的表征向量的相似度符合设定要求为目标进行训练;
17.所述对所述搜索词进行特征提取,包括:
18.将所述搜索词按照至少一种语言元素的类型拆解,并提取拆解得到各类型的语言元素对应的向量;
19.将所述各类型的语言元素对应的向量合并得到所述搜索词的表征向量。
20.这样,通过lstm模型对候选词的特征进行编码与进一步地特征提取向量,最终能够提取得到与具有纠错关系的搜索词更为相似的向量。
21.可选地,所述将所述各类型的语言元素对应的向量合并得到所述搜索词的表征向量,具体包括:
22.将同类型的语言元素对应的向量,合并为该类型的语言元素对应的子向量;
23.将不同类型的语言元素的子向量合并,得到所述搜索词的表征向量。
24.这样,能够获得搜索词的表征向量,便于后续与候选词的特征进行比较相似度。
25.可选地,所述lstm模型通过如下方式训练得到:
26.获取正例样本,所述正例样本包括搜索词和正确纠错词;
27.将所述正例样本中的搜索词、正确纠错词分别按照至少一种语言元素的类型拆解,并提取拆解得到的各类型语言元素对应的向量;
28.将针对搜索词提取的向量合并得到所述搜索词的表征向量;
29.将针对所述正确纠错词提取的各类型的语言元素对应的向量输入lstm模型,根据所述lstm模型的输出得到该类型的语言元素对应的向量,将各类型的语言元素对应的向量合并,得到所述正确纠错词的表征向量;
30.根据正确纠错词的表征向量与所述搜索词的表征向量的相似度得到损失函数值,根据所述损失函数值调整所述lstm模型的参数;
31.其中,所述正确纠错词的表征向量与所述搜索词的表征向量的相似度越高,所述损失函数值越小。
32.这样,通过使用包括搜索词和正确纠错词的正例样本对lstm模型进行训练,能够使lstm模型学习到具有纠错关系的搜索词与正确纠错词之间的隐含关系。
33.可选地,所述lstm模型通过如下方式训练得到:
34.获取负例样本,所述负例样本包括搜索词和错误纠错词;
35.将所述负例样本中的搜索词、错误纠错词分别按照至少一种语言元素的类型拆解,并提取拆解得到的各类型语言元素对应的向量;
36.将针对搜索词提取的向量合并得到所述搜索词的表征向量;
37.将针对所述错误纠错词提取的各类型的语言元素对应的向量输入所述lstm模型,根据所述lstm模型的输出得到该类型的语言元素对应的向量,将各类型的语言元素对应的向量合并,得到所述错误纠错词的表征向量;
38.根据错误纠错词的表征向量与所述搜索词的表征向量的相似度得到损失函数值,根据所述损失函数值调整所述lstm模型的参数;
39.其中,所述错误纠错词的表征向量与所述搜索词的表征向量的相似度越高,所述损失函数值越大。
40.这样,通过使用包括搜索词和错误纠错词的负例样本对lstm模型进行训练,能够使lstm模型学习到不具有纠错关系的搜索词与错误纠错词之间的隐含关系。
41.可选地,所述根据所述搜索词的特征与所述不同候选词的特征的相似度,从所述候选集合中召回相似度符合要求的第一候选词集合,包括:
42.利用向量检索引擎,确定所述搜索词的表征向量与所述不同候选词的表征向量的余弦相似度;
43.按照对应的所述余弦相似度的排序,从所述候选集合中召回预设数量的候选词,得到所述第一候选词集合。
44.这样,通过使用向量检索引擎,可以较快地完成搜索。
45.可选地,所述对所述搜索词进行特征提取,包括:
46.将所述搜索词按照至少一种语言元素的类型进行拆解,得到与所述搜索词对应的各类型的语言元素;
47.所述确定候选集合中不同候选词的特征,包括:
48.对所述候选集合中不同候选词按照至少一种语言元素的类型拆解,得到与各所述候选词对应的各类型的语言元素。
49.这样,通过直接使用拆解得到的语言元素作为特征,不再需要使用lstm模型进行特征提取,简化了技术方案。
50.可选地,所述根据所述搜索词的特征与所述不同候选词的特征的相似度,从所述候选集合中召回相似度符合要求的第一候选词集合,包括:
51.利用倒排索引算法,确定所述搜索词对应的各类型的语言元素与各所述候选词对应的各类型的语言元素的相似度;
52.按照对应的所述相似度的排序,从所述候选集合中召回预设数量的候选词,得到所述第一候选词集合。
53.这样,使用倒排索引算法的技术方案较为简单。
54.可选地,所述过滤条件包括如下至少一种:
55.所述搜索词与候选词的字符编辑距离大于预设字符编辑距离阈值;
56.所述搜索词的搜索操作参数与候选词的搜索操作参数的差异符合设定要求,所述搜索词的搜索操作参数为根据用户对所述搜索词的历史操作确定的参数,所述候选词搜索操作参数为根据用户对所述候选词的历史操作确定的参数。
57.这样,从语言元素对应的特征之外的维度对所述第一候选集合中的候选词进行过滤,可以过滤掉一些在字面含义上与搜索词较为相近,但实质语义上并不相近的候选词,以避免使用不合适的候选词对搜索词进行纠正。
58.可选地,所述语言元素的类型包括如下至少一种:
59.一元分词unigram、二元分词bigram、三元分词trigram、词语、发音。
60.这样,可以从不同的维度上提取搜索词和候选词的特征,以更好地发现对应的相似度关系。
61.可选地,所述对所述第二候选词集合中的候选词进行评分,包括:
62.根据所有所述搜索词的特征及所述第二候选词集合中的候选词的特征,及所述两者的交叉特征输入到评分模型;
63.利用所述评分模型预测所述候选词的评分;
64.其中,所述评分模型通过输入样本中存在特征差异的搜索词的特征、候选词的特征及对应的交叉特征,以输出与特征差异程度相对应的评分为目标进行训练。
65.这样,利用基于机器学习的评分模型对所述第二候选集合中的候选词进行评分,评分更加准确。
66.可选地,所述评分模型包括如下任一种:
67.逻辑斯蒂回归模型、深度学习模型、决策树模型。
68.可选地,输入到所述评分模型的所述搜索词的特征根据所述搜索词的搜索操作参数确定,输入到所述评分模型的所述候选词的特征根据所述候选词的搜索操作参数确定,所述搜索词的搜索操作参数为根据用户对所述搜索词的历史操作确定的参数,所述候选词的搜索操作参数为根据用户对所述候选词的历史操作确定的参数。
69.可选地,所述搜索操作参数包括如下至少一种:
70.搜索场景、搜索次数、搜索推荐值、搜索结果。
71.这样,能够从不同的非语言维度来发现搜索词与候选词之前的相关关系。
72.第二方面,本技术一实施例提供了一种搜索词纠正装置,包括:
73.特征提取单元,用于获取输入的搜索词,对所述搜索词进行特征提取,并确定候选集合中不同候选词的特征;
74.召回单元,用于根据所述搜索词的特征与所述不同候选词的特征的相似度,从所述候选集合中召回相似度符合要求的第一候选词集合;
75.过滤单元,用于过滤掉所述第一候选词集合中符合过滤条件的候选词,得到第二候选词集合;
76.评分单元,用于对所述第二候选词集合中的候选词进行评分;
77.纠错单元,用于根据评分结果,确定评分满足要求的候选词为纠错词,并利用所述纠错词纠正所述搜索词。
78.可选地,所述确定候选集合中不同候选词的特征,包括:
79.对所述候选集合中不同候选词按照至少一种语言元素的类型拆解,并提取拆解得到各类型的语言元素对应的向量;
80.将所述各类型的语言元素对应的向量利用长短期记忆人工神经网络lstm模型进行特征提取;
81.将提取特征后得到各类型的语言元素对应的向量合并,得到所述候选词的表征向量;
82.其中,所述lstm模型通过输入样本中有正确纠错关系的候选词,以输出对应的向量合并得到的表征向量与样本中搜索词的表征向量的相似度符合设定要求为目标进行训练;
83.所述对所述搜索词进行特征提取,包括:
84.将所述搜索词按照至少一种语言元素的类型拆解,并提取拆解得到各类型的语言元素对应的向量;
85.将所述各类型的语言元素对应的向量合并得到所述搜索词的表征向量。
86.可选地,所述将所述各类型的语言元素对应的向量合并得到所述搜索词的表征向
量,具体包括:
87.将同类型的语言元素对应的向量,合并为该类型的语言元素对应的子向量;
88.将不同类型的语言元素的子向量合并,得到所述搜索词的表征向量。
89.可选地,所述lstm模型通过如下方式训练得到:
90.获取正例样本,所述正例样本包括搜索词和正确纠错词;
91.将所述正例样本中的搜索词、正确纠错词分别按照至少一种语言元素的类型拆解,并提取拆解得到的各类型语言元素对应的向量;
92.将针对搜索词提取的向量合并得到所述搜索词的表征向量;
93.将针对所述正确纠错词提取的各类型的语言元素对应的向量输入lstm模型,根据所述lstm模型的输出得到该类型的语言元素对应的向量,将各类型的语言元素对应的向量合并,得到所述正确纠错词的表征向量;
94.根据正确纠错词的表征向量与所述搜索词的表征向量的相似度得到损失函数值,根据所述损失函数值调整所述lstm模型的参数;
95.其中,所述正确纠错词的表征向量与所述搜索词的表征向量的相似度越高,所述损失函数值越小。
96.可选地,所述lstm模型通过如下方式训练得到:
97.获取负例样本,所述负例样本包括搜索词和错误纠错词;
98.将所述负例样本中的搜索词、错误纠错词分别按照至少一种语言元素的类型拆解,并提取拆解得到的各类型语言元素对应的向量;
99.将针对搜索词提取的向量合并得到所述搜索词的表征向量;
100.将针对所述错误纠错词提取的各类型的语言元素对应的向量输入所述lstm模型,根据所述lstm模型的输出得到该类型的语言元素对应的向量,将各类型的语言元素对应的向量合并,得到所述错误纠错词的表征向量;
101.根据错误纠错词的表征向量与所述搜索词的表征向量的相似度得到损失函数值,根据所述损失函数值调整所述lstm模型的参数;
102.其中,所述错误纠错词的表征向量与所述搜索词的表征向量的相似度越高,所述损失函数值越大。
103.可选地,所述根据所述搜索词的特征与所述不同候选词的特征的相似度,从所述候选集合中召回相似度符合要求的第一候选词集合,包括:
104.利用向量检索引擎,确定所述搜索词的表征向量与所述不同候选词的表征向量的余弦相似度;
105.按照对应的所述余弦相似度的排序,从所述候选集合中召回预设数量的候选词,得到所述第一候选词集合。
106.可选地,所述对所述搜索词进行特征提取,包括:
107.将所述搜索词按照至少一种语言元素的类型进行拆解,得到与所述搜索词对应的各类型的语言元素;
108.所述确定候选集合中不同候选词的特征,包括:
109.对所述候选集合中不同候选词按照至少一种语言元素的类型拆解,得到与各所述候选词对应的各类型的语言元素。
110.可选地,所述根据所述搜索词的特征与所述不同候选词的特征的相似度,从所述候选集合中召回相似度符合要求的第一候选词集合,包括:
111.利用倒排索引算法,确定所述搜索词对应的各类型的语言元素与各所述候选词对应的各类型的语言元素的相似度;
112.按照对应的所述相似度的排序,从所述候选集合中召回预设数量的候选词,得到所述第一候选词集合。
113.可选地,所述过滤条件包括如下至少一种:
114.所述搜索词与候选词的字符编辑距离大于预设字符编辑距离阈值;
115.所述搜索词的搜索操作参数与候选词的搜索操作参数的差异符合设定要求,所述搜索词的搜索操作参数为根据用户对所述搜索词的历史操作确定的参数,所述候选词搜索操作参数为根据用户对所述候选词的历史操作确定的参数。
116.可选地,所述语言元素的类型包括如下至少一种:
117.一元分词unigram、二元分词bigram、三元分词trigram、词语、发音。
118.可选地,所述对所述第二候选词集合中的候选词进行评分,包括:
119.根据所有所述搜索词的特征及所述第二候选词集合中的候选词的特征,及所述两者的交叉特征输入到评分模型;
120.利用所述评分模型预测所述候选词的评分;
121.其中,所述评分模型通过输入样本中存在特征差异的搜索词的特征、候选词的特征及对应的交叉特征,以输出与特征差异程度相对应的评分为目标进行训练。
122.可选地,所述评分模型包括如下任一种:
123.逻辑斯蒂回归模型、深度学习模型、决策树模型。
124.可选地,输入到所述评分模型的所述搜索词的特征根据所述搜索词的搜索操作参数确定,输入到所述评分模型的所述候选词的特征根据所述候选词的搜索操作参数确定,所述搜索词的搜索操作参数为根据用户对所述搜索词的历史操作确定的参数,所述候选词的搜索操作参数为根据用户对所述候选词的历史操作确定的参数。
125.可选地,所述搜索操作参数包括如下至少一种:
126.搜索场景、搜索次数、搜索推荐值、搜索结果。
127.第三方面,本技术一实施例提供了一种电子设备,包括:处理器和用于存储所述处理器可执行指令的存储器;
128.其中,所述处理器被配置为执行所述指令,以实现如第一方面所述的搜索词纠正方法。
129.第四方面,本技术一实施例提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被用于实现如第一方面所述的搜索词纠正方法。
130.本发明有益效果如下:
131.本技术实施例提供的搜索词纠正方法、装置、电子设备及计算机存储介质,通过对搜索词进行特征提取,与候选集合中的候选词进行相似度比较后召回,之后再对候选词进行过滤和评分,在实施过程中提升了对搜索词的召回率的同时保证纠正搜索词准确率。
附图说明
132.通过参考附图阅读下文的详细描述,本技术示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本技术的若干实施方式,其中:
133.图1为本技术实施例提供的搜索词纠正方法的应用场景示意图;
134.图2为本技术一实施例提供的搜索词纠正方法的流程示意图;
135.图3为本技术一实施例提供的确定候选词表征向量的流程示意图;
136.图4为本技术一实施例提供的lstm模型的示意图;
137.图5为本技术一实施例提供的提取搜索词与候选词表征向量并比较相似度的效果示意图;
138.图6为本技术一实施例提供的提取搜索词表征向量的流程示意图;
139.图7本技术一实施例提供的lstm模型的训练流程示意图;
140.图8为本技术一实施例提供的利用向量检索引擎进行召回的流程示意图;
141.图9为本技术一实施例提供的利用倒排索引算法进行召回的流程示意图;
142.图10为本技术一实施例提供的利用评分模型对第二候选集合中的候选词进行评分的流程示意图;
143.图11为本技术一实施例提供的搜索词纠正装置的结构示意图;
144.图12为本技术一实施例提供的电子设备的结构示意图;
145.图13为本技术一实施例提供的计算机程序产品的结构示意图。
具体实施方式
146.下面将参考若干示例性实施方式来描述本技术的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本技术,而并非以任何方式限制本技术的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
147.本领域技术人员知道,本技术的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
148.在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
149.为了方便理解,下面对本技术实施例中涉及的名词进行解释:
150.文本匹配:
151.文本匹配是自然语言处理中的一个核心问题,即判定两个文本之间的相关性或相似度,许多自然语言处理的问题都可以视为一个文本匹配的问题,比如信息检索可以被视为查询词和文档的匹配。在纠错任务中,可以用于计算用户输入查询词和候选纠错词的相关性并用于召回。
152.召回:
153.召回是推荐系统或搜索系统的一个环节。推荐系统或搜索系统一般由召回、排序、重排三个阶段组成,召回是指用一些高效的算法从整个大的推荐集中召回与用户输入内容
相关度高的一部分内容作为排序阶段的候选集合。
154.长短期记忆人工神经网络(lstm,long short

term memory)模型:
155.lstm模型是一种时间循环神经网络模型,是为了解决一般的循环神经网络模型(recurrent neural network,rnn)存在的长期依赖问题而专门设计出来的。相比普通的rnn,lstm能够在更长的序列中有更好的表现,能够更好地解决长序列训练过程中的梯度消失和梯度爆炸问题。
156.损失函数(loss function):
157.损失函数是将随机事件或其有关随机变量的取值映射为非负实数以表示该随机事件的“风险”或“损失”的函数。在应用中,损失函数通常作为学习准则与优化问题相联系,即通过最小化损失函数求解和评估模型。例如,在机器学习中,损失函数被用于模型的参数估计(parameteric estimation),基于损失函数得到的损失值可用来描述模型的预测值与实际值的差异程度。常见的损失函数有均方误差损失函数、支持向量机(support vector machine,svm)合页损失函数、交叉熵损失函数等。
158.倒排索引(inverted index):
159.倒排索引也常被称为反向索引、置入档案或反向档案,是一种索引方法。倒排索引被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。它是文档检索系统中最常用的数据结构。通过倒排索引,可以根据单词快速获取包含这个单词的文档列表。倒排索引有两种不同的反向索引形式:(1)一条记录的水平反向索引(或者反向档案索引),包含每个引用单词的文档的列表;(2)一个单词的水平反向索引(或者完全反向索引),又包含每个单词在一个文档中的位置。后者的形式提供了更多的兼容性(比如短语搜索),但是需要更多的时间和空间来创建。相比“签名文件”、“后缀树”等索引结构,“倒排索引”是实现单词到文档映射关系的最佳实现方式和最有效的索引结构。
160.丢弃dropout算法:
161.在机器学习的模型中,如果模型的参数太多,而训练样本又太少,训练出来的模型很容易产生过拟合的现象。具体表现为:模型在训练数据上损失函数较小,预测准确率较高;但是在测试数据上损失函数比较大,预测准确率较低。dropout算法是一种用于防止过拟合的算法。具体地,在每个训练批次中,dropout算法通过忽略一定比例的特征检测器(让一定比例的隐层节点值为0),可以减少特征检测器(隐层节点)间的相互作用,可以明显地减少过拟合现象。
162.字符编辑距离:
163.字符编辑距离又称莱文斯坦(levenshtein)距离,是一种计算两个字符串间的差异程度的字符串度量(string metric)。字符编辑距离为从一个字符串修改到另一个字符串时,其中编辑单个字符(比如修改、插入、删除)所需要的最少次数。例如,从字符串“kitten”修改为字符串“sitting”只需3次单字符编辑操作,即kitten

sitten

sittin

sitting,那么“kitten”和“sitting”的字符编辑距离为3。字符编辑距离通过如下方式计算:
[0164][0165]
其中,
[0166][0167]
其中,a和b分别为两个字符串,a
i
表示字符串a的第i个字符,b
j
表示字符串b的第j个字符,lev
a,b
(i,j)表示a的前i个字符与b的前j个字符之间的字符编辑距离。

式表示若a和b至少一个为空字符串,那么二者的字符编辑距离为两者的字符串长度中最大的字符串长度,

式表示从a中删除某个字符到达b,

式代表从a中插入某个字符到达b,

式表示从a替换某个字符到达b。
[0168]
准确率(accuracy,acc):
[0169]
准确率表示分类正确的样本数占总样本数的比例。acc的计算公式如下:
[0170][0171]
其中,tp(true positive)表示将正例样本预测成正例样本的样本数,tn(true negative)表示将负例样本预测成负例样本的样本数,fn(false negative)表示将正例样本预测成负例样本的样本数,fp(false positive)表示将负例样本预测成正例样本的样本数。
[0172]
精确率(precision):
[0173]
精确率表示输出结果为正例样本中真正的正例样本所占比例。精确率p计算公式如下:
[0174][0175]
召回率(recall):
[0176]
召回率表示所有正例样本中输出正确结果的样本所占比例。召回率r计算公式如下:
[0177][0178]
准确率和召回率的调和均值f1:
[0179]
由于准确率和召回率是一组矛盾数参数,为了能够兼顾精确率p与召回率r,在机器学习中会采用f1对机器学习模型进行评价。f1的计算公式如下:
[0180][0181]
下面参考本技术的若干代表性实施方式,详细阐释本技术的原理和精神。
[0182]
发明概述
[0183]
针对用户在搜索引擎的使用过程中,可能会输入不准确的搜索词或者由于笔误输入错误的搜索词,导致搜索引擎会根据不正确的搜索词进行搜索,给出与用户期望的内容不同的搜索结果的问题,相关技术中提供有使用语言模型对搜索词进行错误概率的检错计算,对较高错误概率的搜索词与候选集合中的候选词进行逐一比对查找正确的搜索词,再对查找到的正确的搜索词进行搜索并提供搜索结果的方案。但由于候选集合中的候选词数量极大,因此搜索过程非常耗时。为加快搜索速度,控制检错计算的错误概率阈值一般设置得较高。这样进行搜索时进行纠错比对的搜索词占比偏低,导致很大一部分错误搜索词得不到纠正,搜索纠错的效果不好。此外,相关技术中还有基于深度学习的序列

序列(sequence to sequence,seq2seq)模型技术来进行纠错的方案,主要思路为对输入词进行编码,然后解码得到纠错词。该方案的召回率高,但在实现过程中得到的纠错搜索词错误率(纠错搜索词与用户期望的正确搜索词不同的比率)较高。
[0184]
为了解决上述问题,本技术提供了一种搜索词纠正方法,包括:获取输入的搜索词,对所述搜索词进行特征提取,并确定候选集合中不同候选词的特征;根据所述搜索词的特征与所述不同候选词的特征的相似度,从所述候选集合中召回相似度符合要求的第一候选词集合;过滤掉所述第一候选词集合中符合过滤条件的候选词,得到第二候选词集合;对所述第二候选词集合中的候选词进行评分;根据评分结果,确定评分满足要求的候选词为纠错词,并利用所述纠错词纠正所述搜索词。本技术的搜索词纠正方法,通过对搜索词的特征进行提取,与候选集合中的不同候选词的特征进行相似度对比,召回相似度较高的候选词过滤评分后选出纠错词对搜索词进行纠正搜索,与现有技术相比能够更好地实现对搜索词的纠正。
[0185]
在介绍了本技术的基本原理之后,下面具体介绍本技术的各种非限制性实施方式。
[0186]
应用场景总览
[0187]
参考图1,其为本技术实施例提供的搜索词纠正方法的应用场景示意图。在图1所示的应用场景中包括终端设备101和服务器102。其中,终端设备101和服务器102之间可通过无线通信网络或有线通信网络连接,终端设备101包括但不限于桌面计算机、移动电话、移动电脑、平板电脑、媒体播放器、智能可穿戴设备、智能电视、车载设备、个人数字助理(personal digital assistant,pda)等电子设备。服务器102可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。
[0188]
服务器102用于提供搜索服务,例如可以是音乐搜索服务、商品搜索服务、文献搜索服务等服务。终端设备101中安装有搜索服务客户端,用户可通过搜索服务客户端实现服务器102提供的搜索服务,或者用户也可以通过终端设备101内的浏览器访问搜索服务网站,以实现服务器102提供的搜索服务。例如,任一用户可通过搜索服务客户端向搜索服务平台对应的服务器102上传搜索词,服务器102获取输入的搜索词,对所述搜索词进行特征提取,并确定候选集合中不同候选词的特征;根据所述搜索词的特征与所述不同候选词的
特征的相似度,从所述候选集合中召回相似度符合要求的第一候选词集合;过滤掉所述第一候选词集合中符合过滤条件的候选词,得到第二候选词集合;对所述第二候选词集合中的候选词进行评分;根据评分结果,确定评分满足要求的候选词为纠错词,并利用所述纠错词纠正所述搜索词并进行搜索,将对应的搜索结果发送至所述用户的终端设备101。
[0189]
需要注意的是,上述应用场景仅是为了便于理解本技术的精神和原理而示出,本技术的实施方式在此方面不受任何限制。相反,本技术的实施方式可以应用于适用的任何场景。
[0190]
示例性方法
[0191]
参考图2,本技术实施例提供了一种搜索词纠正方法,应用于服务器,包括:
[0192]
s201、获取输入的搜索词,对所述搜索词进行特征提取,并确定候选集合中不同候选词的特征。
[0193]
在具体实施过程中,对所述搜索词提取的特征和确定的候选词的特征可以为从语言维度提取的特征,例如组成所述搜索词或所述候选词的字、词语、发音等语言特征。
[0194]
s202、根据所述搜索词的特征与所述不同候选词的特征的相似度,从所述候选集合中召回相似度符合要求的第一候选词集合。
[0195]
在具体实施过程中,所述搜索词的特征与所述不同候选词的特征的相似度可以通过例如欧几里得距离、皮尔逊相关系数、余弦相似度等进行计算。在召回时,可以将相似度要求设置为大于一个预设的相似度阈值;也可以将相似度要求设置为相似度按照大小进行排序,从最大相似度开始从中选取预设数量个相似度;在此不做限定。
[0196]
s203、过滤掉所述第一候选词集合中符合过滤条件的候选词,得到第二候选词集合。
[0197]
在具体实施过程中,由于在所述步骤s201中已经通过语言维度的特征之间的相似度对候选集合中的候选词进行了一次筛选召回,那么所述步骤s203可以从其它维度对所述第一候选词集合中的候选词进行进一步筛选,从而筛除一些在语言维度与搜索词较为相似,但实质语义与搜索词有着较大差异的候选词。以音乐搜索为例,在用户搜索歌手时,搜索词“王tim”与其中某一个候选词“玉tom”(此处仅为举例而虚构的人名)之间的语言维度的特征具有较高的相似度,但实质上从除语言维度之外的维度来看,搜索词和候选词实质上各自对应的是两名不同的歌手,这样搜索词是用户错误输入的可能性较小,那么应当将所述候选词过滤掉。
[0198]
s204、对所述第二候选词集合中的候选词进行评分。
[0199]
在具体实施过程中,可以从多种不同的维度对所述候选词进行评分,例如可以从语言维度、所述搜索词与所述候选词的搜索历史操作维度等其中一种或多种维度进行综合考虑,根据预测的相关性为所述候选词进行评分。
[0200]
s205、根据评分结果,确定评分满足要求的候选词为纠错词,并利用所述纠错词纠正所述搜索词。
[0201]
在具体实施过程中,评分要求可以设置为最大评分大于预设评分阈值。这样,可以在最大评分大于预设评分阈值时,确定用户输入的搜索词有较高可能为错误输入的搜索词,对该搜索词进行纠正;如果最大评分没有大于预设评分阈值时,那么有较大可能为用户输入的搜索词是正确的,也有一定可能为用户输入的搜索词是错误的但候选集合中没有合
适的候选词进行纠正,这两种情况均不需要进行纠正。
[0202]
本技术的搜索词纠正方法,通过对搜索词进行特征提取,与候选集合中的候选词进行相似度比较后召回,之后再对候选词进行过滤和评分,在实施过程中提升了对搜索词的召回率的同时保证纠正搜索词准确率。
[0203]
以音乐搜索服务为例,搜索词为“好像爱这个世界啊”。对于现有的检错纠错方案,计算所述搜索词的错误概率较低,因而不会进行纠错。而在本技术的技术方案中则会通过最终通过召回、过滤、评分等步骤后将“好想爱这个世界啊”作为其纠错词。又例如,搜索词为“世间美好和你环环相扣”。对于现有的检错纠错方案,所述搜索词在所述候选集合中存在,因此现有的检错纠错方案会认定该搜索词无误并不予以纠错,在本技术的技术方案中则会发现候选词“世间美好与你环环相扣”与所述搜索词具有较高的相似度,在过滤后的评分也较高,因此会将“世间美好与你环环相扣”这个词条作为纠错词。
[0204]
这样,对于音乐搜索服务,经过测试本技术的技术方案与现有技术的检错纠错方案相比,大幅提升了召回率的同时,保证了纠错的准确率较高,具体测试结果如下表所示:
[0205]
表1本技术技术方案与现有技术检错纠错方案的效果比较表
[0206]
技术方案准确率召回率现有技术检错纠错方案77.12%14.9%本技术技术方案73%89%
[0207]
经过对音乐服务的线上的a/b测试,本技术技术方案与现有技术检错纠错方案相比,由于对音乐搜索服务大幅提升了召回率的同时保证了准确率,因而明显提升了音乐服务的用户点击率,经统计在全流量下提升音乐服务点击率2.3%左右。从而提升了用户体验。
[0208]
在实施过程中,所述步骤s201可以有如下两种实施方案,一种是对所述搜索词和所述候选词从语言维度进行特征向量的提取,另一种是对所述搜索词和所述候选词从语言维度进行语言元素的提取。下面将分别对这两种方案进行详细说明。
[0209]
方案1:
[0210]
如图3所示,所述确定候选集合中不同候选词的特征,包括:
[0211]
s301、对所述候选集合中不同候选词按照至少一种语言元素的类型拆解,并提取拆解得到各类型的语言元素对应的向量。
[0212]
在具体实施过程中,可以通过查询向量表对各类型的语言元素提取对应的向量。
[0213]
可选地,所述语言元素的类型包括如下至少一种:
[0214]
一元分词unigram、二元分词bigram、三元分词trigram、词语、发音。
[0215]
s302、将所述各类型的语言元素对应的向量利用lstm模型进行特征提取。
[0216]
如图4所示,同一类型的语言元素对应的向量以序列的顺序依次输入所述lstm模型中进行特征提取。其中,图中字母的上标t代表时刻,emb
it
是t时刻的输入(一个向量),h
t
‑1(向量)是t

1时刻的隐层状态,c
t
‑1是t

1时刻的长期状态(一个向量),y
t
是t时刻的输出。在t时刻,第i个元素类型的第t个元素对应的向量emb
it
输入到所述lstm模型中,首先会计算遗忘门f
t
(一个向量):
[0217]
f
t
=σ
g
(w
f
emb
it
+u
f
h
t
‑1+b
f
)
[0218]
上式中,w
f
是一个矩阵,w
f
emb
it
的结果是一个向量,u
f
同样是一个矩阵,u
f
h
t
‑1是一
个向量,b
f
则是一个向量。σ
g
是一个激活函数。
[0219]
之后类似的,计算输入门和输出门(均为一个向量):
[0220]
i
t
=σ
g
(w
i
emb
it
+u
i
h
t
‑1+b
i
)
[0221]
o
t
=σ
g
(w
o
emb
it
+u
o
h
t
‑1+b
o
)
[0222]
最后根据这些门控向量以及上一个时刻的状态h
t
‑1,c
t
‑1,以及当前时刻的输入emb
it
,计算当前时刻的状态。
[0223]
c
t
=f
t
·
c
t
‑1+i
t
·
σ
c
(w
c
emb
it
+u
c
h
t
‑1+b
c
)
[0224]
h
t
=o
t
·
σ
h
(c
t
)
[0225]
lstm模型在最后一个时刻的输出,经过一层全连接神经网络之后即可作为这个类型元素的表征向量emb
i

[0226]
emb
i
=σ(wh
t
+b)
[0227]
s303、将提取特征后得到各类型的语言元素对应的向量合并,得到所述候选词的表征向量。
[0228]
其中,所述lstm模型通过输入样本中有正确纠错关系的候选词,以输出对应的向量合并得到的表征向量与样本中搜索词的表征向量的相似度符合设定要求为目标进行训练。
[0229]
以音乐搜索服务为例,如图5所示,所述候选词为歌词“长亭外,古道边”,在所述步骤s301中,从一元分词unigram、二元分词bigram、词语、发音4种语言元素的类型拆解,并提取得到一元分词unigram对应的6个向量,二元分词bigram对应的5个向量,词语对应的4个向量,发音对应的6个向量。在所述步骤s302中,分别将一元分词unigram对应的6个向量作为序列输入所述lstm模型中进行特征提取得到1个向量,将二元分词bigram对应的5个向量作为序列输入所述lstm模型中进行特征提取得到1个向量,将词语对应的4个向量作为序列输入所述lstm模型中进行特征提取得到1个向量,将发音对应的6个向量作为序列输入所述lstm模型中进行特征提取得到1个向量。在所述步骤s303中,将分别利用lstm模型进行特征提取得到的4个向量进行合并,得到所述候选词的1个表征向量。所述候选词为歌词“古道西风瘦马”同理,故不再赘述。
[0230]
如图6所示,所述对所述搜索词进行特征提取,包括:
[0231]
s601、将所述搜索词按照至少一种语言元素的类型拆解,并提取拆解得到各类型的语言元素对应的向量。
[0232]
在具体实施过程中,可以通过查询向量表对各类型的语言元素提取对应的向量。
[0233]
s602、将所述各类型的语言元素对应的向量合并得到所述搜索词的表征向量。
[0234]
在具体实施过程中,所述步骤s301与所述步骤s601中进行语言元素拆解时,所述搜索词拆解的语言元素的类型与所述候选词的语言元素的类型应当相同。例如在执行所述步骤s301时,对不同的候选词从发音和词语两种语言元素的类型进行拆解,那么在执行所述步骤s601时,对所述搜索词也应当从发音和词语两种语言元素的类型进行拆解。
[0235]
进一步地,所述步骤s602、将所述各类型的语言元素对应的向量合并得到所述搜索词的表征向量,具体包括:
[0236]
将同类型的语言元素对应的向量,合并为该类型的语言元素对应的子向量;
[0237]
将不同类型的语言元素的子向量合并,得到所述搜索词的表征向量。
[0238]
例如,对于音乐搜索服务,如图5所示,对于一个歌词搜索词“长城外,古道边”,从一元分词unigram、二元分词bigram、词语、发音四个类型进行拆解并提取向量,将分别得到一元分词unigram对应的6个向量、二元分词bigram对应的5个向量、词语对应的4个向量、发音对应的6个向量。那么先对同类型的语言元素对应的向量合并得到对应的4个子向量,再对4个类型的子向量进行合并得到所述搜索词的1个表征向量。
[0239]
由于搜索词的特征向量与有正确纠错关系的候选词的直接提取的向量之间的相似度可能并不高,因此需要利用lstm模型对候选词的直接提取的向量进行编码与进一步地特征提取,以提取得到与对应的搜索词更为相似的向量。例如,在音乐搜索服务中,错误的搜索词“北朵分”的语言维度的向量与具有正确纠错关系的候选词“贝多芬”直接提取的语言维度的向量相似度差异较大,通过使用lstm模型进行向量编码和向量提取后,能够得到与错误的搜索词“北朵分”更为相似的向量,以能够成功将该候选词进行召回。
[0240]
这样,通过lstm模型对候选词的不同语言元素的类型对应原始的向量进行特征提取,能够根据同一类型的语言元素的上下文顺序提取出向量,从而将不同类型的向量合并得到的表征向量与搜索词的表征向量之间的相似度更高,从而提高搜索词召回率和纠正准确率。
[0241]
相应地,如图7所示,本技术中使用的所述lstm模型通过如下方式训练得到:
[0242]
s700、判断是否完成训练。
[0243]
若所述步骤s700的结果为否,执行所述步骤s711和/或所述步骤s721;
[0244]
若所述步骤s700的结果为是,结束本次训练。
[0245]
s711、获取正例样本,所述正例样本包括搜索词和正确纠错词。
[0246]
s712、将所述正例样本中的搜索词、正确纠错词分别按照至少一种语言元素的类型拆解,并提取拆解得到的各类型语言元素对应的向量。
[0247]
s713、将针对搜索词提取的向量合并得到所述搜索词的表征向量。
[0248]
s714、将针对所述正确纠错词提取的各类型的语言元素对应的向量输入lstm模型,根据所述lstm模型的输出得到该类型的语言元素对应的向量,将各类型的语言元素对应的向量合并,得到所述正确纠错词的表征向量。
[0249]
s715、根据正确纠错词的表征向量与所述搜索词的表征向量的相似度得到损失函数值,根据所述损失函数值调整所述lstm模型的参数。返回所述步骤s700。
[0250]
其中,所述正确纠错词的表征向量与所述搜索词的表征向量的相似度越高,所述损失函数值越小。
[0251]
s721、获取负例样本,所述负例样本包括搜索词和错误纠错词。
[0252]
s722、将所述负例样本中的搜索词、错误纠错词分别按照至少一种语言元素的类型拆解,并提取拆解得到的各类型语言元素对应的向量。
[0253]
s723、将针对搜索词提取的向量合并得到所述搜索词的表征向量。
[0254]
s724、将针对所述错误纠错词提取的各类型的语言元素对应的向量输入所述lstm模型,根据所述lstm模型的输出得到该类型的语言元素对应的向量,将各类型的语言元素对应的向量合并,得到所述错误纠错词的表征向量。
[0255]
s725、根据错误纠错词的表征向量与所述搜索词的表征向量的相似度得到损失函数值,根据所述损失函数值调整所述lstm模型的参数。返回所述步骤s700。
[0256]
其中,所述错误纠错词的表征向量与所述搜索词的表征向量的相似度越高,所述损失函数值越大。
[0257]
在具体实施过程中,所述损失函数可以为0

1损失函数、绝对值损失函数、指数损失函数、平方损失函数、hinge损失函数、交叉熵损失函数等。
[0258]
在具体实施过程中,所述正例样本中的搜索词和正确纠错词可以从已有的搜索操作记录中获取,而所述负例样本中的错误纠错词可以从所述候选集合中随机选取一个候选词作为所述错误纠错词。在同时使用正例样本和负例样本对所述lstm模型进行训练时,可以为每个进行训练的搜索词确定一个正确纠错词组成对应的正例样本,并对同一个所述的搜索词确定一个错误搜索词组成对应的负例样本。
[0259]
作为一种可选的实施方式,可以以30个训练批次训练所述lstm模型,每批次包括128个训练样本。对于各训练样本,设置所述lstm模型提取向量的序列长度为10(即,对于同一类型的元素对应的向量作为序列输入所述lstm模型时,将不足10个向量的输入序列使用0向量补齐至10个向量,将超出10个向量的输入序列舍弃第10个向量之后的向量)。并设置各个元素对应的向量维度为64维,向量表维度为50000,学习率为1
×
10
‑3,dropout中的保留比例为0.8,所述lstm模型的评价指标为准确率acc、受试者工作特征曲线下围面积(area under receiver operating characteristic curve,roc

auc)、f1。
[0260]
作为一种可选的实施方式,所述lstm模型的损失函数为交叉熵损失函数,具体为:
[0261][0262]
其中,m为训练的样本的种类的数量(在本技术中,当仅使用正例样本或仅使用负例样本进行训练时为1,同时使用正例样本和负例样本进行训练时为2),y
ic
为指示变量(即当预测的类别和训练样本类别相同就是1,否则为0),p
ic
为判断样本属于某类别的预测概率(例如,在本技术中,如果同时使用正例样本和负例样本进行训练,那么p
ic
包括预测训练样本属于正例样本的概率和预测训练样本属于负例样本的概率)。
[0263]
在模型训练到损失函数值稳定时,得到lstm模型的评价指标acc=0.9386,roc

auc=0.9345,加权平均f1(f
1 weighted)=0.95,宏平均f1(f
1 macro)=0.93。
[0264]
进一步地,如图8所示,所述步骤s202、根据所述搜索词的特征与所述不同候选词的特征的相似度,从所述候选集合中召回相似度符合要求的第一候选词集合,包括:
[0265]
s801、利用向量检索引擎,确定所述搜索词的表征向量与所述不同候选词的表征向量的余弦相似度。
[0266]
余弦相似度的计算公式如下:
[0267][0268]
其中,cos为余弦相似度,emb
can
为所述候选词的表征向量,emb
q
为所述搜索词的表征向量。
[0269]
在具体实施过程中,向量检索引擎可以为临近算法(k

nearest neighbor,knn)或近似临近算法(approximate nearest neighbor,ann)等,具体可以为faiss、sptag、milvus等向量检索引擎。
[0270]
s802、按照对应的所述余弦相似度的排序,从所述候选集合中召回预设数量的候选词,得到所述第一候选词集合。
[0271]
例如,将各候选词对应的余弦相似度按照由大至小的顺序排序,从最大的余弦相似度开始召回预设数量的候选词,得到所述第一候选词集合。
[0272]
这样,通过使用向量检索引擎,可以较快地完成搜索。
[0273]
方案2:
[0274]
所述确定候选集合中不同候选词的特征,包括:
[0275]
对所述候选集合中不同候选词按照至少一种语言元素的类型拆解,得到与各所述候选词对应的各类型的语言元素;
[0276]
所述对所述搜索词进行语言特征提取,包括:
[0277]
将所述搜索词按照至少一种语言元素的类型进行拆解,得到与所述搜索词词对应的各类型的语言元素。
[0278]
可选地,所述语言元素的类型包括如下至少一种:
[0279]
一元分词unigram、二元分词bigram、三元分词trigram、词语、发音。
[0280]
方案2与方案1相比,直接将拆解得到的语言元素作为所述候选词或所述搜索词的特征,不再将拆解得到的语言元素转化为表征向量。在具体实施过程中,对所述候选词或所述搜索词的语言元素的类型拆解与方案1基本一致,故可以参见上文的实施方式,此处不再赘述。
[0281]
这样,通过直接使用拆解得到的语言元素作为特征,不再需要使用lstm模型进行特征提取,简化了技术方案。
[0282]
进一步地,如图9所示,所述步骤s202、所述根据所述搜索词的特征与所述不同候选词的特征的相似度,从所述候选集合中召回相似度符合要求的第一候选词集合,包括:
[0283]
s901、利用倒排索引算法,确定所述搜索词对应的各类型的语言元素与各所述候选词对应的各类型的语言元素的相似度;
[0284]
s902、按照对应的所述相似度的排序,从所述候选集合中召回预设数量的候选词,得到所述第一候选词集合。
[0285]
与向量搜索引擎相比,倒排索引算法的技术方案较为简单。
[0286]
可选地,所述过滤条件包括如下至少一种:
[0287]
(1)所述搜索词与候选词的字符编辑距离大于预设字符编辑距离阈值。
[0288]
(2)所述搜索词的搜索操作参数与候选词的搜索操作参数的差异符合设定要求。
[0289]
其中,所述搜索词的搜索操作参数为根据用户对所述搜索词的历史操作确定的参数,所述候选词搜索操作参数为根据用户对所述候选词的历史操作确定的参数。
[0290]
可选地,所述搜索操作参数包括如下至少一种:
[0291]

搜索场景:
[0292]
例如,对于音乐搜索服务,当所述搜索词为一个与音乐无关的词语时,但通过上文所述的方案召回后得到的第一候选词集合中的其中一个相似度较高的候选词是某知名歌
手的名字,那么根据搜索场景可以确定该候选词符合设定要求。
[0293]

搜索次数:
[0294]
在实际实施过程中,用户输入的大部分搜索词都是正确的,输入错误的搜索词所占比例较小。那么,如果搜索词对应的搜索次数与候选词对应的搜索次数没有出现差距巨大,甚至数量级相当或数值相当时,所述搜索词是正确的搜索词的可能性较高。
[0295]

搜索推荐值:
[0296]
在实施实施过程中,用户搜索的内容也是在不断变化的。如果搜索服务中出现全新的搜索结果,且对应的搜索词与其中一个候选词相似度较高。如果单纯考虑搜索次数,有可能该全新的搜索内容由于出现时间较短导致搜索次数较少,从而将所述搜索词认为是错误的搜索词进行纠正。那么,从搜索推荐值的角度可以区分出所述搜索词与相似度较高的候选词之间的差异,从而避免误纠正。
[0297]

搜索结果:
[0298]
以音乐搜索服务为例,由于某些歌手的名字较为相近,因此在用户输入其中某歌手的名字时,可能会召回其他名字相似的歌手。那么可以根据搜索结果确定所述搜索词对应的一个歌手,判断用户输入的搜索词是正确的可能性较高,将名字相似的歌手从所述第一候选集合中过滤掉,以避免误纠正。
[0299]
这样,从语言元素对应的特征之外的维度对所述第一候选集合中的候选词进行过滤,可以过滤掉一些在字面含义上与搜索词较为相近,但实质语义上并不相近的候选词,以避免使用不合适的候选词对搜索词进行纠正。
[0300]
可选地,如图10所示,所述步骤s204、对所述第二候选词集合中的候选词进行评分,包括:
[0301]
s1001、根据所有所述搜索词的特征及所述第二候选词集合中的候选词的特征,及所述两者的交叉特征输入到评分模型。
[0302]
s1002、利用所述评分模型预测所述候选词的评分。
[0303]
其中,所述评分模型通过输入样本中存在特征差异的搜索词的特征、候选词的特征及对应的交叉特征,以输出与特征差异程度相对应的评分为目标进行训练。
[0304]
可选地,输入到所述评分模型的所述搜索词的特征根据所述搜索词的搜索操作参数确定,输入到所述评分模型的所述候选词的特征根据所述候选词的搜索操作参数确定;
[0305]
所述搜索词的搜索操作参数为根据用户对所述搜索词的历史操作确定的参数,所述候选词的搜索操作参数为根据用户对所述候选词的历史操作确定的参数。可选地,所述搜索操作参数包括如下至少一种:搜索场景、搜索次数、搜索推荐值、搜索结果。
[0306]
在所述步骤s203中只是对所述第一候选集合中的候选词进行粗略的过滤,需要通过所述步骤s204语言元素对应的特征之外的维度综合考虑所述搜索词与所述候选词存在纠错关系的可能性。
[0307]
例如,输入到所述评分模型的所述搜索词的特征、输入到所述评分模型的所述候选词的特征为搜索次数,那么对应的交叉特征可以为用户输入所述搜索词进行搜索之后,再次输入所述候选词进行搜索的次数。这样,所述交叉特征也可以为判断所述搜索词与所述候选词之间是否存在纠错关系提供参考依据。
[0308]
可选地,所述评分模型包括如下任一种:
[0309]
逻辑斯蒂回归模型、深度学习模型、决策树模型。
[0310]
作为一种可选的实施方式,逻辑斯蒂回归模型的评分通过如下方式计算:
[0311][0312]
其中,score为所述评分,x为输入到所述评分模型的所述搜索词的特征、输入到所述评分模型的所述候选词的特征、对应的交叉特征之和得到的矩阵,w为系数矩阵,且与x为同型矩阵。
[0313]
示例性设备
[0314]
在介绍了本技术示例性实施方式的方法之后,接下来对本技术示例性实施方式的搜索词纠正装置等进行介绍。
[0315]
如图11所示,为本技术实施例提供的搜索词纠正装置1100的结构示意图。在一个实施例中,所述搜索词纠正装置1100包括:特征提取单元1101、召回单元1102、过滤单元1103、评分单元1104和纠错单元1105。
[0316]
所述特征提取单元1101,用于获取输入的搜索词,对所述搜索词进行特征提取,并确定候选集合中不同候选词的特征;
[0317]
所述召回单元1102,用于根据所述搜索词的特征与所述不同候选词的特征的相似度,从所述候选集合中召回相似度符合要求的第一候选词集合;
[0318]
所述过滤单元1103,用于过滤掉所述第一候选词集合中符合过滤条件的候选词,得到第二候选词集合;
[0319]
所述评分单元1104,用于对所述第二候选词集合中的候选词进行评分;
[0320]
所述纠错单元1105,用于根据评分结果,确定评分满足要求的候选词为纠错词,并利用所述纠错词纠正所述搜索词。
[0321]
可选地,所述确定候选集合中不同候选词的特征,包括:
[0322]
对所述候选集合中不同候选词按照至少一种语言元素的类型拆解,并提取拆解得到各类型的语言元素对应的向量;
[0323]
将所述各类型的语言元素对应的向量利用长短期记忆人工神经网络lstm模型进行特征提取;
[0324]
将提取特征后得到各类型的语言元素对应的向量合并,得到所述候选词的表征向量;
[0325]
其中,所述lstm模型通过输入样本中有正确纠错关系的候选词,以输出对应的向量合并得到的表征向量与样本中搜索词的表征向量的相似度符合设定要求为目标进行训练;
[0326]
所述对所述搜索词进行特征提取,包括:
[0327]
将所述搜索词按照至少一种语言元素的类型拆解,并提取拆解得到各类型的语言元素对应的向量;
[0328]
将所述各类型的语言元素对应的向量合并得到所述搜索词的表征向量。
[0329]
可选地,所述将所述各类型的语言元素对应的向量合并得到所述搜索词的表征向量,具体包括:
[0330]
将同类型的语言元素对应的向量,合并为该类型的语言元素对应的子向量;
[0331]
将不同类型的语言元素的子向量合并,得到所述搜索词的表征向量。
[0332]
可选地,所述lstm模型通过如下方式训练得到:
[0333]
获取正例样本,所述正例样本包括搜索词和正确纠错词;
[0334]
将所述正例样本中的搜索词、正确纠错词分别按照至少一种语言元素的类型拆解,并提取拆解得到的各类型语言元素对应的向量;
[0335]
将针对搜索词提取的向量合并得到所述搜索词的表征向量;
[0336]
将针对所述正确纠错词提取的各类型的语言元素对应的向量输入lstm模型,根据所述lstm模型的输出得到该类型的语言元素对应的向量,将各类型的语言元素对应的向量合并,得到所述正确纠错词的表征向量;
[0337]
根据正确纠错词的表征向量与所述搜索词的表征向量的相似度得到损失函数值,根据所述损失函数值调整所述lstm模型的参数;
[0338]
其中,所述正确纠错词的表征向量与所述搜索词的表征向量的相似度越高,所述损失函数值越小。
[0339]
可选地,所述lstm模型通过如下方式训练得到:
[0340]
获取负例样本,所述负例样本包括搜索词和错误纠错词;
[0341]
将所述负例样本中的搜索词、错误纠错词分别按照至少一种语言元素的类型拆解,并提取拆解得到的各类型语言元素对应的向量;
[0342]
将针对搜索词提取的向量合并得到所述搜索词的表征向量;
[0343]
将针对所述错误纠错词提取的各类型的语言元素对应的向量输入所述lstm模型,根据所述lstm模型的输出得到该类型的语言元素对应的向量,将各类型的语言元素对应的向量合并,得到所述错误纠错词的表征向量;
[0344]
根据错误纠错词的表征向量与所述搜索词的表征向量的相似度得到损失函数值,根据所述损失函数值调整所述lstm模型的参数;
[0345]
其中,所述错误纠错词的表征向量与所述搜索词的表征向量的相似度越高,所述损失函数值越大。
[0346]
可选地,所述根据所述搜索词的特征与所述不同候选词的特征的相似度,从所述候选集合中召回相似度符合要求的第一候选词集合,包括:
[0347]
利用向量检索引擎,确定所述搜索词的表征向量与所述不同候选词的表征向量的余弦相似度;
[0348]
按照对应的所述余弦相似度的排序,从所述候选集合中召回预设数量的候选词,得到所述第一候选词集合。
[0349]
可选地,所述对所述搜索词进行特征提取,包括:
[0350]
将所述搜索词按照至少一种语言元素的类型进行拆解,得到与所述搜索词词对应的各类型的语言元素;
[0351]
所述确定候选集合中不同候选词的特征,包括:
[0352]
对所述候选集合中不同候选词按照至少一种语言元素的类型拆解,得到与各所述候选词对应的各类型的语言元素。
[0353]
可选地,所述根据所述搜索词的特征与所述不同候选词的特征的相似度,从所述候选集合中召回相似度符合要求的第一候选词集合,包括:
[0354]
利用倒排索引算法,确定所述搜索词对应的各类型的语言元素与各所述候选词对应的各类型的语言元素的相似度;
[0355]
按照对应的所述相似度的排序,从所述候选集合中召回预设数量的候选词,得到所述第一候选词集合。
[0356]
可选地,所述过滤条件包括如下至少一种:
[0357]
所述搜索词与候选词的字符编辑距离大于预设字符编辑距离阈值;
[0358]
所述搜索词的搜索操作参数与候选词的搜索操作参数的差异符合设定要求,所述搜索词的搜索操作参数为根据用户对所述搜索词的历史操作确定的参数,所述候选词搜索操作参数为根据用户对所述候选词的历史操作确定的参数。
[0359]
可选地,所述语言元素的类型包括如下至少一种:
[0360]
一元分词unigram、二元分词bigram、三元分词trigram、词语、发音。
[0361]
可选地,所述对所述第二候选词集合中的候选词进行评分,包括:
[0362]
根据所有所述搜索词的特征及所述第二候选词集合中的候选词的特征,及所述两者的交叉特征输入到评分模型;
[0363]
利用所述评分模型预测所述候选词的评分;
[0364]
其中,所述评分模型通过输入样本中存在特征差异的搜索词的特征、候选词的特征及对应的交叉特征,以输出与特征差异程度相对应的评分为目标进行训练。
[0365]
可选地,所述评分模型包括如下任一种:
[0366]
逻辑斯蒂回归模型、深度学习模型、决策树模型。
[0367]
可选地,输入到所述评分模型的所述搜索词的特征根据所述搜索词的搜索操作参数确定,输入到所述评分模型的所述候选词的特征根据所述候选词的搜索操作参数确定,所述搜索词的搜索操作参数为根据用户对所述搜索词的历史操作确定的参数,所述候选词的搜索操作参数为根据用户对所述候选词的历史操作确定的参数。
[0368]
可选地,所述搜索操作参数包括如下至少一种:
[0369]
搜索场景、搜索次数、搜索推荐值、搜索结果。
[0370]
本技术实施例提供的搜索词纠正装置,与上述搜索词纠正方法采用了相同的发明构思,能够取得相同的有益效果,在此不再赘述。
[0371]
基于与上述搜索词纠正方法相同的发明构思,本技术实施例还提供了一种电子设备,该电子设备具体可以为单个物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器等。
[0372]
下面参照图12来描述所述电子设备1200。图12显示的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0373]
如图12所示,所述电子设备1200可以通用计算设备的形式表现,例如其可以为终端设备所述电子设备1200的组件可以包括但不限于:上述至少一个处理单元1210、上述至少一个存储单元1220、连接不同系统组件(包括存储单元1220和处理单元1210)的总线1230。
[0374]
处理单元1210可以是通用处理器,例如中央处理器(central processing unit,
cpu)、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本技术实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
[0375]
总线1230表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
[0376]
存储单元1220可以包括易失性存储器形式的可读介质,例如随机存取存储器(random access memory,ram)1221和/或高速缓存存储器1222,还可以进一步包括只读存储器(read

only memory,rom)1223。
[0377]
存储单元1220还可以包括具有一组(至少一个)程序模块1224的程序/实用工具1225,这样的程序模块1224包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
[0378]
当程序模块1224被处理单元1210执行时,使得处理单元1210执行本说明书上述“示例性方法”部分中描述的根据本技术各种示例性实施方式的搜索词纠正方法中的各种步骤。
[0379]
例如,处理单元1210可以执行如图2中所示的搜索词纠正方法,包括:s201、获取输入的搜索词,对所述搜索词进行特征提取,并确定候选集合中不同候选词的特征;s202、根据所述搜索词的特征与所述不同候选词的特征的相似度,从所述候选集合中召回相似度符合要求的第一候选词集合;s203、过滤掉所述第一候选词集合中符合过滤条件的候选词,得到第二候选词集合;s204、对所述第二候选词集合中的候选词进行评分;s205、根据评分结果,确定评分满足要求的候选词为纠错词,并利用所述纠错词纠正所述搜索词。
[0380]
所述电子设备1200也可以与一个或多个外部设备1240(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与所述电子设备1200交互的设备通信,和/或与使得所述电子设备1200能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口1250进行。并且,所述电子设备1200还可以通过网络适配器1260与一个或者多个网络(例如局域网(local area network,lan),广域网(wide area network,wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器1260通过总线1230与所述电子设备1200的其它模块通信。应当明白,尽管图中未示出,可以结合所述电子设备1200使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
[0381]
示例性程序产品
[0382]
本技术实施例提供了一种计算机可读存储介质,用于储存上述电子设备所用的计算机程序指令,其包含用于执行本技术任一示例性实施方式中的搜索词纠正的程序。
[0383]
上述计算机存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(mo)等)、光学存储器(例如cd、dvd、bd、hvd等)、以及半导体存储器(例如rom、eprom、eeprom、非易失性存储器(nand flash)、固
态硬盘(ssd))等。
[0384]
在一些可能的实施方式中,如图13所示,本技术的各个方面还可以实现为一种计算机程序产品1300,其包括程序代码,当该计算机程序产品在服务器设备上运行时,该计算机程序产品用于使所述服务器设备执行本说明书上述“示例性方法”部分中描述的根据本技术各种示例性实施方式的搜索词纠正方法中的步骤,例如,所述服务器设备可以执行如图2中所示的可以执行如图2中所示的搜索词纠正方法,包括:s201、获取输入的搜索词,对所述搜索词进行特征提取,并确定候选集合中不同候选词的特征;s202、根据所述搜索词的特征与所述不同候选词的特征的相似度,从所述候选集合中召回相似度符合要求的第一候选词集合;s203、过滤掉所述第一候选词集合中符合过滤条件的候选词,得到第二候选词集合;s204、对所述第二候选词集合中的候选词进行评分;s205、根据评分结果,确定评分满足要求的候选词为纠错词,并利用所述纠错词纠正所述搜索词。
[0385]
所述计算机程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0386]
根据本技术的实施方式的用于搜索词纠正的计算机程序产品,其可以采用便携式紧凑盘只读存储器(cd

rom)并包括程序代码,并可以在服务器设备上运行。然而,本技术的程序产品不限于此,在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0387]
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0388]
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、rf等等,或者上述的任意合适的组合。
[0389]
可以一种或多种程序设计语言的任意组合来编写用于执行本技术操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
[0390]
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本技术的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
[0391]
此外,尽管在附图中以特定顺序描述了本技术方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
[0392]
虽然已经参考若干具体实施方式描述了本技术的精神和原理,但是应该理解,本技术并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本技术旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1