一种产品推荐方法、装置及电子设备与流程

文档序号:23877584发布日期:2021-02-05 18:29阅读:71来源:国知局
一种产品推荐方法、装置及电子设备与流程

[0001]
本发明涉及人工智能技术领域,具体而言,涉及一种产品推荐方法、装置、电子设备及计算机可读存储介质。


背景技术:

[0002]
目前,基于文本的产品推荐方法,大多依赖于长文本实现,其原因在于:长文本所承载的文本信息较多,在分词后可以得到较多的特征词。而具有较多的特征词,不仅有利于产品推荐模型的训练,也有利于训练后的产品推荐模型的预测。
[0003]
但是,对于短文本而言,由于受该短文本的文本长度所限,其在分词后所能得到的特征词较少,因而目前还不能实现基于短文本的产品推荐。


技术实现要素:

[0004]
本发明实施例提供一种产品推荐方法、装置、电子设备及计算机可读存储介质。
[0005]
第一方面,本发明实施例提供了一种产品推荐方法,包括:
[0006]
确定目标短文本对应的主题词,并在预设的词向量库中查找到所述主题词的目标词向量;
[0007]
计算所述目标词向量与所述词向量库中每一候选产品所关联的特征词向量之间的距离;
[0008]
在计算得到的所有距离均大于预设的距离阈值的情况下,针对每一所述候选产品,若所述词向量库中存在满足预设条件的n个相似词向量,则将该候选产品确定为关联所述目标短文本的待推荐产品;其中,所述设定条件为:在由所述n个相似词向量构成的词向量序列中,首位的相似词向量与所述目标词向量、末位的相似词向量与该候选产品的特征词向量、以及相邻相似词向量之间的距离均不大于所述距离阈值。
[0009]
第二方面,本发明实施例提供了一种产品推荐装置,包括:
[0010]
确定单元,用于确定目标短文本对应的主题词,并在预设的词向量库中查找到所述主题词的目标词向量;
[0011]
计算单元,用于计算所述目标词向量与所述词向量库中每一候选产品所关联的特征词向量之间的距离;
[0012]
推荐单元,用于在计算得到的所有距离均大于预设的距离阈值的情况下,针对每一所述候选产品,若所述词向量库中存在满足预设条件的n个相似词向量,则将该候选产品确定为关联所述目标短文本的待推荐产品;其中,所述设定条件为:在由所述n个相似词向量构成的词向量序列中,首位的相似词向量与所述目标词向量、末位的相似词向量与该候选产品的特征词向量、以及相邻相似词向量之间的距离均不大于所述距离阈值。
[0013]
第三方面,本发明实施例提供了一种电子设备,包括:包括总线、收发器、存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述收发器、所述存储器和所述处理器通过所述总线相连,所述计算机程序被所述处理器执行时实现如前述
的产品推荐方法中的步骤。
[0014]
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述的产品推荐方法中的步骤。
[0015]
本发明实施例提供的方法、装置、电子设备及计算机可读存储介质,当确定出目标词向量与所有候选产品关联的特征词向量之间的距离均小于预设距离阈值时,针对每一候选产品,还可以进一步的判断词向量库中是否存在满足设定条件的n个相似词向量,并在存在时将该候选产品确定为关联目标短文本的待推荐产品。通过上述在目标词向量与候选产品关联的特征词向量之间建立“中间路径”的方式,即使在短文本经分词得到的特征词较少、难以在短文本与候选产品间建立关联的前提下,也能够间接的确定出关联短文本的待推荐商品,进而实现了基于短文本的产品推荐。
附图说明
[0016]
为了更清楚地说明本发明实施例或背景技术中的技术方案,下面将对本发明实施例或背景技术中所需要使用的附图进行说明。
[0017]
图1示出了本发明实施例所提供的一种产品推荐方法的流程图;
[0018]
图2示出了本发明实施例所提供的产品推荐方法中,目标主题分类模型的生成流程图;
[0019]
图3示出了本发明实施例所提供的产品推荐方法中,词向量库的构建流程图;
[0020]
图4示出了本发明实施例所提供的产品推荐方法中,目标推荐产品的确定及推荐流程图;
[0021]
图5示出了本发明实施例所提供的一种产品推荐装置的结构示意图;
[0022]
图6示出了本发明实施例所提供的一种电子设备的结构示意图。
具体实施方式
[0023]
所属技术领域的技术人员应当知道,本发明实施例可以实现为产品推荐方法、装置、电子设备及计算机可读存储介质。因此,本发明实施例可以具体实现为以下形式:完全的硬件、完全的软件(包括固件、驻留软件、微代码等)、硬件和软件结合的形式。此外,在一些实施例中,本发明实施例还可以实现为在一个或多个计算机可读存储介质中的计算机程序产品的形式,该计算机可读存储介质中包含计算机程序代码。
[0024]
上述计算机可读存储介质可以采用一个或多个计算机可读存储介质的任意组合。计算机可读存储介质包括:电、磁、光、电磁、红外或半导体的系统、装置或器件,或者以上任意的组合。计算机可读存储介质更具体的例子包括:便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom)、闪存(flash memory)、光纤、光盘只读存储器(cd-rom)、光存储器件、磁存储器件或以上任意组合。在本发明实施例中,计算机可读存储介质可以是任意包含或存储程序的有形介质,该程序可以被指令执行系统、装置、器件使用或与其结合使用。
[0025]
上述计算机可读存储介质包含的计算机程序代码可以用任意适当的介质传输,包括:无线、电线、光缆、射频(radio frequency,rf)或者以上任意合适的组合。
[0026]
可以以一种或多种程序设计语言或其组合来编写用于执行本发明实施例操作的
计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,例如:java、smalltalk、c++,还包括常规的过程式程序设计语言,例如:c语言或类似的程序设计语言。计算机程序代码可以完全的在用户计算机上执行、部分的在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行以及完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括:局域网(lan)或广域网(wan),可以连接到用户计算机,也可以连接到外部计算机。
[0027]
下面将参照本发明实施例的产品推荐方法、装置、电子设备及计算机可读存储介质的流程图和/或方框图描述本发明实施例。
[0028]
应当理解,流程图和/或方框图的每个方框以及流程图和/或方框图中各方框的组合,都可以由计算机可读程序指令实现。这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而生产出一种机器,这些计算机可读程序指令通过计算机或其他可编程数据处理装置执行,产生了实现流程图和/或方框图中的方框规定的功能/操作的装置。
[0029]
也可以将这些计算机可读程序指令存储在能使得计算机或其他可编程数据处理装置以特定方式工作的计算机可读存储介质中。这样,存储在计算机可读存储介质中的指令就产生出一个包括实现流程图和/或方框图中的方框规定的功能/操作的指令装置产品。
[0030]
也可以将计算机可读程序指令加载到计算机、其他可编程数据处理装置或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其他可编程数据处理装置上执行的指令能够提供实现流程图和/或方框图中的方框规定的功能/操作的过程。
[0031]
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明做进一步详细的说明。
[0032]
图1示出了本发明实施例所提供的一种产品推荐方法的流程图。如图1所示,该方法包括:
[0033]
s101,确定目标短文本对应的主题词,并在预设的词向量库中查找到该主题词的目标词向量。
[0034]
在本发明实施例中,短文本可以是指文本内容较短的字符序列。例如,即时通讯软件中某一即时通讯群组中的某一条会话消息,或者,用户在搜索引擎中所输入的待搜索文本等等,本发明并不具体限定短文本的具体产生场景和具体内容。
[0035]
上述的目标短文本可以通过多种方式获得。作为其中一种获得目标短文本的实现方式,可以由客户端主动的采集用户在即时通讯群组中所发送的会话消息,并将其确定为目标短文本。作为另外一种获得目标短文本的实现方式,还可以由客户端主动的采集用户在搜索引擎中所输入的待搜索文本,并将其确定为目标短文本。当然,上述仅是举例描述了两种可能的实现方式,在实际应用中还可以根据具体情况选择其他实现方式,本发明对此不作限定。
[0036]
在需要对已获得的目标短文本进行产品推荐之前,需要预先训练出一个用于确定上述目标短文本所属主题的主题词的目标主题分类模型。基于此,作为一个实施例,本步骤101中确定目标短文本对应的主题词,可以包括:对目标短文本进行分词,得到目标短文本的特征词集合;将目标短文本的特征词集合输入至已训练的目标主题分类模型中,得到主
题词。值得说明的是,这里所说的特征词并非是某一个或多个特别的词,而是指经分词后所得到的每一个词,这些词在本领域均称之为特征词。
[0037]
需要说明的是,上述分词时所采用的分词算法可以是jieba分词算法、正向最大匹配算法、逆向最大匹配算法等等,本发明对此不做限定。
[0038]
在获得目标短文本对应的主题词后,可以在预先建立的词向量库中查找到该主题词的词向量(记为目标词向量),为后续步骤中使用做准备。
[0039]
至于上述描述的目标主题分类模型如何训练得到,以及,词向量库如何构建,下文会详细描述,这里暂不赘述。
[0040]
s102,计算目标词向量与词向量库中每一候选产品所关联的特征词向量之间的距离。
[0041]
在本发明实施例中,词向量库的构建过程中会涉及到候选产品关联的特征词的参与,进而构建得到的词向量库中也存在着候选产品关联的特征词的词向量。
[0042]
值得说明的是,词向量库中每一候选产品所关联的特征词向量可以不同于候选产品关联的特征词的词向量。这里列举两种得到特征词向量的方式以进行说明:
[0043]
第一种实现方式:在本实现方式下,任一候选产品的特征词向量可以通过以下方式确定:基于预设的权重分配算法为任一候选产品的特征词集合中每一特征词进行权重赋值;将该候选产品的各特征词按权重值由小至大的顺序排序得到特征词序列,选取所述词向量库中对应于该特征词序列中前k个特征词的词向量作为该候选产品的特征词向量。需要说明的是,在本实现方式下,n的数值小于特征词的数值。
[0044]
需要说明的是,权重分配算法可以根据实际情况选择,例如,tf-idf算法,本发明对此不作限定。
[0045]
第二种实现方式:在本实现方式下,任一候选产品关联的特征词向量便是该候选产品关联的特征词的词向量。即,特征词向量与特征词的词向量是相同含义。
[0046]
以上对两种确定任一候选产品的特征词向量的实现方式进行了说明。
[0047]
由上述两种实现方式可以看出,候选产品关联的特征词向量可以是一个,也可以是多个。在候选产品关联的特征词向量为一个的情况下,仅计算这唯一一个特征词向量与目标词向量之间的距离即可。而在候选产品关联的特征词向量为多个的情况下,则需要分别计算每一特征词向量与目标词向量之间的距离。
[0048]
需要说明的是,计算词向量间距离时,可以采用欧式距离算法、余弦距离算法等方式计算,本发明对此不做限定。
[0049]
步骤s103,判断计算得到的所有距离是否均大于预设的距离阈值;若是,则转到s104;若否,则转到s105。
[0050]
在执行本步骤103之前,需预先设定一个距离阈值,该距离阈值用于表示目标词向量所对应的主题词与任一特征词向量关联的候选产品之间的相关程度。基于此,则可将前述计算得到的各计算结果分别与预设的距离阈值进行比较。若目标词向量与某一候选产品关联的某一特征词向量之间的距离小于距离阈值,就表示该候选产品与主题词之间较为相关。而相反的,若目标词向量与某一候选产品关联的某一特征词向量之间的距离大于距离阈值,就表示该候选产品与主题词之间较为不相关。
[0051]
需要说明的是,上述的预设的距离阈值可根据实际情况设定,本发明对此不作限
定。
[0052]
s104,针对每一所述候选产品,若所述词向量库中存在满足预设条件的n个相似词向量,则将该候选产品确定为关联所述目标短文本的待推荐产品。
[0053]
需要说明的是,本步骤104是在步骤102计算得到的所有距离均大于预设的距离阈值的前提下所执行的。
[0054]
在本发明实施例中,如果步骤102计算得到的所有距离均大于预设的距离阈值,则意味着所有的候选产品与目标短文本对应的主题词之间都相对的较为不相关,因而需要进一步的挖掘该主题词与各候选产品之间的间接关联性(也就是目标词向量与特征词向量之间的中间路径)。
[0055]
作为一个示例,可针对每一候选产品的特征词向量,判断词向量库中是否存在满足预设条件的n个相似词向量;若存在,则将该候选产品确定为关联目标短文本的待推荐产品。
[0056]
可选的,上述的预设条件可以是:在由n个相似词向量构成的词向量序列中,首位的相似词向量与目标词向量、末位的相似词向量与该候选产品的特征词向量、以及相邻相似词向量之间的距离均不大于所述距离阈值。
[0057]
为更加清楚说明上述的设定条件,这里举一个简单的例子:假设目标词向量为a、某一候选产品的任一特征词向量为b、目标词向量a与特征词向量b之间的距离大于预设阈值t、n为3。那么,词向量库中存在满足设定条件的3个相似词向量(n1、n2、n3)所构成的词向量序列[n1,n2,n3]与a和b之间的关系为:a与n1、n1与n2、n2与n3、n3与b之间的距离则均不大于设定阈值t。
[0058]
需要说明的是,在候选产品关联有多个特征词向量的情况下,若针对某一候选产品关联的任一特征词向量,在词向量库中已确定出存在n个相似词向量,则可直接地将该候选产品确定为关联目标短文本的待推荐产品,而无需考虑该候选产品的其他特征词向量与目标词向量之间是否存在n个相似词向量。
[0059]
可选的,在执行本步骤104之前,还可以针对每一候选产品,判断上述计算得到的距离是否大于n倍的距离阈值。若小于,则执行步骤104。若大于,则表示目标词向量与该候选产品的特征词向量之间的距离过大,词向量库中必然不会存在满足设定条件的n个相似词向量,因而也没有必要执行本步骤102,节省本发明实施例在执行过程中所需的计算资源。
[0060]
s105,若任一候选产品的特征词向量与目标词向量的距离小于距离阈值,则将该候选产品确定为关联目标短文本的待推荐产品。
[0061]
需要说明的是,本步骤105是在步骤102计算得到的所有距离中存在有小于预设的距离阈值的距离前提下所执行的。
[0062]
如前述的,若目标词向量与某一候选产品关联的某一特征词向量之间的距离小于距离阈值,就表示该候选产品与主题词之间较为相关。又由于主题词表示的是目标短文本所属的主题,进而可确定出该候选产品与目标短文本之间也较为相关,所以可以将该候选产品确定为关联目标短文本的待推荐产品。
[0063]
需要说明的是,对于任一候选产品而言,若该候选产品关联了多个特征词向量,只需确定出存在一个特征词向量与目标词向量之间的距离小于预设的距离阈值,即可将该候
选产品确定为关联目标短文本的待推荐产品,而无需确定所有的特征词向量与目标词向量之间的距离均小于预设的距离阈值。
[0064]
至此,完成图1所示流程。
[0065]
从上述实施例可以看出,当确定出目标词向量与所有候选产品关联的特征词向量之间的距离均小于预设距离阈值时,针对每一候选产品,还可以进一步的判断词向量库中是否存在满足设定条件的n个相似词向量,并在存在时将该候选产品确定为关联目标短文本的待推荐产品。通过上述在目标词向量与候选产品关联的特征词向量之间建立“中间路径”的方式,即使在短文本经分词得到的特征词较少、难以在短文本与候选产品间建立关联的前提下,也能够间接的确定出关联短文本的待推荐商品,进而实现了基于短文本的产品推荐。
[0066]
下面列举两种生成上述目标主题分类模型的实现方式:
[0067]
第一种实现方式:参见图2,图2示出了本发明实施例所提供的产品推荐方法中,目标主题分类模型的生成流程图。如图2所示,该流程可以包括:
[0068]
步骤201,针对已有的即时通讯群组内的每条会话消息,对该条会话消息进行分词,并根据所述词向量库对分词得到的特征词集合进行扩展,得到训练特征词集合。
[0069]
在本实现方式下,用于训练目标主题分类模型的训练样本为即时通讯群组内的若干条会话消息。为确保训练得到的模型具备较为优秀的分类能力,可以对前述的若干条会话消息做出相应限制。举例来说,可在以下两个方面做出限制:第一个方面,需要保证会话消息的数量满足目标主题分类模型的训练要求,例如约1万条左右的会话消息。当然,这里仅是举例说明,训练样本的数量则是越多越好。第二个方面,对于前述的若干条会话消息,较为优选的获取方式是从各候选产品所属品牌下的多个即时通讯群组中获得,而并非从任意的即时通讯群组中获取。这样,可以保证获得的会话消息大多与品牌下的候选产品相关。
[0070]
在具体实施时,考虑上述两个方面的限制,可以在每个品牌下选择5个即时通讯群组,且这5个即时通讯群组内的用户数量需大于150人,时长选择为一个季度内。这样,既可以保证即时通讯群组内会话消息的数量,也可以保证会话消息的内容大多与候选产品相关。
[0071]
在训练目标主题分类模型时,首先需要针对已有的即时通讯群组内的每条会话消息进行分词,以得到每一会话消息的特征词集合。但是,如前述的,由于短文本(会话消息也属于短文本)自身所承载的文本内容较少,分词得到的特征词数量也较少。而较少的特征词数量则不易于进行目标主题分类模型的训练。因此,为解决这一问题,本发明实施例利用已构建的词向量库对每一会话消息的分词结果进行扩展,进而得到扩展后的特征词集合(记为训练特征词集合)。
[0072]
可选的,可通过以下方式对任一会话消息的特征词集合进行扩展:针对该特征词集合中的任一特征词,在词向量库中查找到该特征词的词向量(记为第一词向量)。之后,在词向量库中分别计算除该第一词向量之外的其他词向量与该第一词向量之间的距离。从计算得到的各距离结果中选择出小于预设的扩展距离阈值的所有距离,将这些选择出的距离所对应的词向量所对应的词作为扩展词添加至该特征词集合中。
[0073]
步骤202,基于机器学习算法对所有训练特征词集合进行训练,获得所述目标主题分类模型。
[0074]
在本实施例中,基于机器学习算法对所有训练特征词集合进行训练,获得目标主题分类模型有多种实现方式。作为其中一种实现,可以包括以下步骤:获得m个已被标记有标签的训练特征词集合;基于半监督机器学习算法对所述m个已被标记有标签的训练特征词集合,以及,所有训练特征词集合中未被标记有标签的其他训练特征词集合进行训练,得到主题分类模型;若所述主题分类模型满足预设的收敛条件,则将所述主题分类模型确定为所述目标主题分类模型。
[0075]
本发明实施例中,所采用的半监督机器学习算法为正样本和无标记学习(positive and unlabeledlearning)算法,它是一种半监督学习的机器学习算法,是指用于训练机器学习模型的训练样本中,仅部分训练样本是有标记样本,而其余的训练样本为无标记样本,利用无标记样本来辅助有标记样本的学习过程。上述的m个已被标记有标签的训练特征词集合便是有标记样本,而所有训练特征词集合中未被标记有标签的其他训练特征词集合则是无标记样本。
[0076]
在构建好有标记样本和无标记样本后,可以基于半监督机器学习算法对这些训练样本进行训练,来构建主题分类模型。对于半监督机器学习算法而言,通常可以包含多种机器学习策略。例如:典型的机器学习策略,包括两阶段法(two-stagestrategy)和代价敏感法(cost-sensitive strategy)两类。至于具体实施时采用哪一种机器学习策略来构建主题分类模型,可根据实际情况选择,本发明对此不作具体限定。
[0077]
在基于半监督机器学习算法构建好主题分类模型之后,则可以使用测试样本对该主题分类模型进行测试。若该主题分类模型对测试样本的分类结果满足预设的模型精度要求,则可认为该主题分类模型满足预设的收敛条件,则将所述主题分类模型确定为所述目标主题分类模型。若该模型对测试样本的分类结果不满足预设的模型精度要求,则可认为该主题分类模型不满足预设的收敛条件,需要进一步调整已被标记有标签的训练特征词集合与所有训练特征词集合中未被标记有标签的其他训练特征词集合之间的比例,重新基于半监督机器学习算法来构建主题分类模型,直至构建得到的主题分类模型满足收敛条件,得到目标主题分类模型。
[0078]
作为一个示例,上述基于半监督机器学习算法训练得到的目标主题分类模型可以是基于半监督机器学习算法的knn(k-nearest neighbor,k最邻近)模型模型。
[0079]
作为第二种实现方式,则可以直接地将已有的即时通讯群组内的所有会话消息以人工的方式打好标签。之后,将所有打好标签的会话消息作为主题分类模型的全体样本以得到目标主题分类模型。可以看出,在本实现方式下,由于无需进行模型的训练,则可以减少一定的模型生成所需的时长。但是,这样得到的目标主题分类模型的分类准确性则较差。
[0080]
需要说明的是,本实现方式下的主题分类模型可以是knn(k-nearest neighbor,k最邻近)模型、k-means(k均值聚类)模型等,本发明对此不作限定。
[0081]
以上对上述目标主题分类模型如何生成进行了描述。可以理解的是,上述描述的两种生成目标主题分类模型的实现方式仅用于举例,并不作为对本发明的限制。
[0082]
下面对上述词向量库的构建过程进行描述:
[0083]
参见图3,图3示出了本发明实施例所提供的产品推荐方法中,词向量库的构建流程图。如图3所示,该流程可以包括:
[0084]
步骤301,针对每一候选产品,对已有的该候选产品的产品描述信息进行分词,得
到该候选产品的特征词集合。
[0085]
本步骤中的产品信息可以是候选产品的描述信息,例如,候选产品的说明书、候选产品的官网介绍、购物网站的产品介绍、消费者对于候选产品的测评或评价等。上述内容可以通过爬虫的方式在互联网中获得,也可以通过人为输入的方式获得,本发明对此不作限定。
[0086]
当然,为了丰富词向量库所包含的词向量范围,除上述候选产品的产品描述信息外,还可以额外的选择将其他文本一并作为训练语料,例如,维基百科和百度百科中记录的信息。
[0087]
需要说明的是,上述分词时所采用的分词算法可以是jieba分词算法、正向最大匹配算法、逆向最大匹配算法等等,本发明对此不做限定。
[0088]
步骤302,将每个所述候选产品的所述特征词集合作为一个训练样本输入神经网络语言模型,训练获得每个特征词的词向量以生成所述词向量库。
[0089]
作为一个示例,本步骤中的神经网络语言模型可以是word2vec模型。此处对于word2vec模型的训练过程可参照本领域技术人员所熟知的方式实现,并且由于此处训练word2vec模型的过程并非本发明实施例的改进重点,因此不再详细描述。
[0090]
以上对上述词向量库的构建过程进行了描述。可以理解的是,上述描述的构建词向量库的实现方式仅用于举例,并不作为对本发明的限制。
[0091]
一旦获得了待推荐产品,那么则可以从这些待推荐产品中选择出用于推荐的目标推荐产品并进行推荐。下面描述一种具体的实现方式,参见图4,图4示出了本发明实施例所提供的产品推荐方法中,目标推荐产品的确定及推荐流程图。如图4所示,该流程可以包括:
[0092]
步骤401,从已确定的待推荐产品中选择出目标推荐产品并向目标即时通讯群组发送。
[0093]
在本发明实施例种,从已确定的待推荐产品中选择出目标推荐产品有多种实现方式。作为其中一种实现方式,可以对于每一待推荐产品,首先确定出该待推荐产品关联的所有特征词向量与目标词向量之间的各距离中的最小值(记为目标距离)。之后,依据各目标距离按从小至大的顺序对各待推荐产品进行排序,得到待推荐产品序列。最后,选择该序列中前l个待推荐产品作为目标推荐产品。
[0094]
需要说明的是,上述的m为大于0的正整数。而至于m的具体数值,则可以根据实际情况设置,本发明对此不作限定。
[0095]
在确定出目标推荐商品后,则可以将该目标推荐商品以会话消息的形式向目标即时通讯群组发送。这里的目标即时通讯群组则是目标短文本为会话消息的情况下所在的即时通讯群组。
[0096]
可选的,可以预先创建一个由电子设备控制的即时通讯账户并加入该目标即时通讯群组。当确定出目标推荐产品后,则可以由该电子设备将目标推荐产品经由其控制的即时通讯账户发送至目标即时通讯群组中。
[0097]
需要说明的是,向目标即时通讯群组发送目标推荐产品时,可以通过文本的形式发送、也可以通过购物网站中目标推荐产品的网页链接的形式发送,具体以何种形式发送目标推荐产品则可根据实际情况决定,本发明对此不作限定。
[0098]
步骤402,在向所述即时通讯群组发送所述目标推荐产品后,采集预设时长或预设
数量的会话消息,并输入至预设的文本情感分析模型,得到即时通讯群组内用户对于所述目标推荐产品的情感。
[0099]
为了获知目标即时通讯群组内各用户对于目标推荐产品的情感是否为正向,可以对目标即时通讯群组内的会话消息进行分析。
[0100]
可选的,可以在前述向目标即时通讯群组内发送目标推荐产品后,采集预设时长或预设数量的会话消息。之后,将采集的这些会话消息输入至已有的文本情感分析模型,得到该文本情感分析模型输出的情感分析结果。
[0101]
需要说明的是,上述的文本情感分析模型可以根据实际情况选择,例如,可以是使用支持向量机(support vector machine,svm)、朴素贝叶斯模型(naive bayesian model,nbm)等现有的分类器(classifier)预先训练而成的,也可以是使用现有的分类函数(例如softmax函数等)预先训练而成的。
[0102]
基于上述文本情感分析模型输出的情感分析结果,可以用于调整前述目标主题分类模型和词向量库。
[0103]
以上对目标推荐产品如何确定及推荐进行了描述。
[0104]
上文详细描述了本发明实施例提供的产品推荐方法,上述方法也可以通过相应的装置实现,下面将详细描述本发明实施例提供的产品推荐装置。
[0105]
图5示出了本发明实施例所提供的一种产品推荐装置的结构示意图。如图5所示,该产品推荐装置包括:
[0106]
确定单元,用于确定目标短文本对应的主题词,并在预设的词向量库中查找到所述主题词的目标词向量;
[0107]
计算单元,用于计算所述目标词向量与所述词向量库中每一候选产品所关联的特征词向量之间的距离;
[0108]
推荐单元,用于在计算得到的所有距离均大于预设的距离阈值的情况下,针对每一所述候选产品,若所述词向量库中存在满足预设条件的n个相似词向量,则将该候选产品确定为关联所述目标短文本的待推荐产品;其中,所述设定条件为:在由所述n个相似词向量构成的词向量序列中,首位的相似词向量与所述目标词向量、末位的相似词向量与该候选产品的特征词向量、以及相邻相似词向量之间的距离均不大于所述距离阈值。
[0109]
作为一个示例,推荐单元还用于:针对每一所述候选产品,若该候选产品的特征词向量与所述目标词向量之间的距离小于所述距离阈值,则将该候选产品确定为关联所述目标短文本的待推荐产品。
[0110]
作为一个示例,确定单元确定目标短文本对应的主题词,包括:对所述目标短文本进行分词,得到所述目标短文本的特征词集合;将所述目标短文本的特征词集合输入至已训练的目标主题分类模型中,得到所述主题词。
[0111]
作为一个示例,目标主题分类模型通过以下方式训练得到:针对已有的即时通讯群组内的每条会话消息,对该条会话消息进行分词,并根据所述词向量库对分词得到的特征词集合进行扩展,得到训练特征词集合;基于机器学习算法对所有训练特征词集合进行训练,获得所述目标主题分类模型。
[0112]
作为一个示例,基于机器学习算法对所有训练特征词集合进行训练,获得所述目标主题分类模型,包括:获得m个已被标记有标签的训练特征词集合;基于半监督机器学习
programmable gate array,fpga)、复杂可编程逻辑器件(complex programmable logic device,cpld)、可编程逻辑阵列(programmable logic array,pla)、微控制单元(microcontroller unit,mcu)或其他可编程逻辑器件、分立门、晶体管逻辑器件、分立硬件组件。可以实现或执行本发明实施例中公开的各方法、步骤及逻辑框图。例如,处理器可以是单核处理器或多核处理器,处理器可以集成于单颗芯片或位于多颗不同的芯片。
[0123]
处理器72可以是微处理器或任何常规的处理器。结合本发明实施例所公开的产品推荐方法步骤可以直接由硬件译码处理器执行完成,或者由译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存取存储器(random access memory,ram)、闪存(flash memory)、只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、寄存器等本领域公知的可读存储介质中。所述可读存储介质位于存储器中,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
[0124]
总线71还可以将,例如外围设备、稳压器或功率管理电路等各种其他电路连接在一起,总线接口74在总线71和收发器73之间提供接口,这些都是本领域所公知的。因此,本发明实施例不再对其进行进一步描述。
[0125]
收发器73可以是一个元件,也可以是多个元件,例如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。例如:收发器73从其他设备接收外部数据,收发器73用于将处理器72处理后的数据发送给其他设备。取决于计算机系统的性质,还可以提供用户接口76,例如:触摸屏、物理键盘、显示器、鼠标、扬声器、麦克风、轨迹球、操纵杆、触控笔。
[0126]
应理解,在本发明实施例中,存储器75可进一步包括相对于处理器72远程设置的存储器,这些远程设置的存储器可以通过网络连接至服务器。上述网络的一个或多个部分可以是自组织网络(ad hoc network)、内联网(intranet)、外联网(extranet)、虚拟专用网(vpn)、局域网(lan)、无线局域网(wlan)、广域网(wan)、无线广域网(wwan)、城域网(man)、互联网(internet)、公共交换电话网(pstn)、普通老式电话业务网(pots)、蜂窝电话网、无线网络、无线保真(wi-fi)网络以及两个或更多个上述网络的组合。例如,蜂窝电话网和无线网络可以是全球移动通信(gsm)系统、码分多址(cdma)系统、全球微波互联接入(wimax)系统、通用分组无线业务(gprs)系统、宽带码分多址(wcdma)系统、长期演进(lte)系统、lte频分双工(fdd)系统、lte时分双工(tdd)系统、先进长期演进(lte-a)系统、通用移动通信(umts)系统、增强移动宽带(enhance mobile broadband,embb)系统、海量机器类通信(massive machine type of communication,mmtc)系统、超可靠低时延通信(ultra reliable low latency communications,urllc)系统等。
[0127]
应理解,本发明实施例中的存储器75可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器包括:只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存(flash memory)。
[0128]
易失性存储器包括:随机存取存储器(random access memory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如:静态随机存取存储器
(static ram,sram)、动态随机存取存储器(dynamic ram,dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddrsdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synchlink dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,drram)。本发明实施例描述的电子设备的存储器75包括但不限于上述和任意其他适合类型的存储器。
[0129]
在本发明实施例中,存储器75存储了操作系统751和应用程序752的如下元素:可执行模块、数据结构,或者其子集,或者其扩展集。
[0130]
具体而言,操作系统751包含各种系统程序,例如:框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序752包含各种应用程序,例如:媒体播放器(media player)、浏览器(browser),用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序752中。应用程序752包括:小程序、对象、组件、逻辑、数据结构以及其他执行特定任务或实现特定抽象数据类型的计算机系统可执行指令。
[0131]
此外,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述产品推荐方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0132]
计算机可读存储介质包括:永久性和非永久性、可移动和非可移动媒体,是可以保留和存储供指令执行设备所使用指令的有形设备。计算机可读存储介质包括:电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备以及上述任意合适的组合。计算机可读存储介质包括:相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、非易失性随机存取存储器(nvram)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带存储、磁带磁盘存储或其他磁性存储设备、记忆棒、机械编码装置(例如在其上记录有指令的凹槽中的穿孔卡或凸起结构)或任何其他非传输介质、可用于存储可以被计算设备访问的信息。按照本发明实施例中的界定,计算机可读存储介质不包括暂时信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如穿过光纤电缆的光脉冲)或通过导线传输的电信号。
[0133]
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0134]
本领域普通技术人员可以意识到,结合本发明实施例中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或二者的结合来实现,为了清楚说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序指令。所述计算机程序指令包括:汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据或以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言,例如:smalltalk、c++以及过程式编程语言,例如:c语言或类似的编程语言。
[0135]
在计算机上加载和执行所述计算机程序指令时,全部或部分的产生按照本发明实施例所述的流程或功能,所述计算机可以是通过计算机、专用计算机、计算机网络或其他可
编辑装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如:所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如:同轴电缆、双绞线、光纤、数字用户线路(digital subscriber line,dsl))或无线(例如:红外、无线、微波)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如:软盘、磁盘、磁带)、光介质(例如:光盘)或半导体介质(例如:固态硬盘(solid state drive,ssd))等。这些功能究竟以硬件还是软件来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。
[0136]
所属技术领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述本发明方法实施例中的对应过程,在此不再赘述。
[0137]
在本发明所提供的几个实施例中,应该理解到,所披露的装置、电子设备和方法,可以通过其他的方式实现。例如,以上描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的、机械的或其他的形式连接。
[0138]
所述作为分离部件说明的单元可以是或也可以不是物理上分开的,作为单元显示的部件可以是或也可以不是物理单元,既可以位于一个位置,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或全部单元来解决本发明实施例方案要解决的问题。
[0139]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0140]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术作出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(包括:个人计算机、服务器、数据中心或其他网络设备)执行本发明各个实施例所述方法的全部或部分步骤。而上述存储介质包括如前述所列举的各种可以存储程序代码的介质。
[0141]
以上所述,仅为本发明实施例的具体实施方式,但本发明实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明实施例披露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明实施例的保护范围之内。因此,本发明实施例的保护范围应以权利要求的保护范围为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1