通讯录查询方法、装置、设备、存储介质和程序产品与流程

文档序号:30337671发布日期:2022-06-08 07:13阅读:104来源:国知局
通讯录查询方法、装置、设备、存储介质和程序产品与流程

1.本技术涉及人工智能技术领域,特别是涉及一种排序方法、装置、设备、存储介质和程序产品。


背景技术:

2.在通讯录场景中,由于常用的名字可能重名会达到上百人,例如中国工商银行目前有员工四十六七万人,其中超过200人同名有4个名字,超过100人不到200人同名有69个名字,虽然通过搜索部门和职位可以比较精确的定位一个人,但是由于用户的习惯往往是指通过输入人名进行搜索,此时由于重名则会导致无法进行精确定位。


技术实现要素:

3.基于此,有必要针对上述技术问题,提供一种能够对查询结果进行精确定位的通讯录查询方法、装置、设备、可读存储介质和程序产品。
4.第一方面,本技术提供了一种通讯录查询方法,该方法包括:
5.接收待查询名称;
6.查询与待查询名称对应的查询结果;
7.获取与查询结果对应的日志数据,并根据日志数据进行预测得到查询结果中每一字段的预测概率值;
8.根据查询结果中每一字段的预测概率值进行排序,得到目标结果。在其中一个实施例中,上述根据查询与待查询名称对应的查询结果待处理字段进行查询,获得相应的查询结果,包括:
9.对待处理字段查询名称进行分词处理,得到分词短语;
10.根据分词短语进行查询,获得相应的查询结果。
11.在其中一个实施例中,上述根据分词短语进行查询,获得相应的查询结果待处理字段进行查询,获得相应的查询结果,还包括:
12.当未获得查询结果时,对分词短语进行拼音矫正。
13.在其中一个实施例中,上述对分词短语进行拼音矫正,包括:
14.当分词短语中包括多音字时,对多音字进行扩充;
15.当分词短语中包括近音字时,使用预先生成的矫正清单进行矫正。
16.在一个实施例中,上述获取与查询结果对应的日志数据,并根据日志数据进行预测得到查询结果中每一字段的预测概率值包括:
17.对日志数据进行结构化处理,得到结构化后的日志数据;
18.对结构化后的日志数据预测,得到查询结构中每一字段的预测概率值。
19.在一个实施例中,上述对结构化后的日志数据预测,得到查询结构中每一字段的预测概率值根据信息数据进行预测,得到查询结果中每一字段信息的预测概率值是通过预先训练的推荐模型得到的;其中推荐模型的训练方式,包括:
20.读取样本数据,样本数据携带标注的标签;
21.将样本数据输入至初始模型中得到待处理特征;
22.根据标签以及待处理特征计算得到目标损失函数;
23.根据目标损失函数对初始模型进行优化以得到推荐模型。
24.在一个实施例中,上述将样本数据输入至初始模型中得到待处理特征,包括:
25.对样本数据进行特征提取,获得第一特征向量和第二特征向量;
26.将第一特征向量与第二特征向量进行求和得到第三特征向量;
27.根据第二特征向量计算得到第四特征向量;
28.根据第三特征向量与第四特征向量计算得到待处理特征。
29.第二方面,本技术还提供了一种通讯录查询装置,该装置包括:
30.获取模块,用于接收获取待处理字段查询名称;
31.查询模块,用于查询与待查询名称对应的查询结果根据待处理字段进行查询,获得相应的查询结果;
32.排序预测模块,用于获取与查询结果对应的日志数据,并根据日志数据进行预测得到查询结果中每一字段的预测概率值;
33.排序模块,用于根据查询结果中每一字段的预测概率值进行排序,得到目标结果。
34.第三方面,本技术还提供了一种计算机设备,该计算机设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述任意一个实施例中的方法的步骤。
35.第四方面,本技术还提供了一种计算机可读存储介质,该计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任意一个实施例中的方法的步骤。
36.第五方面,本技术还提供了一种计算机程序产品,该计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任意一个实施例中的方法的步骤。
37.上述通讯录方法、装置、设备、存储介质和程序产品,首先接收待查询名称,这样可以获取用户需要进行查询的内容,然后查询与待查询名称对应的查询结果,其中查询结果可以是与待查询名称重名的多个字段,获取与查询结果对应的日志数据,即查询结果中每一字段对应的日志数据,根据日志数据进行预测得到查询结果中每一字段的预测概率值,最后对查询结果中每一字段的预测概率值进行排序,就可以得到目标结果,在目标结果中预测概率值最高的字段将会被排在最前面,而这些是用户真正关心的,这样可以进行对待查询名称进行准确定位。
附图说明
38.图1为一个实施例中通讯录查询方法的应用环境图;
39.图2为一个实施例中通讯录查询方法的流程示意图;
40.图3为一个实施例中预先生成的矫正清单示意图;
41.图4为另一个实施例中通讯录查询的整体流程示意图;
42.图5为一个实施例中通讯录查询装置的结构框图;
43.图6为一个实施例中计算机设备的内部结构图。
具体实施方式
44.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
45.本技术实施例提供的通讯录查询方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。例如在通讯录查询场景下,服务器104接收终端102发送的待查询名称,该待查询名称可以是姓名等等,然后服务器104根据查询名称进行查询获得查询名称对应的查询结果;获取与查询结果对应的日志数据,并根据日志数据进行预测得到查询结果中每一字段的预测概率值;最后,根据查询结果中每一字段的预测概率值进行排序,得到目标结果,并将目标结果发送至终端102以实现对待查询名称进行准确定位。
46.其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
47.在一个实施例中,如图2所示,提供了一种通讯录查询方法,以该方法应用于图1中的服务器104为例进行说明,包括以下步骤:
48.s202,接收待查询名称。
49.其中,待查询名称是指用户需要进行查询的内容,在通讯录查询场景下,待查询名称可以是用户需要查询的人名的全名,例如“张三”,也可以是用户需要查询的人名的姓或名。
50.具体地,服务器接收终端发送的用户需要进行查询的查询名称,即待查询名称,然后服务器就根据查询名称在通讯录中进行查询获取相应的查询结果。在本实施例中,服务器是在通讯录中进行查询。在其他实施例中,可以在其他数据库中进行查询,数据库可以是电子图书馆、学生管理系统等大型数据库。
51.在其他的实施例中,服务器在接收到待查询名称后,还可以对该待查询名称进行分字处理,以通过分字处理得到的字进行后续的查询。
52.s204,查询与待查询名称对应的查询结果。
53.其中,查询结果是根据查询名称进行查询得到的结果,该查询结果可以是所查询到的通讯录中符合待查询名称要求的姓名,其中符合要求的查询名称要求的姓名可以是一个或者多个,其中可选地,查询结果中的每一姓名可以包括其对应的部门、职位等信息,以供用户查看。
54.即该查询结果中包括多个字段,在通讯录场景下查询结果中的字段为姓名,在其他实施例中
55.具体地,服务器接收待查询名称后,会根据待查询名称进行查询获取相应的查询结果。其中可选地,当待查询名称在预先设置的通讯录中是唯一的字段时,此时查询结果包括一个字段,即准确地查询到与待查询名称相应的查询结果。其中可选地,当待查询名称在预先设置的通讯录中不是唯一的字段,那么此时查询结果中包括与待查询名称相应的多个
字段;在其他实施例中,服务器查询与待查询名称对应的查询结果时会先对待查询名称进行分词处理。
56.s206,获取与查询结果对应的日志数据,并根据日志数据进行预测得到查询结果中每一字段的预测概率值。
57.其中,日志数据是指记录通讯录中各种操作的数据,例如当有用户对通讯录进行添加或删除等操作,则服务器会将相应操作产生的数据进行记录,并以日志的形式进行保存;字段是指与待查询名称相对应的任意的名称,例如在通讯录场景下,字段为用户需要查询的人名的全名,在其他实施例中,字段可以是书名等与待查询名称相对应的任意的名称。
58.其中,预测概率值是指对查询结果中每一字段进行预测的概率值,其表示与待查询名称相符合的概率,即查询结果中每一字段可能是用户需要进行查询的概率,也就是待查询名称的概率。
59.具体地,当服务器查询到与查询名称对应的查询结果时,服务器获取与查询结果对应的日志数据,即查询结果中每一字段对应的日志数据,然后根据每一字段对应的日志数据进行预测,得到查询结果中每一字段的预测概率值。其中可选地,服务器可以通过预先训练的推荐模型进行预测并得到预测概率值。
60.在一个实施例中,例如当待查询名称为“张三”,服务器根据“张三”在通讯录中进行查询是,可能会得到几十个“张三”字段,此时需要对几十个“张三”字段对应的日志数据进行处理,得到用户想要真正查询的“张三”。在其他实施例中,可以根据日志数据中的查询历史进行预测,该查询历史中包括了历史查询的姓名以及职位等等信息,从而通过历史查询的姓名以及职位等等进行结构化处理,并计算得到概率值。其中可选地,服务器可以通过模型的方式计算概率值,在其他的实施例中,服务器可以预先配置各个字段的分值权重,进而将查询结果与历史查询进行匹配,根据匹配上的历史查询的分值权重来计算得到查询结果的预测概率值。
61.需要说明的一点是,若待查询名称在预先设置的通讯录中是唯一的字段,那么可以通过对待查询名称的查询可以准确地定位唯一查询结果,不需要对查询结果进行预测。
62.s208,根据查询结果中每一字段的预测概率值进行排序,得到目标结果。
63.其中,目标结果是对待查询名称进行查询,并对查询得到的查询结果进行预测,得到的最终根据概率预测值进行排序后的结果,其可以根据预设的规则进行排序,例如可以根据概率预测值的高低进行排序,这样可以把用户最期望的查询结果排在最前面。
64.具体地,服务器得到查询结果中每一字段的预测概率值之后,根据预设的规则对查询结果中每一字段的预测概率值进行排序,得到目标结果。在一个实施例中,服务器根据查询结果中每一字段的预测概率值进行降序排序,即根据预测概率值的高低进行排序,在其他实施例中,服务器还可以根据降序对查询结果中每一字段进行排序,具体地排序规则在此不做限定,其可以根据任意一种排序规则进行排序。
65.在一个实施例中,若用户属于领导层面,则该用户的查询名称更可能是领导层面的,相应地,服务器在根据查询结果对应的日志数据进行预测时,预测概率值最高的字段可以是某一位领导,因为日志数据中记录了每一个字段的动态信息,根据这些动态信息可以对查询结果中的每一字段进行精确预测。
66.需要说明的一点,在本实施例中是在通讯里中对查询名称进行查询,在其他实施
例中,可以在任意一个数据库中采用上述方法对待查询名称进行查询。
67.在上述实施例中,首先接收待查询名称,这样可以获取用户需要进行查询的内容,然后查询与待查询名称对应的查询结果,其中查询结果可以是与待查询名称重名的多个字段,获取与查询结果对应的日志数据,即查询结果中每一字段对应的日志数据,根据日志数据进行预测得到查询结果中每一字段的预测概率值,最后对查询结果中每一字段的预测概率值进行排序,就可以得到目标结果,在目标结果中预测概率值最高的字段将会被排在最前面,而这些是用户真正关心的,这样可以进行对待查询名称进行准确定位。
68.在一个实施例中,根据查询与待查询名称对应的查询结果,包括:对查询名称进行分词处理,得到分词短语;根据分词短语进行查询,获得相应的查询结果。
69.其中,分词短语是对查询名称进行分词处理后得到的,例如对“张三”进行分词处理,可以得到的分词短语为“张”和“三”。
70.具体地,在查询与查询名称对应的查询结果之前,服务器还需要对查询名称进行分词处理,得到分词短语。其中可选地,可以通过全分词模式、精确分词模式等对待查询名称进行分词处理。服务器得到分词处理后的分词短语后,根据分词短语进行查询,获得与查询结果相应的查询结果。
71.在其他实施例中,可以通过分词器进行分词,例如ik,jieba等流行的中文分词器进行分词。
72.在一个实施例中,由于在对通讯录查询时,用户习惯可能只输入名不输入姓进行查询,人名这种没有语义情况的更适合使用solr/es开源搜索引擎自带的标准分词器。
73.在上述实施例中,通过对待查询名称进行分词处理,得到分词短语,并根据分词短语进行查询,这样可以提高引擎的搜索效率,此外若待查询名称中出现错误,这样更够进行更方便的纠正。
74.在一个实施例中,根据根据分词短语进行查询,获得相应的查询结果,还包括:当未获得查询结果时,对分词短语进行拼音矫正。
75.其中,拼音矫正是指对分词短语的拼音进行矫正,例如将前鼻音in矫正为后鼻音ing。
76.具体地,当服务器根据分词短语进行搜索并获得查询结果时,说明用户在键入待查询名称时,出现了拼音错误,例如“张三”拼成了“张山”,那么此时就需要对分词短语进行拼音矫正。其中可选地,拼音矫正的方式可以是多音字扩充,可以是根据矫正清单对拼写错误的分词短语进行近音字矫正。
77.在其中一个实施例中,可以预先设定一个阈值,当查询结果中的字段小于预设的阈值时,此时也需要对分词短语进行拼音矫正。
78.在上述实施例中,通过在服务器根据分词短语查询未获得查询结果时,对分词短语进行拼音矫正,能够避免因为待查询结果的拼写错误而导致查询不到相应的查询结果。
79.在一个实施例中,对分词短语进行拼音矫正,包括:当分词短语中包括多音字时,对多音字进行扩充;当分词短语中包括近音字时,使用预先生成的矫正清单进行矫正。
80.其中,矫正清单是根据近音字生成的清单,其中包括发音相近的韵母或声母,其可以根据发音相近的韵母或者声母对分词短语进行矫正,具体参考图3所示,图3为一个实施例中预先生成的矫正清单示意图。
81.具体地,服务器会根据分词的类型进行矫正,当分词短语中包括多音字时,会对多音字进行扩充,其中可选地,可以通过hanlp,pinyin4j等拼音开源包对多音字进行矫正。在其中一个实施例中,采用pinyin4j开源包对多音字进行矫正,这是因为当待查询名称为人名时,由于人名按之前分析是一个个字建立索引和进行检索,故pinyin4j比较适合这种场景。
82.具体地,当分词短语中包括近音字时,根据预先生成的矫正清单对近音字进行矫正,例如对于韵母en,in的情况,也发起eng,ing的检索;声母n,m,l,r.互相之间音也比较近,也可发起矫正后的搜索,继续结合图3所示,当对分词短语进行拼音矫正时,矫正清单每行中的一个声母或韵母出现时,需用该行对应其他的声母或韵母进行矫正。
83.在上述实施例中,通过分别对多音字和近音字采用不用的方式进行矫正,能够对分词短语进行准确地矫正。
84.在一个实施例中,获取与查询结果对应的日志数据,并根据日志数据进行预测得到查询结果中每一字段的预测概率值包括:对日志数据进行结构化处理,得到结构化后的日志数据;对结构化后的日志数据预测,得到查询结构中每一字段的预测概率值。
85.其中,结构化处理是指按照一定结构对数据进行处理,能够简化数据解析,使得数据的后续处理、分析等变得更加方便高效;结构化的日志是指对日志进行结构化操作后的日志,结构化的日志能够更加方便的进行预测。
86.具体地,服务器会对查询结构对应的日志进行结构化处理,得到结构化后的日志数据,这样可以使得预测概率值更加准确,因为结构化日志中包括了各种各样的信息,例如开发部门中的版本管理员可能较多联系产品部,开发人员可能联系较多对接开发部门人员,有的人可能身兼数,以及动态信息等等,这些都能从日志中体现。其中可选地,对日志数据的结构化操作可以通过表单设计实现,也可以通过grok等结构化的工具进行实现。
87.具体地,服务器采用结构化后的日志进行预测,其中可选地,可以通过预先训练的推荐模型对查询结果对应的结构化后的日志数据进行预测,得到查询结构中每一字段的预测概率值。
88.在其中一个实施例中,在对通讯录的数据库进行设计时,已经做好了相应的结构化设计,因此从通讯录中查询得到的结果是结构化日志数据,此时直接对结构化日志数据进行预测,不需要再进行结构化处理。
89.在其他实施例中,虽然在对通讯录的设计时,已经做好了相应的结构化设计,从通讯录中查询得到的结果也是结构化日志数据,但是其结构可能不符合对其进行预测的结构,因此此时需要对从通讯录中查询得到的结构化日志数据进行处理,得到处理后的结构化日志数据,再对处理后的结构化日志数据进行预测。
90.在一个实施例中,通讯录存储数据的数据库中同时还与其他系统的数据相连接,例如自动化办公系统等,这样日志数据中还包括用户更多的行为信息,这样能够使得对结构化日志数据进行预测得到的预测概率值更加准确,因为其中还包括了用户其他维度的信息。
91.在上述实施例中,通过对待查询结果对应的日志数据进行结构化数据,得到结构化后的日志数据,使用结构化的日主数据进行预测可以使得预测概率值更加准确
92.在一个实施例中,对所述结构化后的日志数据预测,得到查询结构中每一字段的
预测概率值是通过预先训练的推荐模型得到的;其中所述推荐模型的训练方式,包括:读取样本数据,所述样本数据携带标注的标签;将所述样本数据输入至初始模型中得到待处理特征;根据所述标签以及所述待处理特征计算得到目标损失函数;根据所述目标损失函数对所述初始模型进行优化以得到所述推荐模型。
93.其中,样本数据是指预先准备的用于模型训练的数据,其可以从现实世界中获取的结构化数据,也可以是按照设定规则生成的结构化数据,这样就可以获取大量的样本数据,这样可以使得训练完成的模型更加精确;其中,标签是指是对样本数据进行标注得到的。
94.其中,初始模型是任意一个可以进行分类预测的模型,其中可选地,初始模型可以是dnn全连结神经网络(一种深度学习模型);待处理特征是指通过初始模型对样本数据进预测得到的预测概率值,该预测概率值不是真实的预测概率值,是在对初始模型训练过程中模型输出的预测概率值,在本实施例中称为待处理特征。
95.其中,目标损失函数是指用于指导初始模型进行优化的,其中可选地可以通过最小化目标损失函数对初始模型进行优化。
96.具体地,首先读取样本数据,其中样本数据携带标注的标签,该标签用于计算目标损失函数;然后,将样本数据输入至初始模型中,通过初始模型计算得到待处理特征;根据标签和待处理特征可以计算得到目标损失函数,具体地,可以将相同标签对应的待处理特征之间的差距作为目标损失函数。在其他实施例中,可以采用交叉熵损失函数来定义损失函数,通过交叉熵损失函数、标签以及待处理特征可以计算得到目标损失函数,并以此作为优化条件不断迭代优化初始模型,直至损失函数满足要求,例如达到预设阈值,得到训练完成推荐模型。其中可选地,服务器可以根据目标损失函数得到模型参数的优化方向及优化梯度对初始模型进行优化。在其他实施例中,可以通过初始模型反向传播使用adam梯度下降法来更新初始模型的参数,以达到最小化目标损失函数的目的,即让训练完毕的推荐模型的执行引擎越来越贴近于标注的执行引擎。
97.在上述实施例中,通过将样本数据输入至初始模型中得到待处理特征,并根据样本标签以及待处理特征得到目标损失函数,最后根据目标损失函数可以指导模型进行优化以得到推荐模型。
98.在一个实施例中,将样本数据输入至初始模型中得到待处理特征,包括:对样本数据进行特征提取,获得第一特征向量和第二特征向量;将第一特征向量与第二特征向量进行内积得到第三特征向量;根据第二特征向量计算得到第四特征向量;根据第三特征向量与第四特征向量计算得到待处理特征。
99.其中,第一特征向量和第二特征向量是对样本数据进行特征提取后得到的,第一特征向量为由连续性特征组成的向量,第二特征向量为由离散型特征组成的向量;第三特征向量是通过将第一特征向量和第二特征向量进行求和得到的;第四特征向量是基于第二特征向量进行处理后得到的。
100.具体地,将样本数据输入至初始模型中,初始模型对样本数据进行特征提取,获得一个全部由连续型特征组成的第一特征向量,可以用feat_vals表示以及一个全部由离散型特征组成的第二特征向量,可以用feat_ids。然后,将第一特征向量和第二特征向量进行求和获得第三特征向量,具体地,在对第一特征向量和第二特征向量进行求和之前,分别对
第二特征向量和对第一特征向量进行降维,并对降维后第二特征向量进行内积,然后将降维后的第一特征向量和进行降维以及内积后的第二特征向量进行求和,得到第三特征向量,记为y_v,这样可以提升模型的泛化能力。具体地,将第三特征向量拼接为一个隐含层,作为下一步的输入,通过激活函数,得到第四特征向量,记为y_deep。最后,根据第三特征向量和第四特征向量进行计算得到待处理特征,在其他实施例中,可以将y_v和y_deep求和后导入tf.sigmoid(该函数将结果压缩到0和1之间,输出分类概率)即可得到待处理特征。
101.在上述实施例中,通过初始模型对样本数据进行处理,可以得到待处理特征,在后续处理过程中,可以通过待处理特征以及标签得到目标损失函数,并通过目标损失函数指导模型进行优化,最终得到推荐模型。
102.在一个实施例中,通讯录查询流程如图4所示,图4为一个实施例中通讯录查询的整体流程示意图。
103.其中,通讯录中的用户(即字段)的个人信息是通过本人或者hr录入到系统的数据库中,包括用户自己的姓名,姓名的拼音,所属部门,职务层级,职务专业(如开发,测试,管理等岗),手机,座机。由于要在通讯录搜索人名,则以上信息需要在solr/es之类的开源搜索引擎索引库中建立索引,以便进行搜索。当用户在通讯录系统发起查询,即输入待查询名称,多数情况下为只是输入人名,故对于这种情况,也可以通过增加部门,职务等信息进行筛选,或者也可输入手机或座机号码进行定位。从索引库返回结果后,用户对于所期待的结果进行点击,跳转至被搜索用户的界面。点击日志也需要被记录,存放在hadoop之类的大数据系统中,以便进行用户行为分析。
104.由于人名没有语义,用户相对容易输入错别字,当没有获取相应的查询结果时,(或者结果小于预设阈值时)。对于人名的特性,纠错主要通过拼音,采用两方面措施:针对多音字扩充,业界比较流行的拼音开源包有hanlp,pinyin4j等,由于人名按之前分析是一个个字建立索引和进行检索,故pinyin4j比较适合这种场景;针对近音字矫正,比方前后鼻音矫正,即对于韵母en,in的情况,也发起eng,ing的检索;声母n,m,l,r.互相之间音也比较近,也可发起矫正后的搜索。图3是互相矫正的拼音清单。发起搜索纠错时,当每行中的一个出现时,需用该行其他的声母或韵母替换。
105.无论是直接查询得到查询结果,还是纠错后查到查询结果,考虑到重名的情况以及纠错后可能近似结果较多,需要对召回考虑排序方法。不同的人可能偏好不一样。在实施例中,采取结合推荐对于搜索结果进行排序得到目标结果。例如,领导层级的人要联系对方在通讯录进行搜索时,更可能点击结果页的领导而非普通员工。普通员工反之,例如同一个部门之间可能联系较多,另外部门交叉的时候,不同的人员由于其工作安排可能联系较多的部门不同,比方开发部门中的版本管理员可能较多联系产品部,开发人员可能联系较多对接开发部门人员,有的人可能身兼数职,等等,这些都能从日志中体现。查询结果对应的日志数据需要结构化,以便作为推荐模型的特征输入,本实施例中推荐模型的具体步骤如下:
106.1、对日志数据进行结构化处理,得到结构化后的日志数据,经结构化后的日志数据作为推荐模型的输入,分别提取一个全部由连续型特征组成的向量feat_vals,以及提取一个全部由离散型特征组成的向量feat_ids,针对由离散型特征组成的向量feat_ids,这样形成了一个one-hot稀疏矩阵,在模型中用embedding来降维度得到稠密向量,以此用来
解决one-hot以后带来的稀疏矩阵问题。同时减少模型训练参数,提升训练速度。
107.2、通过embedding后的稠密向量,由连续型特征组成的向量feat_vals进行内积来进行特征的二阶段特征组合。
108.embeddings=tf.nn.embedding_lookup(embeddings_v,feat_ids)
109.embeddings=tf.multiply(embeddings,feat_vals)
110.这样做的目的是提升模型的泛化能力。预测一个待排序的搜索结果的时候,可能出现2个之前没训练过的特征值,但是也许通过embedding后的特征组合以前训练到过,依然对预测结果是有效的。对所有组合特征求和以后,作为二阶特征组合的输出结果,记做y_v。这里就是模型需要学习的低价特征组合。同时将组合后的特征向量(concatenate)拼接为一个隐含层,作为后面一步的输入。
111.3、上一步隐含层输入到三层全连接带relu激活函数(线性转为非线性)的神经网络(其中隐藏层的神经元个数通过自动参数调优来获得),因为是二分类问题,因此最后一层的输出只有一个神经元,也就是堆叠全连接层,即多层mlp。即通过推荐模型得到更加高阶的特征组合。这里就是默许需要学习的高阶特征组合。经过全连接层后,得到的结果记为y_deep。
112.4、将第2步结果y_v和第3部结果y_deep求和后导入tf.sigmoid(该函数将结果压缩到0和1之间,输出分类概率)即可得到最后的预测概率值。即这里的预测概率同时考虑到了低价特征组合,也考虑到了高阶特征组合,进一步提升模型的泛化能力。
113.5、根据预测概率值,对查询结果中每一字段进行排序,得到目标结果。例如,当搜索用户是领导时,目标结构中排序更靠前的是另一位与该领导所在部门有业务交叉部门的领导。
114.在上述实施例中,针对在没有获得查询结果的情况下,分别采用多音字扩充以及通过预先生成的校正清单进行评价矫正,及时对存在拼音错误的待查询名称进行矫正;其次,通过结构化日志数据进行预测,这是由于结构化日志数据中包括了查询结果中每一字段的特征以及行为信息等,这样通过推荐模型可以对查询结果中每一字段进行精确预测得到预测概率值,然后根据预测概率值进行排序,得到目标结果,目标结果中会将用户期望查询的字段排在前面,这样实现了对查询名称的精准定位;最后,本实施例从数据源头到后续系统健壮性发展均有充分考虑,形成完整的生命周期,对于应用的特性有完整和针对性的应对,不仅周全而且功能强大具有很好的使用价值。
115.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
116.基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的通讯录查询方法的通讯录查询装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个通讯录查询装置实施例中的具体限定可以参见
上文中对于通讯录查询方法的限定,在此不再赘述。
117.在一个实施例中,如图5所示,提供了一种通讯录查询装置,包括:获取模块100、查询模块200、预测模块300和排序模块400,其中:
118.获取模块100,用于接收查询名称。
119.查询模块200,用于查询与待查询名称对应的查询结果。
120.预测模块300,用于获取与查询结果对应的日志数据,并根据日志数据进行预测得到查询结果中每一字段的预测概率值。
121.排序模块400,用于根据查询结果中每一字段的预测概率值进行排序,得到目标结果。
122.在一个实施例中,上述查询模块200,包括:
123.分词单元,用于对查询名称进行分词处理,得到分词短语。
124.分词查询单元,用于根据分词短语进行查询,获得相应的查询结果。
125.在一个实施例中,上述查询模块200,还包括:
126.拼音矫正单元,用于当未获得查询结果时,对分词短语进行拼音矫正。
127.在一个实施例中,上述拼音矫正单元,包括:
128.多音字矫正子单元,用于当分词短语中包括多音字时,对多音字进行扩充。
129.近音字矫正子单元,用于当分词短语中包括近音字时,使用预先生成的矫正清单进行矫正。
130.在一个实施例中,上述预测模块300,包括:
131.结构化处理单元,用于对日志数据进行结构化处理,得到结构化后的日志数据。
132.结构化预测单元,用于对结构化后的日志数据预测,得到查询结构中每一字段的预测概率值。
133.在一个实施例中,结构化预测单元,包括:
134.样本读取子单元,用于读取样本数据,样本数据携带标注的标签;
135.特征处理子单元,用于将样本数据输入至初始模型中得到待处理特征。
136.损失函数计算子单元,用于根据标签以及待处理特征计算得到目标损失函数。
137.优化子单元,用于根据目标损失函数对初始模型进行优化以得到推荐模型。
138.在一个实施例中,特征处理子单元,还包括:
139.特征提取孙单元,用于对样本数据进行特征提取,获得第一特征向量和第二特征向量。
140.第三特征计算孙单元,用于将第一特征向量与第二特征向量进行求和得到第三特征向量。
141.第四特征计算孙单元,用于根据第二特征向量计算得到第四特征向量。
142.待处理特征计算孙单元,用于根据第三特征向量与第四特征向量计算得到待处理特征。
143.上述通讯录查询装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
144.在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结
构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储待查询名称数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种通讯录查询方法。
145.本领域技术人员可以理解,图6中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
146.在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:接收待查询名称;查询与待查询名称对应的查询结果;获取与查询结果对应的日志数据,并根据日志数据进行预测得到查询结果中每一字段的预测概率值;根据查询结果中每一字段的预测概率值进行排序,得到目标结果。
147.在一个实施例中,处理器执行计算机程序时所实现的根据查询与待查询名称对应的查询结果,包括:对查询名称进行分词处理,得到分词短语;根据分词短语进行查询,获得相应的查询结果。
148.在一个实施例中,处理器执行计算机程序时所实现的根据根据分词短语进行查询,获得相应的查询结果,还包括:当未获得查询结果时,对分词短语进行拼音矫正。
149.在一个实施例中,处理器执行计算机程序时所实现的对分词短语进行拼音矫正,包括:当分词短语中包括多音字时,对多音字进行扩充;当分词短语中包括近音字时,使用预先生成的矫正清单进行矫正。
150.在一个实施例中,处理器执行计算机程序时所实现的获取与查询结果对应的日志数据,并根据日志数据进行预测得到查询结果中每一字段的预测概率值包括:对日志数据进行结构化处理,得到结构化后的日志数据;对结构化后的日志数据预测,得到查询结构中每一字段的预测概率值。
151.在一个实施例中,处理器执行计算机程序时所实现的对结构化后的日志数据预测,得到查询结构中每一字段的预测概率值是通过预先训练的推荐模型得到的;其中推荐模型的训练方式,包括:读取样本数据,样本数据携带标注的标签;将样本数据输入至初始模型中得到待处理特征;根据标签以及待处理特征计算得到目标损失函数;根据目标损失函数对初始模型进行优化以得到推荐模型。
152.在一个实施例中,处理器执行计算机程序时所实现的将样本数据输入至初始模型中得到待处理特征,包括:对样本数据进行特征提取,获得第一特征向量和第二特征向量;将第一特征向量与第二特征向量进行求和得到第三特征向量;根据第二特征向量计算得到第四特征向量;根据第三特征向量与第四特征向量计算得到待处理特征。
153.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收待查询名称;查询与待查询名称对应的查询结果;获取与查询结果对应的日志数据,并根据日志数据进行预测得到查询结果中每一字段的预测概率值;根据查询结果中每一字段的预测概率值进行排序,得到目标结果。
154.在一个实施例中,计算机程序被处理器执行时所实现的根据查询与待查询名称对应的查询结果,包括:对查询名称进行分词处理,得到分词短语;根据分词短语进行查询,获得相应的查询结果。
155.在一个实施例中,计算机程序被处理器执行时所实现的根据分词短语进行查询,获得相应的查询结果,还包括:当未获得查询结果时,对分词短语进行拼音矫正。
156.在一个实施例中,计算机程序被处理器执行时所实现的对分词短语进行拼音矫正,包括:当分词短语中包括多音字时,对多音字进行扩充;当分词短语中包括近音字时,使用预先生成的矫正清单进行矫正。
157.在一个实施例中,计算机程序被处理器执行时所实现的获取与查询结果对应的日志数据,并根据日志数据进行预测得到查询结果中每一字段的预测概率值包括:对日志数据进行结构化处理,得到结构化后的日志数据;对结构化后的日志数据预测,得到查询结构中每一字段的预测概率值。
158.在一个实施例中,计算机程序被处理器执行时所实现的对结构化后的日志数据预测,得到查询结构中每一字段的预测概率值是通过预先训练的推荐模型得到的;其中推荐模型的训练方式,包括:读取样本数据,样本数据携带标注的标签;将样本数据输入至初始模型中得到待处理特征;根据标签以及待处理特征计算得到目标损失函数;根据目标损失函数对初始模型进行优化以得到推荐模型。
159.在一个实施例中,计算机程序被处理器执行时所实现的将样本数据输入至初始模型中得到待处理特征,包括:对样本数据进行特征提取,获得第一特征向量和第二特征向量;将第一特征向量与第二特征向量进行求和得到第三特征向量;根据第二特征向量计算得到第四特征向量;根据第三特征向量与第四特征向量计算得到待处理特征。
160.在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:接收待查询名称;查询与待查询名称对应的查询结果;获取与查询结果对应的日志数据,并根据日志数据进行预测得到查询结果中每一字段的预测概率值;根据查询结果中每一字段的预测概率值进行排序,得到目标结果。
161.在一个实施例中,计算机程序被处理器执行时所实现的根据查询与待查询名称对应的查询结果,包括:对查询名称进行分词处理,得到分词短语;根据分词短语进行查询,获得相应的查询结果。
162.在一个实施例中,计算机程序被处理器执行时所实现的根据分词短语进行查询,获得相应的查询结果,还包括:当未获得查询结果时,对分词短语进行拼音矫正。
163.在一个实施例中,计算机程序被处理器执行时所实现的对分词短语进行拼音矫正,包括:当分词短语中包括多音字时,对多音字进行扩充;当分词短语中包括近音字时,使用预先生成的矫正清单进行矫正。
164.在一个实施例中,计算机程序被处理器执行时所实现的获取与查询结果对应的日志数据,并根据日志数据进行预测得到查询结果中每一字段的预测概率值包括:对日志数据进行结构化处理,得到结构化后的日志数据;对结构化后的日志数据预测,得到查询结构中每一字段的预测概率值。
165.在一个实施例中,计算机程序被处理器执行时所实现的对结构化后的日志数据预测,得到查询结构中每一字段的预测概率值是通过预先训练的推荐模型得到的;其中推荐
模型的训练方式,包括:读取样本数据,样本数据携带标注的标签;将样本数据输入至初始模型中得到待处理特征;根据标签以及待处理特征计算得到目标损失函数;根据目标损失函数对初始模型进行优化以得到推荐模型。
166.在一个实施例中,计算机程序被处理器执行时所实现的将样本数据输入至初始模型中得到待处理特征,包括:对样本数据进行特征提取,获得第一特征向量和第二特征向量;将第一特征向量与第二特征向量进行求和得到第三特征向量;根据第二特征向量计算得到第四特征向量;根据第三特征向量与第四特征向量计算得到待处理特征。
167.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
168.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
169.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1