`
touchmm
  • 浏览: 1037611 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

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

阅读更多

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

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

CopyMiddle:张俊林

TimeStamp:<chsdate w:st="on" isrocdate="False" islunardate="False" day="9" month="1" year="2008"><font face="Times New Roman">2008</font><span lang="EN-US" style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><span lang="EN-US">年</span></span><font face="Times New Roman">1</font><span lang="EN-US" style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><span lang="EN-US">月</span></span><font face="Times New Roman">9</font><span lang="EN-US" style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><span lang="EN-US">日</span></span></chsdate>

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

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

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%<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="3" unitname="a">3a</chmetcnv>%<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="2" unitname="F">2f</chmetcnv>%<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="2" unitname="F">2f</chmetcnv>%69%74%2e%68%65%78%75%6e%2e%63%<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="6" unitname="F">6f</chmetcnv>%6d%<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="2" unitname="F">2f</chmetcnv>%32%30%30%38%2d%30%31%2d%30%39%<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="2" unitname="F">2f</chmetcnv>%31%30%32%37%30%36%36%34%30%2e%68%74%6d%<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="6" unitname="C">6c</chmetcnv>&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%<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="3" unitname="a">3a</chmetcnv>%<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="2" unitname="F">2f</chmetcnv>%<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="2" unitname="F">2f</chmetcnv>%6e%65%77%73%2e%78%69%6e%68%75%61%6e%65%74%2e%63%<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="6" unitname="F">6f</chmetcnv>%6d%<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="2" unitname="F">2f</chmetcnv>%6e%65%77%73%63%65%6e%74%65%72%<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="2" unitname="F">2f</chmetcnv>%32%30%30%38%2d%30%31%<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="2" unitname="F">2f</chmetcnv>%30%39%<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="2" unitname="F">2f</chmetcnv>%63%<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="6" unitname="F">6f</chmetcnv>%6e%74%65%6e%74%<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="5" unitname="F">5f</chmetcnv>%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个,这个是自动的。

完毕,收工。

分享到:
评论

相关推荐

    php 新闻后台系统

    在构建新闻后台系统时,PHP主要负责处理服务器端的逻辑,如用户登录验证、新闻发布、数据增删改查等操作。 MySQL则是关系型数据库管理系统(RDBMS),在本系统中用于存储新闻数据。它提供了高效、稳定的数据存储和...

    电商产品经理宝典:电商后台系统产品逻辑全解析+mind笔记整理

    《电商产品经理宝典:电商后台系统产品逻辑全解析》是一本深入探讨电商后台系统的专业书籍,旨在帮助产品经理和开发者理解并构建高效、稳定的电商中台系统。这本书详细讲解了电商行业的核心业务流程、中台架构设计...

    百度小程序仿新闻类.rar

    【标题】:“百度小程序仿新闻类.rar”是一个包含百度小程序的开发项目,旨在创建一个类似新闻应用的...通过这个项目,开发者可以深入了解百度小程序的开发流程,掌握如何与后端系统交互,以及如何设计和管理新闻内容。

    百度amis低代码引擎实现后台管理系统源码.zip

    【标题】: 百度Amis低代码引擎用于后台管理系统的源码分析 【描述】: 百度Amis是一款强大的前端低代码开发框架,它允许开发者通过配置JSON来快速构建企业级的后台管理系统。本资源是基于React的Amis-admin项目的...

    Axure后台管理八种模板.zip

    - **APP后台**:针对移动应用的数据管理和用户行为分析,模板可能包含用户账户管理、推送通知配置、数据分析等组件。 3. **Axure使用技巧** - **动态面板**:用于创建可交互的组件,如下拉菜单、折叠面板等,提高...

    thinkphp 新闻发布前后台

    【标题】"ThinkPHP 新闻发布前后台"是一款基于ThinkPHP框架开发的文章发布系统,它提供了用户友好的前端展示和管理强大的后台支持。这个系统旨在让网站管理员能够轻松地发布和管理新闻内容。 【核心知识点】 1. **...

    fanuc机器人背景逻辑程序介绍.pptx

    【Fanuc机器人背景逻辑程序详解】 Fanuc机器人背景逻辑程序是一种特殊类型的程序,它能够在机器人的后台持续运行,不受到急停、保持或报警的影响。...正确理解和运用背景逻辑程序,有助于优化机器人的自动化工作流程。

    AxureUX后台业务管理系统原型模板.zip

    3. **订单处理**:订单创建、查看、修改、取消、支付状态追踪等是电商后台的核心流程。模板中的订单管理模块可以帮助设计师快速构建出顺畅的订单处理流程,提升用户体验。 4. **支付系统**:集成各种支付方式(如...

    后台管理系统原型模板

    这个模板集成了常见的后台管理功能模块,如用户管理、权限控制、数据统计、系统设置等,帮助设计师和产品经理在项目初期阶段就能清晰地展现系统架构和操作流程。 Axure是一款强大的原型设计软件,它允许用户通过...

    黑马电商后台管理系统前端vue后端nodejs.zip

    通过学习黑马电商后台管理系统,开发者不仅可以提升Vue.js和Node.js的实战技能,还能了解到电商后台的常见业务流程和设计模式,为今后的项目开发打下坚实基础。无论是初学者还是有经验的开发者,都能从中获益匪浅。

    小程序源码(无后台)_百度小说.rar

    总的来说,通过对“百度小说”小程序源码的学习,开发者可以深入理解小程序的开发流程、页面构建和业务逻辑实现,进一步提升自己的前端开发技能。同时,这也提醒我们尊重版权,合法合规地使用开源资源。

    PHP后台管理系统.zip

    PHP后台管理系统通常采用MVC(Model-View-Controller)架构模式,将业务逻辑、数据模型和用户界面分离,实现结构清晰、易于维护的设计。Model负责数据处理,View负责展示,Controller负责协调两者,形成高效的开发...

    AxureUX中后台管理信息系统通用原型.zip

    这款模板由专业团队打造,旨在为IT行业提供一个快速搭建中后台界面的解决方案,尤其适用于那些需要频繁处理数据和业务逻辑的企业。 在设计后台管理系统时,AxureUX模板提供了一系列通用组件和交互模式,包括但不...

    SAP所有表及关系.XLS.zip_SAP_sap后台表

    "SAP所有表及关系.XLS.zip" 文件是一个压缩包,其中包含了关于SAP后台数据表的详细清单,这对于理解SAP系统的内部工作原理、进行系统配置、开发或数据分析等工作至关重要。 SAP的数据表是系统存储和处理业务数据的...

    百度ssp 全屏广告源码demo

    在这个源码中,开发者可以了解到如何与百度SSP接口进行交互,包括请求广告、展示广告以及处理广告点击等关键流程。 源码中的主要组成部分可能包括以下几个部分: 1. **bin**:编译后的可执行文件或库文件存放目录...

    订餐点餐小程序(后台SSM).zip

    3.6系统流程和逻辑 12 4系统概要设计 13 4.1 概述 14 4.2 系统结构 15 4.3. 数据库设计 16 4.3.1 数据库实体 17 4.3.2 数据库设计表 18 5系统详细设计 18 5.1用户端功能模块 19 5.2管理端功能模块 20 6 系统测试 31 ...

    数套打包【带后台】02.zip微信小程序模板源码

    通过阅读和研究,可以深入理解微信小程序的开发流程,学习如何设计和实现功能模块,以及如何与后台进行数据交互。同时,这些模板也可以作为项目启动的基础,根据实际需求进行修改和扩展。 6. **开发工具与调试**: ...

    轻量级html后台模板

    3. **表格列表**:表格用于展示结构化数据,后台模板通常提供可排序、可筛选、可分页的表格组件,以方便数据管理和分析。 4. **Tab页签**:Tab页签可以有效地组织大量信息,让用户在一个界面上切换查看不同内容。...

    Axure商城后台业务管理系统原型模板(全套).rar

    2. **商城后台系统需求**:电商后台业务管理系统通常包括订单管理、商品管理、用户管理、库存管理、营销活动管理、数据分析等多个模块,这些模块是电商运营的基础,通过此模板可以快速搭建起这些功能的原型,以便于...

    百度云人 +Android +脸识别

    在本文中,我们将深入探讨如何将百度云的人脸识别技术集成到Android应用中,并通过Python进行后台处理,以便接收并解析百度云返回的识别结果。首先,我们需要了解人脸识别的基本概念和百度云在这个领域的服务。 ...

Global site tag (gtag.js) - Google Analytics