首页 > 代码库 > 字符串相似度算法,AS3实现,用于判断聊天广告

字符串相似度算法,AS3实现,用于判断聊天广告

  1.         /**         * 计算把source经过几个步骤可以转变到target的值          * @param source         * @param target         * @return          *          */        public static function editDistance(source:String,target:String):int        {            var slen:int = source.length;            var tlen:int = target.length;            var d:Array = [];            for(var i:int=0;i<=slen;i++){                d[i] = [];                d[i][0] = i;                if(i==0){                    for(var j:int=1;j<=tlen;j++){                        d[0][j] = j;                    }                }                else                {                    for(var j:int=1;j<=tlen;j++){                        d[i][j] = 0;                    }                }            }            for(var i:int=1;i<=slen;i++){                for(var j:int=1;j<=tlen;j++){                    if(source.charCodeAt(i-1) == target.charCodeAt(j-1)){                        d[i][j] = d[i-1][j-1];                    } else {                        var insert:int = d[i][j-1]+1;                        var del:int = d[i-1][j]+1;                        var update:int = d[i-1][j-1]+1;                        d[i][j] = Math.min(insert,del)>Math.min(del,update)?                            Math.min(del,update):Math.min(insert,del);                    }                }            }            return d[slen][tlen];        }                /**         * 相似度计算          * @param source         * @param target         * @return          *          */        public static function getSimilarityRate(source:String,target:String):Number        {            return 1-editDistance(source,target)/Math.max(source.length,target.length);        }

     

其实代码参考http://www.blogjava.net/wangxinsh55/archive/2012/02/02/368414.html
主要是因为最近实在受不了游戏里面聊天频繁发送,鉴于此我们就做了一个是否广告帐号的判断。

 

字符串相似度算法,AS3实现,用于判断聊天广告