[背景音乐] 翻译: RyukaSuu |审阅: 19waa Coursera Global Translator Community 让我们真正着手计算TF/IDF 现在 我无法只计算TF/IDF 顺便提一下 这是一个重要的注意点 我们没法单独计算 奥巴马文章的TF/IDF 是因为TF/IDF 取决于整个文集 你需要把那些出现在每篇文章中的单词标准化 你需要把那些出现在每篇文章中的单词标准化 我证明给你看 我已经在整个文集中计算过了 现在让我们开始做这个吧 开始吧! 我会计算 整个文集的TF-IDF 我会分两步来做 首先我要计算整个文集中 各个单词的数量 所以我在people 中添加一列叫做单词计数(word_count) 我们之前对奥巴马做过类似的 现在我们要对所有人做这个 我们之前对奥巴马做过类似的 现在我们要对所有人做这个 所以我要调出graphlab.text_analytics.count_words 这个函数 然后写下输入值 输入值会是text这一列 换句话说 我会对text 这一列的进行单词计数 为了以防混淆 我们直接打印出people 所以我会打印出people的前几列 恩 我们执行了代码 你看到我们有URI 也就是网页地址这一列 人物的名字 然后在最右边 有单词计数这一列 新的一列 好的 下一步我们就要计算TF/IDF了 就像单词计数一样 你要使用你自己的TF/IDF 系统 会让你花上一些时间完成 Graphlocate已经准备就绪了 我们准备使用这个来让整个过程变得简单一些 所以我会调用graphlab.text_analytics这个函数 就像之前调用单词计数一样 你要做的就是 需要一个输入值 就像我们给单词计数那个函数也赋了一个输入值一样 然后它就会计算TF/IDF了 让我给你看看 最后的结果是什么样的 额 我这边打错了个字 应该是word_count 不是word_counts 这样我会在整个文集中 一共50000篇文章 来计算单词的频率 并标准化 最后我们的结果会是一张表 对每篇文章 有一个TF/IDF的字典 我们之前应该做的都是正确的 我准备再添加新的一列 对于人物这个表格 新的一列会是叫做TF/IDF 我准备在这一列储存我们的TF/IDF的值 这也在一个表格里面 也就是TF-IDF 这个表格doc这一列 恩 我们成功的添加了 我们现在有了每篇文章的TF/IDF 并且储存在里面 让我们检查一下 这是我们要做的 我们要检查奥巴马这篇文章的TF-IDF 我们要检查奥巴马这篇文章的TF/IDF 我们之前对于单词计数和排序 进行了检查 我们也会把TF-IDF的值进行排序 所以我会重新读取奥巴马的变量 在最新的版本中 我们新添加了两列 所以我会选择people中 people等于Barack Obama的那些行 所以我创建了一个奥巴马 就像我们之前单词计数里做过的一样 我创建了一个obama_tfidf_table 然后可以进行排序 这是一个字典 我们要做和之前一样的 先存储然后再排序 这就是我们要做的 实际上 我不会再建立一个表格 而是在一行内搞定它 我要一行完成 所以我的代码就是 我选取 奥巴马中tf-idf这一列 这样看起来会漂亮些 然后.stack 这个指令可以把字典中我想要的 分成两列 所以我要存储tf-idf的值 所以输出值的新两列的名字会是 word 和 tf-idf 让我给你看些新的东西 不好 我这边忘记加引号了 让我给你看一点python的小技巧 很有用的小技巧 我会在这行代码的末尾加上一些指令 比如说.sort 这样我就会对tf-idf这一列进行排序 然后我输入 asceding=false 进行降序排列 所以说我之前用了很多行代码 现在我用一行代码就搞定了 这样我就收集到了奥巴马的tf-idf这一列 然后分开储存到word 和tf-idf这两列 并且降序排序 从最高到最低 如果你记住的话 在我们运行之前 在我们之前对单词计数做了类似的事 最普遍的单词就是then in and of 这些 然后就是to his Obama act a he这些单词 这些单词通常不包含什么特殊的信息 除了Obama(奥巴马)这个单词 让我们对TF-IDF执行它 我们可以看到 最具有信息的单词就是奥巴马 这也很合理 因为整篇文章都是有关奥巴马的 然后剩下的就是art Iraq control law 依次排序 (艺术 伊拉克 控制 法律) military involvement response democratic 和 democratic party(军师 参与 回应 民主 民主党) 你可以看到单词 都和奥巴马的活动有着重要的联系 [背景音乐] 翻译: RyukaSuu |审阅: 19waa Coursera Global Translator Community