◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
文本相似度计算广泛应用于信息检索、数据挖掘、机器翻译、文档重复检测等领域。比如舆情控制,如果你开发了一个微博网站,并且已经将世界上所有的骂人句子收录到一个数据库中,那么当一个用户发微博的时候,会先和骂人句子的数据库进行比对,如果和里面的句子匹配,就不会把用户发出去。
至于TF-IDF算法,我在上一篇文章中介绍过,有需要可以看看。本文主要详细描述余弦相似度算法。
假设向量a和b的坐标分别为(x1,y1)、(x2,y2)。然后:
设向量A=(A1,A2,安),B=(B1,Bn)。推广到多维,数学家已经为我们证明了,所以你只需要记住下面的公式:
举一个具体的例子,让我们从这句话开始:
句子B:我不喜欢看电视,也不喜欢看电影。
句子a:我/喜欢/看/电视,但不/喜欢/看/电影。
句子B:我/不/喜欢/看/电视,还有/不/喜欢/看/电影。
句子a:我1,喜欢2,看2,电视1,电影1,1号,也是0
我1,喜欢2,看2,电视1,电影1,不2,也1
余弦值越接近1,夹角越接近0度,即两个向量越相似,称为余弦相似。
简单来说,上面计算的值,就是两句话相似度在90%左右,越接近1,越相似
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。