具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本说明书实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
随着移动互联网的兴起,电商类应用程序、新闻类应用程序、视频直播类应用程序和工具类应用程序越来越多样化,用户越来越注重与其他用户的交互。庞大的用户群体贡献了大量优质的UGC(User Generated Content,用户生成原创内容)。与此同时,由于每个用户都可以在应用程序上生成内容,可能会有很多错误、虚假或片面的内容,甚至还会有一些恶意用户制造出很多的垃圾广告、露骨评论或诈骗信息等内容,严重影响了其他用户使用互联网产品的体验感。为了保障产品的健康发展以及用户的良好体验,通常需要对文本垃圾进行基本的审核。目前基本的审核方法是模型识别,传统的模型对单文本信息进行拦截已经取得了较好的识别效果。但是恶意用户为了避免模型拦截文本,可能会将文本进行变换。例如,将文本中的某些关键字转换成拼音的形式,或者转换成繁体字,这样模型就识别不出该文本,不会进行拦截。还可能会出现用户输入的文本本来不应该拦截,该用户不是恶意用户,但是用户输入的文本中包含会拦截的关键词,所以出现了误拦截的情况,也会影响用户的体验。
本说明书实施例提供了一种文本拦截方法、装置、系统及设备,用来解决上述提到的技术问题。
图1为本说明书实施例提供的一种文本拦截方法的流程示意图,从程序角度而言,流程的执行主体可以为服务器端,也可以为客户端,具体可以包括以下步骤:
步骤101,获取待预测用户输入的第一文本。
第一文本是待预测用户当前输入的文本,是待预测用户想要展示给其他用户看的文本。例如,可以是待预测用户发送的弹幕文本、可以是待预测用户发送给其他用户的文本消息,还可以是待预测用户给其他用户的留言文本或评论文本等。
步骤102,获取所述待预测用户的历史文本和行为特征,其中,所述行为特征为所述待预测用户执行过的操作。
为了提高待预测用户当前输入文本拦截的准确性,需要结合该待预测用户的历史文本和行为特征综合起来进行考虑。
获取的待预测用户的历史文本是待预测用户在输入第一文本之前输入过的文本,既包括拦截过的文本,也包括没有拦截过的文本。其中,获取的待预测用户的历史文本可以是待预测用户在输入第一文本的时刻前预设时长内的输入的所有文本。例如,可以是在输入第一文本的时刻前一周内输入的所有文本。还可以是待预测用户输入的第一文本之前输入的预设数量的文本。例如,历史文本可以为在第一文本之前的输入的前10-20条文本。
获取的待预测用户的行为特征为待预测用户执行过的操作。行为特征可以包括待预测用户当前的行为特征和历史的行为特征。例如,待预测用户给一个好友发送了一条文本消息。发消息这个操作为当前的行为特征,还可以再获取待预测用户的历史的行为特征,例如,在给该好友发消息之前,可能会存在加用户为好友的操作,还可能会存在给除了上述好友之外的其他好友也发消息的操作。
此外,获取的待预测用户的行为特征可以是待预测用户在输入第一文本的时刻前预设时长内的所有行为特征。例如,可以是在输入第一文本的时刻前一周内的所有行为特征。还可以是待预测用户在输入第一文本之前的前预设数量的行为特征。例如,历史文本可以为在输入第一文本之前的前10条行为特征,其中,前10条行为特征可以包括本次输入操作的行为特征。
步骤103,基于注意力机制将所述第一文本和所述历史文本进行比对,得到所述第一文本相对于所述历史文本的分词结果的权重值。
步骤104,将所述第一文本相对于所述历史文本的分词结果的权重值和确定的所述历史文本的特征向量对应相乘,得到第一特征向量。
步骤105,将所述行为特征输入到卷积神经网络模型中,以使所述卷积神经网络模型根据所述第一文本、所述第一特征向量和所述行为特征确定预测分数。
本申请可以采用注意力机制(Attention Mechanism)来确定新输入的文本与历史输入的文本的关联度。在认知科学中,由于信息处理的瓶颈,人类会选择性地关注所有信息的一部分,同时忽略其他可见的信息,上述机制通常被称为注意力机制。例如,人们在阅读时,通常只有少量要被读取的词会被关注和处理。
在基于注意力机制将第一文本和历史文本进行比对,会得到第一文本相对于历史文本的分词结果的权重值。其中,可以采用位置对齐的方式确定第一文本相对于历史文本的分词结果的权重值。然后将第一文本相对于历史文本的分词结果的权重值和确定的历史文本的特征向量对应相乘,得到第一特征向量。即含有加权值的历史文本的特征向量。然后再将第一文本、第一特征向量和行为特征输入到卷积神经网络模型中,以使卷积神经网络模型确定预测分数,使得卷积神经网络模型能够更加关注与第一文本中的词语关联度大的历史文本的词语,也可以理解为关注与第一文本整体语义关联度大的历史文本,提高了模型的识别准确率和模型的处理效率。
步骤106,判断所述预测分数是否达到预设拦截阈值,得到第一判断结果。
步骤107,若所述第一判断结果表示所述预测分数达到所述拦截阈值,则拦截所述第一文本。
在判断是否需要拦截第一文本时,通常会根据预设的拦截阈值进行判断,若卷积神经网络模型得到的预测分数到达拦截阈值,则拦截第一文本,代表第一文本为恶意文本。若卷积神经网络模型得到的预测分数没有到达拦截阈值,则不拦截第一文本,代表第一文本不是恶意文本,可以将第一文本显示出来给其他用户看。其中,拦截阈值可以根据实际对拦截的需求的准确度进行自定义设置。例如,若对拦截的需求的准确度要求高,则可以将拦截阈值设置为85-95之间。若对拦截的需求的准确度要求不太高,则可以将拦截阈值设置为70-85之间。
采用上述方案后,能先基于注意力机制确定获取的当前文本和历史文本的关联度特征向量,然后再将当前文本、当前文本和历史文本的关联度特征向量和用户的行为特征输入到训练好的卷积神经网络模型中进行识别,得到预测分数,再根据该预测分数判断是否拦截,提高了对垃圾广告、露骨评论或诈骗信息等文本内容进行拦截的拦截。
基于图1的方法,本说明书实施例还提供了该方法的一些具体实施方案,下面进行说明。
在一个具体实施方式中,在所述获取待预测用户输入的第一文本之前,还可以包括:
获取训练样本集,其中,所述训练样本集中包括多组训练样本。
将所述训练样本集中的多组训练样本输入到卷积神经网络模型中进行训练,得到卷积神经网络模型。
在用卷积神经网络模型判断是否需要拦截第一文本之前,需要先将卷积神经网络模型训练好。可以采用卷积神经网络(Convolutional NeuralNetworks,CNN)进行训练。卷积神经网络模型能够更加关注想让模型关注的信息,提高了模型的识别准确率。
在一个具体实施方式中,每组训练样本中包括一个训练用户的第一训练文本、多个历史训练文本和所述一个训练用户的行为训练特征,各所述历史训练文本中携带各所述历史训练文本的生成时刻,所述将所述训练样本集中的多组训练样本输入到卷积神经网络中进行训练,得到卷积神经网络模型,具体可以包括:
每组训练样本中包括第一训练文本、多个历史训练文本和所述一个训练用户的行为训练特征,其中,第一训练文本、多个历史训练文本和所述一个训练用户的行为训练特都是属于同一个训练用户的。在将每组训练样本输入到卷积神经网络进行训练之前,需要先对每组训练样本进行预处理,处理成能直接输入卷积神经网络进行训练的格式。具体处理过程如下:
根据预存的分词算法对第一目标训练用户的第一训练文本进行分词。
其中,预存的分词算法可以为ansj_seg,为主要应用于自然语言处理的分词工具。例如,如图2所示,为本说明书实施例提供的一种应用分词算法得到的分词结果的应用示意图,第一训练文本可以为桃小姐提现,应用分词算法ansj_seg对第一训练文本进行分词之后,得到“桃,小姐,提现”的分词结果。第一训练文本可以为倩倩送金币,应用分词算法ansj_seg对第一训练文本进行分词之后,得到“倩,倩,送,金币”的分词结果。
将分词后的第一训练文本的长度填充至第一预设长度,得到第二训练文本。
对第一训练文本分词完成之后,还需要将分词完成后的第一训练文本的长度填充至第一预设长度。可以采用句号或者逗号等不影响文本内容识别的符号进行填充。其中,第一预设长度可以根据实际使用的卷积神经网络进行设置。例如,可以为150个字符。
如图3所示,为本说明书实施例提供的一种对分词结果进行填充的应用示意图,对于不足第一预设长度的分词采用逗号进行填充。
根据所述分词算法对所述第一目标训练用户的各历史训练文本分别进行分词,得到历史训练文本分词集。
将所述历史训练文本分词集中的每个所述历史训练文本对应的分词的长度均填充至所述第一预设长度,得到第一历史训练文本集。
第一目标用户的历史训练文本可能有多个,将每个历史训练文本都进行分词,得到历史训练文本分词集。例如,假设历史训练文本有10个,分别对这10个历史训练文本进行分词。分词之后,得到包括10个历史训练文本的分词的历史训练文本分词集。历史训练文本分词集中每个历史训练文本对应的分词也都需要填充至第一预设长度。其中,也可以采用句号或者逗号等不影响文本内容识别的符号进行填充。
例如,在一组训练样本中,历史训练文本有四条,分别为“朋友推荐填加V.we187901送福利”、“我是朋友推荐填加we187901送福利”、“我是朋友推荐填加we187902送福利”和“我是朋友推荐填加we187903送福利”,采用分词算法对每条历史训练文本都进行分词,得到包含“朋友,推荐,填加,V,.,w,e,1,8,7,9,0,1,送,福利”、“我,是,朋友,推荐,填加,w,e,1,8,7,9,0,1,送,福利”、“我,是,朋友,推荐,填加,w,e,1,8,7,9,0,2,送,福利”和“我,是,朋友,推荐,填加,w,e,1,8,7,9,0,3,送,福利”四条分词的历史训练文本分词集。再用逗号将历史训练文本分词集中的四条历史训练文本对应的分词填充至150条。具体为
{
“,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,朋友,推荐,填加,V,.,w,e,1,8,7,9,0,1,送,福利,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,。。。”;
“,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,我,是,朋友,推荐,填加,w,e,1,8,7,9,0,1,送,福利,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,。。。”;
“,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,我,是,朋友,推荐,填加,w,e,1,8,7,9,0,2,送,福利,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,。。。”;
“,,,,,,,,,,,,,,,,,,,,,,,,,我,是,朋友,推荐,填加,w,e,1,8,7,9,0,3,送,福利,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,。。。
}
将所述第一历史训练文本集中的各第一历史训练文本按所述生成时刻的先后倒序拼接,得到第二历史训练文本。
每个第一历史训练文本都有对应的生成时刻。延续上述四条历史训练文本的例子,继续举例进行分析。例如,历史训练文本“朋友推荐填加V.we187901送福利”的生成时刻为2019-3-2008:30:00,历史训练文本“我是朋友推荐填加we187901送福利”的生成时刻为2019-3-2008:35:40,历史训练文本“我是朋友推荐填加we187902送福利”的生成时刻为2019-3-2008:50:00,历史训练文本“我是朋友推荐填加we187903送福利”的生成时刻为2019-3-2009:20:00,按照生成时刻的倒叙顺序将历史训练文本分词之后文本进行拼接,得到,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,朋友,推荐,填加,V,.,w,e,1,8,7,9,0,1,送,福利,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,。。。-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,我,是,朋友,推荐,填加,w,e,1,8,7,9,0,1,送,福利,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,。。。-,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,我,是,朋友,推荐,填加,w,e,1,8,7,9,0,2,送,福利,,,,,,,,,,,,,,,,,,,,,,,。。。-,,,,,,,,,,,,,,,,,,,,,,,,,我,是,朋友,推荐,填加,w,e,1,8,7,9,0,3,送,福利,,,,,,,,,,,,,,,,,,,,,,,,。。。
基于第二训练文本和第二历史训练文本,得到第二特征向量。
此外,若有多条第二历史训练文本,还可以将得到的特征向量进行组合,得到第二特征矩阵。
为了使得卷积神经网络能更好的关注与当前文本相关的历史文本,所以在对特征进行训练时,需要先对第二历史训练文本进行处理,得到带有加权值的第二历史训练文本,即第二特征向量。使得卷积神经网络能根据加权值确定要重点关注的历史文本,提高模型的处理效率与识别的准确度。
循环上述操作步骤,将每组训练样本中的一个训练用户的第一训练文本、多个历史训练文本和所述每个训练用户的行为训练特征均执行上述处理过程。
将循环完成的每组训练样本中一个训练用户的第二训练文本、第二特征向量和所述每个训练用户的行为训练特征输入到卷积神经网络中进行训练,得到卷积神经网络模型。
其中,在进行训练时,数据是以组为单位的。分别将每组训练样本中一个训练用户的第二训练文本、第二历史训练文本和各行为训练特征输入到卷积神经网络中进行训练,得到卷积神经网络模型。此外,还可以对数据进行批量处理,例如,批处理大小可以为1024。即每次处理1024组训练样本,提高了模型训练的效率。
在一个具体实施方式中,所述基于所述第二训练文本和所述第二历史训练文本,得到第二特征向量,具体可以包括:
基于注意力机制将所述第二训练文本和所述第二历史训练文本进行比对,得到所述第二训练文本相对于所述第二历史训练文本的分词结果的权重值。
将所述第二训练文本相对于所述第二历史训练文本的分词结果的权重值和确定的所述第二历史训练文本的特征向量对应相乘,得到第二特征向量。
在一个具体应用实例中,第二训练文本用数字表示的话可以为{60,30,80},而第二历史训练文本可以表示为{60,70,80},在利用注意力机制对第二训练文本和第二历史训练文本进行比对时,会将两组数据先按照位置进行对齐。即60与60对齐,30与70对齐,80与80对齐。对齐之后在进行比对,对比之后,发现第二训练文本中间的30与第二历史训练文本中的70不同,发生了改变。所以可以减少对中间的文本的关注度,即将第二历史训练文本中70的权值设置的较低,重点关注第二历史训练文本中与第二训练文本相同的其他词语。即可以将第二历史训练文本的分词结果的权重值设为{0.4,0.2,0.4},然后再将{0.4,0.2,0.4}与第二历史训练文本{60,70,80}对应相乘,得到加权之后的第二历史训练文本,即第二特征向量{24,14,32}。
此外,第二训练文本是自然语言的文本格式,在将第二训练文本交给卷积神经网络来处理之前,通常需要首先将第二训练文本的自然语言数学化,词向量就是用来将语言中的词进行数学化的一种方式。即先提取出文本之间的特征,形成代表文本特征的向量。其中,形成代表文本特征的向量的方式有多种,不同的形成方式代表不同的特征表现。例如,可以先创建一个词表,文本中出现的每一个词对应一个索引号,然后根据词是否在文本中出现,将索引号对应的值设为1或0,这样一条句子对应一个向量,向量的长度是文本中出现的所有词的数目。还可以采用空间词向量表示法,将词分布式的映射至词向量空间中,解决向量稀疏问题还能很好的反映词和词之间的语义层次联系。
对第二历史训练文本的处理过程的原理与对第二训练文本的处理过程的原理类似。第二历史训练文本是自然语言的文本格式,在将第二历史训练文本交给卷积神经网络来处理之前,通常需要首先将第二历史训练文本的自然语言数学化,词向量就是用来将语言中的词进行数学化的一种方式。即先提取出文本之间的特征,形成代表文本特征的向量。由于第二历史训练文本有多个,每个第二历史训练文本形成一个词向量,多个第二历史训练文本构成一个矩阵。矩阵的每一行代表一个第二历史训练文本的向量。第二历史训练文本有多少条,矩阵就对应着有多少行。例如,形成的矩阵为10*20的,则代表有10条第二历史训练文本,每条第二历史训练文本形成的词向量维度为20。
将第二训练文本、第二特征向量和一个训练用户的行为训练特征拼接成张量。
其中,可以将第二训练文本、第二特征向量和一个训练用户的行为训练特征顺序拼接成一维张量。
循环上述操作步骤,将每组训练样本中的第二训练文本、第二特征向量和一个训练用户的行为训练特征均执行上述处理过程,得到多组张量。
将所述多组张量输入到所述卷积神经网络的全连接层进行训练,得到卷积神经网络模型。
在一个具体实施方式中,在所述将所述训练样本集中的多组训练样本输入到卷积神经网络中进行训练,得到卷积神经网络模型之后之后,还可以包括:
获取测试样本集,其中,所述测试样本集中包括多组测试样本,每组测试样本包括一个测试用户的第一测试文本、多个历史测试文本和所述一个测试用户的行为测试特征;
将所述每组测试样本中一个测试用户的第一测试文本、多个历史测试文本和所述一个测试用户的行为测试特征输入到所述卷积神经网络模型中,得到识别结果集。
根据预存的目标函数和所述识别结果集确定所述卷积神经网络模型的损失值;
判断所述损失值是否小于预设损失值,得到第二判断结果;
若所述第二判断结果表示所述损失值大于或等于所述预设损失值,则继续训练所述卷积神经网络模型直至新训练的卷积神经网络模型的损失值小于所述预设损失值。
其中,目标函数即为损失函数,损失值可以根据实际情况进行设置。例如,损失值可以设置为0.01。当损失值小于0.01时,代表卷积神经网络模型训练完成。
在一个具体实施方式中,所述目标函数为交叉熵函数,所述根据预存的目标函数和所述识别结果集确定所述卷积神经网络模型的损失值,具体可以包括:
根据所述交叉熵函数和所述识别结果集确定所述卷积神经网络模型的损失值,所述交叉熵函数的表达式为:
H(p,q)=-∑iln(p(xi))log(q(xi)),其中,p为预测的输出结果,q为实际的输出结果,i为所述每组测试样本的编号,xi为第i条测试样本的特征向量,所述第i条测试样本的特征向量包括第一测试文本的特征向量、各历史测试文本对应的所述第二特征向量和行为测试特征的特征向量。
此外,在一个具体实施方式中,所述获取待预测用户输入的第一文本中的所述第一文本,具体包括:所述用户在基于评论界面输入的评论、所述用户在视频播放界面输入的弹幕或所述用户在社交软件界面输入的消息。
基于同样的思路,本说明书实施例还提供了上述方法对应的装置,如图5所示。
图4为本说明书实施例提供的对应于图1的一种文本拦截装置的结构示意图,所述装置可以包括:
第一获取模块401,用于获取待预测用户输入的第一文本。
第二获取模块402,用于获取所述待预测用户的历史文本和行为特征,其中,所述行为特征为所述待预测用户执行过的操作。
比对模块403,用于基于注意力机制将所述第一文本和所述历史文本进行比对,得到所述第一文本相对于所述历史文本的分词结果的权重值。
相乘模块404,用于将所述第一文本相对于所述历史文本的分词结果的权重值和所述历史文本的特征向量对应相乘,得到第一特征向量。
确定模块405,用于将所述行为特征输入到卷积神经网络模型中,以使所述卷积神经网络模型根据所述第一文本、所述第一特征向量和所述行为特征确定预测分数。
判断模块406,用于判断所述预测分数是否达到预设拦截阈值,得到第一判断结果。
拦截模块407,用于若所述第一判断结果表示所述预测分数达到所述拦截阈值,则拦截所述第一文本。
在一个具体实施方式中,在所述第一获取模块之前,还可以包括:
第三获取模块,用于获取训练样本集,其中,所述训练样本集中包括多组训练样本;
得到模块,用于将所述训练样本集中的多组训练样本输入到卷积神经网络中进行训练,得到卷积神经网络模型。
在一个具体实施方式中,每组训练样本中包括一个训练用户的第一训练文本、多个历史训练文本和所述一个训练用户的行为训练特征,各所述历史训练文本中携带各所述历史训练文本的生成时刻,所述得到模块,具体可以包括:
分词单元,用于根据预存的分词算法对第一目标训练用户的第一训练文本进行分词。
填充单元,用于将分词后的第一训练文本的长度填充至第一预设长度,得到第二训练文本。
第一得到单元,用于根据所述分词算法对所述第一目标训练用户的各历史训练文本分别进行分词,得到历史训练文本分词集。
第二得到单元,用于将所述历史训练文本分词集中的每个所述历史训练文本对应的分词的长度均填充至所述第一预设长度,得到第一历史训练文本集。
拼接单元,用于将所述第一历史训练文本集中的各第一历史训练文本按所述生成时刻的先后倒序拼接,得到第二历史训练文本。
训练单元,用于基于所述第二训练文本和所述第二历史训练文本,得到第二特征向量。
循环单元,用于循环上述操作步骤,将每组训练样本中的一个训练用户的第一训练文本、多个历史训练文本和所述每个训练用户的行为训练特征均执行上述处理过程。
输入单元,用于将循环完成的每组训练样本中一个训练用户的第二训练文本、第二特征向量和所述每个训练用户的行为训练特征输入到卷积神经网络中进行训练,得到卷积神经网络模型。
在一个具体实施方式中,所述训练单元,具体可以包括:
基于注意力机制将所述第二训练文本和所述第二历史训练文本进行比对,得到所述第二训练文本相对于所述第二历史训练文本的分词结果的权重值。
将所述第二训练文本相对于所述第二历史训练文本的分词结果的权重值和确定的所述第二历史训练文本的特征向量对应相乘,得到第二特征向量。
在一个具体实施方式中,在所述得到模块之后,还可以包括:
样本获取模块,用于获取测试样本集,其中,所述测试样本集中包括多组测试样本,每组测试样本包括一个测试用户的第一测试文本、多个历史测试文本和所述一个测试用户的行为测试特征。
结果集得到模块,用于将所述每组测试样本中一个测试用户的第一测试文本、多个历史测试文本和所述一个测试用户的行为测试特征输入到所述卷积神经网络模型中,得到识别结果集。
确定损失值模块,用于根据预存的目标函数和所述识别结果集确定所述卷积神经网络模型的损失值。
第二判断模块,用于判断所述损失值是否小于预设损失值,得到第二判断结果。
重新训练模块,用于若所述第二判断结果表示所述损失值大于或等于所述预设损失值,则继续训练所述卷积神经网络模型直至新训练的卷积神经网络模型的损失值小于所述预设损失值。
在一个具体实施方式中,所述目标函数为交叉熵函数,所述确定损失值模块,具体可以包括:
根据所述交叉熵函数和所述卷积神经网络模型的损失值,所述交叉熵函数的表达式为:
H(p,q)=-∑iln(p(xi))log(q(xi)),其中,p为预测的输出结果,q为实际的输出结果,i为所述每组测试样本的编号,xi为第i条测试样本的特征向量,所述第i条测试样本的特征向量包括第一测试文本的特征向量、各历史测试文本对应的所述第二特征向量和行为测试特征的特征向量。
在一个具体实施方式中,所述第一获取模块中的所述第一文本,具体包括:所述用户在基于评论界面输入的评论、所述用户在视频播放界面输入的弹幕或所述用户在社交软件界面输入的消息。
基于同样的思路,本说明书实施例还提供了上述方法对应的设备和非易失性计算机存储介质。
如图5所示,为本说明书实施例提供的对应于图1的一种文本拦截设备500的结果示意图,包括:
至少一个处理器510;以及,
与所述至少一个处理器通信连接的存储器530;其中,
所述存储器存储有可被所述至少一个处理器执行的指令520,所述指令520被所述至少一个处理器510执行,以使所述至少一个处理器510能够:
获取待预测用户输入的第一文本。
获取所述待预测用户的历史文本和行为特征,其中,所述行为特征为所述待预测用户执行过的操作。
基于注意力机制将所述第一文本和所述历史文本进行比对,得到所述第一文本相对于所述历史文本的分词结果的权重值。
将所述第一文本相对于所述历史文本的分词结果的权重值和确定的所述历史文本的特征向量对应相乘,得到第一特征向量。
将所述行为特征输入到卷积神经网络模型中,以使所述卷积神经网络模型根据所述第一文本、所述第一特征向量和所述行为特征确定预测分数。
判断所述预测分数是否达到预设拦截阈值,得到第一判断结果。
若所述第一判断结果表示所述预测分数达到所述拦截阈值,则拦截所述第一文本。
说明书实施例还提供了一种文本拦截系统,包括卷积神经网络模型和注意力机制模型,所述注意力机制模型被配置为接收用户输入的第一文本和历史文本,并将所述第一文本和所述历史文本进行比对,得到所述第一文本相对于所述历史文本的分词结果的权重值。
预处理模块,所述预处理模块被配置为将所述第一文本相对于所述历史文本的分词结果的权重值和确定的所述历史文本的特征向量对应相乘,得到第一特征向量,并输出所述第一特征向量。
所述卷积神经网络模型被配置为接收用户的第一文本、用户的行为特征和所述第一特征向量,作为所述卷积神经网络模型的全连接层的输入,并在所述全连接层训练所述第一文本、所述用户的行为特征和所述第一特征向量,得出预测分数,作为所述全连接层的输出。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备、非易失性计算机存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书实施例提供的装置、设备、非易失性计算机存储介质与方法是对应的,因此,装置、设备、非易失性计算机存储介质也具有与对应方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述对应装置、设备、非易失性计算机存储介质的有益技术效果。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、AtmelAT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书实施例可提供为方法、系统、或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。