字符串相似度算法,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

主要是因为最近实在受不了游戏里面聊天频繁发送,鉴于此我们就做了一个是否广告帐号的判断。

时间: 2024-11-02 14:43:55

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

百度面试题 字符串相似度 算法 similar_text 和页面相似度算法

在百度的面试,简直就是花样求虐. 首先在面试官看简历的期间,除了一个自己定义字符串相似度,并且写出求相似度的算法. ...这个确实没听说过,php的similar_text函数也是闻所未闻的.之前看seo的时候,到简单了解了一下页面的相似度,百度算法中很常见的需要判断页面是否是重复的,重复的肯定就不收录了,做seo很重的一个工作就是写原创文章,以保持网站的更新,吸引百度的收录,以增加流量. 页面的相似度,是纯数学的,因为百度的主要是收录中文,所以中文需要先拆词,然后计算词语的在文章中出现的频度.

字符串相似度算法(编辑距离算法 Levenshtein Distance)(转)

在搞验证码识别的时候需要比较字符代码的相似度用到“编辑距离算法”,关于原理和C#实现做个记录. 据百度百科介绍: 编辑距离,又称Levenshtein距离(也叫做Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数,如果它们的距离越大,说明它们越是不同.许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符. 例如将kitten一字转成sitting: sitten (k→s) sittin (e→i) sitting (→g) 俄罗斯科学家V

计算字符串相似度算法——Levenshtein http://wdhdmx.iteye.com/blog/1343856

0.这个算法实现起来很简单 1.百度百科介绍: Levenshtein 距离,又称编辑距离,指的是两个字符串之间,由一个转换成另一个所需的最少编辑操作次数. 许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符. 编辑距离的算法是首先由俄国科学家Levenshtein提出的,故又叫Levenshtein Distance. 2.用途 模糊查询 3.实现过程 a.首先是有两个字符串,这里写一个简单的 abc和abe b.将字符串想象成下面的结构. A处 是一个标记,为了方便讲解

计算字符串相似度算法——Levenshtein

0.这个算法实现起来很简单 1.百度百科介绍: Levenshtein 距离,又称编辑距离,指的是两个字符串之间,由一个转换成另一个所需的最少编辑操作次数. 许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符. 编辑距离的算法是首先由俄国科学家Levenshtein提出的,故又叫Levenshtein Distance. 2.用途 模糊查询 3.实现过程 a.首先是有两个字符串,这里写一个简单的 abc和abe b.将字符串想象成下面的结构. A处 是一个标记,为了方便讲解

Levenshtein距离【编辑距离算法】字符串相似度算法

指两个字串之间,有一个转成另一个所需的最少编辑操作的次数. 算法过程 str1或str2的长度为0返回另一个字符串的长度. if(str1.length==0) return str2.length; if(str2.length==0) return str1.length; 初始化(n+1)*(m+1)的矩阵d,并让第一行和列的值从0开始增长. 扫描两字符串(n*m级的),如果:str1[i] == str2[j],用temp记录它,为0.否则temp记为1.然后在矩阵d[i,j]赋于d[i

字符串相似度算法——Levenshtein Distance算法

Levenshtein Distance 算法,又叫 Edit Distance 算法,是指两个字符串之间,由一个转成另一个所需的最少编辑操作次数.许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符.一般来说,编辑距离越小,两个串的相似度越大. 算法实现原理图解: a.首先是有两个字符串,这里写一个简单的 abc 和 abe b.将字符串想象成下面的结构. A 处 是一个标记,为了方便讲解,不是这个表的内容.   abc a b c abe 0 1 2 3 a 1 A处  

经典算法题每日演练——第五题 字符串相似度

原文:经典算法题每日演练--第五题 字符串相似度 这篇我们看看最长公共子序列的另一个版本,求字符串相似度(编辑距离),我也说过了,这是一个非常实用的算法,在DNA对比,网 页聚类等方面都有用武之地. 一:概念 对于两个字符串A和B,通过基本的增删改将字符串A改成B,或者将B改成A,在改变的过程中我们使用的最少步骤称之为“编辑距离”. 比如如下的字符串:我们通过种种操作,痉挛之后编辑距离为3,不知道你看出来了没有? 二:解析 可能大家觉得有点复杂,不好理解,我们试着把这个大问题拆分掉,将"字符串

转:文本相似度算法

文本相似度算法 原文出自:http://www.cnblogs.com/liangxiaxu/archive/2012/05/05/2484972.html 1.信息检索中的重要发明TF-IDF 1.1TF Term frequency即关键词词频,是指一篇文章中关键词出现的频率,比如在一篇M个词的文章中有N个该关键词,则 (公式1.1-1) 为该关键词在这篇文章中的词频. 1.2IDF Inverse document frequency指逆向文本频率,是用于衡量关键词权重的指数,由公式 (公

深入学习图像处理——图像相似度算法

最近一段时间学习并做的都是对图像进行处理,其实自己也是新手,各种尝试,所以我这个门外汉想总结一下自己学习的东西,图像处理的流程.但是动起笔来想总结,一下却不知道自己要写什么,那就把自己做过的相似图片搜索的流程整理一下,想到什么说什么吧. 首先在进行图片灰度化处理之前,我觉得有必要了解一下为什么要进行灰度化处理. 图像灰度化的目的是什么? 将彩色图像转化为灰度图像的过程是图像的灰度化处理.彩色图像中的每个像素的颜色由R,G,B三个分量决定,而每个分量有255中值可取,这样一个像素点可以有1600多