推荐系统技术之文本相似性计算(一)
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 余弦相似度距离(编辑:成都站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |