[背景音乐] 翻译: RyukaSuu |审阅: 19waa Coursera Global Translator Community
让我们先看一下这个TFIDF 然后做些有趣的事情
我们要手动计算
先让我输一些东西
我们将要手动计算
几个人之间的距离
我们的目标是展示这些距离是什么样子
给你一个TFIDF 的整体印象
我们取三个人作为例子
我们已经说过了奥巴马
所以我们这里有了Obama这个变量
我们再新建两个变量
比如说克林顿 我准备选他
这个人的名字等于 Bill Clinton
也就是前美国总统
让我们再选一个人 比如贝克汉姆
贝克汉姆是一个有名的
英国足球运动员
所以我们把他从人群中筛选出来
一个名字等于
David Beckham的人
既然我们已经选择了克林顿和贝克汉姆 下面让我们来计算
这两个人还有奥巴马总统的相似度
我们的问题是
奥巴马
相比较贝克汉姆而言 是否离克林顿接近呢
噢不对 这里有个小错误
(教授少加了个#)
这里有很多种方法来衡量相似度
或者说两个向量之间的距离 或者说是两个文件之间的差别
我们会计算TFIDF
我们现在要做的是计算这些
不同文件之间的差别 克林顿的和奥巴马的 等等
我要使用距离矩阵
它是Graphlab create里自带的 这样我们就不用自己再创造了
我们会看graphlab.distance然后按下tab
你会看到这里有很多选择
克林顿的距离我们之前讨论过 是cosine 距离
jaccard相似度 还有许多我们会在后面的课程学习到
这里我就用cosine距离了
让我们想一想cosine相似度这个概念
如果你听说过
这个数值越高 这两个文章相似度越高
我们想要的是距离 所以希望这个值越小越好
所以说cosine距离越小 两个文章越接近
所以问题就变成了 奥巴马和克林顿的TFIDF的cosine距离
是多少呢
注意我选择了TFIDF这一列 但是我这里还加了个[0]
因为这是这张表格的第零行
这张表仅有一个对象
但是我们仍然表明我们需要的是哪一行
所以我们将要比较奥巴马的TFIDF 和克林顿的TFIDF
也就是在第0行 代表着coisine距离
你可以看到这个距离是0.83
那么问题来了
在同一个矩阵中 奥巴马和贝克汉姆的cosine距离是多少呢
所以我会输入以下命令
obama['tfidf'][0]-beckham['tfidf'][0]
输入这个代码
我们可以看到距离是0.97
你能得到的最大距离是1.0
所以在这个例子中
相比较与贝克汉姆而言 奥巴马与 克林顿更加接近 这也很合理
我们现在已经人工计算出了几个人之间的距离
我们怎么才能自动找出一篇文章与其他文章之间的距离呢
在这个例子中 是一个人与其他人有多相似
在前面的课程当中 Emily已经讨论过了最近邻居模型以及
怎样把这个模型运用到文章检索上
我们现在要做的是在文章检索中
使用一个简单的近邻模型
[背景音乐] 翻译: RyukaSuu |审阅: 19waa Coursera Global Translator Community