欢迎光临小豌豆知识网!
当前位置:首页 > 生活技术 > 运动娱乐> 一种游戏中长文本消息合法性校验的方法及系统独创技术13363字

一种游戏中长文本消息合法性校验的方法及系统

2021-02-03 14:27:08

一种游戏中长文本消息合法性校验的方法及系统

  技术领域

  本发明涉及游戏安全技术领域,特别是一种游戏中长文本消息合法性校验的方法及系统。

  背景技术

  现有为了净化游戏内健康的聊天环境,规范网络语言,避免网络暴力,游戏中会持续核查游戏内玩家角色、语言聊天等文字消息。

  现有的游戏中的消息(聊天、公告等)合法性校验,绝大部分是通过消息文本与敏感屏蔽词库进行匹配,将含有敏感屏蔽词的消息判定为非法,这种判定方法在面对长文本消息时往往会因为需要与敏感屏蔽词库一一匹配等会造成判断的效率相对较低,影响用户的发布消息体验,目前还没有发现对于长文本消息有对应高效、可行的解决方案。

  发明内容

  为克服上述问题,本发明的目的是提供一种游戏中长文本消息合法性校验的方法,能快速判断长文本消息是否合法,从而屏蔽敏感消息,降低服务器的负载。

  本发明采用以下方案实现:一种游戏中长文本消息合法性校验的方法,所述方法包括如下步骤:

  步骤S1、在游戏服务端中设置一敏感屏蔽消息文本库,该敏感屏蔽消息文本库中保存有要屏蔽长消息和每条要屏蔽长消息对应的4份非法的消息特征值SubCode;

  步骤S2、从游戏客户端发送一条长文本消息,游戏客户端将数据发送给游戏服务端;

  步骤S3、游戏服务端将数据发送给游戏服务端的消息监控层,消息监控层通过SimHash算法将数据转化成唯一的SimHash值;

  步骤S4、将SimHash值等分为4份的消息特征值SubCode后与敏感屏蔽消息文本库中每条要屏蔽长消息对应的4份非法的消息特征值SubCode进行匹配;如果查询到了结果,则说明该长文本消息与要屏蔽长消息相似;否则,则无相似数据;

  步骤S5、将查询结果返回给游戏客户端,游戏客户端接收到返回结果,通过则成功发送长文本消息,不通过则拦截长文本消息的发送。

  进一步的,通过对敏感屏蔽消息文本库中所有的4份非法的消息特征值SubCode建立数据库索引来达到快速查询的效果。

  进一步的,所述步骤S4中将SimHash值等分为4份的消息特征值SubCode后与敏感屏蔽消息文本库中每条要屏蔽长消息对应的4份非法的消息特征值SubCode进行匹配的方式采用汉明距离Hamming Distance进行判断;设置汉明距离为3以内的情况下,则长文本消息与要屏蔽长消息是相似的,要相似即长文本消息的64位SimHash值中一共最多只能有3位与要屏蔽长消息不一致,在此前提下,将SimHash值等分为4份的消息特征值SubCode,则其中必有一份完全相同。

  本发明还提供了一种游戏中长文本消息合法性校验的系统,所述系统包括文本库创建模块、消息发送模块、消息监控模块、匹配模块、以及结果反馈模块;

  所述文本库创建模块,用于在游戏服务端中设置一敏感屏蔽消息文本库,该敏感屏蔽消息文本库中保存有要屏蔽长消息和每条要屏蔽长消息对应的4份非法的消息特征值SubCode;

  所述消息发送模块,用于从游戏客户端发送一条长文本消息,游戏客户端将数据发送给游戏服务端;

  所述消息监控模块,用于游戏服务端将数据发送给游戏服务端的消息监控层,消息监控层通过SimHash算法将数据转化成唯一的SimHash值;

  所述匹配模块,用于将SimHash值等分为4份的消息特征值SubCode后与敏感屏蔽消息文本库中每条要屏蔽长消息对应的4份非法的消息特征值SubCode进行匹配;如果查询到了结果,则说明该长文本消息与要屏蔽长消息相似;否则,则无相似数据;

  所述结果反馈模块,用于将查询结果返回给游戏客户端,游戏客户端接收到返回结果,通过则成功发送长文本消息,不通过则拦截长文本消息的发送。

  进一步的,通过对敏感屏蔽消息文本库中所有的4份非法的消息特征值SubCode建立数据库索引来达到快速查询的效果。

  进一步的,所述匹配模块中将SimHash值等分为4份的消息特征值SubCode后与敏感屏蔽消息文本库中每条要屏蔽长消息对应的4份非法的消息特征值SubCode进行匹配的方式采用汉明距离Hamming Distance进行判断;设置汉明距离为3以内的情况下,则长文本消息与要屏蔽长消息是相似的,要相似即长文本消息的64位SimHash值中一共最多只能有3位与要屏蔽长消息不一致,在此前提下,将SimHash值等分为4份的消息特征值SubCode,则其中必有一份完全相同。

  本发明的有益效果在于:1、现有大部分校验方法为,分词后与屏蔽词库中屏蔽词一一比较,一旦消息过长或屏蔽词库中屏蔽词过多,既有可能造成校验效率低,导致玩家发送消息体验差。经该本发明改善后,长文本消息可以直接转化为4份SubCode后在数据库中直接通过索引查询该消息是否合法,有效提高了长文本消息的校验效率,提升了玩家的体验。2、可以快速判断长文本消息是否合法,从而屏蔽敏感消息,降低服务器的负载,节约算力,提高长文本判断效率,提升玩家游戏体验。

  附图说明

  图1是本发明的方法流程示意图。

  图2是本发明的系统原理框图。

  具体实施方式

  下面结合附图对本发明做进一步说明。

  请参阅图1所示,本发明的一种游戏中长文本消息合法性校验的方法,所述方法包括如下步骤:

  步骤S1、在游戏服务端中设置一敏感屏蔽消息文本库,该敏感屏蔽消息文本库中保存有要屏蔽长消息和每条要屏蔽长消息对应的4份非法的消息特征值SubCode;

  步骤S2、从游戏客户端发送一条长文本消息,游戏客户端将数据发送给游戏服务端;

  步骤S3、游戏服务端将数据发送给游戏服务端的消息监控层,消息监控层通过SimHash算法将数据转化成唯一的SimHash值;其中,SimHash算法:Google在2007年发表的一种指纹生成算法。与传统Hash算法不同的是,通过降维的思想,两个相似文本通过该算法计算出来的Hash值可以近乎相似。

  具体步骤简单概括为:

  1.对文档分词及对应的权重作为特征;

  2.对特征进行hash计算;

  3.对特征hash值的每一位做循环处理,如果该位值为1,则用weight(权重)代替,否则则用-weight(权重)代替;

  4.求和,将特征hash加权后的结果,按位求和,然后将结果按位二值化;大于0则为1,否则为0,记得到最后的SimHash值。

  步骤S4、将SimHash值等分为4份的消息特征值SubCode后与敏感屏蔽消息文本库中每条要屏蔽长消息对应的4份非法的消息特征值SubCode进行匹配;如果查询到了结果,则说明该长文本消息与要屏蔽长消息相似;否则,则无相似数据;

  步骤S5、将查询结果返回给游戏客户端,游戏客户端接收到返回结果,通过则成功发送长文本消息,不通过则拦截长文本消息的发送。

  其中,通过对敏感屏蔽消息文本库中所有的4份非法的消息特征值SubCode建立数据库索引来达到快速查询的效果。

  所述步骤S4中将SimHash值等分为4份的消息特征值SubCode后与敏感屏蔽消息文本库中每条要屏蔽长消息对应的4份非法的消息特征值SubCode进行匹配的方式采用汉明距离Hamming Distance进行判断;设置汉明距离为3以内的情况下,则长文本消息与要屏蔽长消息是相似的,要相似即长文本消息的64位SimHash值中一共最多只能有3位与要屏蔽长消息不一致,在此前提下,将SimHash值等分为4份的消息特征值SubCode,则其中必有一份完全相同。

  其中,Hamming Distance:汉明距离。用来计算两个元素之间的相似度,向量空间中的元素a和b之间的汉明距离等于它们汉明重量的差a-b。

  具体步骤简单概括就是A异或运算(xor)B后二进制中1的个数(每一位分别比较,位数不同的总数量)。

  例如:

  A=100111;

  B=101010;

  则Hamming Distance(A,B)=count_1(A xor B)=count_1(001101)=3。

  下面结合一具体实施例对本发明作进一步说明:

  输入的长文本消息为“我是一条长文本消息,我含有非法的词词词词词词词词词词词词词词词”,游戏服务端将数据发送给游戏服务端的消息监控层,消息监控层通过SimHash算法将(上面的名词解释中补充了简单的计算方法和思路)得到的SimHash值为:1111101100101001110001011101111010111010010100001110010011111101。

  汉明距离Hamming Distance在3以内,则要求,与它对比的SimHash值这64位中一共最多只能有3位与其不一致。这就意味着,将其平均分成4段后,最少必有一段是完全相同的。所以就可以将长文本是否相似问题巧妙地转化为SimHash值平均分成4段后是否有一段是完全相同的的问题了。

  SimHash值等分为4份即直接将64位的SimHash值等分为4段16位的SubCode。所以,例子中的4份分别为:1111101100101001、1100010111011110、1011101001010000、1110010011111101。

  与例子相似的消息“我是一条长文本消息,我含有非法的词词词词词词词词词词词词词词语”SimHash值为:1111101000101001110001011101111010111010010100101110010011111101

  分段后为:1111101000101001、1100010111011110、1011101001010010、1110010011111101

  其中,第2、4段与例子消息完全相同,所以这两条消息判定为相似。

  与例子不相似的消息“我不是一条相似的长文本消息,我不含有非法的词词词词词词词词词词词词词词语”SimHash值为:1111001000101001110001011101011010111010010100001110010011111110

  分段后为:1111001000101001、1100010111010110、1011101001010000、1110010011111110

  这4段均与例子消息不相同,所以判定为不相似。将查询结果返回给游戏客户端,游戏客户端接收到返回结果。

  如图2所示,本发明还提供了一种游戏中长文本消息合法性校验的系统,所述系统包括文本库创建模块、消息发送模块、消息监控模块、匹配模块、以及结果反馈模块;

  所述文本库创建模块,用于在游戏服务端中设置一敏感屏蔽消息文本库,该敏感屏蔽消息文本库中保存有要屏蔽长消息和每条要屏蔽长消息对应的4份非法的消息特征值SubCode;

  所述消息发送模块,用于从游戏客户端发送一条长文本消息,游戏客户端将数据发送给游戏服务端;

  所述消息监控模块,用于游戏服务端将数据发送给游戏服务端的消息监控层,消息监控层通过SimHash算法将数据转化成唯一的SimHash值;

  所述匹配模块,用于将SimHash值等分为4份的消息特征值SubCode后与敏感屏蔽消息文本库中每条要屏蔽长消息对应的4份非法的消息特征值SubCode进行匹配;如果查询到了结果,则说明该长文本消息与要屏蔽长消息相似;否则,则无相似数据;其中,通过对敏感屏蔽消息文本库中所有的4份非法的消息特征值SubCode建立数据库索引来达到快速查询的效果。

  所述结果反馈模块,用于将查询结果返回给游戏客户端,游戏客户端接收到返回结果,通过则成功发送长文本消息,不通过则拦截长文本消息的发送。

  所述匹配模块中将SimHash值等分为4份的消息特征值SubCode后与敏感屏蔽消息文本库中每条要屏蔽长消息对应的4份非法的消息特征值SubCode进行匹配的方式采用汉明距离Hamming Distance进行判断;设置汉明距离为3以内的情况下,则长文本消息与要屏蔽长消息是相似的,要相似即长文本消息的64位SimHash值中一共最多只能有3位与要屏蔽长消息不一致,在此前提下,将SimHash值等分为4份的消息特征值SubCode,则其中必有一份完全相同。

  总之,本发明通过运用SimHash算法来生成游戏中长文本消息的SimHash值,之后通过汉明距离Hamming distance来计算该消息和与之相似的敏感屏蔽长消息之间的相似度。通过本发明将传统词与词匹配转化为了直接的全部文本与全部文本匹配,可以快速判断长文本消息是否合法,从而屏蔽敏感消息,降低服务器的负载,节约算力,提高长文本判断效率,提升玩家游戏体验。

  以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。

《一种游戏中长文本消息合法性校验的方法及系统.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)