原文:http://www.kuqin.com/math/20071204/2786.html

余弦定理和新闻的分类似乎是两件八杆子打不着的事,但是它们确有紧密的联系。具体说,新闻的分类很大程度上依靠余弦定理。

Google 的新闻是自动分类和整理的。所谓新闻的分类无非是要把相似的新闻放到一类中。计算机其实读不懂新闻,它只能快速计算。这就要求我们设计一个算法来算出任意两篇新闻的相似性。为了做到这一点,我们需要想办法用一组数字来描述一篇新闻。

我们来看看怎样找一组数字,或者说一个向量来描述一篇新闻。回忆一下我们在“如何度量网页相关性”一文中介绍的TF/IDF 的概念。对于一篇新闻中的所有实词,我们可以计算出它们的单文本词汇频率/逆文本频率值(TF/IDF)。不难想象,和新闻主题有关的那些实词频率高,TF/IDF 值很大。我们按照这些实词在词汇表的位置对它们的 TF/IDF 值排序。比如,词汇表有六万四千个词,分别为

单词编号 汉字词
------------------
1 阿
2 啊
3 阿斗
4 阿姨
...
789 服装
....
64000 做作

在一篇新闻中,这 64,000 个词的 TF/IDF 值分别为

单词编号 TF/IDF 值
==============
1 0
2 0.0034
3 0
4 0.00052
5 0
...
789 0.034
...
64000 0.075

如果单词表中的某个次在新闻中没有出现,对应的值为零,那么这 64,000 个数,组成一个64,000维的向量。我们就用这个向量来代表这篇新闻,并成为新闻的特征向量。如果两篇新闻的特征向量相近,则对应的新闻内容相似,它们应当归在一类,反之亦然。

学过向量代数的人都知道,向量实际上是多维空间中有方向的线段。如果两个向量的方向一致,即夹角接近零,那么这两个向量就相近。而要确定两个向量方向是否一致,这就要用到余弦定理计算向量的夹角了。

余弦定理对我们每个人都不陌生,它描述了三角形中任何一个夹角和三个边的关系,换句话说,给定三角形的三条边,我们可以用余弦定理求出三角形各个角的角度。假定三角形的三条边为 a, b 和 c,对应的三个角为 A, B 和 C,那么角 A 的余弦 --

如果我们将三角形的两边 b 和 c 看成是两个向量,那么上述公式等价于

其中分母表示两个向量 b 和 c 的长度,分子表示两个向量的内积。举一个具体的例子,假如新闻 X 和新闻 Y 对应向量分别是
x1,x2,...,x64000 和
y1,y2,...,y64000,
那么它们夹角的余弦等于,

当两条新闻向量夹角的余弦等于一时,这两条新闻完全重复(用这个办法可以删除重复的网页);当夹角的余弦接近于一时,两条新闻相似,从而可以归成一类;夹角的余弦越小,两条新闻越不相关。

我们在中学学习余弦定理时,恐怕很难想象它可以用来对新闻进行分类。在这里,我们再一次看到数学工具的用途。

数学之美:GOOGLE新闻归类算法与余弦定理相关推荐

  1. 《数学之美》第十四章——余弦定理和新闻的分类

    1 新闻的特征向量 我们在新闻页面中浏览新闻的时候,通常会有很多模块,在这些模块里面的新闻都是具有一定相关性的.如果单纯依靠人工对大量的新闻进行分类显然是不可能的,因此需要让计算机能够"算& ...

  2. 从《数学之美》中我想到的

    吴军老师作为NLP领域的专家,在<数学之美>中把各种高大上的技术介绍得如此通俗易懂,抛去了冗杂的公式,呈现出最原始的数学思想.能够把复杂的问题用最简单易懂的语言表达出来,看来吴军老师的数学 ...

  3. 数学之美 系列 12 - 余弦定理和新闻的分类

    数学之美 系列 12 - 余弦定理和新闻的分类 余弦定理和新闻的分类似乎是两件八杆子打不着的事,但是它们确有紧密的联系.具体说,新闻的分类很大程度上依靠余弦定理. Google 的新闻是自动分类和整理 ...

  4. 数学之美 系列十一 - Google 阿卡 47 的制造者阿米特.辛格博士

    数学之美 系列十一 - Google 阿卡 47 的制造者阿米特.辛格博士 枪迷或者看过尼古拉斯.凯奇(Nicolas Cage)主演的电影"战争之王"(Lord of War)的 ...

  5. 数学之美:各个击破算法和Google云计算的基础

    云计算的一个关键性问题就是如何把一个非常大的问题,自动分解到许多计算能力不是很强大的计算机上.Google针对此问题提出一个工具MapReduce,其基础就是算法中常见的分治算法. 假设要对一个长度为 ...

  6. 算法第一章作业(c++代码规范+数学之美读后感+规划)

    c++代码规范: 一.文件结构 每个 C++/C 程序通常分为两个文件.一个文件用于保存程序的声明(declaration),称为头文件.另一个文件用于保存程序的实现,称为定义(definition) ...

  7. 数学之美系列二十四 -- 谈谈动态规划与如何设计动态规划算法

    数学之美--动态规划 今 年九月二十三日,Google.T-Mobile 和 HTC 宣布了第一款基于开源操作系统 Android 的 3G 手机,其中一个重要的功能是利用全球卫星定位系统实现全球导航 ...

  8. 《算法通关之路》-数学之美

    数学之美 例题1:两数之和 两数之和:leetcode链接 思路一:暴力破解,两个for循环.遍历每一种可能. def twoSum(nums: List[int], target: int) -&g ...

  9. 数学之美系列十一:Google 阿卡 47 的制造者阿米特.辛格博士

    辛格在 AT & T 时确立了他在学术界的地位,但是,他不是一个满足于做实验写论文的人,于是他离开了实验室来到了当时只有百.十人的 Google.在这里,他得以施展才智,重写了 Google ...

最新文章

  1. ServiceMesh架构的演变过程概述
  2. VirtualBox快照(Snapshot)功能使用及注意事项
  3. centos7升级python到3_CentOS7 升级Python2.x到3.x
  4. 【Linux】32. shell脚本 定时删除 过时 的某类文件
  5. Python中的GIL(全局解释器锁)
  6. JS DOM事件(常用消息、常用事件、addEventListener、removeEventListener)
  7. dom4j Document的基本操作
  8. JS设置弹出小窗口。
  9. AcheGesture-开源免费的手势框架
  10. java多线程设计模式:wait/notify机制(转)
  11. 自考计算机基础知识考题,自考计算机应用基础试题及参考答案
  12. 群接龙拼团小程序开发
  13. 零预算引爆个人和企业品牌
  14. 裸金属服务器(Bare Metal Server,BMS)
  15. 详解手游平台搭建需要哪些条件?需要注意什么?
  16. 一直显示无法连接服务器失败,老显示无法连接服务器失败
  17. linux添加了路径还是不能调用_166个最常用的Linux命令,哪些你还不知道?
  18. flink 入门(一)
  19. android版音乐播放器----卡拉OK歌词实现(二)
  20. 全球所有国家中英文名称

热门文章

  1. mt4 虚拟服务器 配置,mt4配置云服务器教程
  2. n级阶梯,每次走一步或两步,问最多有多少种走法
  3. codeforces 295B B. Greg and Graph(floyd+dp)
  4. C++ primer Plus(第六版)第十三章 类继承 章节编程练习答案
  5. c#语言入门 刘老师,c#单元测试实例(学习刘老师视频)
  6. 信用卡套现千万别触碰这两条红线,否则银行会盯上你!
  7. 【油猴Tampermonkey】脚本安装教程+自用脚本推荐
  8. rk3288实践:第一个嵌入式Linux驱动程序
  9. 什么是正向代理?什么是反向代理?
  10. The requested contract was not found