文本相似度计算(一):距离方法

文本相似度

距离方法
1、文本的表示
1.1、VSM表示
1.2、词向量表示
1.3、迁移方法
2、距离计算方法
2.1、欧氏距离 (L2 范数)、曼哈顿距离 (L1范数)、 明氏距离
2.2、汉明距离
2.3、Jaccard相似系数、 Jaccard距离( 1-Jaccard相似系数)
2.4、余弦距离
2.5、皮尔森相关系数
2.5、编辑距离

场景举例:
1)计算 Query 和文档的相关度、2)问答系统中计算问题和答案的相似度、3)广告系统中计算 Query 和广告词的匹配程度、4)推荐系统中 要给某个用户推荐某件物品,计算这件物品和这个用户兴趣的相似度
更多地,判断两个query表达的意思是否相同也可以看作属于文本相似度的范畴。
相似度一定是指两个东西(姑且分别用 P 和 Q 表示)的相似程度,而这两个东西可以是任何形式的,例如文本、图片、声音等等。最终要计算相似度,那必须把这些东西抽象成数学形式,说白了 ,就是怎么用数字把 这些 东西表示出来, 一 般会表示成向量或者矩阵。那如果表示成了向量, 计算相似度就可以使用大家在数学课上学的知识了。
这里希望可以比较清晰全面地介绍一下文本相似度的计算方法,目前来说,大致分为距离、hash、深度学习三种方法。

距离方法

这些所谓的距离其实都是一些 固定 的公式而己,关键在于如何应用。实际应用中可以使用tf-idf、word2vec、LDA等方法实现相似度的距离计算。

1、 文本的表示

很多相似度的第一步其实都是文本的表示问题,即把文本用数字的形式表示出来,这一步目前主要有VSM(vector space model),和词向量表示两种方式。

1.1、VSM表示

这种方法其实灵活性较大,可以基于分词,对于中文基于字符或n-grams的表示也有一定效果。
1) tf-idf/bow表示:在给定文档集合C和词典D的条件下,将某篇文档通过词袋模型表示成一个个的词,而后根据 TF-IDF 为每个词计算出一个实数值;
由于词典D的大小为M,因此将这篇文档转化成一个M维向量,如果词典中某个词未出现在文档中,则这个词的在向量中对应的元素为0,若某个词出现在文档中,则这个词在向量中对应的元素值为这个词的tf-idf值。这样,就把文档表示成向量了,而这就是 向量空间模型(vector space model)。从这里也可看出:向量空间模型并没有catch住词(term)与词(term)之间的关系,它假设各个term之间是相互独立的。
而有了文档向量,就可以计算文档之间的相似度了。
这种表示方法与词典大小相关,往往会使文本的表示比较稀疏且高维,可以通过PCA缓解这一问题。
2) 主题模型表示:实际上VSM可以作为一种文本表示的思想:把对文本内容的处理简化为向量空间中的向量运算,并且它以空间上的相似度表达语义的相似度。
在这个角度,使用LDA,LSA等主题模型同样可以完成文本的VSM表示:将文本表示为topic的向量空间。
这种方法维度可自定义(topic数),且不稀疏,但是可能存在文本对之间距离相似度分布空间密集的情况导致效果不佳。

1.2 词向量表示

这种方法一般直接将文本分词后将词向量相加除以句子长度就可得到。也可以使用如smooth inverse frequency的加权方法将词向量加权:每个词嵌入都由a/(a + p(w))进行加权,其中a的值经常被设置为0.01,而p(w)是词语在语料中预计出现的频率。
一般来说word2vec的词向量方法强于glove方法,而对于word2vec,cbow方法强于skip-gram(具体原因并不复杂,感兴趣可以从训练方法角度思考一下~)

1.3 迁移方法

更多地,上述文本表示方法其实会损失或无法捕捉到语义信息,通过bert、elmo等预训练方法的表示更加靠谱,也可以用于无监督的文本相似度计算。

2、距离计算方法

2.1、欧氏距离(L2范数)、曼哈顿距离(L1范数)、闵可夫斯基距离

欧氏距离:



曼哈顿距离:



闵可夫斯基距离:
是前两种距离测度的推广,在极限情况下的距离是切比雪夫距离

2、汉明距离

表示两个(相同长度)字对应位不同的数量,我们以d(x,y)表示两个字x,y之间的汉明距离。对两个字符串进行异或运算,并统计结果为1的个数,那么这个数就是汉明距离。

2.3、Jaccard相似系数、Jaccard距离(1-Jaccard相似系数)

(1)雅各相似系数:
两个集合A和B的交集元素在A,B的并集中所占的比例,称为两个集合的杰卡德相似系数,用符号J(A,B)表示。 
J ( A , B ) = ∣ A ⋂ B ∣ ∣ A ⋃ B ∣ J(A,B) = \frac{|A\bigcap B|}{|A\bigcup B|}

杰卡德相似系数是衡量两个集合的相似度一种指标。
实际使用中,可以用去重与不去重两种方式计算,更多地,可以转换为交集的tf-idf值之和除以并集的tf-idf值之和

(2) 杰卡德距离
  与杰卡德相似系数相反的概念是杰卡德距离(Jaccard distance)。
杰卡德距离可用如下公式表示:

J δ ( A , B ) = 1 − ∣ A ⋂ B ∣ ∣ A ⋃ B ∣ J_\delta (A,B) = 1 -\frac{|A\bigcap B|}{|A\bigcup B|}
杰卡德距离用两个集合中不同元素占所有元素的比例来衡量两个集合的区分度。

2.4 余弦距离


夹角余弦取值范围为[-1,1]。夹角余弦越大表示两个向量的夹角越小,夹角余弦越小表示两向量的夹角越大。当两个向量的方向重合时夹角余弦取最大值1,当两个向量的方向完全相反夹角余弦取最小值-1。文本的相似度一般取绝对值。

2.5 皮尔森相关系数

皮尔森相关系数在推荐系统用的较多,它的公式如下 :


其中, Q_iD_i ,分别为向量所在位的值, \overline Q\overline D分别是 Q 和 D 的平均值 。 r(Q,D)的范围是- 1 (弱相关)到 1 (强相关〉。

2.6、编辑距离

指两个字符串,由一个变成另一个所需的最少的编辑次数,这个编 就包括替换、插入、删除操作。

文本相似度的计算一般使用VSM/cbow+cos距离/欧式距离,或jaccard距离

2.7 Dice系数

Dice 系数可以计算两个字符串的相似度:Dice(s1,s2)=2*comm(s1,s2)/(leng(s1)+leng(s2))。

Reference

https://blog.csdn.net/weixin_43526820/article/details/89883640?spm=1001.2014.3001.5501

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容