中国移动通信有限公司研究院基于“云”计算平台的经营情报分析系统(经营情报分析)技术方案1基于“云”计算平台的经营情报分析系统的技术方案1概述1.1背景基于“云”计算平台的经营分析系统主要是探讨和利用云计算技术在经分系统中解决目前面临的主要问题,以及利用云计算优势解决经分系统中新的需求。其中,将互联网搜索技术应用于经分系统中,可以丰富经分数据源,为经分提供更好的支撑。同时,从技术上弥补BC-SE中垂直搜索部分。基于互联网文本信息搜索引擎项目成果,结合经分应用需求,调整系统架构设计,研发新的关键技术,实现如下系统:9情报分析、搜索子系统9经分内容搜索子系统9互联网情报分析子系统整个系统内容如图1所示,其中蓝色覆盖(情报分析)为本次招议标范围。图1.经营情报分析系统示意图21.2项目目标通过网页采集模块对网页进行采集并分析,提供采集数据的结构化输出,同时实现索引、检索,以及前台展示。1.3要求的内容模块(1)网页采集与分析模块模块名称输入输出关键技术关键技术说明功能说明Web2.0网等)采集技术页(论坛完善网页采集技术,达到性能指标网页采集模块互联网静态、动态网页的种子列表通过种子URL采集下来的网页信息采集控制技术深度搜索层数、网站搜索列表、增量采集等深网数据采集(隐藏在网页后面数据库内容采集);Html等网页的无结构化处理;网页内容的翻页问题;网页的多版本存储模板管理技术要高效地实现针对不同的网页选择不同的模板进行分析模板管理模块模板数据各种网页采集、分析模板基于模板的信息抽取技术定义不同抽取模板;针对电话信息和黄页信息的不同文本特征分别处理。根据网页的类型,利用抽取知识库,对目标网站网页信息进行抽取得到高质量的结构化数据网页净化技术识别和清除网页内的噪音内容(如广告、版权信息等),并提取网页的主题以及和主题相关的内容网页去重技术根据内容得到一定的权值,进行权值比较,内容相似度高进行去重和过滤处识别非文本文件能够识别图片、视频、音频等文件编码识别技术支持编码和字符集自动识别,如GBK、UTF-8等网页分析模块包含各种mime类型结构化/半结构化网页信息经过净化、除重、编码识别、指纹生成后的快照文件中文分词技术支持中文多重分词识别和清除网页内的噪音内容(如广告、版权信息等),并提取网页的主题以及和主题相关的内容,包括网页标识、网页类型、内容类别、标题、关键词、摘要、正文、相关链接等信息。去除所抓取网页集合中主题内容重复的网页。去重的级别:镜像站点(根据站点内相似页面多少进行判断);完全相同网页和部分相同网页。对每个网页通过一定算法,生成Docid作为唯一标识。3(2)并行索引模块模块名称输入输出关键技术关键技术说明功能说明中文分词技术支持中文多重分词实时索引技术针对快速变化的索引,实现索引的增删改查索引压缩技术加载索引(压缩后)时间+解压缩时间加载索引(压缩前)时间并行索引模块本地原始压缩文件库或者快照文件库倒排索引文件库对网页多字段的索引功能对网页多个字段进行索引支持中文多重分词,有效地维护搜索引擎词库。能够对网页记录的多个字段进行索引。实现索引压缩技术(3)分布式检索模块和前台展示模块模块名称输入输出关键技术关键技术说明功能说明关键字检索技术输入关键词,进行检索缩略词检索技术用户输入缩略词,比如“工行”,可以返回中国工商银行的相关结果分类检索按照不同类别进行分类检索查询语法分析技术提供查询词的“与、或、非”操作相似度排序技术根据中文信息分析出文本的语义相关性,查询网页相似度高排序靠前。缓存管理实现服务器端缓存管理功能查询结果聚类技术对检索的结果按照一定要求进行聚类分布式检索模块用户检索需求倒排索引文件库结果集;用户查询日志查询结果纠错技术自动发现并纠正查询词中的拼写错误(错别字)实现分布式检索的架构,根据一定算法实现关键字检索,不断优化排序结果(实现技术包括相似度排序,适合于垂直搜索的功能)。对排序结果进行纠错和聚类操作。对常用词的查询结果进行缓存。针对论坛回复热度等优化检索结果。网页快照技术提供查询结果的网页快照前台展示模块结果集查询结果页面用户查询日志结构化知识补全技术针对电话、手机的结构化信息进行补全,需要满足实时更新的存取要求根据返回的检索结果设计友好的用户界面,实现网页快照和分页快速浏览技术,对查询词进行语法着色41.4系统架构整个系统是运行在由Hadoop环境下,即在Shared-Nothing的集群环境下,部署Hadoop平台,在其上开发相关网页信息收集和分析工具,实现网页统一采集、分析、索引,系统搜索服务。系统的架构如图2所示。图2.系统架构图1.5开发环境z实现语言Java/C++z操作系统LinuxRHEL5.4CentOS5.41.6系统指标基于BC-SE的情报分析、搜索系统应在招标人提供的云计算平台上平稳运行,并达到以下指标:5a)加速比加速比与节点数相当,加速比=串行处理时延/并行处理时延,通过要求尝试不同方法,选择加速比高的方法b)空间复杂度空间复杂度,要求在我们硬件空间条件(每个节点内存8G)下,在较短时间内完成系统性能c)搜索引擎性能指标1、情报分析网页采集单机每小时2G字节;网页内容特征提取正确率90%以上;单机索引速度每小时250M;词语切分正确率90%以上;词性分析正确率90%以上;索引膨胀率低于0.5;检索速度G级数据毫秒级响应(平均响应时间低于300ms,Cache命中的网页响应时间低于100ms);a)性能扩展性节点数线性增加,加速比随之增加b)框架扩展性以API封装搜索引擎系统各功能模块,提供所有算法可配置接口及并行任务监控、调度接口系统可扩展性c)算法扩展性搜索引擎算法预留扩展接口,可进行二次开发2系统的总体架构在用户给出的技术架构基础上,进一步细化得到如图3所示的系统总体架构。6网页URL库整体网页库网页模板库结构化网页库文本特征库文本挖掘结果库词典与知识库结构索引库倒排索引库搜索结果库网页采集基于URL下载整体网页存储网页超链接分析网页URL维护网页更新检测深网数据爬取模板管理网页格式分析基于框架解析网页框架提取网页模板维护网页信息结构化网页模板生成网页内容净化网页去重处理网页文本预处理网页特征提取网页文本挖掘网页特征维护网页分析网页库索引建立文本倒排索引建立索引结果存储索引策略优化索引结果维护存储策略优化并行索引查询条件分析结构化查询结果排序相似性计算网页文本搜索关键字分析分布式检索用户要求接受检索模块调用结构化信息补全网页快照展示网页结构展示深网数据展示前台展示JobTrackerFsimage&cditslogNameNodeFsimage&cditslogSecondaryNameNodeFsimage&cditslogDataNode&TaskTrackerDataNode&TaskTrackerDataNode&TaskTracker……DataNode&TaskTrackerDataNode&TaskTrackerDataNode&TaskTracker图3.系统的总体技术架构3网页采集和分析技术方案3.1网页采集网络采集器是通过网页的链接地址来寻找网页,从网站某一个页面(通常是种子URL)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到满足采集结束条件。这一过程如图4所示。7图4.简易爬虫的工作流程采集的结果,一方面用获得的网页对整体网页库进行更新,另一方面用新获得的URL对网页URL库进行更新。由于深网数据采集部分相对比较独立,且实现较复杂,因此在第四节讨论。数据采集控制技术包括采集策略、搜索层深控制和增量采集技术。(1)采集策略广度优先是指网络蜘蛛会先抓取起始网页中链接的所有网页,然后再选择其中的一个链接网页,继续抓取在此网页中链接的所有网页。这是最常用的方式,因为这个方法可以让网络蜘蛛并行处理,提高其抓取速度。深度优先是指网络蜘蛛会从起始页开始,逐个链接跟踪下去,处理完这条线路之后再转入下一个起始页,继续跟踪链接。这个方法有个优点是网络蜘蛛在设计的时候比较容易。(2)深度搜索层数控制8在URL队列管理模块中,应该对URL加上层次、类型这样几个属性。类型用于区别种子URL和非种子URL;层次用于控制爬虫抓取的深度。对于在第N层的URL爬取的网页中,所抽取出来的未被爬取过的URL的层次则为N+1。当设置了采集层次限制后,对于达到限制的URL则不再加入URL队列。(3)增量采集通过URL队列的管理模块,保存当前的URL队列,添加新的种子URL,能够实现增量采集。3.2网页模板管理网页解析的过程与网页生成的过程是一对互逆的过程。动态网页运行过程可以简化为向网页模板添加数据的过程。网页模板由网站的网页设计师设计完成。动态网页的数据可以由用户进行填充,也可以由网站提供数据源。比如,人们生活中常常接触的博客网站提供的服务,就是让博客作者往博客模板中填写文本,或者添加图片等等内容。而我们所使用过的搜索引擎所返回的搜索结果页面则是由网站运营商提供数据源。我们输入查询关键字,搜索引擎进行检索和排序,然后把搜索结果填充到网页模板中,最后反馈显示在用户的浏览器上。通过上述分析,如果我们能够获取网页对应的模板,就可以快速、精确的解析网页中所包含的有效数据。而事实上,网站运营商不能免费提供他们所使用的网页模板。而且在浩瀚的互联网中,不同网站下的网页基本使用不同的模板,甚至同一个网站下的不同部门之间所使用的模板也不尽相同。基于网页模板的网页分析主要的关键技术点有以下几点:(1)网页模板建模;(2)生成网页模板。我们针对本部分的关键技术点制定了拟采取的研究方案。3.2.1网页模板建模网页模板:通用的网页模板应该包含模板标识、TagTree、HTML结构特征、关键抽取规则等部分。拟采用的网页模板建模方案如图5所示。9模板标识:TagTree:htmlheadtitlebodytabletrtrthtdthtdborderaligntable...HTML结构信息:抽取规则:图5.网页模板拟采取的建模方案(1)模板标识模板标识用于唯一地标识网页模板库中的一个网页模板。一般来说一个网页模板可以对应多个网页实例。而每张网页对应的URL地址也是唯一的。因此我们可以使用一个网页模板对应的多个网页实例的URL最长公共子段作为该模板的标识。在网页采集和分析的过程中,我们在初始状态时并不能得到网页实例与网页模板之间的对应关系。相应的解决方案是,通过对已下载的URL列表进行排序,把URL地址相似的网页划分为组,然后每组网页就对应到一个网页模板,而网页模板的标识就可以使用URL地址最长公共子段。例如:如下4个网易博客URL;;;;通过对这4个URL的分析,我们可以用“blog.163.com/blog”作为这一组网页对10应的网页模板的标识。(2)TagTreeTagTree是一种用于对网页模板建模的树形数据结构。TagTree是DOMTree的一种修改模型。可以利用XPath算法读取TagTree对应的HTML块中对应的数据。DOM(DocumentObjectModel文档对象模型)是万维网联盟(W3C)指定的标准接口规范。DOM是HTML与XML的应用编程接口(API),DOM将整个页面映射为一个由层次结点组成的文件。使用DOMTree来对HTML文件进行建