一种识别用户名缩写现象的方法与流程

文档序号:11807863阅读:1424来源:国知局

本发明涉及计算机领域,具体涉及一种识别用户名缩写现象的方法。



背景技术:

近年来,互联网发展迅速,已经深入到社会生活的方方面面,例如在新浪、搜狐、腾讯等门户网站观看新闻或视频,在微博、贴吧、社区等社交网络进行信息交流,人们在使用这些网络时会注册账户,填写用户名。用户名是用户在注册网站时填写的符合一定规则的能够标识用户身份的字符串,通常由英文字母、数字以及下划线等一些特殊字符组成。

用户在某个网站注册时,由于该网站的用户名具有唯一性,且常用的用户名已被他人注册,或出于保护个人隐私等其他考虑而没有使用常用的用户名,但同时为了便于记忆而选择将常用的用户名中某些单词进行缩写,变成一个新的用户名并注册使用,此即为用户名的缩写现象。识别用户名间的缩写现象对于互联网研究有重大意义,例如,研究人员在对社交网络数据进行挖掘,如用户行为分析、个性化推荐等,有时需要将不同社交网络中的同一用户或相似用户进行关联,其中一些关联方法就需要借助识别用户名中的缩写现象来分析用户名的相似程度。

识别用户名缩写现象即为给出两个用户名,判断其中一个用户名的某个片段是否是另一个用户名的某个片段的缩写。解决该问题的通用方法为枚举法,即枚举一个用户名的子串s1和另一个用户名的子串s2,检查s1是否是s2的缩写形式。如果存在这样的s1、s2,则认为两个用户名间存在缩写现象,且s1是对s2的缩写,否则认为两个用户名间不存在缩写现象。

然而,枚举法在识别用户名缩写现象时需要枚举用户名所有的子串,时间开销大,难以适用大规模的实时用户名缩写现象识别任务。



技术实现要素:

鉴于上述不足,本发明提供一种识别用户名缩写现象的方法,无需列举用户名的子串,减少计算量,时间开销小,能够更加高效地识别用户名缩写现象。

为解决上述技术问题,本发明采用如下技术方案:

一种识别用户名缩写现象的方法,步骤包括:

1)对两个或两个以上的用户名中的字符进行过滤,仅保留英文字母和数字;

2)将上述过滤后的用户名各分割成若干个连续片段,各选取每个片段的首字符组成一新字符串;

3)根据上述新字符串获取最长缩写词长度,如长度值大于或等于给定阈值ΔL,则判定所述用户名间具有用户名缩写现象。

进一步地,将保留的英文字母统一转换成小写或大写的形式。

进一步地,所述片段为单词或单个字符。

进一步地,所述片段根据指定的字典分割得到。

进一步地,所述字典包括人名、地名、物名、杜撰词或其他指定词,该指定词包括名词、动词、形容词、副词。

进一步地,采用动态规划算法根据所述新字符串获取最长缩写词长度。

进一步地,所述阈值ΔL为欲识别用户名缩写形式的最小长度。

进一步地,当欲识别中文人名拼音缩写形式时,ΔL≥2。

进一步地,当欲识别英文人名缩写形式时,ΔL=2。

本发明的有益效果是,本发明提供的方法无需列举用户名所有的子串,能够自动识别用户名间是否存在缩写现象。在识别、判断用户名之前,预先对用户名进行分割、缩写,相比于现有技术减少了识别过程中字符串自身的长度,从而减少了计算量。在识别用户名缩写现象时,本方法通过判断最长缩写词长度的值便可轻易判定,而最长缩写词长度的获取采用的是一种动态规划算法,相比于现有技术逐一枚举子串的过程减少了大量重复的计算。

附图说明

图1为实施例中提供的一种识别用户名缩写现象的方法流程图。

具体实施方式

为使本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图作详细说明如下。

此提供一种识别用户名缩写现象的方法,如图1所示,假定给定两个用户名a,b,判断a和b之间是否具有用户名缩写现象,包含以下步骤:

1、用户名预处理

用户名通常可以包含英文字母、数字以及下划线等部分特殊字符,该步骤旨在去除用户名中的特殊字符,本发明提到的特殊字符是指除英文字母和数字以外的所有字符,只保留英文字母和数字,并且统一将英文字母转变为小写或大写形式,本实施例以小写形式为例。

2、分割并缩写用户名

根据指定者指定的具有实际意义的单词的字典W,将用户名分割成若干个连续的片段,每个片段为W中的单词或单个字符,同时需要保证分割后的片段的数量尽可能少。该字典W的指定者为用户,也可以为其他人。所谓具有实际意义的单词,例如是人名、地名、物名或其他对于指定者来讲具有意义的概念,此概念可为名词、动词、形容词、副词或其他性词汇,或者其他由指定者杜撰的词汇。

可通过如下方法对经过上述预处理的用户名进行分割,为便于表达,此处设给定的用户名为u,长度为n,记Si表示用户名u的第i个字符至第n个字符组成的子串的分割结果,分割步骤如下:

(1)初始化i=n+1,Sn+1={}。

(2)令i=i-1,依次查看字典W中的各个单词w,设w的长度为m,如果满足w=uiui+1…ui+m-1,即w出现在用户名u中的第i个字符的位置,这时如果Si未赋值或满足|Si+m|+1<|Si|,则令Si=w∪Si+m。如果检查完W中所有的单词之后Si仍未赋值,则令Si=u[i]∪Si+m。其中u[i]表示u的第i个字符。

(3)重复第(2)步,直到i=0为止,此时S0就是用户名u的分割结果。

在对用户名进行分割之后,取分割结果中每个片段的首字符组成一个新字符串作为原用户名的缩写形式。

3、计算最长缩写词长度

设经过第2步处理之后得到的用户名a、b的分割结果分别为Xa、Xb,缩写形式分别为Ya、Yb,需得到用户名a和b的最长缩写词长度m。最长缩写词长度是指两个用户名缩写形式满足特定条件的最长公共部分,该特定条件为该公共部分的每个字符对应缩写之前的两个用户的分割结果中的字符串,均满足一个为单个字符且另一个为单词。为获得该最长缩写词长度m,专门设计了一动态规划算法,其公式如下:

<mrow> <mi>m</mi> <mo>=</mo> <munder> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> </mrow> <mrow> <mn>1</mn> <mo>&le;</mo> <mi>i</mi> <mo>&le;</mo> <mo>|</mo> <msub> <mi>Y</mi> <mi>a</mi> </msub> <mo>|</mo> <mo>,</mo> <mn>1</mn> <mo>&le;</mo> <mi>j</mi> <mo>&le;</mo> <mo>|</mo> <msub> <mi>Y</mi> <mi>b</mi> </msub> <mo>|</mo> </mrow> </munder> <mi>f</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>)</mo> </mrow> </mrow>

其中,Ya[i]表示字符串Ya的第i个字符,Yb[j]表示字符串Yb的第j个字符,|Xa[i]|表示集合Xa中第i个字符串的长度,|Xb[j]|表示集合Xb中第j个字符串的长度,|Ya|表示字符串Ya的长度,|Yb|表示字符串Yb的长度。

4、识别用户名缩写现象

设给定的阈值为ΔL,如果满足m≥ΔL,说明用户名a、b之间存在缩写现象,否则说明用户名a、b之间不存在缩写现象。

结合上述方法,特举以下两个应用于具体场景的实施例,以说明本方法切实可行。

实施例1:

本实施例1用于识别用户名之间是否存在姓名拼音的缩写现象。根据中国人的姓名特征来看,姓名至少为两个字,例如张伟、史小明等,以张伟为例,其姓名拼音为Zhang Wei或Wei Zhang,拼音缩写个例是具有随机性的,而从统计学上来看,拼音缩写很大概率上是取姓名的首字母,即zw或wz;而史小明的姓名拼音Shi Xiaoming或Xiaoming Shi,其拼音缩写很可能是sxm或xms,由上述分析可认为W为字符串长度不小于2的拼音的集合,ΔL=2。同理,如果要识别英文人名的缩写,由于英文名一般情况下middle name较少使用,即英文名至少是由first name和last name组成,例如英文名Sheldon Lee Cooper,常为Sheldon Cooper,缩写为sc,所以要识别的缩写形式的最小长度可设置为2,即ΔL=2。

给定两个用户名a=zgxxidian123、b=zhangguoxin012,本实施例欲通过本发明提供的方法识别这两个用户名之间是否存在缩写现象,通过上述第2步提供方法计算得到用户名a、b的分割结果分别为Xa={z,g,x,xi,dian,1,2,3}、Xb={zhang,guo,xin,0,1,2},缩写形式分别为Ya=zgxxd123、Yb=zgx012,进一步地,通过上述第3步计算得到用户名a和b的最长缩写词长度m=3。由上段已知ΔL=2,则m≥ΔL,说明用户名a、b之间存在缩写现象。

实施例2:

本实施例2用于识别用户名之间是否存在姓名拼音的缩写现象,由上述实施例的分析可知,W为字符串长度不小于2的拼音的集合,ΔL=2。

给定两个用户名a=wanxia68、b=wanter_123,通过上述第2步提供方法计算得到用户名a、b的分割结果分别为Xa={wan,xia,6,8}、Xb={wan,te,r,1,2,3},缩写形式分别为Ya=wx68,Yb=wtr123,进一步地,通过上述第3步计算得到用户名a和b的最长缩写词的长度m=0。由于m<ΔL,说明用户名a、b之间不存在缩写现象。

本发明提供的方法是通过算法自动识别用户名是否存在缩写现象,无需像现有技术那样列举用户名所有的子串,简便可行。在识别、判断用户名之前,预先对用户名进行分割、缩写,相比于现有技术减少了识别过程中字符串自身的长度,从而减少了计算量。在识别用户名缩写现象时,本方法通过判断最长缩写词长度的值便可轻易判定,而最长缩写词长度的获取采用的是一种动态规划算法,相比于现有技术逐一枚举子串的过程减少了大量重复的计算。

最后应当说明的是,虽然本发明已以实施例公开如上,但这些实施例并非用于限定本发明,所属技术领域中普通技术人员可以对其进行改动或替换,而不脱离本发明的精神和范围,故本发明的保护范围以权利要求书为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1