加入收藏 | 设为首页 | 会员中心 | 我要投稿 成都站长网 (https://www.028zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

推荐系统技术之文本相似性计算(一)

发布时间:2021-03-16 21:02:28 所属栏目:大数据 来源:网络整理
导读:副标题#e# 1. 前言 推荐系统分为两种,一种是基于用户的,根据某个用户的特性推荐一些东西,还有一种是根据内容,推荐一些相似的内容,或者是两种的结合,任何推荐系统,仔细分析下来,都属于这两种情况的组合。 今天我们说一下基于内容推荐中的一个分支,


5.2.1 最简单的向量化

我们先来看看如何进行向量化,前期准备部分我们已经说了,每个词都可以表示为一个唯一的token,那么最简单的向量化,我们拿这个token来向量化,比如下面两个文档,每个词用一个id表示(搜索引擎这个词重复出现了,所以id一样,都是5)


这两个向量不一样长,不好映射到同一个空间中,于是我们这么处理一下,编号1到7为所有的token,用数组的下标表示,如果这个编号上有词,那么设为1,否则设为0,这样一来,两个文档向量化以后就变成了


用Golang写一个搜索引擎 ?===> ?[1,1,0]
搜索引擎的实现 ? ? ? ? ?===> ?[0,1]


这样,两个文档就都向量化了,虽然这种向量化是最简单的,但不管怎样,我们至少把文本变成了数学符号了。


5.2.2 TF-IDF向量化

文本处理中,还有一种非常常见的向量化方法,就是TF-IDF方法,关于TF-IDF方法,可以参见我之前的一篇文章,已经说得比较清楚了,这里就不赘述了,可以点击用Golang写一个搜索引擎(0x05)看看


总之,通过TF-IDF的向量化方法,我们可以将每个词向量化成一个表示权重的小数,而不是上面的0,1向量了,它已经带有了文本的信息了,通过TF-IDF计算,两个文档向量化以后就变成了类似下面这样


用Golang写一个搜索引擎 ?===> ?[0.5,0.8,0.2,0.15,0.9,? 0]
搜索引擎的实现 ? ? ? ? ?===> ?[0,? 0,? ?0.8,0.4,0.3]


这样向量化以后,每个词都带上了TF-IDF信息了,而TF-IDF的作用就是保留词在文档中的权重信息,这就相当于保留了文本的信息,于是我们通过token的概念和TF-IDF方法,就把一个文本向量化了,并且向量化完了以后还保留了文本本身的信息,每一个向量就是一个前面提到的词袋。


5.3 向量空间模型

向量化完了以后,需要提供一个空间来进行计算,我们把这个叫做向量空间(VSM),这没啥好说的,比如向量是一个二维向量,那么空间就是一个平面,如果是个三维向量,那么空间就是一个立体空间,上文中的向量是一个7维向量,那么空间就是一个七维空间了。


这样,每一篇文档向量化以后都是一个7维向量,都可以表述为这个向量空间中的一个点了。


5.4 向量相似度计算

有了向量空间和向量本身了,计算两个向量的相似度就简单了,一般有两种方法


5.4.1 欧式距离

不是说每个向量就是这个空间中的一个点么?那么相似性就是直接计算这两个点的欧式距离,欧式距离公式初中就学了哦

推荐系统技术之文本相似性计算(一)

把上面那两个向量用这个距离公式一带入,就求出两篇文档的相似度了。


5.4.2 余弦相似度距离

(编辑:成都站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读