CN113595874B - 即时通讯群组的搜索方法、装置、电子设备和存储介质 - Google Patents
即时通讯群组的搜索方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN113595874B CN113595874B CN202110777972.1A CN202110777972A CN113595874B CN 113595874 B CN113595874 B CN 113595874B CN 202110777972 A CN202110777972 A CN 202110777972A CN 113595874 B CN113595874 B CN 113595874B
- Authority
- CN
- China
- Prior art keywords
- group
- target
- data
- name
- target group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/338—Presentation of query results
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1813—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/52—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail for supporting social networking services
Abstract
本公开提供了一种即时通讯群组的搜索方法、装置、电子设备和存储介质,涉及人工智能领域,尤其涉及深度学习领域、自然语言处理领域和智能搜索领域。具体实现方案为:获取搜索请求中的搜索关键词,并根据搜索关键词进行群组搜索,获得搜索到的多个目标群组;获取每个目标群组的群组数据;根据每个目标群组的群组数据和预设的群组点击率预估模型,获得每个目标群组的点击率预测得分;根据每个目标群组的点击率预测得分,对多个目标群组进行排序,并根据排序结果对多个目标群组进行展示。本公开能够快速、精准的定位用户想寻找的群组,提供高了搜索群组的效率。
Description
技术领域
本公开涉及人工智能领域,尤其涉及深度学习领域、自然语言处理领域和智能搜索领域,特别的涉及一种即时通讯群组的搜索方法、装置、电子设备和存储介质。
背景技术
即时通讯应用软件,是一种面向终端用户的网络沟通工具,用户可以通过安装即时通讯客户端或网页端进行两人或多人之间的实时沟通。在需要进行多人沟通的场景下,可使用即时通讯软件的群组功能。
随着即时通讯软件的使用,用户可能创建众多的群组来进行沟通,当需要使用某特定群组进行沟通时,通常是利用关键词检索并快速切换到跟自己当前工作相关的群组。但是,短时间内在大量群组描述类似的情况下,用户往往无法找到精准的描述定位自己的群组,导致搜索群组的效率低下。
发明内容
本公开提供了一种即时通讯群组的搜索方法、装置、电子设备以及存储介质,可应用于即时通讯软件的群组搜索场景。
根据本公开的第一方面,提供了一种即时通讯群组的搜索方法,包括:
获取搜索请求中的搜索关键词,并根据所述搜索关键词进行群组搜索,获得搜索到的多个目标群组;
获取每个所述目标群组的群组数据;
根据每个所述目标群组的群组数据和预设的群组点击率预估模型,获得每个所述目标群组的点击率预测得分;
根据每个所述目标群组的点击率预测得分,对所述多个目标群组进行排序,并根据排序结果对所述多个目标群组进行展示。
根据本公开的第二方面,提供了一种即时通讯群组的搜索装置,包括:
搜索模块,用于获取搜索请求中的搜索关键词,并根据所述搜索关键词进行群组搜索,获得搜索到的多个目标群组;
获取模块,用于获取每个所述目标群组的群组数据;
预测模块,用于根据每个所述目标群组的群组数据和预设的群组点击率预估模型,获得每个所述目标群组的点击率预测得分;
排序展示模块,用于根据每个所述目标群组的点击率预测得分,对所述多个目标群组进行排序,并根据排序结果对所述多个目标群组进行展示。
根据本公开的第三方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述第一方面所述的即时通讯群组的搜索方法。
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行前述第一方面所述的即时通讯群组的搜索方法。
根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据前述第一方面所述的即时通讯群组的搜索方法。
根据本公开的技术方案,可以通过群组数据,利用群组点击率预估的方式帮助用户通过输入少量关键词就能够快速、精准的定位自己想寻找的群组,提供高了搜索群组的效率。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1为本公开实施例所提供的一种即时通讯群组的搜索方法的流程图;
图2为本公开实施例所提供的另一种即时通讯群组的搜索方法的流程图;
图3为本公开实施例所提供的群组点击率预估模型的结构示意图;
图4为本公开实施例所提供的基于训练数据处理结构变动包装方式的线上服务的数据包装器的处理流程示例图;
图5为本公开实施例所提供的一种即时通讯群组的搜索装置的结构框图;
图6是用来实现本公开实施例的即时通讯群组的搜索方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
首先,需要说明的是,本公开的技术方案中,所涉及的用户个人信息(如姓名等个人隐私数据)的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。另外,本公开中所涉及的用户个人信息是在用户知情且同意的情况下获取,存储和应用的。
值得注意的是,在企业或组织内部都需要拥有员工之间快速高效的线上沟通方式,普通的即时通讯系统难以满足需求,所以近几年,专门基于企业的即时通讯和办公系统开始在市场上萌芽,这类互联网产品,大大方便了企业内部的相关事务处理以及加快了企业员工之间的沟通协作速度。
对于大型企业或者组织的内部通讯工具来说,企业或组织内部的成员由于工作、生产、研发的需求,时常需要在内部通讯软件创建具有某个主题的沟通小组。由于组织或者企业内个人工作节奏快速且对跟不同人合作的高度依赖性质,企业内同一个员工往往拥有很多类似描述的工作群组,且企业员工需要通过关键词检索快速切换到跟自己当前工作相关的群组。但是,短时间内在大量群组描述类似的情况下,用户往往无法找到精准的描述定位自己的群组,导致搜索群组的效率低下。
为此,本公开提供了一种即时通讯群组的搜索方法、装置、电子设备以及存储介质。具体地,下面参考附图描述本公开实施例的即时通讯群组的搜索方法、装置、电子设备以及存储介质。
图1为本公开实施例所提供的一种即时通讯群组的搜索方法的流程图。本实施例可适用于各种即时通讯软件中提供群组搜索功能,尤其适用于企业级即时通讯群组搜索场景。企业级即时通讯相比于其他生活、娱乐领域的个人即时通讯软件来说,由于企业组织架构和沟通需求的差异,是的用户的群组名称、群组成员分布、以及搜索情况有其特殊性。
需要说明的是,本实施例方法可以由即时通讯群组的搜索装置来执行,该装置可以采用软件和/或硬件的方式实现,并可集成在服务器或者用户终端等电子设备中。
如图1所示,本实施例提供的一种即时通讯群组的搜索方法可以包括如下步骤。
在步骤101中,获取搜索请求中的搜索关键词,并根据搜索关键词进行群组搜索,获得搜索到的多个目标群组。
其中,在本公开实施例中,搜索请求是指用户在即时通讯软件中对群组进行搜索的请求,用户可输入文本内容作为搜索关键词进行群组搜索。其中,搜索关键词可以是群组的名称,和/或,群组内部成员的名称。目标群组是指与搜索关键词匹配的群组。
举例而言,假设即时通讯软件为用户提供群组搜索接口,用户通过该接口输入搜索关键词,该搜索关键词可以是群组名称和/或群组内部成员的名称,并确认搜索以提交搜索请求,该搜索请求中携带由用户输入的搜索关键词。通过该搜索接口获取到用户提交的搜索请求,并从该搜索请求中提取出搜索关键词。可以基于搜索关键词命中检索或拼音检索,通过开源搜索引擎工具对群组集合进行搜索,并根据命中情况以及TF-IDF(TermFrequency-Inverse Document Frequency,词频-逆文档频率)得分进行搜索结果召回,一般会召回多个搜索结果,即多个目标群组。
在步骤102中,获取每个目标群组的群组数据。
在本公开实施例中,该群组数据可包括下述至少一项:搜索请求的发起帐号与目标群组之间的交互数据;搜索关键词与目标群组名称之间的词面相关性得分;搜索关键词命中的目标群组的名称文本信息;目标群组的属性信息。
其中,上述搜索请求的发起帐号可理解为该搜索请求的输入者,例如,用户A通过搜索接口输入了搜索关键词以请求群组的搜索,则该用户A对应的帐号即为该搜索请求的发起帐号。
需要说明的是,由于群组数据内容的不同,则群组数据的获取方式也会不同。下面将给出不同示例以描述获取群组数据的不同实现方式:
示例一
针对搜索请求的发起帐号与目标群组之间的交互数据的获取方式,在获得搜索到的多个目标群组之后,针对每个目标群组,可根据目标群组的标识从数据库中找出该目标群组的聊天内容信息,并根据发起帐号从该该目标群组的聊天内容信息中找出该发起帐号在该目标群组内的聊天内容,即得到搜索请求的发起帐号与目标群组之间的交互数据。
示例二
针对搜索关键词与目标群组名称之间的词面相关性得分的获取方式,在获得搜索到的多个目标群组之后,针对每个目标群组,基于字粒度生成搜索关键词的第一向量表示和目标群组的名称的第二向量表示,并根据第一向量表示和第二向量表示,计算搜索关键词与目标群组的名称之间的相似度;根据相似度,确定搜索关键词与目标群组名称之间的词面相关性得分。在本实施例中,搜索关键词的第一向量表示和目标群组名称的第二向量表示可基于字粒度来生成。例如,基于字粒度生成搜索关键词中每个字的向量表示,并将每个字的向量表示进行叠加,以得到该搜索关键词的第一向量表示;目标群组名称的第二向量表示的生成方式与搜索关键词的向量表示的生成方式类似,先基于字粒度生成目标群组名称中每个字的向量表示,并将每个字的向量表示进行叠加,以得到该目标群组名称的第二向量表示。
示例三
针对搜索关键词命中的目标群组的名称文本信息的获取方式,在获得搜索到的多个目标群组之后,针对每个目标群组,在计算搜索关键词与目标群组的词面相关性得分时,可获取搜索关键词命中的目标群组的名称文本信息。其中,可在对命中的字段进行字粒度的分词方式(例如,流程->(流,程)),这样做的目的是用户通常在做群组或者通讯录这一类短搜索关键词query搜索的时候往往会出现拼写或者多音字上的误召回,此时可通过字粒度的分词方式,可以比较灵活的表达这个文本部分命中、全命中的特点,便于更好的排序。而词粒度的分词方法一是不太稳定,二是对于即使有一个字不一样的两个词,也会有两个完全不同的向量,不太符合短query场景,具体方法是:对于每个字映射到一个向量上,然后通过向量的叠加来整体表示命中字段(例如,(流->[0,0.2,0.3],程->[0.1,0.2,0.3])->(流程->[0.1,0.4,0.6])。当然向量的叠加方式可以有不同的变种,比如基于不同的群组可以有一个叠加的权重。
需要说明的是,在本公开实施例中,该属性信息可包括下述至少一项:群组创立时间信息、群组上次有人发言的时间信息、群组成员数量、群组内与搜索请求的发起帐号同部门在群组总人数中所占的比重、搜索关键词命中群组名称长度在群组名称总长度中所占的比重、搜索关键词命中群组内成员个数在群组成员总个数中所占的比重。
值得注意的是,目标群组的群组数据主要分为文本类数据、数值类数据和时间类数据。例如,文本类数据可包括:搜索请求的发起帐号与目标群组之间的交互数据、搜索关键词命中的目标群组的名称文本信息、目标群组名称、目标群组内部成员的名称等。数值类数据可包括:搜索关键词与目标群组名称之间的词面相关性得分、群组成员数量、群组内与搜索请求的发起帐号同部门在群组总人数中所占的比重、搜索关键词命中群组名称长度在群组名称总长度中所占的比重、搜索关键词命中群组内成员个数在群组成员总个数中所占的比重等。时间类数据可包括:群组创立时间信息和群组上次有人发言的时间信息等。
在步骤103中,根据每个目标群组的群组数据和预设的群组点击率预估模型,获得每个目标群组的点击率预测得分。
其中,该群组点击率预估模型可以是预先建立并已经过训练的。群组点击率预估模型已经学习得到群组数据与群组在搜索请求下是否被点击的映射关系。
可选地,利用群组点击率预估模型对每个目标群组的群组数据进行预测,以确定每个目标群组在搜索请求下是否被点击。获得群组点击率预估模型的输出结果,该输出结果即为目标群组的点击率预测得分。也就是说,可利用群组点击率预估模型对用户是否点击此群组进行预测并给出相应的打分。
需要说明的是,由于本实施例通过从多个维度来获得目标群组的群组数据,即将从多个维度获得的群组数据作为群组点击率预估模型的输入,可以使得群组点击率预估模型的整体输入特征更加丰富,从而可以帮助用户通过输入少量关键词就能够快速、精准的定位自己想寻找的群组。
在步骤104中,根据每个目标群组的点击率预测得分,对多个目标群组进行排序,并根据排序结果对多个目标群组进行展示。
可选地,根据每个目标群组的点击率预测得分,按照从大到小的顺序对多个目标群组进行排序,例如,将点击率预测得分最高的目标群组排在第一位,将点击率预测得分最低的目标群组排在最后一位,根据排序结果将多个目标群组展示给用户。
根据本公开实施例的即时通讯群组的搜索方法,可获取搜索请求中的搜索关键词,并根据搜索关键词进行群组搜索,获得搜索到的多个目标群组,并获取每个目标群组的群组数据,根据每个目标群组的群组数据和预设的群组点击率预估模型,以对每个目标群组在搜索请求下是否被点击进行预测,从而可以获得每个目标群组的点击率预测得分,以及根据每个目标群组的点击率预测得分,对多个目标群组进行排序,并根据排序结果对多个目标群组进行展示。由此可见,本公开可以通过群组数据,利用群组点击率预估的方式帮助用户通过输入少量关键词就能够快速、精准的定位自己想寻找的群组,提供高了搜索群组的效率。
图2为本公开实施例所提供的另一种即时通讯群组的搜索方法的流程图。如图2所示,本实施例的即时通讯群组的搜索方法可以包括如下步骤。
在步骤201中,获取搜索请求中的搜索关键词,并根据搜索关键词进行群组搜索,获得搜索到的多个目标群组。
其中,在本公开实施例中,搜索请求是指用户在即时通讯软件中对群组进行搜索的请求,用户可输入文本内容作为搜索关键词进行群组搜索。其中,搜索关键词可以是群组的名称,和/或,群组内部成员的名称。目标群组是指与搜索关键词匹配的群组。
举例而言,假设即时通讯软件为用户提供群组搜索接口,用户通过该接口输入搜索关键词,该搜索关键词可以是群组名称和/或群组内部成员的名称,并确认搜索以提交搜索请求,该搜索请求中携带由用户输入的搜索关键词。通过该搜索接口获取到用户提交的搜索请求,并从该搜索请求中提取出搜索关键词。可以基于搜索关键词命中检索或拼音检索,通过开源搜索引擎工具对群组集合进行搜索,并根据命中情况以及TF-IDF得分进行搜索结果召回,一般会召回多个搜索结果,即多个目标群组。
在步骤202中,获取每个目标群组的群组数据。
在本公开实施例中,该群组数据可包括下述至少一项:搜索请求的发起帐号与目标群组之间的交互数据;搜索关键词与目标群组名称之间的词面相关性得分;搜索关键词命中的目标群组的名称文本信息;目标群组的属性信息。
其中,上述搜索请求的发起帐号可理解为该搜索请求的输入者,例如,用户A通过搜索接口输入了搜索关键词以请求群组的搜索,则该用户A对应的帐号即为该搜索请求的发起帐号。
需要说明的是,由于群组数据内容的不同,则群组数据的获取方式也会不同。下面将给出不同示例以描述获取群组数据的不同实现方式:
示例一
针对搜索请求的发起帐号与目标群组之间的交互数据的获取方式,在获得搜索到的多个目标群组之后,针对每个目标群组,可根据目标群组的标识从数据库中找出该目标群组的聊天内容信息,并根据发起帐号从该该目标群组的聊天内容信息中找出该发起帐号在该目标群组内的聊天内容,即得到搜索请求的发起帐号与目标群组之间的交互数据。
示例二
针对搜索关键词与目标群组名称之间的词面相关性得分的获取方式,在获得搜索到的多个目标群组之后,针对每个目标群组,基于字粒度生成搜索关键词的第一向量表示和目标群组名称的第二向量表示,并根据第一向量表示和第二向量表示,计算搜索关键词与目标群组名称之间的相似度;根据相似度,确定搜索关键词与目标群组名称之间的词面相关性得分。在本实施例中,搜索关键词的第一向量表示和目标群组名称的第二向量表示可基于字粒度来生成。例如,基于字粒度生成搜索关键词中每个字的向量表示,并将每个字的向量表示进行叠加,以得到该搜索关键词的第一向量表示;目标群组名称的第二向量表示的生成方式与搜索关键词的向量表示的生成方式类似,先基于字粒度生成目标群组名称中每个字的向量表示,并将每个字的向量表示进行叠加,以得到该目标群组名称的第二向量表示。
示例三
针对搜索关键词命中的目标群组的名称文本信息的获取方式,在获得搜索到的多个目标群组之后,针对每个目标群组,在计算搜索关键词与目标群组的词面相关性得分时,可获取搜索关键词命中的目标群组的名称文本信息。其中,可在对命中的字段进行字粒度的分词方式(例如,流程->(流,程)),这样做的目的是用户通常在做群组或者通讯录这一类短搜索关键词query搜索的时候往往会出现拼写或者多音字上的误召回,此时可通过字粒度的分词方式,可以比较灵活的表达这个文本部分命中、全命中的特点,便于更好的排序。而词粒度的分词方法一是不太稳定,二是对于即使有一个字不一样的两个词,也会有两个完全不同的向量,不太符合短query场景,具体方法是:对于每个字映射到一个向量上,然后通过向量的叠加来整体表示命中字段(例如,(流->[0,0.2,0.3],程->[0.1,0.2,0.3])->(流程->[0.1,0.4,0.6])。当然向量的叠加方式可以有不同的变种,比如基于不同的群组可以有一个叠加的权重。
需要说明的是,在本公开实施例中,该属性信息可包括下述至少一项:群组创立时间信息、群组上次有人发言的时间信息、群组成员数量、群组内与搜索请求的发起帐号同部门在群组总人数中所占的比重、搜索关键词命中群组名称长度在群组名称总长度中所占的比重、搜索关键词命中群组内成员个数在群组成员总个数中所占的比重。
值得注意的是,目标群组的群组数据主要分为文本类数据、数值类数据和时间类数据。例如,文本类数据可包括:搜索请求的发起帐号与目标群组之间的交互数据、搜索关键词命中的目标群组的名称文本信息、目标群组名称、目标群组内部成员的名称等。数值类数据可包括:搜索关键词与目标群组名称之间的词面相关性得分、群组成员数量、群组内与搜索请求的发起帐号同部门在群组总人数中所占的比重、搜索关键词命中群组名称长度在群组名称总长度中所占的比重、搜索关键词命中群组内成员个数在群组成员总个数中所占的比重等。时间类数据可包括:群组创立时间信息和群组上次有人发言的时间信息等。
在步骤203中,将每个目标群组的群组数据分别输入至群组点击率预估模型。
其中,在本公开实施例中,群组点击率预估模型已经学习得到群组数据与群组在搜索请求下是否被点击的映射关系;其中,群组点击率预估模型以群组数据作为模型输入,以群组在搜索请求下的点击率预测得分作为模型输出。
在本公开一些实施例中,群组点击率预估模型可包括FM层、Deep层、注意力层、拼接层和输出层;其中,FM层用于对群组数据进行特征提取,以得到第一特征向量;Deep层用于对群组数据之中词面相关性得分、属性信息进行特征提取,得到第二特征向量;注意力层用于基于注意力机制对群组数据之中词面相关性得分、属性信息进行特征提取,得到第三特征向量;拼接层用于将第一特征向量、第二特征向量和第三特征向量进行拼接处理;输出层用于对拼接层输出的拼接特征向量进行预测打分,以输出群组的点击率预测得分。其中,输出层可以是Sigmoid激活函数。
例如,如图3所示,本公开是在已有的deepFM模型的结构上添加了注意力层。其中,FM层的输入可以是群组数据,即包括文本类数据、时间类数据和数值类数据。Deep层的输入可以是群组数据之中词面相关性得分、属性信息,即群组数据之中时间类数据和数值类数据。注意力层的输入可以是群组数据之中词面相关性得分、属性信息,即群组数据之中时间类数据和数值类数据。其中,输出层可以是二分类分类器,该二分类可包括点击和不点击。
在本实施例中,注意力层的公式表示可如下:
也就是说,由于用户在不同的时间类特征值的情况下会对其它数值类特征域有不同的关注度,比如,如果用户在最近一段时间在群组内部发过言的话,对于用户最近在群组内发言次数这个特征域的关注度是要比群组成员人数这个特征域的关注度要大的,因此,本公开设计了一个注意力层,通过基于不同时间特征值调整对不同数值域拟合权值的模型注意力层机制用来表达这一特性。经实验验证,此处理方法可以帮助提升模型的训练效果。
需要说明的是,在训练群组点击率预估模型时,该群组点击率预估模型的整体输入特征可以有用户最近群组内发言时间,最近30、60天群组内发言次数,群组上次有发言时间,群组创建时间,搜索关键词query-群组文本相关性分数,群组名称,群组命中成员名称,群组成员数量,群内跟搜索人同部门占总人数比,query,命中群名长度占总长度等。其中,通过加上群组名称,群组命中成员名称,群组成员数量,群内跟搜索人同部门占总人数比,命中群名长度占总长度,这四个特征组合可以隐式的令模型学习到用户意图通过成员或者是群名域来搜索群组,从而可以提升模型的训练效果。
还需要说明的是,如图4所示,在线下模型训练的测试结果符合预期的提升后,线下模型训练框架会对原始数据特征的预处理方式和最后产生的字段做一个对应模型结构的打包,并产出字典格式的模型的toml文件,该模型输入名称可为:[特征名字列],即可产出字典格式的模型输入名称为:[特征名字列]的toml文件。模型预测服务加载该toml文件,并根据对应的特征名调用对应的数据预处理方法,最后将一系列数据预处理方法处理好的数据再跟据字典文件的模型输入名称:[预处理后的特征名字列]打包成模型需要的数据格式喂给模型做线上预测服务,这样,线上预测时,无需再寻找各模型输入数据的处理方法对线上的输入数据进行对应处理,而是直接利用[预处理后的特征名字列]对对线上的输入数据进行对应处理,大大提高了开发效率。
为了进一步提升模型的训练效果,在本公开一些实施例中,在将每个目标群组的群组数据分别输入至群组点击率预估模型之前,需对每个目标群组的群组数据之中的数值类数据进行Min-Max归一化处理;其中,Min-Max的公式表示如下:
其中,normalized_scoreQ为群组数据之中的数值类数据的归一化分数;minQ为数值类数据所在的群组数据中的最小值,maxQ为数值类数据所在的群组数据中的最大值,x为数值类数据。
也就是说,由于用户一次检索下所召回的群组往往在特征上的区分度从绝对数值的角度来看不是很大,导致模型在训练的时候往往局部的细小区分度被群组的其他特征磨平了,因此,本公开采用了局部对局部特征归一化的方法(即对每一次搜索下某些特征做query粒度的归一化处理)。在考虑到平衡数据特征稳定性的情况下,本公开采用了Min-Max归一化的处理方式。经实验验证,此处理方式可以提升模型的训练效果。
在步骤204中,获取群组点击率预估模型输出的每个目标群组的点击率预测得分。
在步骤205中,根据每个目标群组的点击率预测得分,对多个目标群组进行排序,并根据排序结果对多个目标群组进行展示。
可选地,根据每个目标群组的点击率预测得分,按照从大到小的顺序对多个目标群组进行排序,例如,将点击率预测得分最高的目标群组排在第一位,将点击率预测得分最低的目标群组排在最后一位,根据排序结果将多个目标群组展示给用户。
根据本公开实施例的即时通讯群组的搜索方法,通过从多个维度来获得目标群组的群组数据,即将从多个维度获得的群组数据作为群组点击率预估模型的输入,可以使得群组点击率预估模型的整体输入特征更加丰富,从而可以帮助用户通过输入少量关键词就能够快速、精准的定位自己想寻找的群组。
为了实现上述实施例,本公开提出了一种即时通讯群组的搜索装置。
图5为本公开实施例所提供的一种即时通讯群组的搜索装置的结构框图。如图5所示,该即时通讯群组的搜索装置可以包括:搜索模块501、获取模块502、预测模块503和排序展示模块504。
其中,搜索模块501用于获取搜索请求中的搜索关键词,并根据搜索关键词进行群组搜索,获得搜索到的多个目标群组。其中,搜索关键词为群组的名称,和/或,群组内部成员的名称。
获取模块502用于获取每个目标群组的群组数据。作为一种示例,群组数据包括下述至少一项:搜索请求的发起帐号与目标群组之间的交互数据;搜索关键词与目标群组名称之间的词面相关性得分;搜索关键词命中的目标群组的名称文本信息;目标群组的属性信息;其中,属性信息包括下述至少一项:群组创立时间信息、群组上次有人发言的时间信息、群组成员数量、群组内与搜索请求的发起帐号同部门在群组总人数中所占的比重、搜索关键词命中群组名称长度在群组名称总长度中所占的比重、搜索关键词命中群组内成员个数在群组成员总个数中所占的比重。
可选地,在本公开实施例中,获取模块502获取每个目标群组的搜索关键词与目标群组名称之间的词面相关性得分的实现方式如下:基于字粒度生成搜索关键词的第一向量表示和目标群组的名称的第二向量表示;对于每个目标群组,根据第一向量表示和第二向量表示,计算搜索关键词与目标群组的名称之间的相似度;根据相似度,确定搜索关键词与目标群组名称之间的词面相关性得分。
预测模块503用于根据每个目标群组的群组数据和预设的群组点击率预估模型,获得每个目标群组的点击率预测得分。作为一种示例,预测模块503将每个目标群组的群组数据分别输入至群组点击率预估模型;其中,群组点击率预估模型已经学习得到群组数据与群组在搜索请求下是否被点击的映射关系,群组点击率预估模型以群组数据作为模型输入,以群组在搜索请求下的点击率预测得分作为模型输出;获取群组点击率预估模型输出的每个目标群组的点击率预测得分。
在一种实现方式中,群组点击率预估模型包括FM层、Deep层、注意力层、拼接层和输出层;其中,FM层用于对群组数据进行特征提取,以得到第一特征向量;Deep层用于对群组数据之中词面相关性得分、属性信息进行特征提取,得到第二特征向量;注意力层用于基于注意力机制对群组数据之中词面相关性得分、属性信息进行特征提取,得到第三特征向量;拼接层用于将第一特征向量、第二特征向量和第三特征向量进行拼接处理;输出层用于对拼接层输出的拼接特征向量进行预测打分,以输出群组的点击率预测得分。
在一些实施例中,预测模块503在将每个目标群组的群组数据分别输入至群组点击率预估模型之前,对每个目标群组的群组数据之中的数值类数据进行Min-Max归一化处理;其中,Min-Max的公式表示如下:
其中,normalized_scoreQ为群组数据之中的数值类数据的归一化分数;minQ为数值类数据所在的群组数据中的最小值,maxQ为数值类数据所在的群组数据中的最大值,x为数值类数据。
排序展示模块504用于根据每个目标群组的点击率预测得分,对多个目标群组进行排序,并根据排序结果对多个目标群组进行展示。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
根据本公开实施例的即时通讯群组的搜索装置,可以通过群组数据,利用群组点击率预估的方式帮助用户通过输入少量关键词就能够快速、精准的定位自己想寻找的群组,提供高了搜索群组的效率。
根据本公开的实施例,本公开还提供了一种电子设备和一种可读存储介质。
如图6所示,是根据本公开实施例的用于实现即时通讯群组的搜索方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图6所示,该电子设备包括:一个或多个处理器601、存储器602,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图6中以一个处理器601为例。
存储器602即为本公开所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本公开所提供的即时通讯群组的搜索方法。本公开的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本公开所提供的即时通讯群组的搜索方法。
存储器602作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本公开实施例中的即时通讯群组的搜索方法对应的程序指令/模块(例如,附图5所示的搜索模块501、获取模块502、预测模块503和排序展示模块504)。处理器601通过运行存储在存储器602中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的即时通讯群组的搜索方法。
存储器602可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据用于实现即时通讯群组搜索的电子设备的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器602可选包括相对于处理器601远程设置的存储器,这些远程存储器可以通过网络连接至用于实现即时通讯群组搜索的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
用于实现即时通讯群组的搜索方法的电子设备还可以包括:输入装置603和输出装置604。处理器601、存储器602、输入装置603和输出装置604可以通过总线或者其他方式连接,图6中以通过总线连接为例。
输入装置603可接收输入的数字或字符信息,以及产生与用于实现即时通讯群组搜索的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置604可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、互联网和区块链网络。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (10)
1.一种即时通讯群组的搜索方法,包括:
获取搜索请求中的搜索关键词,并根据所述搜索关键词进行群组搜索,获得搜索到的多个目标群组;
获取每个所述目标群组的群组数据,所述群组数据包括搜索关键词与目标群组名称之间的词面相关性得分和目标群组的属性信息;
根据每个所述目标群组的群组数据和预设的群组点击率预估模型,获得每个所述目标群组的点击率预测得分,其中,所述群组点击率预估模型包括FM层、Deep层、注意力层、拼接层和输出层,所述FM层用于对所述群组数据进行特征提取,以得到第一特征向量,所述Deep层用于对所述群组数据之中所述词面相关性得分、所述属性信息进行特征提取,得到第二特征向量,所述注意力层用于基于注意力机制对所述群组数据之中所述词面相关性得分、所述属性信息进行特征提取,得到第三特征向量,所述拼接层用于将所述第一特征向量、所述第二特征向量和所述第三特征向量进行拼接处理,所述输出层用于对所述拼接层输出的拼接特征向量进行预测打分,以输出群组的点击率预测得分;
根据每个所述目标群组的点击率预测得分,对所述多个目标群组进行排序,并根据排序结果对所述多个目标群组进行展示。
2.根据权利要求1所述的方法,其中,所述群组数据还包括所述搜索请求的发起帐号与所述目标群组之间的交互数据和所述搜索关键词命中的所述目标群组的名称文本信息,所述属性信息包括下述至少一项:群组创立时间信息、群组上次有人发言的时间信息、群组成员数量、群组内与所述搜索请求的发起帐号同部门在群组总人数中所占的比重、所述搜索关键词命中群组名称长度在群组名称总长度中所占的比重、所述搜索关键词命中群组内成员个数在群组成员总个数中所占的比重。
3.根据权利要求2所述的方法,其中,获取每个所述目标群组的所述搜索关键词与所述目标群组名称之间的词面相关性得分,包括:
基于字粒度生成所述搜索关键词的第一向量表示和所述目标群组的名称的第二向量表示;
对于每个所述目标群组,根据所述第一向量表示和所述第二向量表示,计算所述搜索关键词与所述目标群组的名称之间的相似度;
根据所述相似度,确定所述搜索关键词与所述目标群组名称之间的词面相关性得分。
5.一种即时通讯群组的搜索装置,包括:
搜索模块,用于获取搜索请求中的搜索关键词,并根据所述搜索关键词进行群组搜索,获得搜索到的多个目标群组;
获取模块,用于获取每个所述目标群组的群组数据,所述群组数据包括搜索关键词与目标群组名称之间的词面相关性得分和目标群组的属性信息;
预测模块,用于根据每个所述目标群组的群组数据和预设的群组点击率预估模型,获得每个所述目标群组的点击率预测得分,其中,所述群组点击率预估模型包括FM层、Deep层、注意力层、拼接层和输出层,所述FM层用于对所述群组数据进行特征提取,以得到第一特征向量,所述Deep层用于对所述群组数据之中所述词面相关性得分、所述属性信息进行特征提取,得到第二特征向量,所述注意力层用于基于注意力机制对所述群组数据之中所述词面相关性得分、所述属性信息进行特征提取,得到第三特征向量,所述拼接层用于将所述第一特征向量、所述第二特征向量和所述第三特征向量进行拼接处理,所述输出层用于对所述拼接层输出的拼接特征向量进行预测打分,以输出群组的点击率预测得分;
排序展示模块,用于根据每个所述目标群组的点击率预测得分,对所述多个目标群组进行排序,并根据排序结果对所述多个目标群组进行展示。
6.根据权利要求5所述的装置,其中,所述群组数据还包括所述搜索请求的发起帐号与所述目标群组的交互数据和所述搜索关键词命中的所述目标群组的名称文本信息,所述属性信息包括下述至少一项:群组创立时间信息、群组上次有人发言的时间信息、群组成员数量、群组内与所述搜索请求的发起帐号同部门在群组总人数中所占的比重、所述搜索关键词命中群组名称长度在群组名称总长度中所占的比重、所述搜索关键词命中群组内成员个数在群组成员总个数中所占的比重。
7.根据权利要求6所述的装置,其中,所述获取模块具体用于:
基于字粒度生成所述搜索关键词的第一向量表示和所述目标群组的名称的第二向量表示;
对于每个所述目标群组,根据所述第一向量表示和所述第二向量表示,计算所述搜索关键词与所述目标群组的名称之间的相似度;
根据所述相似度,确定所述搜索关键词与所述目标群组名称之间的词面相关性得分。
9.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至4中任一项所述的方法。
10.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行权利要求1至4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110777972.1A CN113595874B (zh) | 2021-07-09 | 2021-07-09 | 即时通讯群组的搜索方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110777972.1A CN113595874B (zh) | 2021-07-09 | 2021-07-09 | 即时通讯群组的搜索方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113595874A CN113595874A (zh) | 2021-11-02 |
CN113595874B true CN113595874B (zh) | 2023-03-24 |
Family
ID=78246747
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110777972.1A Active CN113595874B (zh) | 2021-07-09 | 2021-07-09 | 即时通讯群组的搜索方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113595874B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111078856A (zh) * | 2019-12-26 | 2020-04-28 | 联想(北京)有限公司 | 一种群聊对话处理方法、装置及电子设备 |
CN112163165A (zh) * | 2020-10-21 | 2021-01-01 | 腾讯科技(深圳)有限公司 | 信息推荐方法、装置、设备及计算机可读存储介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103514178A (zh) * | 2012-06-18 | 2014-01-15 | 阿里巴巴集团控股有限公司 | 一种基于点击率的搜索排序方法及装置 |
CN109299976B (zh) * | 2018-09-07 | 2021-03-23 | 深圳大学 | 点击率预测方法、电子装置及计算机可读存储介质 |
CN110929206B (zh) * | 2019-11-20 | 2023-04-07 | 腾讯科技(深圳)有限公司 | 点击率预估方法、装置、计算机可读存储介质和设备 |
CN111368153B (zh) * | 2020-03-23 | 2023-08-29 | 百度在线网络技术(北京)有限公司 | 搜索方法及装置 |
CN111949898A (zh) * | 2020-08-28 | 2020-11-17 | 平安国际智慧城市科技股份有限公司 | 搜索结果排序方法、装置、设备及计算机可读存储介质 |
CN112087371B (zh) * | 2020-09-10 | 2022-11-18 | 北京百度网讯科技有限公司 | 一种即时通讯群组的搜索方法、装置、设备和存储介质 |
CN112597361B (zh) * | 2020-12-16 | 2023-12-12 | 北京五八信息技术有限公司 | 一种排序处理方法、装置、电子设备及存储介质 |
CN112667714B (zh) * | 2021-03-17 | 2021-06-01 | 腾讯科技(深圳)有限公司 | 基于深度学习的用户画像优化方法、装置及存储介质 |
-
2021
- 2021-07-09 CN CN202110777972.1A patent/CN113595874B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111078856A (zh) * | 2019-12-26 | 2020-04-28 | 联想(北京)有限公司 | 一种群聊对话处理方法、装置及电子设备 |
CN112163165A (zh) * | 2020-10-21 | 2021-01-01 | 腾讯科技(深圳)有限公司 | 信息推荐方法、装置、设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113595874A (zh) | 2021-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11397772B2 (en) | Information search method, apparatus, and system | |
CN111125335B (zh) | 问答处理方法、装置、电子设备和存储介质 | |
US11734373B2 (en) | Method, apparatus, device and computer storage medium for determining search result | |
EP3617952A1 (en) | Information search method, apparatus and system | |
CN112507715A (zh) | 确定实体之间关联关系的方法、装置、设备和存储介质 | |
JP7395445B2 (ja) | 検索データに基づくヒューマンコンピュータ対話型インタラクションの方法、装置及び電子機器 | |
JP2022050379A (ja) | 意味検索方法、装置、電子機器、記憶媒体およびコンピュータプログラム | |
JP7163440B2 (ja) | テキストクエリ方法、装置、電子機器、記憶媒体及びコンピュータプログラム製品 | |
CN111767381A (zh) | 自动问答方法和装置 | |
US11704326B2 (en) | Generalization processing method, apparatus, device and computer storage medium | |
CN111666292A (zh) | 用于检索地理位置的相似度模型建立方法和装置 | |
CN112163405A (zh) | 问题的生成方法和装置 | |
CN111984774B (zh) | 搜索方法、装置、设备以及存储介质 | |
KR20210105288A (ko) | 질문 응답 로봇 생성 방법 및 장치 | |
CN111783861A (zh) | 数据分类方法、模型训练方法、装置和电子设备 | |
CN113516491A (zh) | 推广信息展示方法、装置、电子设备及存储介质 | |
CN111966781A (zh) | 数据查询的交互方法及装置、电子设备和存储介质 | |
CN111241242A (zh) | 目标内容的确定方法、装置、设备及计算机可读存储介质 | |
CN111666417B (zh) | 生成同义词的方法、装置、电子设备以及可读存储介质 | |
CN113595770B (zh) | 群组点击率预估方法、装置、电子设备和存储介质 | |
CN111523019A (zh) | 用于输出信息的方法、装置、设备以及存储介质 | |
CN113595874B (zh) | 即时通讯群组的搜索方法、装置、电子设备和存储介质 | |
CN112148988B (zh) | 用于生成信息的方法、装置、设备以及存储介质 | |
CN112100522A (zh) | 用于检索兴趣点的方法、装置、设备及介质 | |
CN111625706A (zh) | 信息检索方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |