敏感词过滤方法
【技术领域】
[0001]本发明涉及一种过滤方法,尤其涉及一种敏感词过滤方法。
【背景技术】
[0002]就现有技术来看,网站上对于用户提交评论信息,如果想要进行敏感词过滤或是筛选,则大部分需要人工审核,或者通过程序处理经常出现的几个敏感词。这种方式处理起来比较繁琐,需要人消耗很多时间参与。同时,需要不断补充可能存在的敏感词,对重叠词则不容易判断。更为重要的是,伴随着浏览用户的增加,当评论越来越多的时候,这种方式几乎是不可行的。为了解决这种问题,需要一个很强大的敏感词处理方法配合软件的执行来解决此类问题。
【发明内容】
[0003]本发明的目的就是为了解决现有技术中存在的上述问题,提供一种敏感词过滤方法。
[0004]本发明的目的通过以下技术方案来实现:
敏感词过滤方法,其中:至少采用下述方法,采用中文判断算法;通过最大正向匹配算法,进行敏感词判断;通过连续重复词进行判读,采用正向检测,如果有两个重复词,就开始进入重复检测模式,直到满足最小重复词个数;采用邮箱、手机号、网址分析,判断邮箱的@、手机号、网址的域名是否为特征的连续字符串;上述方法中凡符合过滤需求的则进行过滤处理,否则予以放行。
[0005]上述的敏感词过滤方法,其中:所述的中文判断算法通过底层编码落在中文编码范围内来判断,所述的中文编码范围为,第一节字,行码0x81至OxFE第二节字,列码0x40至 0x7E,OxAl 至 OxFEο
[0006]进一步地,上述的敏感词过滤方法,其中:所述的敏感词判断过程如下:步骤①,建立敏感词字典,将需要判断的敏感词全部放入字典里。
[0007]步骤②,进行判断初始化,设s=l,n=l,s表示从第几个字开始取,η表示取几个字。步骤③,取输入词的第s个往后η个字,与词典里的词比较是否存在,如果存在则执行步骤④,如果不存在,则η=η+1,继续执行步骤③。步骤④,将匹配到的词放入匹配列表中,如果s=输入词的最大长度,则执行步骤⑤。如果s+n已经等于输入词的最大长度,则设置s=s+l,n=l ;否则n=n+l,继续执行步骤③。步骤⑤,匹配列表去重并返回。
[0008]更进一步地,上述的敏感词过滤方法,其中:所述的连续重复词判读过程为,步骤①,进行初始化,设s=l。步骤②,取第s个字,并往后查找个相同的字,找到则记录相同字的位置,设为P,并执行步骤③;如果没找到,则s=s+l,并继续执行此步,如果s等于输入词的最大长度,则执行步骤④。步骤③,设置n=l,如果s+n>p则s=s+l并执行步骤②;比较s+n个字是否和P+n个字相同,如果相同,则n=n+l继续执行此步;如果不同,且s+n=p,则取前面s+η-Ι个词,放入重复词列表;如果s+n〈p则s=s+l执行步骤②。步骤④对重复内容进行去重处理,返回相应重复词列表。
[0009]更进一步地,上述的敏感词过滤方法,其中:所述的采用邮箱分析过程为,步骤①,进行初始化,设s=l。步骤②,从第s个字开始查找@符号的位置,设为P,若找到,则执行步骤③,若没找到,则s=s+l,继续执行此步。步骤③,从P位置分别往左和往右查找符合邮箱的字,所述的字包括,字母、数字、下划线、点号,中的一种或是多种,设最左位置记为m,最右位置记为n,取m到η之间的字判断是否是邮箱,若是邮箱,则放入邮箱列表,若不是,则设置s=p+l,并执行步骤②。步骤④,将邮箱列表去重并返回。
[0010]更进一步地,上述的敏感词过滤方法,其中:所述的手机号分析过程为,步骤①,进行初始化,设s=l。步骤②,从第S个字开始查找数字的位置,设为P,若找到,则执行步骤③,若没找到,则s=s+l,继续执行此步。步骤③,从P位置分别往左和往右查找数字,最左位置记为m,最右位置记为n,取m到η之间的字判断是否是手机号,如果是,则就放入手机号列表,如果不是,则设置s=p+l,并执行步骤②。步骤④,将手机号列表去重并返回。
[0011]更进一步地,上述的敏感词过滤方法,其中:所述的网址分析过程为,步骤①,进行初始化,设s=l。步骤②,从第S个字开始查找”符号的位置,设为P,若找到,则执行步骤③,若没找到,则s=s+l,继续执行此步。步骤③,从P位置往右查找符合域名后缀的字,最左位置记为m,最右位置记为n,取m到η之间的字判断是否属于域名后缀,若不属于域名后缀,则执行s=P+l,返回步骤②,若属于域名后缀,则从P位置往前查找匹配信息,设最左位置记为q,取q到η之间的字判断是否是网址内容,若是,则放入网址列表,若不是,则设置s=p+l,执行步骤②。
[0012]再进一步地,上述的敏感词过滤方法,其中:所述的字包括字母、数字、点号,所述的域名后缀是“.com”或是“.cn”,所述的所需内容包括字母、数字、点号、反斜杠、冒号,所述的网址内容是“http://”或是“ftp://”。
[0013]本发明技术方案的优点主要体现在:能够从中文词句判断出发,结合邮箱、手机号、网址等各类字符,实现全面的敏感词的判断与过滤。更为重要的是,采用本发明后可以通过软件配合算法,能够实现免人工参与的自动化连续重复词判读检测,邮箱、手机号、网址分析,匹配连续字符串,自动对比敏感词字典,提高了网站数据,尤其是用户评论的审核效率。
【具体实施方式】
[0014]敏感词过滤方法,其与众不同之处在于:至少采用下述方法,首先,采用中文判断算法。同时,通过最大正向匹配算法,进行敏感词判断。为了扩大敏感词的判断范围,同时结合中文的用于习惯,敏感词判断可以支持拼音。并且,能够连续重复词进行判读,采用正向检测,如果有两个重复词,就开始进入重复检测模式,直到满足最小重复词个数。再者,采用邮箱、手机号、网址分析,判断邮箱的@、手机号、网址的域名是否为特征的连续字符串,提升整体的判断效率。上述方法中凡符合过滤需求的则进行过滤处理,否则予以放行。
[0015]同时,考虑到中文字符的编码特殊性,为了提高判断效果,中文判断算法通过底层编码落在中文编码范围内来判断。具体来说,中文编码范围为,第一节字,行码0x81至OxFE第二节字,列码0x40至0x7E, OxAl至OxFE。
[0016]就本发明一较佳的实施方式来看,采用的敏感词判断过程如下:步骤①,建立敏感词字典,将需要判断的敏感词全部放入字典里。步骤②,进行判断初始化,设s=l,n=l, s表示从第几个字开始取,η表示取几个字。步骤③,取输入词的第s个往后η个字,与词典里的词比较是否存在,如果存在则执行步骤④,如果不存在,则η=η+1,继续执行步骤③。步骤④,将匹配到的词放入匹配列表中,如果s=输入词的最大长度,则执行步骤⑤。如果s+n已经等于输入词的最大长度,则设置s=s+l,n=l ;否则n=n+l,继续执行步骤③。步骤⑤,匹配列表去重并返回。
[0017]进一步来看,采用的连续重复词判读过程为:步骤①,进行初始化,设s=l。步骤②,取第s个字,并往后查找个相同的字,找到则记录相同字的位置,设为P,并执行步骤③。如果没找到,则s=s+l,并继续执行此步,如果s等于输入词的最大长度,则执行步骤④。具体来说,采用的步骤③为,设置n=l,如果s+n>P则s=s+l并执行步骤②。并且,比较s+n个字是否和P+n个字相同,如果相同,则n=n+l继续执行此步。如果不同,且s+n=p,则取前面s+η-Ι个词,放入重复词列表。如果s+n〈p则s=s+l执行步骤②。步骤④对重复内容进行去重处理,返回相应重复词列表。
[0018]再进一步来看,本发明采用邮箱分析过程为:步骤①,进行初始化,设s=l。步骤②,从第s个字开始查找@符号的位置,设为P,若找到,则执行步骤③,若没找到,则s=s+l,继续执行此步。步骤③,从P位置分别往左和往右查找符合邮箱的字,所述的字包括,字母、数字、下划线、点号,中的一种或是多种,设最左位置记为m,最右位置记为n,取m到η之间的字判断是否是邮箱,若是邮箱,则放入邮箱列表,若不是,则设置s=p+l,并执行步骤②。最终,通过步骤④将邮箱列表去重并返回。
[0019]同样的,为了有效实现对手机号的监管排查,采用的手机号分析过程如下:步骤①,进行初始化,设s=l。之后,进入步骤②,从第s个字开始查找数字的位置,设为p,若找至IJ,则执行步骤③,若没找到,则s=s+