计算机如何理解事物的相关性-文档的类似度判断

公号:码农充电站pro
主页:https://codeshellme.github.iohtml

生活中,咱们常常会对比两个事物的相关性,也能够叫作类似度git

  • 若是一件事物与另外一件事物的类似度比较高,那这两件事物的相关性就比较大。github

  • 若是一件事物与另外一件事物的类似度比较低,那这两件事物的相关性就比较小。算法

人类会根据本身的经验,很容易的判断两件事物是否类似,或者类似度是多少。那如何让计算机也可以进行这样的判断呢?shell

1,空间向量模型

咱们都知道,计算机并无思惟,它只能理解数字。因此,若是想让计算机理解咱们现实世界中的事物,必须先把现实事物转换成数字。机器学习

空间向量模型假设,任何事物均可以转换成 N 维空间中的一个点,这个点称为向量,而后经过计算向量之间的距离或夹角,来判断向量的之间相关性,进而判断事物之间的相关性。学习

  • 向量之间的距离越大,事物就越不相关;距离越小就越相关。
  • 向量之间的夹角越大,事物就越不相关;夹角越小就越相关。

什么是向量3d

向量表明了事物的特征。code

向量是相对标量而言,标量只是单个数字,没有方向性。向量也叫矢量,由一组数字构成,具备方向性。htm

例如,用下图中的 x 表示向量,其中 n 表示向量的维度:

在这里插入图片描述

2,向量之间的距离

两个向量所对应的两点之间的距离就是向量的距离,距离能够描述不一样向量在向量空间中的差别,也就是现实事物之间的差别。

经常使用的计算距离的方法有四种:

  • 麦哈顿距离
  • 欧式距离
  • 切比雪夫距离
  • 闵可夫斯基距离

其中使用最多的是欧氏距离,下面一一介绍。

麦哈顿距离

麦哈顿距离能够理解为街道距离,或者出租车距离。

能够看到下图中,从A 点到B 点,不论是走1线路 仍是2线路,距离都是同样的,这个线路的距离就是麦哈顿距离。

在这里插入图片描述

二维空间中的两个点A(x1, x2)B(y1, y2),麦哈顿距离的计算公式为:

在这里插入图片描述

n 维空间中的两个点A(x1...xn)B(y1...yn),麦哈顿距离的计算公式为:

在这里插入图片描述

欧式距离

欧式距离也叫欧几里得距离,比较好理解,就是直线距离。

以下图,A 点到B 点的直线距离就是欧式距离。

在这里插入图片描述

对于二维空间中的两个点A(x1, x2)B(y1, y2),欧式距离的计算公式为:

在这里插入图片描述

对于n 维空间中的两点A(x1...xn)B(y1...yn),欧式距离的计算公式为:

在这里插入图片描述

切比雪夫距离

切比雪夫距离能够类比为在方格中走格子,怎样走的格子数最少。

以下图中,从A 格子走到B 格子,先斜线走,再直线走,最终走的格子数就是切比雪夫距离。

在这里插入图片描述

对于二维空间中的两个点A(x1, x2)B(y1, y2),切比雪夫距离的计算公式为:

在这里插入图片描述
上面公式的含义是,∣x1 − y1∣∣x2 − y2∣ 二者的最大者。

对于n 维空间中的两点A(x1...xn)B(y1...yn),切比雪夫距离的计算公式为:

在这里插入图片描述

闵可夫斯基距离

闵可夫斯基距离也叫作闵氏距离,它并非一种单独的距离,而是上面三种距离的统一。

对于二维空间中的两个点A(x1, x2)B(y1, y2),闵可夫斯基距离的计算公式为:

在这里插入图片描述

对于n 维空间中的两点A(x1...xn)B(y1...yn),闵可夫斯基距离的计算公式为:

在这里插入图片描述

根据p 取值的不一样,闵可夫斯基距离表示不一样的距离:

  • p=1 时,就是曼哈顿距离;
  • p=2 时,就是欧氏距离;
  • p 趋近于无穷大的时候,就是切比雪夫距离。

3,向量的长度

向量也是有大小的,向量的大小就是向量的长度。

向量的长度也叫向量的模,它是向量所对应的点到空间原点的距离,一般使用欧氏距离来表示向量的长度。

数学中有一个概念叫作范数,范数常被用来衡量向量的长度。

范数有4 种,分别对应向量的4 种距离:

  • L1 范数,用 ||x|| 表示,对应于麦哈顿距离。
  • L2 范数,用 ||x||2 表示,对应于欧式距离。
  • L∞ 范数,用 ||x|| 表示,对应于切比雪夫距离。
  • Lp 范数,用 ||x||p 表示,对应于闵可夫斯基距离。

4,向量的夹角

向量的夹角常常用余弦值表示。

在这里插入图片描述

对于二维空间中的两个点A(x1, x2)B(y1, y2),余弦的计算公式为:

在这里插入图片描述

对于n 维空间中的两点A(x1...xn)B(y1...yn),余弦的计算公式为:

在这里插入图片描述

夹角的余弦取值范围是[-1, 1],那么:

  • 当两个向量的方向重合时,余弦值最大,为1
  • 当两个向量的方向相反时,余弦值最小,为 -1
  • 余弦值越大,说明夹角越小,两点相距就越近。
  • 余弦值越小,说明夹角越大,两点相距就越远。

5,向量距离与夹角的使用

咱们能够将向量的距离与夹角展示在同一个N 维坐标系中,以下:

在这里插入图片描述

向量的余弦取值范围是[-1, 1],余弦值越大,表示越类似,正好与类似度成正比。

对于向量之间的距离,一般用欧式距离 ED表示,ED 越小,表示越类似,与类似度成反比,并且ED 的取值范围很是大。

因此一般会将欧式距离进行 1/(ED+1) 归一化处理,用ED' 表示。ED'的取值范围是[0, 1],而且与类似度成正比:

  • 当 ED 为 0 时,ED'值是 1,表示类似度为 1,事物彻底相同。
  • 当 ED 趋近于无穷大时,ED'值是 0,表示类似度为 0,事物彻底不一样。

应用空间向量模型的机器学习算法有 K 近邻(KNN)分类、K 均值(K-Means) 聚类等。

6,如何判断文档的类似度

为了让计算机可以判断现实事物的类似度,咱们引出了空间向量的概念。

下面咱们来看如何使用空间向量,来判断文档类似度

好比,如今咱们有两个中文句子,要判断这两个句子的类似度:

  • 句子1:我去过北京,也去过天安门。
  • 句子2:我也去过北京,但没去过天安门。

要想将文档转换成向量,首先须要对文档进行分词。

分词

咱们可使用 jieba 对这两个句子进行分词,结果以下:

  • 句子1:['我', '去过', '北京', '也', '去过', '天安门']
  • 句子2:['我', '也', '去过', '北京', '但', '没', '去过', '天安门']

能够获得全部词的集合:

  • 分词集合:['没', '但', '北京', '我', '去过', '天安门', '也']

计算每一个句子的分词的词频:

  • 句子1:{'没':0, '但':0, '北京':1, '我':1, '去过':1, '天安门':1, '也':1}
  • 句子2:{'没':1, '但':1, '北京':1, '我':1, '去过':1, '天安门':1, '也':1}

从而能够获得词频向量:

  • 句子1:[0, 0, 1, 1, 1, 1, 1]
  • 句子2:[1, 1, 1, 1, 1, 1, 1]

上文中,咱们介绍了,能够经过向量的距离或者余弦夹角来度量向量之间的类似度。这里咱们使用余弦夹角来计算。咱们知道 N 维空间的余弦公式为:

在这里插入图片描述

从而能够计算余弦夹角为:

在这里插入图片描述

能够看到,最终算出的余弦夹角为 0.85,比较接近1,说明这两个句子仍是很相近的。

7,总结

本篇文章主要介绍了如下几点:

  • 要想让计算机理解现实世界中的事物,须要将其转换成空间向量的形式。
  • 能够经过计算空间向量之间的距离或者夹角,来衡量事物之间的类似度。
  • 向量之间的夹角一般使用余弦夹角值
  • 向量之间的距离有4 种,分别是:
    • 麦哈顿距离
    • 欧式距离(最经常使用)
    • 切比雪夫距离
    • 闵可夫斯基距离
  • 案例:如何使用空间向量模型判断文档类似度。

(本节完。)


推荐阅读:

决策树算法-理论篇-如何计算信息纯度

决策树算法-实战篇-鸢尾花及波士顿房价预测

朴素贝叶斯分类-理论篇-如何经过几率解决分类问题

朴素贝叶斯分类-实战篇-如何进行文本分类


欢迎关注做者公众号,获取更多技术干货。

码农充电站pro

相关文章
相关标签/搜索