/*版权声明:可以任意转载,转载时请务必标明文章原始出处和作者信息 .*/

百度新闻后台逻辑流程分析

CopyMiddle:张俊林

TimeStamp:2008年1月9日

今天分析了一下百度新闻,琢磨了一下其后台运行机制,出乎意料的是,我发现其运行机制比我想象的要简单,我原先没仔细看,以为至少会用到文本聚类,但是分析结果显示好像没用到,只是使用了文本分类和文本相似性计算而已。

下面简单描述一下其可能的运行机制,纯属个人分析,不保证正确性。

1.后台若干爬虫不间断的爬取各个新闻网站的最新新闻,网页HTML TAG过滤,得到新闻正文(解析出标题,发表时间,来源等元信息);

2.所有爬虫解析到的新闻存入某个POOL内,比如内存里建立新闻队列,积攒到一定量或者每隔一定时间(按照百度说法是5分钟),开始逐一进行处理;

3.对于每个新闻N,首先进行文本分类,分到国内,国际,财经,互联网等若干类别内;

4.计算新闻N和现有每篇新闻(最近5天内的)的相似性,如果和比如已有K篇新闻相似性大于一定值(比如>0.95),判断为已有新闻,不做处理(界面上某条新闻的“相同的K条新闻"就是这么计算得到的);

注1:为什么是通过文本相似性计算得到的?看这个例子

http://news.baidu.com/n?cmd=8&page=%68%74%74%70%3a%2f%2f%69%74%2e%68%65%78%75%6e%2e%63%6f%6d%2f%32%30%30%38%2d%30%31%2d%30%39%2f%31%30%32%37%30%36%36%34%30%2e%68%74%6d%6c&pn=1&clk=rrel&cls=housenews&where=toppage

其实百度说是”相同新闻“,而实际上是两个不同的新闻,只是计算时候相似度高于阈值导致被认为是相同新闻。

注2:这个计算结果,即新闻N和现有的任何一篇新闻K的相似性要记住,后面有用处;

注3:新闻标题在计算相似性时候会赋予更高权值。

5.如果发现没有和已有新闻完全相同的新闻,则认为是一条新的值得显示的新闻,将这条新闻列入”最新新闻“里面,并显示在界面;

接下来要做的是:计算相关新闻。也就是百度新闻界面显示的”M条相关“的内容。还用计算么?不用计算了,上一步骤不是计算过文本相似性了么?

直接拿来用即可,只要把相似性大于阈值(比如0.4)的文章作为相关新闻即可。

注1:步骤4在计算相似性的时候,居然不是在本分类内的文章计算,而是所有新闻,不管哪个分类的都进行计算,这个也出乎我的意料,为何这么说?

来看http://news.baidu.com/n?cmd=5&page=%68%74%74%70%3a%2f%2f%6e%65%77%73%2e%78%69%6e%68%75%61%6e%65%74%2e%63%6f%6d%2f%6e%65%77%73%63%65%6e%74%65%72%2f%32%30%30%38%2d%30%31%2f%30%39%2f%63%6f%6e%74%65%6e%74%5f%37%33%39%33%30%31%34%2e%68%74%6d&pn=1

主新闻:多米尼加发现家禽感染禽流感病毒 ,居然和很多诸如:“全球十大计算机病毒排名 CIH病毒居首”  这些已有新闻关联。这说明了不是和本分类新闻计算相似性,否则”全球十大计算机病毒排名 CIH病毒居首“是不会被错误的分类到国际新闻的。

注2:在步骤4计算的新进新闻N和已有新闻K之间的相似性,也会被新闻K用到,做过比较后,如果相似性大于阈值,此时点击新闻K,会在相关新闻里面显示新闻N;

6.此时基本完工,因为每个频道的”最新新闻“搞完,就意味着技术活到此结束了。

7.每个频道的主体显示的有图片的新闻应该是人工选择的,人工从”最新新闻“里面选择决定哪些显示在主体页面内。

注:刚开始我以为是程序自动选择的,比如”相同新闻“>100就显示在频道主体内,但是好像有若干新闻相同新闻很少也入选了。当然可能有其它机制决定是否放入频道主体显示,比如是否有图片,但是我倾向于认为是认为干预的结果。

8.首页显示的新闻是各个频道主体内容的前K个,这个是自动的。

完毕,收工。

百度新闻后台逻辑流程分析相关推荐

  1. 百度新闻高级搜索URL分析

    关于百度新闻高级搜索的URL各个参数的含义: 关于开始日期和结束日起的秒数,百度用在中国区用的是CST来算秒,如果在C# 里做,C#用的是GMT算,注意时间差8小时. news.baidu.com/n ...

  2. NSURLSession使用说明及后台工作流程分析

    NSURLSession简介 NSURLSession是iOS7中新的网络接口,它与咱们熟悉的NSURLConnection是并列的.在程序在前台时,NSURLSession与NSURLConnect ...

  3. android7.1的SnapdragonCamera之CameraActivity逻辑流程分析整体

    不积跬步无以至千里 "一花一世界,一树一乾坤,一草一天堂,一木一浮生",这句话告诉我们通过一小部分可以知道整个整体,同样的Camera也一样,本文主要分析这个CameraActiv ...

  4. 高校新闻抓取分析之百度新闻篇---数据抓取

    高校新闻抓取分析之百度新闻篇-数据抓取 tips: 本文代码使用python3编写 代码仓库 使用urllib抓取数据 百度新闻网页界面分析 在我读大学的时候(18年前),百度新闻还能基于新闻标题或者 ...

  5. 高校新闻抓取分析之百度新闻篇---数据清洗解析

    高校新闻抓取分析之百度新闻篇-数据清洗解析 tips: 本文代码使用python3编写 代码仓库 使用re抓取解析数据 前言 在上一篇文章中,成功构建URL并获取到高校新闻数据. 现在将对请求回来的数 ...

  6. python爬取百度新闻_火车浏览器网络爬虫实践6:以“陕茶”为例爬取百度新闻搜索结果...

    每天进步一点点,这是我2019年的小目标. 这是第6次学习与实践笔记了,这一次咱们把对象转移到百度搜索去,尝试使用火车浏览器爬虫工具来采集百度新闻搜索的结果,并做简单数据可视化展示. 01 抓取需求 ...

  7. OA系统二十四:请假审批五:【点击“审批”后的审批弹出框】的后台逻辑;(审批结果提交的Dao层和Service层逻辑)

    本篇博客的主要内容是:[请假审批内嵌页面],[审批弹出框]的点击"确认提交"后,后台的逻辑:主要是Dao层和Service层这些后台逻辑:  说明: (1)目前来看,为了实现某个功 ...

  8. 微服务商城系统(十三)订单、支付流程分析

    文章目录 一.订单 1.登录页面配置 2.用户收件地址查询 3. 下单 (1)表结构介绍 (2)下单实现 (3)库存变更 (4)增加积分 二. 支付流程分析 1. 二维码创建 2.微信扫码支付简介 ( ...

  9. Python实现网络爬虫,爬关键词“武汉”的百度新闻

    文章目录 1. 选取目标网页 2. 分析目标网页 3. Spider实现 4. items实现 5. pipelines实现 6. 结果展示 7.总结 Python实现爬虫的方式有很多种,如:直接用U ...

最新文章

  1. mysql导入600万数据_mysql如何导出600万条记录的数据表?
  2. 程序员,你是选择25k的996还是18k的八小时工作日
  3. index 把@前的截断作为
  4. Linux终端乱码的解决办法
  5. 连接mysql数据库2013_使用VS2013 + EF6 + .NET4.5 连接Mysql数据库
  6. 厄米高斯光束 matlab,拉盖尔高斯光束_厄米高斯光束MATLAB仿真
  7. 使用SQL Server数据工具进行SQL单元测试
  8. 曼联刷新132年队史纪录
  9. centreon与nagios整合
  10. Oracle 高级教程
  11. 甘草泻心汤治疗复发性口腔溃疡的经验
  12. html5梯形图形代码,CSS秘密花园:梯形标签
  13. rgv动态调度MATLAB代码,RGV动态调度分析
  14. Java中涉及到和金钱有关的属性的类型
  15. 【定位问题】基于matlab chan算法、fang算法、taylor算法求解目标定位问题【含Matlab源码 2135期】
  16. video视频相关问题:火狐浏览器报错“没有找到支持的视频格式和MIME类型”
  17. 单道批处理系统与多道批处理系统(操作系统)
  18. spring的actuator健康监测配置
  19. 如何使用JavaScript检查数字是否为素数?
  20. LTE网络中UU与X2接口研究

热门文章

  1. EV3 直接命令 - 第 5 课 从 EV3 的传感器读取数据
  2. QEMU 构建系统架构
  3. C++ STL : 模拟实现STL中的关联式容器unordered_map/unordered_set
  4. 抖音xgorgon04参数
  5. 小红书shield算法分析
  6. 云计算学习路线和经典资料推荐
  7. 万字整理,图解Linux内存管理所有知识点
  8. 记一次在LAMP中遇到的问题
  9. Go 超时引发大量 fin-wait2
  10. OS- -死锁(二)