关键词的确定方法、装置、存储介质和计算设备与流程

文档序号:27098554发布日期:2021-10-27 17:23阅读:168来源:国知局
关键词的确定方法、装置、存储介质和计算设备与流程

1.本发明的实施方式涉及计算机技术领域,更具体地,本发明的实施方式涉及一种关键词的确定方法、装置、存储介质和计算设备。


背景技术:

2.本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
3.在资源搜索相关的技术中,提供搜索服务的服务端可以根据用户输入的搜索文字匹配相应的资源,并将匹配到的资源返回给用户。
4.目前,资源匹配时通常需要借助意图识别技术,通过分析搜索文字预测用户的搜索意图,然后基于用户的搜索意图进行资源匹配,这样匹配到的资源更符合用户实际需求。


技术实现要素:

5.但是,出于现有意图识别技术的原因,其只能预测粗粒度的单一搜索意图,导致搜索结果不符合用户预期,降低了用户体验。
6.为此,非常需要一种改进的方案,以从搜索文本信息中确定搜索意图的关键词从而可以细粒度识别用户搜索意图。
7.在本发明实施方式的第一方面中,提供了一种关键词的确定方法,包括:
8.识别搜索文本信息中的实体词和与所述实体词对应的实体类型;其中,所述实体词包括所述搜索文本信息中反映搜索意图的词;
9.从预先建立的实体词库中查找所述实体词在各个实体类型下的意图分,并基于各个意图分计算所述实体词的综合意图分;
10.基于所述实体词对应的实体类型和综合意图分,从所述实体词中确定用于搜索的关键词。
11.可选的,所述识别搜索文本信息中的实体词和与所述实体词对应的实体类型,包括:
12.将接收到的搜索文本信息输入到命名实体识别模型中进行计算;
13.获取所述命名实体识别模型计算后输出的实体词和与所述实体词对应的实体类型。
14.可选的,所述命名实体识别模型由embedding模型、双向长短时记忆模型组成;
15.所述将接收到的搜索文本信息输入到命名实体识别模型中进行计算,包括:
16.针对接收到的搜索文本信息中的每个单字,做以下处理:
17.将当前单字输入到embedding模型中的不同维度的embedding层,以获取不同维度下计算出的embedding特征;
18.将所述不同维度下计算出的embedding特征拼接后,作为双向长短时记忆模型的隐藏层输入,以及将所述搜索文本信息作为双向长短时记忆模型的输入层输入,得到所述
双向长短时记忆模型输出层输出的实体词和与所述实体词对应的实体类型。
19.可选的,所述不同维度包括单字、实体类型、实体长度占比和意图分;
20.所述将当前单字输入到embedding模型中的不同维度的embedding层,以获取不同维度下计算出的embedding特征,包括:
21.将当前单字输入到embedding模型中单字embedding层,计算所述当前单字的单字embedding特征;
22.将当前单字输入到embedding模型中实体类型embedding层,计算所述当前单字的实体类型embedding特征;
23.将当前单字输入到embedding模型中实体长度占比embedding层,计算所述当前单字的实体长度占比embedding特征;
24.将当前单字输入到embedding模型中意图分embedding层,计算所述当前单字的意图分embedding特征。
25.可选的,所述将当前单字输入到embedding模型中实体类型embedding层,计算所述当前单字的实体类型embedding特征,包括:
26.基于所述实体词库对所述当前单字进行前缀匹配计算,以确定所述搜索文本信息中位于所述实体词库、且包含所述当前单字的目标词;
27.获取所述实体词库中所述目标词对应的实体类型,并获取预设的与所述实体类型对应的特征值;
28.将所述特征值输入到embedding模型中实体类型embedding层,将所述特征值映射为实体类型embedding特征。
29.可选的,所述将当前单字输入到embedding模型中实体长度占比embedding层,计算所述当前单字的实体长度占比embedding特征,包括:
30.基于所述实体词库对所述当前单字进行前缀匹配计算,以确定所述搜索文本信息中位于所述实体词库、且包含所述当前单字的目标词;
31.计算所述目标词的长度与所述搜索文本信息的长度的比值,并获取所述比值映射在预设第一数值区间的区间段序号;
32.将所述区间段序号输入到embedding模型中实体长度占比embedding层,将所述区间段序号映射为实体长度占比embedding特征。
33.可选的,所述将当前单字输入到embedding模型中意图分embedding层,计算所述当前单字的意图分embedding特征,包括:
34.基于所述实体词库对所述当前单字进行前缀匹配计算,以确定所述搜索文本信息中位于所述实体词库、且包含所述当前单字的目标词;
35.获取所述实体词库中所述目标词对应的意图分,并计算所述意图分的对数,获取所述取对数后的值映射在预设第二数值区间的区间段序号;
36.将所述区间段序号输入到embedding模型中意图分embedding层,将所述区间段序号映射为意图分embedding特征。
37.可选的,所述基于所述实体词库对所述当前单字进行前缀匹配计算,以确定所述搜索文本信息中位于所述实体词库、且包含所述当前单字的目标词,包括:
38.在所述实体词库中查询包含所述当前单字的实体词;
39.将查询到的所述实体词与所述搜索文本信息进行匹配,将位于所述搜索文本信息中的实体词确定为目标词。
40.可选的,所述命名实体识别模型中还包括对所述双向长短时记忆模型做约束的条件随机场模型;
41.所述条件随机场模型用于对双向长短时记忆模型的输入序列中每个字进行标签标注;
42.所述标签标注包括:以b表示实体开始、以i表示实体中间部分、以e表示实体结束部分、以o表示非限定的实体类型。
43.可选的,所述实体词库通过以下方式建立:
44.获取更新的实体资源;其中,每条实体资源包括资源标识、资源名称、资源类型、意图分;
45.对所述资源名称进行标准化格式转换,得到归一化的实体词;
46.为归一化的实体词关联对应实体资源的资源标识、资源类型和意图分;
47.在归一化的实体词关联有多个意图分时,将所述多个意图分之和作为所述实体词的意图分。
48.可选的,所述实体资源还包括热度分;在所述对所述资源名称进行标准化格式转换,得到归一化的实体名之前,还包括:
49.过滤掉热度分小于预设热度的实体资源。
50.可选的,所述基于各个意图分计算所述实体词的综合意图分,包括:
51.计算所述实体词在所述各个实体类型下的意图分之和,得到实体意图分;
52.基于每个实体类型下的意图分和所述实体意图分,得到各个实体类型的归一化意图分;
53.将分值最大的归一化意图分确定为所述实体词的综合意图分。
54.可选的,所述方法还包括:
55.基于预先建立的tf

idf特征库,确定所述实体词的词权重;
56.基于所述实体词的综合意图分和词权重,从所述实体词中筛选出必留的实体词;
57.所述基于所述实体词对应的实体类型和综合意图分,从所述实体词中确定用于搜索的关键词,包括:
58.基于所述必留的实体词对应的实体类型、综合意图分和词权重,从所述必留的实体词中确定用于搜索的关键词。
59.可选的,所述基于预先建立的tf

idf特征库,确定所述实体词的词权重,包括:
60.基于预先建立的tf

idf特征库,获取所述实体词对应的tf

idf特征;
61.基于所述实体词对应的tf

idf特征,确定所述实体词的词权重。
62.可选的,所述基于所述实体词对应的tf

idf特征,确定所述实体词的词权重,包括:
63.将tf

idf特征作为实体词的初始词权重;
64.针对每个实体词,基于实体词的词类型,在初始词权重基础上计算得到实体词的中间词权重;
65.计算每个实体词的中间词权重之和;
66.基于每个实体词的中间词权重和所述中间词权重之和,得到每个实体词的归一化的词权重。
67.可选的,所述基于实体词的词类型,在初始词权重基础上计算得到实体词的中间词权重,包括:
68.如果实体词为非单字实体,则提高初始词权重,得到非单字实体的词权重;
69.如果实体词为限定词实体,则降低初始词权重,得到限定词实体的词权重;
70.如果实体词为单字实体,则将初始词权重确定为单字实体的词权重。
71.可选的,所述基于所述实体词的综合意图分和词权重,从所述实体词中筛选出必留的实体词,包括:
72.在实体词为限定词实体,且词权重大于第一阈值,确定实体词为必留;
73.在实体词为非单实体的非限定词实体,且综合意图分大于第二阈值、词权重大于第三阈值时,确定实体词为必留;
74.在实体词为单实体的非限定实体词时,确定实体词为必留。
75.可选的,所述tf

idf特征库通过以下方式建立:
76.对历史搜索文本信息进行分词处理,统计分词总数、每个分词的出现次数和包含分词的历史搜索文本信息数量;
77.计算每个分词的出现次数与分词总数的比值,得到每个分词的词频;
78.计算以历史搜索文本信息总数为底、包含分词的历史搜索文本信息数量的对数,得到每个分词的逆向文档频率;
79.计算每个分词的词频与逆向文档频率的乘积,得到每个分词的tf

idf特征。
80.可选的,所述基于所述必留的实体词对应的实体类型、综合意图分和词权重,从所述必留的实体词中确定用于搜索的关键词,包括:
81.基于所述实体类型对所述必留的实体词进行分类;
82.在相同实体类型下,将词权重最大且综合意图分大于阈值的实体词确定为用于搜索的关键词。
83.可选的,还包括:
84.基于所确定的关键词进行资源搜索,获取搜索到的资源;
85.基于所述资源与关键词的相关度,对所述资源进行排序
86.在本发明实施方式的第二方面中,提供了一种计算机可读存储介质,包括:
87.当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如前任一项所述的关键词的确定方法。
88.在本发明实施方式的第三方面中,提供了一种关键词的确定装置,包括:
89.识别单元,识别搜索文本信息中的实体词和与所述实体词对应的实体类型;其中,所述实体词包括所述搜索文本信息中反映搜索意图的词;
90.计算单元,从预先建立的实体词库中查找所述实体词在各个实体类型下的意图分,并基于各个意图分计算所述实体词的综合意图分;
91.确定单元,基于所述实体词对应的实体类型和综合意图分,从所述实体词中确定用于搜索的关键词。
92.在本发明实施方式的第四方面中,提供了一种计算设备,包括:
93.处理器;
94.用于存储所述处理器可执行指令的存储器;
95.其中,所述处理器被配置为执行所述可执行指令,以实现如前任一项所述的关键词的确定方法。
96.根据本发明实施方式提供的细粒度的多搜索意图的识别方案,通过识别搜索文本信息中的实体词和实体类型,结合预先建立的实体词库为每个实体词进行打分以得到每个实体词的综合意图分;最后基于每个实体词的实体类型和综合意图分,确定符合用户实际需求的至少一个关键词。由于最终确定的关键词是根据细粒度的多搜索意图的思路确定的,因此每个关键词都可以对应一个细粒度的搜索意图,这样就可以满足用户不同搜索意图的搜索需求。进而使得搜索结果更为准确、更为符合用户预期。
附图说明
97.通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
98.图1示意性地示出了本发明提供的音乐资源的搜索示意图;
99.图2示意性地示出了本发明提供的关键词的确定方法示意图;
100.图3示意性地示出了本发明提供的音乐资源的搜索示意图;
101.图4示意性地示出了本发明提供的介质示意图;
102.图5示意性地示出了本发明提供的关键词的确定装置示意图;
103.图6示意性地示出了本发明提供的计算设备示意图。
104.在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
105.下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本发明更加透彻和完整,并且能够将本发明的范围完整地传达给本领域的技术人员。
106.本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本发明可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
107.根据本发明的实施方式,提出了一种关键词的确定方法、计算机可读存储介质、装置和计算设备。
108.在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
109.下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
110.发明概述
111.本发明人发现,出于现有意图识别技术的原因,其只能预测粗粒度的单一搜索意图,导致搜索结果不符合用户预期,降低了用户体验。
112.在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
113.应用场景总览
114.首先参考图1所示的一种音乐资源的搜索示意图。在应用搜索场景中,对于用户输入的搜索文本信息(即图中的query“邓紫棋唱歌的泡沫”);经过搜索可以返回图1中所示的多个搜索结果。用户可以点击任意一个搜索结果来播放对应的歌曲。
115.需要说明的是,上述音乐资源搜索场景仅为一种示例,在实际应用中,本发明还可以应用到其它任意资源的搜索场景中,例如视频资源的搜索、文章资源的搜索、游戏资源的搜索等等。
116.示例性方法
117.下面结合图1所示的应用场景,参考图2来描述根据本发明示例性实施方式的关键词的确定的方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
118.如图2所示,所述关键词的确定方法,可以包括以下步骤:
119.步骤210:识别搜索文本信息中的实体词和与所述实体词对应的实体类型;其中,所述实体词包括所述搜索文本信息中反映搜索意图的词;
120.步骤220:从预先建立的实体词库中查找所述实体词在各个实体类型下的意图分,并基于各个意图分计算所述实体词的综合意图分;
121.步骤230:基于所述实体词对应的实体类型和综合意图分,从所述实体词中确定用于搜索的关键词。
122.需要说明的是,该实施例可以应用于提供搜索服务的服务端。所述服务端可以是指用于搜索的服务器、服务器集群或由服务器集群构建的云平台。
123.在实际应用中,用户可以在与服务端对应的客户端上输入搜索文本信息,并通过客户端将输入的搜索文本信息发送给上述服务端,以使服务端基于搜索文本信息执行本说明书提供的实施例。
124.通常,服务端本地或者与服务端关联的存储设备中存储有各种资源,服务端可以基于确定的关键词在这些资源中进行匹配,以匹配到与上述关键词相关的至少一个目标资源。
125.其中,上述实体词库中预先存储了不同实体类型下不同实体词的意图分。具体地,上述实体词库可以通过以下方式建立:
126.步骤a1,获取更新的实体资源;其中,每条实体资源包括资源标识、资源名称、资源类型、意图分。
127.以下以音乐资源为例加以说明,服务端可以周期性(例如每天)更新曲库资源库中的音乐资源。每条音乐资源可以包含资源标识(如id)、资源名称、资源类型、热度分和意图分。
128.例如,单曲资源“错位时空”和歌手资源“陈奕迅”,在曲库资源库中的音乐资源信息格式如下表1所示:
129.资源id资源类型资源名称热度分意图分
123829artist陈奕迅1999905000569147song错位时空20110010000
130.其中,针对音乐资源,资源类型可以包括单曲(song),歌手(artist),专辑(album)和限定词(qualifier)4种类型。
131.在一示例性的实施例中,服务端可以过滤掉热度分小于预设热度的实体资源。
132.由于曲库资源库中的音乐资源可能包含一些冷门资源,这些冷门资源可能从来没有给搜索过或者搜索量非常小可以忽略不计。通常,对于这样的冷门资源,其热度分可能为很小甚至为0。
133.在实际应用中,这种冷门资源属于无用资源,可以将其过滤掉。具体地,热度分小于预设热度的实体资源就可以认为是冷门资源,因此可以将热度分小于预设热度的实体资源过滤掉。
134.步骤a2,对所述资源名称进行标准化格式转换,得到归一化的实体词。
135.由于曲库资源库中的音乐资源可能来源于不同的数据源,而不同的数据源对应不同的数据标准,导致曲库资源库中的音乐资源的数据标准并不统一,例如针对同一资源名称,可能存在大小写不一致、包含特殊字符等差异。
136.基于此,该步骤可以通过标准化格式转换对资源名称进行归一化处理。例如歌手“she”做归一化处理后,变为“she”;单曲“she”做归一化处理后,也变为“she”,则归一化后的实体词统一为“she”。
137.步骤a3,为归一化的实体词关联对应实体资源的资源标识、资源类型和意图分。
138.由于归一化的实体词可能对应多个实体资源,因此可以将归一化后的实体词关联对应实体资源信息,例如资源标识、资源类型和意图分。
139.如下表2所示的实体词库的实体资源相关信息:
[0140][0141]
其中,针对实体词“she”,存在2个资源,一个是资源id569278,对应的是歌手(artist)即she这个歌手组合,意图分为200;另一个是资源214250,对于的是单曲(song)即单曲名she,意图分为100。
[0142]
步骤a4,在归一化的实体词关联有多个意图分时,将所述多个意图分之和作为所述实体词的意图分。
[0143]
当一个实体词关联有多个意图分时,则需要计算计算一个总的意图分。
[0144]
以上述表2中的实体词“she”为例,其对应有2个不同音乐资源的意图分200和100,将这2个意图分求和后得到的300作为该实体词“she”最终的意图分。
[0145]
通过上述示例就可以构建出实体词库,从而在后续实施例中使用。
[0146]
在介绍了实体词库后,下面对上述步骤210至步骤230中的各步骤进行详细地说明。
[0147]
步骤210:识别搜索文本信息中的实体词和与所述实体词对应的实体类型;其中,所述实体词包括所述搜索文本信息中反映搜索意图的词。
[0148]
由于搜索文本信息可能包括一些无意义内容,真正反应搜索意图的实体词只是搜索文本信息中的一部分。因此,服务端在接收到搜索文本信息之后,需要先从搜索文本信息中识别出反映搜索意图的实体词,以及每个实体词对应的实体类型。
[0149]
在本实施例中,将一个独立资源维度的短语称为实体词,例如“邓紫棋”是歌手实体、泡沫是单曲实体。
[0150]
在实现时,服务端可以采用例如语义识别、命名实体识别等技术进行识别。
[0151]
以下以命名实体识别(named entity recognition,ner)技术为例加以说明。
[0152]
在一示例性的实施例中,上述步骤210,可以包括:
[0153]
步骤b1:将接收到的搜索文本信息输入到命名实体识别模型中进行计算;
[0154]
步骤b2:获取所述命名实体识别模型计算后输出的实体词和与所述实体词对应的实体类型。
[0155]
该示例中,命名实体识别模型用于根据预先定义的实体类型,从输入的文本信息中将实体词和实体类型识别出来。
[0156]
其中,命名实体识别ner模型是一类算法的总称,以下进一步对命名实体识别模型具体使用的算法进行说明。
[0157]
在一示例性的实施例中,所述命名实体识别模型由embedding模型、双向长短时记忆模型组成;
[0158]
相应地,上述步骤b1,将接收到的搜索文本信息输入到命名实体识别模型中进行计算,可以包括:
[0159]
针对接收到的搜索文本信息中的每个单字,做以下处理:
[0160]
步骤b11,将当前单字输入到embedding模型中的不同维度的embedding层,以获取不同维度下计算出的embedding特征。
[0161]
其中,上述不同维度可以包括单字、实体类型、实体长度占比和意图分;即上述步骤b11,可以包括:
[0162]
步骤b111,将当前单字输入到embedding模型中单字embedding层,计算所述当前单字的单字embedding特征。
[0163]
举例说明,假设用户输入的搜索文本信息为“邓紫棋唱的泡沫”,首先基于单子将其拆分为7个单字“邓,紫,棋,唱,的,泡,沫”;对于每一个字,依次输入到4个的embedding层。
[0164]
以单字“邓”为例,输入到单字embedding层(也可以称为char embedding层),计算该单字“邓”对应的单字embedding特征:char
emd
={a1,a2,

,a
i
,

,a
128
};其中,char
emd
表示单字embedding特征,该特征具有128维,分别为a1至a
128

[0165]
需要说明的是,此处单字embedding特征的维数128可以是一个经验值,通常维数越多最终识别结果越准确但是占用的计算资源也越多。
[0166]
步骤b112,将当前单字输入到embedding模型中实体类型embedding层,计算所述当前单字的实体类型embedding特征;
[0167]
在实现时,可以基于所述实体词库对所述当前单字进行前缀匹配计算,以确定所
述搜索文本信息中位于所述实体词库、且包含所述当前单字的目标词;
[0168]
获取所述实体词库中所述目标词对应的实体类型,并获取预设的与所述实体类型对应的特征值;
[0169]
将所述特征值输入到embedding模型中实体类型embedding层,将所述特征值映射为实体类型embedding特征。
[0170]
依然以“邓紫棋唱的泡沫”中的单字“邓”为例,每个实体类型可以预先设有特征值,歌手对应的特征值为1,单曲对应的特征值为2,专辑对应的特征值为3,限定词对应的特征值为4。
[0171]
其中,上述前缀匹配计算,可以包括:在所述实体词库中查询包含所述当前单字的实体词;将查询到的所述实体词与所述搜索文本信息进行匹配,将位于所述搜索文本信息中的实体词确定为目标词。
[0172]
首先,在前述实体词库中匹配包含单字“邓”的实体词,假设匹配到“邓伦”和“邓紫棋”;进一步还需要看匹配到的实体词是否位于搜索文本信息中,由于“邓伦”并不在搜索文本信息中,而“邓紫棋”位于搜索文本中,因此,最终可以确定“邓紫棋”为目标词。
[0173]
在确定了目标词“邓紫棋”后,由于“邓紫棋”属于歌手实体类型,因此可以将歌手对应的特征值1输入到实体类型embedding层,该实体类型embedding层可以将1映射为实体类型embedding特征:entity
emd
={b1,b2,

,b
i
,

,b
16
};其中,entity
emd
表示实体类型embedding特征,该特征具有16维,分别为b1至b
16

[0174]
需要说明的是,此处实体类型embedding特征的维数16可以是一个经验值,通常维数越多最终识别结果越准确但是占用的计算资源也越多。
[0175]
步骤b113,将当前单字输入到embedding模型中实体长度占比embedding层,计算所述当前单字的实体长度占比embedding特征。
[0176]
在实现时,可以基于所述实体词库对所述当前单字进行前缀匹配计算,以确定所述搜索文本信息中位于所述实体词库、且包含所述当前单字的目标词;
[0177]
计算所述目标词的长度与所述搜索文本信息的长度的比值,并获取所述比值映射在预设第一数值区间的区间段序号;
[0178]
将所述区间段序号输入到embedding模型中实体长度占比embedding层,将所述区间段序号映射为实体长度占比embedding特征。
[0179]
依然以“邓紫棋唱的泡沫”中的单字“邓”为例,如前所示通过前缀匹配计算可以确定目标词为“邓紫棋”。
[0180]
在确定了目标词“邓紫棋”后,由于“邓紫棋”有3个字,可见其实体长度为3,而搜索文本信息的长度为7(“邓紫棋唱的泡沫”有7个字),因此单字“邓”的实体长度的比值是3/7=0.43。
[0181]
进一步的,由于比值0.43映射到预设第一数值区间[0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0]中的第5个区间段[0.4,0.5],因此可以将区间段序号5输入到实体长度占比embedding层,该实体长度占比embedding层可以将5映射为实体长度占比embedding特征:entity_cover_ratio
emd
={c1,c2,

,c
i
,

,c
16
};其中,entity_cover_ratio
emd
表示实体长度占比embedding特征,该特征具有16维,分别为c1至c
16

[0182]
需要说明的是,此处实体长度占比embedding特征的维数16可以是一个经验值,通
常维数越多最终识别结果越准确但是占用的计算资源也越多。
[0183]
步骤b114,将当前单字输入到embedding模型中意图分embedding层,计算所述当前单字的意图分embedding特征。
[0184]
在实现时,可以基于所述实体词库对所述当前单字进行前缀匹配计算,以确定所述搜索文本信息中位于所述实体词库、且包含所述当前单字的目标词;
[0185]
获取所述实体词库中所述目标词对应的意图分,并计算所述意图分的对数,获取所述取对数后的值映射在预设第二数值区间的区间段序号;
[0186]
将所述区间段序号输入到embedding模型中意图分embedding层,将所述区间段序号映射为意图分embedding特征。
[0187]
依然以“邓紫棋唱的泡沫”中的单字“邓”为例,如前所示通过前缀匹配计算可以确定目标词为“邓紫棋”。
[0188]
在确定了目标词“邓紫棋”后,假设查询实体词库获取“邓紫棋”对应的意图分为20000;对该意图分取对数得到log
10
(20000)=4.3。
[0189]
进一步的,由于取对数后的值4.3映射在预设第二数值区间[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]中的第5个区间段[4,5],因此可以将区间段序号5输入到意图分embedding层,该意图分embedding层可以将5映射为意图分embedding特征:intent_score
emd
={d1,d2,

,d
i
,

,d
16
};其中,intent_score
emd
表示意图分embedding特征,该特征具有16维,分别为d1至d
16

[0190]
需要说明的是,此处意图分embedding特征的维数16可以是一个经验值,通常维数越多最终识别结果越准确但是占用的计算资源也越多。
[0191]
步骤b12,将所述不同维度下计算出的embedding特征拼接后,作为双向长短时记忆模型的隐藏层输入,以及将所述搜索文本信息作为双向长短时记忆模型的输入层输入,得到所述双向长短时记忆模型输出层输出的实体词和与所述实体词对应的实体类型。
[0192]
沿用前述步骤b111

b114中以“邓紫棋唱的泡沫”中的单字“邓”为例的示例,将单字embedding特征:char
emd
={a1,a2,

,a
i
,

,a
128
}、实体类型embedding特征:entity
emd
={b1,b2,

,b
i
,

,b
16
}、实体长度占比embedding特征:entity_cover_ratio
emd
={c1,c2,

,c
i
,

,c
16
}、意图分embedding特征:intent_score
emd
={d1,d2,

,d
i
,

,d
16
}进行拼接,得到176维的特征:
[0193]
concat
embed
=[char
emd
,entity
emd
,entity_cover_ratio
emd
,intent_score
emd
]
[0194]
={a1,a2,

,a
128
,b1,b2,

,b
16
,c1,c2,

,c
16
,d1,d2,

,d
16
}
[0195]
将拼接后concat
embed
的176维特征作为双向长短时记忆(bi

lstm)模型的隐藏层输入。
[0196]
该实施例采用双向长短时记忆模型可以解决模型学习过程中梯度消失的问题,以更好应对长序列的输入数据(即长文本的搜索文本信息)。另外,双向长短时记忆模型在预测结果时可以更多的联系上下文,在cell(双向长短时记忆模型的基本单元)中不仅输入前向lstm的输出,而且输入后向lstm的输出,最终使得预测结果更为准确。
[0197]
为了使得模型预测结果更为符合实体词的定义即独立资源维度的短语,还可以为bi

lstm配置一个crf(conditional random fields,条件随机场),使得ner模型结构成为embedding+bi

lstm+crf结构。
[0198]
其中,crf用于对bi

lstm做约束,通过bi

lstm+crf计算输出实体词和实体类型。
[0199]
在使用模型做预测时,所述条件随机场模型用于对双向长短时记忆模型的输入序列中每个字进行标签标注;其中,所述标签标注包括:以b表示实体开始、以i表示实体中间部分、以e表示实体结束部分、以o表示非限定的实体类型。其中,所述约束的约束条件包括:以标签b开头以标签e结尾的实体词。另外还可以采用为比特算法(viterbi)从标注的标签中找到概率最大的实体词和实体类型。
[0200]
举例说明,依然以“邓紫棋唱的泡沫”为例,如果不做crf约束,则ner结果可能为“邓/i

artist”、“紫/i

artist”、“棋/e

artist”、“唱/o”、“的/e

song”、“泡/e

song”、“/e

song”;这样就会出现以i

artist开头的歌手实体“邓紫棋”,不符合以标签b开头以标签e结尾的实体词的约束条件。
[0201]
而如果加入crf约束后,则ner结果为“邓/b

artist”、“紫/i

artist”、“棋/e

artist”、“唱/o”、“的/o”、“泡/b

song”、“沫/e

song”;这样预测的实体“邓紫棋”和“泡沫”的标签都是以b

开头,以e

结尾,符合约束条件。
[0202]
步骤220:从预先建立的实体词库中查找所述实体词在各个实体类型下的意图分,并基于各个意图分计算所述实体词的综合意图分。
[0203]
对于识别出的实体词和实体离线,可以通过查询实体词库,得到每个实体词在各个实体类型下的意图分。如果在某个实体类型下没有这个实体词则该实体类型下的意图分为0。
[0204]
继续以音乐资源为例,音乐资源的资源类型可以包括单曲(song),歌手(artist),专辑(album)和限定词(qualifier)4种类型。那么,每个实体词的意图分包括:单曲意图分intent_score
song
、歌手意图分intent_score
artist
、专辑意图分intent_score
album
和限定词intent_score
qualifier

[0205]
在一实施例中,所述基于各个意图分计算所述实体词的综合意图分,可以包括:
[0206]
步骤c1:计算所述实体词在所述各个实体类型下的意图分之和,得到实体意图分;
[0207]
上述实体意图分sum_intent_score可以基于如下公式计算得到:
[0208]
sum_intent_score=
[0209]
intent_score
song
+intent_score
artist
+intent_score
album
+intent_score
qualifier
[0210]
步骤c2:基于每个实体类型下的意图分和所述实体意图分,得到各个实体类型的归一化意图分;
[0211]
将每个实体类型下的意图分除以所述实体意图分,得到各个实体类型的归一化意图分,计算公式如下:
[0212]
单曲的归一化意图分norm_intent
song
=intent_score
song
/(sum_intent_score+eps)
[0213]
歌手的归一化意图分norm_intent
artist
=intent_score
artist
/(sum_intent_score+eps)
[0214]
专辑的归一化意图分norm_intent
album
=intent_score
album
/(sum_intent_score+eps)
[0215]
限定词归一化意图分norm_intent
qualifier
=intent_score
qualifier
/(sum_intent_score+eps)
[0216]
其中eps=0.0000001,用于防止分母为0的情况。
[0217]
步骤c3:将分值最大的归一化意图分确定为所述实体词的综合意图分。
[0218]
依然以“邓紫棋唱的泡沫”为例,识别得到歌手(artist)实体“邓紫棋”和单曲(song)实体“泡沫”。对于“邓紫棋”,查询前述表2中的意图分,得到“邓紫棋”对应artist意图分数是590,对应的song意图分数是10,则归一化的歌手归一化意图分为590/(590+10)=0.983,归一化的单曲意图分为10/(590+10)=0.017;从中选取分值最大的归一化意图分作为该实体词的实体意图分,所以“邓紫棋”的实体意图分数是0.983。
[0219]
步骤230:基于所述实体词对应的实体类型和综合意图分,从所述实体词中确定用于搜索的关键词。
[0220]
在实际应用中,一般可以从一个长文本的搜索文本信息中识别出若干个实体词,而针对识别出的实体词还可以进行非必留判断,以确定哪些实体词需要保留,哪些实体词可以删除。为此本专利还提供了以下实施例。
[0221]
在一示例性的实施例中,在步骤230之前可以包括:
[0222]
步骤d1,基于预先建立的tf

idf特征库,确定所述实体词的词权重。
[0223]
其中,所述词权重表示的实体词在搜索文本信息中的重要程度。词权重的取值一般是[0,1]之间。词权重越大,说明实体词在搜索文本信息中越重要,也越需要保留。
[0224]
其中,所述tf

idf特征库是根据历史搜索文本信息的tf(term frequency,词频)和idf(inverse document frequency,逆向文档频率)构建的。所述tf

idf特征库通过以下方式建立:
[0225]
对历史搜索文本信息进行分词处理,统计分词总数、每个分词的出现次数和包含分词的历史搜索文本信息数量;
[0226]
计算每个分词的出现次数与分词总数的比值,得到每个分词的词频;
[0227]
计算以历史搜索文本信息总数为底、包含分词的历史搜索文本信息数量的对数,得到每个分词的逆向文档频率;
[0228]
计算每个分词的词频与逆向文档频率的乘积,得到每个分词的tf

idf特征。
[0229]
在实现时,服务端可以获取预设时长内的历史搜索文本信息,统计历史搜索文本信息总数n。对历史搜索文本信息做分词处理,统计每个分词(word
i
)的出现次数count(word
i
)以及包含该分词的历史搜索文本信息数量docs(count(word
i
,doc),分词总数sum
count(word)

[0230]
然后计算词频tf和逆向文档频率df,根据tf和idf最终计算得到tf

idf特征,具体计算公式如下:
[0231]
tf(word
i
)=count(word
i
)/(sum
count(word)
+eps)
[0232]
idf(word
i
)=log(n/docs(count(word
i
,doc)+eps))
[0233]
tf

idf=tf*idf
[0234]
其中eps=0.000001,用于防止出现分母为0的情况。
[0235]
在一实施例中,上述步骤d1可以包括:
[0236]
步骤d11,基于预先建立的tf

idf特征库,获取所述实体词对应的tf

idf特征。
[0237]
步骤d12,基于所述实体词对应的tf

idf特征,确定所述实体词的词权重。
[0238]
在查询到实体词对应的tf

idf特征后,可以做基于模式规则匹配的词权重打分,
具体包括
[0239]
步骤d121,首先判断搜索文本信息是否是单实体,即识别出的实体词是否就是搜索文本信息;如果是说明是单实体,则可以确定实体词的词权重为1.0;否则,进入步骤d122。
[0240]
例如,搜索文本信息为“邓紫棋”,识别出的实体词也是“邓紫棋”,显然该搜索文本信息是一个单实体,词权重设为1。
[0241]
再例如,搜索文本信息为“邓紫棋唱的泡沫”,识别出的实体词有“邓紫棋”,显然不是单实体进入下一步骤。
[0242]
步骤d122,组合艺人词表查询,如果命中组合艺人词表,组合名实体和艺人实体分别从词表中获取的值给定词权重;否则进入步骤d123。
[0243]
服务端可以根据艺人和艺人所在的组合,构造了一份组合艺人词表,词表中给出来固定的艺人名权重值和组合名权重值,如下表3所示:
[0244]
组合文本组合名艺人名组合名权重艺人名权重exo鹿晗exo鹿晗0.30.7鹿晗exoexo鹿晗0.30.7
[0245]
针对用户输入的query搜索文本信息,可以直接将query与组合艺人词表中的组合文本做匹配。例如用户输入的query“exo鹿晗”在词表中,则该query的词权重结果为“exo/0.3,鹿晗/0.7”。而用户输入的query”邓紫棋唱的泡沫”不在词表中,则进入步骤d123。
[0246]
通过组合艺人词表查询,可以在用户查询组合中某个艺人时,通过提高该艺人权重,避免查询到组合中其它成员相关的资源。
[0247]
步骤d123,实体词加限定词组合判断。如果识别出的实体词中包括一个非限定词(例如单曲、歌手、专辑类型)的实体词又包括一个限定词的实体词,则提高非限定词的实体词对应的tf

idf特征值(tf_idf
entity
)2倍、降低限定词的实体词对应的tf

idf特征值(tf_idf
qualifier
)2倍,进而归一化词权重;否则进入步骤d124。
[0248]
其中,非限定词的实体词的权重值boost_tf_idf
entity
=2*tf_idf
entity
;限定词的实体词的权重值reduce_tf_idf
qualifier
=tf_idf
qualifier
/2;
[0249]
非限定词的实体词对应的归一化词权重:
[0250][0251]
限定词的实体词对应的归一化词权重:
[0252][0253]
举例说明,假设query为“泡沫抖音版”,识别出的实体词为“泡沫/song”、“抖音版/qualifier”。由于query中包含一个非限定词“泡沫”和一个限定词“抖音版”,符合实体词加限定词组合。
[0254]
假设从tf

idf特征库查询得到“泡沫”的tf

idf值为19.08、“抖音版”的tf

idf值为9.46;则对非限定词“泡沫”提权2倍19.08
×
2=38.16,对限定词“抖音版”降权两倍9.46
÷
2=4.73;然后计算归一化的权重,“泡沫”的词权重为38.16
÷
(38.16+4.73+eps)=0.89、

抖音版”的词权重为4.73
÷
(38.16+4.73+eps)=0.11。归一化的词权重结果为:“泡沫/0.89”、“抖音版/0.11”。
[0255]
而假设query为“邓紫棋唱的泡沫”,识别出的实体词为“邓紫棋/artist”、“唱/qualifier”、“的/qualifier”、“泡沫/song”,包含两个非限定词和两个限定词,不符合实体词加限定词组合,则进入到步骤d124。
[0256]
步骤d124,二实体组合判断。如果识别出的实体词为两个非限定词的实体词,则对该实体词对应的tf

idf特征值提权1.5倍,然后归一化词权重。否则进步步骤d125。
[0257]
举例说明,假设query为“邓紫棋泡沫”,识别出的实体词为“邓紫棋/artist”、“泡沫/song”,只包含两个实体词,且均为非限定词。通过查询tf

idf特征库,“邓紫棋”的tf

idf值为18.21、“泡沫”的tf

idf值为19.08。对其提权1.5倍,提权后的tf

idf值为19.08
×
1.5=28.62,则“邓紫棋”归一化的词权重为18.21
÷
(18.21+28.62+eps)=0.39,“泡沫”归一化的词权重为28.62
÷
(18.21+28.62+eps)=0.61。最终的词权重结果为“邓紫棋/0.39”、“泡沫/0.61”。而query“邓紫棋唱的泡沫”不属于二实体组合,则进入到步骤d125。
[0258]
步骤d125,通用词权重。在实体词均不符合前述几种情况时,可以采用通用词权重计算。
[0259]
具体地,将tf

idf特征作为实体词的初始词权重;
[0260]
针对每个实体词,基于实体词的词类型,在初始词权重基础上计算得到实体词的中间词权重;
[0261]
计算每个实体词的中间词权重之和;
[0262]
基于每个实体词的中间词权重和所述中间词权重之和,得到每个实体词的归一化的词权重。
[0263]
该示例中,针对识别出的实体词,可能存在三种情况:单字实体(实体词只有1个字)tf_idf
single_entity
,非单字实体tf_idf
multi_entity
,限定词tf_idf
qualifier

[0264]
首先,计算实体词的中间词权重:
[0265]
如果实体词为非单字实体,则提高初始词权重,得到非单字实体的词权重。例如,对于非单字实体tf_idf
multi_entity
提权1.5倍:
[0266]
boost_tf_idf
multi_entity
=1.5*tf_idf
multi_entity

[0267]
如果实体词为限定词实体,则降低初始词权重,得到限定词实体的词权重。例如,对于限定词tf_idf
qualifier
降权为0.3倍:
[0268]
reduce_tf_idf
qualifier
=0.3*tf_idf
qualifier

[0269]
如果实体词为单字实体,则将初始词权重确定为单字实体的词权重。单字实体tf_idf
single_entity
不变。
[0270]
然后,计算每个实体词的中间词权重之和:
[0271]
sum_tf_idf=boost_tf_idf
multi_entity
+reduce_tf_idf
qualifier
+tf_idf
single_entity
[0272]
最后,计算实体词归一化的词权重:
[0273]
针对单字实体,计算单字实体归一化的词权重:
[0274]
norm_tf_idf
single_entity
=tf_idf
single_entity
/(sum_tf_idf+eps)
[0275]
针对非单字实体,计算非单字实体归一化的词权重:
[0276]
norm_tf_idf
multi_entity
=boost_tf_idf
multi_entity
/(sum_tf_idf+eps)
[0277]
针对限定词实体,计算限定词实体归一化的词权重:
[0278]
norm_tf_idf
qualifier
=reduce_tf_idf
qualifier
/(sum_tf_idf+eps)
[0279]
举例说明,假设query为“邓紫棋唱的泡沫”,识别出的实体词为“邓紫棋/artist”、“唱/qualifier”、“的/qualifier”和“泡沫/song”。首先查询“邓紫棋”的tf

idf值为18.21、“唱”的tf

idf值为5.31、“的”tf

idf值为1.02、“泡沫”的tf

idf值为19.08。
[0280]
由于“邓紫棋”是包含三个字的非单字实体,“泡沫”是包含两个字的非单字实体,所以分别对这两个实体词做1.5倍提权,“邓紫棋”提权后的tf

idf值为1.5
×
18.21=27.315,“泡沫”提权后的tf

idf值为1.5
×
19.08=28.62。“唱”和“的”都是限定词,需要做0.3倍降权,“唱”降权后的tf

idf值为0.3
×
5.31=1.593,“的”降权后的tf

idf值为0.3
×
1.02=0.306。最后计算归一化后的权重值,“邓紫棋”归一化权重为27.315
÷
(27.315+28.62+1.593+0.306+eps)=0.472,“唱”归一化权重为1.593
÷
(27.315+28.62+1.593+0.306+eps)=0.027,“的”归一化权重为0.306
÷
(27.315+28.62+1.593+0.306+eps)=0.005,“泡沫”的归一化权重为28.62
÷
(27.315+28.62+1.593+0.306+eps)=0.496。则最终的词权重结果为:“邓紫棋/0.472”、“唱/0.027”、“的/0.005”、“泡沫/0.496”。
[0281]
步骤d2,基于所述实体词的综合意图分和词权重,从所述实体词中筛选出必留的实体词。
[0282]
在计算出实体词的综合意图分和词权重后,就可以判断哪些词需要保留(必留)、哪些词需要丢弃(非必留)。对于长文本的搜索文本信息,通过丢弃非必留的实体词,即可以减少后续搜索量,也可以提前排除不符合用户真实意图的资源。
[0283]
针对非必留判断,可以包括:
[0284]
步骤d211,首先判断搜索文本信息是否是单实体;在实体词为单实体的非限定实体词时,确定实体词为必留。否则,进入步骤d212。
[0285]
例如query为“邓紫棋”,识别出的实体词为“邓紫棋/artist”;由于该实体词是歌手类型,是非限定实体词,并且实体词与搜索文本信息相同,是单实体,因此判定“邓紫棋/必留”。
[0286]
步骤212,组合艺人词表查询。如果命中组合艺人词表,则组合名和艺人名实体都判定为必留词,否则进入步骤123。
[0287]
例如query“exo鹿晗”,通过查询前述表2所示的组合艺人词表,发现query命中表2组合艺人词表,则判定“exo/必留”、“鹿晗/必留”。
[0288]
再例如query”邓紫棋唱的泡沫”,由于不包含在表2中,则需要进入步骤124。
[0289]
步骤124,通用非必留判断。在实体词为限定词实体,且词权重大于第一阈值,确定实体词为必留;
[0290]
在实体词为非单实体的非限定词实体,且综合意图分大于第二阈值、词权重大于第三阈值时,确定实体词为必留。
[0291]
其中,所述第一阈值大于第二阈值,第二阈值大于第三阈值。
[0292]
举例说明,假设query为“王菲版的愿”,识别出的实体词为“王菲/artist”、“/qualifier”、“/qualifier”和“/song”;综合意图分为“王菲/artist/0.9”、“版/qualifier/1.0”、“的/qualifier/1.0”、“愿/song/0.34”;词权重为“王菲/0.72”、“版/0.06”、“的/0.04”、“愿/0.18”。
[0293]
判断非限定词类型的非必留情况,“王菲”是歌手(artist)实体,综合意图分为0.9大于第二阈值0.2,词权重为0.72大于第三阈值0.1,所以判定为必留。“愿”是歌曲(song)实体而且是只包含一个字的单实体,综合意图分是0.18小于第二阈值0.2,不满足条件判定为非必留。然后判断限定词类型的非必留情况,“版”词权重0.06小于第一阈值0.3,判定为非必留。“的”词权重0.04小于第一阈值0.3,也判定为非必留。则query“王菲版的愿”的非必留判断结果为“王菲/必留”、“版/非必留”、“的/非必留”、“愿/非必留”。
[0294]
相应地,所述步骤230,包括:
[0295]
基于所述必留的实体词对应的实体类型、综合意图分和词权重,从所述必留的实体词中确定用于搜索的关键词。
[0296]
服务端在确定了必留的实体词后,以及一定的规则判定,可以得到细粒度的表示用户实际搜索意图的关键词。
[0297]
在一示例性的实施例中,可以包括:
[0298]
基于所述实体类型对所述必留的实体词进行分类;
[0299]
在相同实体类型下,将词权重最大且综合意图分大于阈值的实体词确定为用于搜索的关键词。
[0300]
举例说明,假设针对query为“陈奕迅王菲版因为爱情”的非必留判定结果为“陈奕迅/必留”、“王菲/必留”、“版/非必留”、“因为爱情/必留”;保留必留词“陈奕迅”、“王菲”和“因为爱情”。
[0301]
针对必留词根据实体类型进行分类,将歌手类型的“陈奕迅”和“王菲”归为一类,单曲类型的“因为爱情”为另一类。
[0302]
针对歌手类型下的“陈奕迅”和“王菲”,按照词权重从高到低排序。假设词权重为”陈奕迅/0.27”、“王菲/0.31”,则歌手类型下词权重排序结果为:王菲(0.31)大于陈奕迅(0.27);可以确定“王菲”为歌声类型下词权重最大的实体词。
[0303]
进一步,判断歌声类型下的“王菲”和歌曲类型下的“因为爱情”的综合意图分是否大于阈值0.3;假设歌手实体“王菲”的综合意图分为0.96大于0.3,并且“王菲”为歌声类型下词权重最大的实体词;而“陈奕迅”虽然综合意图分0.94也大于0.3,但是其不是歌声类型下词权重最大的实体词。
[0304]
对于单曲类型,单曲实体“因为爱情”的综合意图分数是0.88大于阈值0.3,而且只有一个单曲实体,因此词权重最高的单曲实体为因为爱情(0.39)。没有专辑类型实体,所以不做判断。
[0305]
所以最终得到细粒度的意图信息为:“王菲/artist/意图分数0.96/词权重0.31”、“因为爱情/song/意图分数0.88/词权重0.39”。即确定的关键词为“王菲”和“因为爱情”。
[0306]
通过上述实施例,通过识别搜索文本信息中的实体词和实体类型,结合预先建立的实体词库为每个实体词进行打分以得到每个实体词的综合意图分;最后基于每个实体词的实体类型和综合意图分,确定符合用户实际需求的至少一个关键词。由于最终确定的关键词是根据细粒度的多搜索意图的思路确定的,因此每个关键词都可以对应一个细粒度的搜索意图,这样就可以满足用户不同搜索意图的搜索需求。进而使得搜索结果更为准确、更为符合用户预期。
[0307]
进一步的,由于已经确定了用于进行搜索的关键词,因此可以利用所述关键词进
行搜索。
[0308]
在一示例性的实施例中,在上述图2基础上还可以包括:
[0309]
基于所确定的关键词进行资源搜索,获取搜索到的资源;
[0310]
基于所述资源与关键词的相关度,对所述资源进行排序。
[0311]
该示例中,在搜索到资源后,通过对资源排序,以将与关键词相关度高的资源优先进行展示。
[0312]
例如对于query“邓紫棋唱的泡沫”,使用前述实施例确定的关键词“邓紫棋”和“泡沫”进行资源匹配,并对资源排序后可以得到图3所示的搜索结果。图3与图1相比,搜索结果优先展示的不仅符合用户期望的歌曲“泡沫”,而且歌手也是歌曲“泡沫”原唱“邓紫棋”符合用户期望。可见,搜索结果更符合用户的真实需求。
[0313]
示例性介质
[0314]
在介绍了本发明示例性实施方式的方法之后,接下来,参考图4对本发明示例性实施方式的介质进行说明。
[0315]
本示例性实施方式中,可以通过程序产品实现上述方法,如可以采用便携式紧凑盘只读存储器(cd

rom)并包括程序代码,并可以在设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0316]
该程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0317]
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0318]
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、re等等,或者上述的任意合适的组合。
[0319]
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言,诸如java、c++等,还包括常规的过程式程序设计语言,诸如c语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
[0320]
示例性装置
[0321]
在介绍了本发明示例性实施方式的介质之后,接下来,参考图5对本发明示例性实
施方式的装置进行说明。
[0322]
图5示意性地示出了根据本发明实施方式的一种关键词的确定装置的框图。该关键词的确定装置可以包括:
[0323]
识别单元310,识别搜索文本信息中的实体词和与所述实体词对应的实体类型;其中,所述实体词包括所述搜索文本信息中反映搜索意图的词;
[0324]
计算单元320,从预先建立的实体词库中查找所述实体词在各个实体类型下的意图分,并基于各个意图分计算所述实体词的综合意图分;
[0325]
确定单元330,基于所述实体词对应的实体类型和综合意图分,从所述实体词中确定用于搜索的关键词。
[0326]
可选的,所述识别单元310,包括:
[0327]
将接收到的搜索文本信息输入到命名实体识别模型中进行计算;
[0328]
获取所述命名实体识别模型计算后输出的实体词和与所述实体词对应的实体类型。
[0329]
可选的,所述命名实体识别模型由embedding模型、双向长短时记忆模型组成;
[0330]
所述将接收到的搜索文本信息输入到命名实体识别模型中进行计算,包括:
[0331]
针对接收到的搜索文本信息中的每个单字,做以下处理:
[0332]
将当前单字输入到embedding模型中的不同维度的embedding层,以获取不同维度下计算出的embedding特征;
[0333]
将所述不同维度下计算出的embedding特征拼接后,作为双向长短时记忆模型的隐藏层输入,以及将所述搜索文本信息作为双向长短时记忆模型的输入层输入,得到所述双向长短时记忆模型输出层输出的实体词和与所述实体词对应的实体类型。
[0334]
可选的,所述不同维度包括单字、实体类型、实体长度占比和意图分;
[0335]
所述将当前单字输入到embedding模型中的不同维度的embedding层,以获取不同维度下计算出的embedding特征,包括:
[0336]
第一计算子单元311,将当前单字输入到embedding模型中单字embedding层,计算所述当前单字的单字embedding特征;
[0337]
第二计算子单元312,将当前单字输入到embedding模型中实体类型embedding层,计算所述当前单字的实体类型embedding特征;
[0338]
第三计算子单元313,将当前单字输入到embedding模型中实体长度占比embedding层,计算所述当前单字的实体长度占比embedding特征;
[0339]
第四计算子单元314,将当前单字输入到embedding模型中意图分embedding层,计算所述当前单字的意图分embedding特征。
[0340]
可选的,所述第二计算子单元312,包括:
[0341]
基于所述实体词库对所述当前单字进行前缀匹配计算,以确定所述搜索文本信息中位于所述实体词库、且包含所述当前单字的目标词;
[0342]
获取所述实体词库中所述目标词对应的实体类型,并获取预设的与所述实体类型对应的特征值;
[0343]
将所述特征值输入到embedding模型中实体类型embedding层,将所述特征值映射为实体类型embedding特征。
[0344]
可选的,所述第三计算子单元313,包括:
[0345]
基于所述实体词库对所述当前单字进行前缀匹配计算,以确定所述搜索文本信息中位于所述实体词库、且包含所述当前单字的目标词;
[0346]
计算所述目标词的长度与所述搜索文本信息的长度的比值,并获取所述比值映射在预设第一数值区间的区间段序号;
[0347]
将所述区间段序号输入到embedding模型中实体长度占比embedding层,将所述区间段序号映射为实体长度占比embedding特征。
[0348]
可选的,所述第四计算子单元314,包括:
[0349]
基于所述实体词库对所述当前单字进行前缀匹配计算,以确定所述搜索文本信息中位于所述实体词库、且包含所述当前单字的目标词;
[0350]
获取所述实体词库中所述目标词对应的意图分,并计算所述意图分的对数,获取所述取对数后的值映射在预设第二数值区间的区间段序号;
[0351]
将所述区间段序号输入到embedding模型中意图分embedding层,将所述区间段序号映射为意图分embedding特征。
[0352]
可选的,所述基于所述实体词库对所述当前单字进行前缀匹配计算,以确定所述搜索文本信息中位于所述实体词库、且包含所述当前单字的目标词,包括:
[0353]
在所述实体词库中查询包含所述当前单字的实体词;
[0354]
将查询到的所述实体词与所述搜索文本信息进行匹配,将位于所述搜索文本信息中的实体词确定为目标词。
[0355]
可选的,所述命名实体识别模型中还包括对所述双向长短时记忆模型做约束的条件随机场模型;
[0356]
所述条件随机场模型用于对双向长短时记忆模型的输入序列中每个字进行标签标注;
[0357]
所述标签标注包括:以b表示实体开始、以i表示实体中间部分、以e表示实体结束部分、以o表示非限定的实体类型。
[0358]
可选的,所述实体词库通过以下方式建立:
[0359]
实体词库建立单元302,用于获取更新的实体资源;其中,每条实体资源包括资源标识、资源名称、资源类型、意图分;对所述资源名称进行标准化格式转换,得到归一化的实体词;为归一化的实体词关联对应实体资源的资源标识、资源类型和意图分;在归一化的实体词关联有多个意图分时,将所述多个意图分之和作为所述实体词的意图分。
[0360]
可选的,所述实体资源还包括热度分;在所述对所述资源名称进行标准化格式转换,得到归一化的实体名之前,还包括:
[0361]
过滤掉热度分小于预设热度的实体资源。
[0362]
可选的,所述基于各个意图分计算所述实体词的综合意图分,包括:
[0363]
计算所述实体词在所述各个实体类型下的意图分之和,得到实体意图分;
[0364]
基于每个实体类型下的意图分和所述实体意图分,得到各个实体类型的归一化意图分;
[0365]
将分值最大的归一化意图分确定为所述实体词的综合意图分。
[0366]
可选的,所述装置还包括:
[0367]
词权重单元322,基于预先建立的tf

idf特征库,确定所述实体词的词权重;
[0368]
筛选单元324,基于所述实体词的综合意图分和词权重,从所述实体词中筛选出必留的实体词;
[0369]
所述确定单元330,包括:
[0370]
基于所述必留的实体词对应的实体类型、综合意图分和词权重,从所述必留的实体词中确定用于搜索的关键词。
[0371]
可选的,所述词权重单元322,包括:
[0372]
基于预先建立的tf

idf特征库,获取所述实体词对应的tf

idf特征;
[0373]
基于所述实体词对应的tf

idf特征,确定所述实体词的词权重。
[0374]
可选的,所述基于所述实体词对应的tf

idf特征,确定所述实体词的词权重,包括:
[0375]
将tf

idf特征作为实体词的初始词权重;
[0376]
针对每个实体词,基于实体词的词类型,在初始词权重基础上计算得到实体词的中间词权重;
[0377]
计算每个实体词的中间词权重之和;
[0378]
基于每个实体词的中间词权重和所述中间词权重之和,得到每个实体词的归一化的词权重。
[0379]
可选的,所述基于实体词的词类型,在初始词权重基础上计算得到实体词的中间词权重,包括:
[0380]
如果实体词为非单字实体,则提高初始词权重,得到非单字实体的词权重;
[0381]
如果实体词为限定词实体,则降低初始词权重,得到限定词实体的词权重;
[0382]
如果实体词为单字实体,则将初始词权重确定为单字实体的词权重。
[0383]
可选的,所述筛选单元324,包括:
[0384]
在实体词为限定词实体,且词权重大于第一阈值,确定实体词为必留;
[0385]
在实体词为非单实体的非限定词实体,且综合意图分大于第二阈值、词权重大于第三阈值时,确定实体词为必留;
[0386]
在实体词为单实体的非限定实体词时,确定实体词为必留。
[0387]
可选的,所述tf

idf特征库通过以下方式建立:
[0388]
特征库建立单元304,对历史搜索文本信息进行分词处理,统计分词总数、每个分词的出现次数和包含分词的历史搜索文本信息数量;计算每个分词的出现次数与分词总数的比值,得到每个分词的词频;计算以历史搜索文本信息总数为底、包含分词的历史搜索文本信息数量的对数,得到每个分词的逆向文档频率;计算每个分词的词频与逆向文档频率的乘积,得到每个分词的tf

idf特征。
[0389]
可选的,所述基于所述必留的实体词对应的实体类型、综合意图分和词权重,从所述必留的实体词中确定用于搜索的关键词,包括:
[0390]
基于所述实体类型对所述必留的实体词进行分类;
[0391]
在相同实体类型下,将词权重最大且综合意图分大于阈值的实体词确定为用于搜索的关键词。
[0392]
可选的,所述装置还包括:
[0393]
搜索子单元332,基于所确定的关键词进行资源搜索,获取搜索到的资源;
[0394]
排序子单元334,基于所述资源与关键词的相关度,对所述资源进行排序。
[0395]
示例性计算设备
[0396]
在介绍了本发明示例性实施方式的方法、介质和装置之后,接下来,参考图6对本发明示例性实施方式的计算设备进行说明。
[0397]
图6显示的计算设备1500仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0398]
如图6所示,计算设备1500以通用计算设备的形式表现。计算设备1500的组件可以包括但不限于:上述至少一个处理单元1501、上述至少一个存储单元1502,连接不同系统组件(包括处理单元1501和存储单元1502)的总线1503。
[0399]
总线1503包括数据总线、控制总线和地址总线。
[0400]
存储单元1502可以包括易失性存储器形式的可读介质,例如随机存取存储器(ram)15021和/或高速缓存存储器15022,可以进一步包括非易失性存储器形式的可读介质,例如只读存储器(rom)15023。
[0401]
存储单元1502还可以包括具有一组(至少一个)程序模块15024的程序/实用工具15025,这样的程序模块15024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
[0402]
计算设备1500也可以与一个或多个外部设备1504(例如键盘、指向设备等)通信。
[0403]
这种通信可以通过输入/输出(i/o)接口1505进行。并且,计算设备1500还可以通过网络适配器1506与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图6所示,网络适配器1506通过总线1503与计算设备1500的其它模块通信。应当理解,尽管图中未示出,可以结合计算设备1500使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
[0404]
应当注意,尽管在上文详细描述中提及了关键词的确定装置的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
[0405]
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
[0406]
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1