一种评论评分的预测方法、装置、电子设备及存储介质

文档序号:33708044发布日期:2023-03-31 22:28阅读:232来源:国知局
一种评论评分的预测方法、装置、电子设备及存储介质

1.本发明涉及神经网络模型领域,尤其是一种评论评分的预测方法、装置、电子设备及存储介质。


背景技术:

2.如今,旅游者们越发注重旅游体验,为了减少旅游的风险性和不确定性,也会提前搜寻信息,根据旅游产品和目的地的在线评论制定旅游计划。但是,由于人人都可以通过互联网发布在线评论,呈现给旅游者的评论往往纷繁复杂。一方面,在线评论的评分易受到非正常手段干扰,部分评论或评分不一定反映旅游产品的真实评价。另一方面,由于发表评论的平台各异,评论数据量十分庞大,对于大部分旅游者而言,他们往往很难从成千上万的在线评论中提取真实有用的评价及评分,并分清所选择的旅游产品或目的地的好坏优劣。
3.因而,如何识别出真实的评价或评分对帮助旅游者制定计划有重要作用。


技术实现要素:

4.有鉴于此,本发明实施例提供一种可以识别出真实有效的评价或评分的一种评论评分的预测方法、装置、电子设备及存储介质。
5.本发明实施例的一方面提供了一种评论评分的预测方法,包括:
6.获取预处理数据,所述预处理数据包括用户数据、产品数据及评论向量,所述用户数据与所述产品数据为整数;
7.分别将所述用户数据与所述产品数据输入各自对应的嵌入层,得到所述用户数据对应的用户隐含向量与所述产品数据对应的产品隐含向量;
8.将所述评论向量输入至tiny-bert预训练模型,得到所述评论向量对应的评论隐含向量;
9.将所述用户隐含向量、所述产品隐含向量及所述评论隐含向量进行拼接,得到拼接向量;
10.将所述拼接向量输入至预测模型,得到对所述评论向量对应的评论文本的真实性评分,所述预测模型为以标注有训练评论评分的训练拼接向量作为训练数据训练得到,且所述预测模型的激活函数包括relu激活函数与softmax激活函数。
11.优选地,所述预处理数据的处理过程,包括:
12.将用户标识的用户字符串与产品标识的产品字符串分别用term frequency算法进行编码构建,得到所述用户字符串对应的用户数据与所述产品字符串对应的产品数据;
13.利用bert预训练算法将评论文本转化评论向量,所述评论向量包括字向量、文本向量及位置向量,所述评论文本为英文文本。
14.优选地,所述利用bert预训练算法将评论文本转化评论向量,所述评论向量包括字向量、文本向量及位置向量,所述评论文本为英文文本,包括:
15.去除评论文本中除文本字符外的其余字符,并将评论文本单词小写化,得到目标
评论文本;
16.采用贪婪最长优先算法,将所述目标评论文本中分成多个子词,根据所述bert预训练算法中预设的词汇表确定所述子词对应的编码;
17.将所述编码组成字向量,并根据所述字向量确定位置向量与文本向量。
18.优选地,所述将所述用户隐含向量、所述产品隐含向量及所述评论隐含向量进行拼接,得到拼接向量,包括:
19.基于pytorch将所述用户隐含向量、所述产品隐含向量及所述评论隐含向量进行拼接,得到拼接向量。
20.本发明实施例的另一方面还提供了一种评论评分的预测装置,包括:
21.数据获取单元,用于获取预处理数据,所述预处理数据包括用户数据、产品数据及评论向量,所述用户数据与所述产品数据为整数;
22.第一向量确定单元,用于分别将所述用户数据与所述产品数据输入各自对应的嵌入层,得到所述用户数据对应的用户隐含向量与所述产品数据对应的产品隐含向量;
23.第二向量确定单元,用于将所述评论向量输入至tiny-bert预训练模型,得到所述评论向量对应的评论隐含向量;
24.向量拼接单元,用于将所述用户隐含向量、所述产品隐含向量及所述评论隐含向量进行拼接,得到拼接向量;
25.评分预测单元,用于将所述拼接向量输入至预测模型,得到对所述评论向量对应的评论文本的真实性评分,所述预测模型为以标注有训练评论评分的训练拼接向量作为训练数据训练得到,且所述预测模型的激活函数包括relu激活函数与softmax激活函数。
26.优选地,所述数据获取单元,包括:
27.编码构建单元,用于将用户标识的用户字符串与产品标识的产品字符串分别用term frequency算法进行编码构建,得到所述用户字符串对应的用户数据与所述产品字符串对应的产品数据;
28.向量转化单元,用于利用bert预训练算法将评论文本转化评论向量,所述评论向量包括字向量、文本向量及位置向量,所述评论文本为英文文本。
29.优选地,所述向量转化单元,包括:
30.第一向量转化单元,用于去除评论文本中除文本字符外的其余字符,并将评论文本单词小写化,得到目标评论文本;
31.第二向量转化单元,用于采用贪婪最长优先算法,将所述目标评论文本中分成多个子词,根据所述bert预训练算法中预设的词汇表确定所述子词对应的编码;
32.第三向量转化单元,用于将所述编码组成字向量,并根据所述字向量确定位置向量与文本向量。
33.优选地,所述向量拼接单元,包括:
34.向量拼接子单元,用于基于pytorch将所述用户隐含向量、所述产品隐含向量及所述评论隐含向量进行拼接,得到拼接向量。
35.本发明实施例的另一方面还提供了一种电子设备,包括处理器以及存储器;
36.所述存储器用于存储程序;
37.所述处理器执行所述程序实现上述的方法。
38.本发明实施例的另一方面还提供了一种计算机可读存储介质,所述存储介质存储有程序,所述程序被处理器执行实现上述的方法。
39.本发明实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前面的方法。
40.本发明获取用户数据、产品数据及评论向量,并分别确定上述三种数据的隐含向量,隐含向量可以包含用户、产品及评论三者之间的关联关系,进而将三个隐含向量拼接并输入到以标注有训练评论评分的训练拼接向量作为训练数据训练得到预测模型,预测模型中输出结果前可以先将拼接向量经过relu激活函数,最后经过softmax激活函数,从而预测模型可以综合评论文本、用户、产品三个维度对评论评分的影响,得到对评论文本的真实性评分。基于预测得到的评论真实性评分,旅游者可以快速辨别各条评论对产品的评价是否真实客观,也能确定各种对产品恶意评价的评论,使得旅游者能从繁多的评论中获取有参考价值的信息,避免了被虚假评论误导。
附图说明
41.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
42.图1为本发明实施例提供的一种评论评分的预测方法的流程示意图;
43.图2为本发明实施例提供的一种relu激活函数的曲线示例图;
44.图3为本发明实施例提供的一种softmax激活函数的曲线示例图;
45.图4为本发明实施例提供的一种评论评分的预测示例的流程示意图;
46.图5为本发明实施例提供的一种评论评分的预测示例模型的结构框架图;
47.图6为本发明实施例提供的一种评论评分的预测装置的结构框图。
具体实施方式
48.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
49.参照图1,本发明实施例提供了评论评分的预测方法,具体包括以下步骤:
50.步骤s100:获取预处理数据,所述预处理数据包括用户数据、产品数据及评论向量,所述用户数据与所述产品数据为整数。
51.具体的,用户数据可以是用户id,产品数据可以是产品的id。用户数据和产品数据的数据类型可以是唯一字符串,在输入预测模型之前,可以将这种数据类型的字符串转换为整数。而评论向量可以是根据评论文本确定的向量。
52.步骤s110:分别将所述用户数据与所述产品数据输入各自对应的嵌入层,得到所述用户数据对应的用户隐含向量与所述产品数据对应的产品隐含向量。
53.具体的,用户数据对应的嵌入层(embedding layer)可以学习用户数据的隐含向量表示,其中,隐含向量根据上下文不同其内涵也可以不同,在本实施例表示为反映用户关系的向量,产品数据对应的嵌入层可以学习产品的隐含向量表示,这两个嵌入层将用户唯一标识符user和产品唯一标识符product映射至一个低维空间。
54.在深度学习领域中,embedding是指将一个维度为可能输入的数量的高维空间映射至一个相对低维的稠密向量空间中。理论上,一个训练良好的embedding能将具有相似含义或词性的输入映射至邻近嵌入空间中,本实施例使用embedding的嵌入表示可以作为用户或产品的向量表示,从而提取用户与用户之间,产品与产品之间的相似关系。
55.步骤s120:将所述评论向量输入至tiny-bert预训练模型,得到所述评论向量对应的评论隐含向量。
56.具体的,tiny-bert基于多头自注意力机制(multi-headed self-attention)可以学习文本中每个单词与其他单词之间的关联和它们之间的相关性。这种方式可以将单词之间的相关性通过词向量的形式显式地表示出来,使得句子的上下文信息可以隐含在每个词向量中,从而可以动态地给出每一个单词在该上下文所对应的词向量,提高更高质量的文本表示,同时也可以达到并行处理的目的。
57.因此,通过tiny-bert预训练模型得到的评论隐含向量可以包含评论文本上下文的相关性,更有利于预测评论的真实性。
58.步骤s130:将所述用户隐含向量、所述产品隐含向量及所述评论隐含向量进行拼接,得到拼接向量。
59.具体的,基于pytorch框架实现模型结构,并得到评论、用户和产品的隐含向量后,可以将三者进行拼接,拼接得到{e
bert
(review),eu(user),e
p
(product)},实现多重信息的融合。其中,pytorch是一个开源的python机器学习库,基于torch开发,可用于自然语言处理等应用程序。
60.步骤s140:将所述拼接向量输入至预测模型,得到对所述评论向量对应的评论文本的真实性评分,所述预测模型为以标注有训练评论评分的训练拼接向量作为训练数据训练得到,且所述预测模型的激活函数包括relu激活函数与softmax激活函数。
61.参照图2,relu激活函数是一个简单的计算,如果输入大于0,直接返回作为输入提供的值;如果输入是0或更小,返回值0。对于大于零的值,这个函数是线性的,这意味着当使用反向传播训练神经网络时,它具有很多线性激活函数的理想特性。然而,它是一个非线性函数,因为负值总是作为零输出。由于函数在输入域的一半是线性的,另一半是非线性的,所以它被称为分段线性函数(piecewise linear function)。
62.参照图3,softmax是用于多类分类问题最后一层的激活函数,在多类分类问题中,超过两个类标签则需要类成员关系。对于长度为k的任意实向量,softmax可以将其压缩为长度为类别总数、值在(0,1)范围内、并且向量中元素的总和为1的实向量。softmax与正常的max函数不同:max函数仅输出最大值,但softmax确保较小的值具有较小的概率,并且不会直接丢弃。
63.预测模型通过对三类隐含向量的规律学习,对于每一个隐含向量,输出其各类预测评分的概率,并选取概率最大的一类作为预测评分。
64.拼接向量经过预测模型的上述两个激活函数后,预测模型可以输出拼接向量对象
的评论评分,该评论评分可以表示评论的真实性,评分越高可以表示评论越可靠真实。
65.在本发明的一些实施例中,介绍了上述步骤s100,获取预处理数据的过程,接下来将对预处理数据的处理过程做说明。
66.具体的,可以包括以下:
67.s1、将用户标识的用户字符串与产品标识的产品字符串分别用term frequency算法进行编码构建,得到所述用户字符串对应的用户数据与所述产品字符串对应的产品数据。
68.具体的,对于用户数据和产品数据,可以采用tf(term frequency)算法进行编码构建。考虑到用户或产品数量巨大,对预测模型性能产生较大的影响,因而采取按频率编号,方便剔除一些评论数据极少的用户或产品。首先统计各个用户或产品id的出现频率,并按照id出现频率从高到低进行编号,再次编号后会将字符串数据转化为整数数据。
69.s2、利用bert预训练算法将评论文本转化评论向量,所述评论向量包括字向量、文本向量及位置向量,所述评论文本为英文文本。
70.具体的,确定评论向量的过程可以包括以下:
71.s21、去除评论文本中除文本字符外的其余字符,并将评论文本单词小写化,得到目标评论文本。
72.s22、采用贪婪最长优先算法,将所述目标评论文本中分成多个子词,根据所述bert预训练算法中预设的词汇表确定所述子词对应的编码。
73.s23、将所述编码组成字向量,并根据所述字向量确定位置向量与文本向量。
74.为了更清楚地描述上述步骤s2,接下来将以具体实例进行说明,具体过程如下:
75.①
去除替换字符、控制字符和空白符和附加符号等字符。
76.②
将文本单词小写化。
77.③
去除文本两边的空白符,并基于空格和标点符号进行分词。
78.④
对于每一个词,根据预训练bert模型的词汇表,采用贪婪最长优先算法,对每个词从右到左地尽可能地分成多个子词(subword),且除第一个子词外的其它子词需要加上“##”前缀,例如:“unaffable”经过处理后分成{“un”,“##aff”,“##able”}。
79.⑤
根据词汇表(词汇表由预训练bert模型提供)将子词替换为对应的编码,构成字向量。
80.⑥
在字向量开头添加保留词“[cls]”的编码,结尾添加保留词“[sep]”的编码。
[0081]

将字向量裁剪至所需长度:由于模型中使用到了bert模型,该模型对内存的占用会根据使用长度而指数增长,因而需要对输入进行对应的裁剪。本实施例采用512作为字向量的最大长度。
[0082]

最后,根据字向量生成文本向量和位置向量。位置向量为0-n的序列,如[0,1,2,

,n],其中n为向量长度+1。其向bert提供顺序信息(bert无法从字向量中获取位置信息,因而需要额外的辅助);文本向量为标记段落的序列,如[0,0,0,0,0]表示对应的字向量在同一段落内;[0,0,1,1,1]表示对应的字向量在不同段落中。此向量使得bert能分辨出不同段落文本。
[0083]
举例说明:假设评论文本内容为“this's unaffable”,具体的预处理算法步骤如下:
[0084]
1)去除特殊字符——this s unaffable
[0085]
2)将文本单词小写化——this s unaffable
[0086]
3)去除文本两边的空白符,并基于空格和标点符号进行分词——[“this”,“s”,“unaffable”]
[0087]
4)对每个词从右到左地尽可能地分成多个子词——[“this”,“s”,“un”,“##aff”,“##able”]
[0088]
5)将子词替换为对应的编码,构成字向量
[0089]
[2024,1056,4896,10355,3086]
[0090]
6)在字向量开头添加保留词“[cls]”的编码,结尾添加保留词“[sep]”的编码
[0091]
[102,2024,1056,4896,10355,3086,103]
[0092]
7)将字向量裁剪至所需长度
[0093]
[102,2024,1056,4896,10355,3086,103]
[0094]
8)生成文本向量和位置向量
[0095]
[102,2024,1056,4896,10355,3086,103]
[0096]
[0,0,0,0,0,0,0]
[0097]
[0,1,2,3,4,5,6]
[0098]
接下来将以具体实例说明本发明的预测模型预测评论评分的过程,具体参照图4与图5。
[0099]
具体的,获取用户id字符串作为用户数据,产品id字符串作为产品数据,并将评论文本的字符串作为评论数据;用户数据与产品数据经过tf算法可以得到整数类型的数据,而评论数据经过bert预训练算法可以得到评论向量;将整数类型的用书数据与产品数据输入embedding嵌入层,分别得到用户隐含向量与产品隐含向量,将评论向量输入tiny-bert预训练模型,可以得到评论隐含向量;进而将三个隐含向量进行拼接,然后输入到预测模型,最终得到评论文本的评分,作为对该评论的真实性的参考推荐度。
[0100]
参照图6,本发明实施例提供了一种评论评分的预测装置,包括:
[0101]
数据获取单元,用于获取预处理数据,所述预处理数据包括用户数据、产品数据及评论向量,所述用户数据与所述产品数据为整数;
[0102]
第一向量确定单元,用于分别将所述用户数据与所述产品数据输入各自对应的嵌入层,得到所述用户数据对应的用户隐含向量与所述产品数据对应的产品隐含向量;
[0103]
第二向量确定单元,用于将所述评论向量输入至tiny-bert预训练模型,得到所述评论向量对应的评论隐含向量;
[0104]
向量拼接单元,用于将所述用户隐含向量、所述产品隐含向量及所述评论隐含向量进行拼接,得到拼接向量;
[0105]
评分预测单元,用于将所述拼接向量输入至预测模型,得到对所述评论向量对应的评论文本的真实性评分,所述预测模型为以标注有训练评论评分的训练拼接向量作为训练数据训练得到,且所述预测模型的激活函数包括relu激活函数与softmax激活函数。
[0106]
本发明实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该
计算机设备执行图1所示的方法。
[0107]
在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或所述方框有时能以相反顺序被执行。此外,在本发明的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
[0108]
此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,所述的功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。
[0109]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0110]
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
[0111]
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置)、便携式计算机盘盒(磁装置)、随机存取存储器(ram)、只读存储器(rom)、可擦除可编辑只读存储器(eprom或闪速存储器)、光纤装置以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0112]
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下
列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
[0113]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0114]
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
[0115]
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本发明权利要求所限定的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1