문자열 유사도 알고리즘, AS3 구현, 채팅 광고 판단에 사용

        /**

         *  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
주로 최근에 게임 안에서 채팅이 빈번하게 발송되는 것을 참을 수 없기 때문에 이를 감안하여 우리는 광고 계정 여부를 판단했다.

좋은 웹페이지 즐겨찾기