<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>何清勇SEO博客 &#187; SEO帮助</title>
	<atom:link href="http://scseoer.com/seo-help/feed" rel="self" type="application/rss+xml" />
	<link>http://scseoer.com</link>
	<description></description>
	<lastBuildDate>Fri, 18 May 2012 08:44:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>网络爬虫工作原理及分布式网络爬虫体系结构设计</title>
		<link>http://scseoer.com/wangluopachong.html</link>
		<comments>http://scseoer.com/wangluopachong.html#comments</comments>
		<pubDate>Tue, 10 Jan 2012 15:56:30 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[索引]]></category>
		<category><![CDATA[网络爬虫]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=2500</guid>
		<description><![CDATA[一篇关于网络爬虫程序的一些原理及体系结构纯技术文章，一些地方可能不会看的很明白，对于SEO行业，经常和搜索引擎及其爬虫程序打交道，仔细浏览下，一些不清楚而自己又很想了解的地方，可以借助搜索来需找相关解释，对工作还是有帮助的（个人认为值得注意的地方已加红显示）。文章相对较长，可以转换成PDF格式文档阅读（太懒的童鞋可以在文章结尾自行下载）。 网络爬虫工作原理 1、聚焦爬虫工作原理及关键技术概述 网络爬虫是一个自动提取网页的程序，它为搜索引擎从Internet网上下载网页，是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始，获得初始网页上的URL，在抓取网页的过程中，不断从当前页面上抽取新的URL放入队列，直到满足系统的一定停止条件。聚焦爬虫的工作流程较为复杂，需要根据一定的网页分析算法过滤与主题无关的链接，保留有用的链接并将其放入等待抓取的URL队列。然后，它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL，并重复上述过程，直到达到系统的某一条件时停止，另外，所有被爬虫抓取的网页将会被系统存贮，进行一定的分析、过滤，并建立索引，以便之后的查询和检索；对于聚焦爬虫来说，这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。 相对于通用网络爬虫，聚焦爬虫还需要解决三个主要问题： 对抓取目标的描述或定义； 对网页或数据的分析与过滤； 对URL的搜索策略。 抓取目标的描述和定义是决定网页分析算法与URL搜索策略如何制订的基础。而网页分析算法和候选URL排序算法是决定搜索引擎所提供的服务形式和爬虫网页抓取行为的关键所在。这两个部分的算法又是紧密相关的。 2、抓取目标描述 现有聚焦爬虫对抓取目标的描述可分为基于目标网页特征、基于目标数据模式和基于领域概念3种。 基于目标网页特征的爬虫所抓取、存储并索引的对象一般为网站或网页。根据种子样本获取方式可分为： 预先给定的初始抓取种子样本； 预先给定的网页分类目录和与分类目录对应的种子样本，如Yahoo!分类结构等； 通过用户行为确定的抓取目标样例，分为：用户浏览过程中显示标注的抓取样本；通过用户日志挖掘得到访问模式及相关样本。 其中，网页特征可以是网页的内容特征，也可以是网页的链接结构特征，等等。 基于目标数据模式的爬虫针对的是网页上的数据，所抓取的数据一般要符合一定的模式，或者可以转化或映射为目标数据模式。 另一种描述方式是建立目标领域的本体或词典，用于从语义角度分析不同特征在某一主题中的重要程度。 3、网页搜索策略 网页的抓取策略可以分为深度优先、广度优先和最佳优先三种。深度优先在很多情况下会导致爬虫的陷入(trapped)问题，目前常见的是广度优先和最佳优先方法。 3.1、广度优先搜索策略 广度优先搜索策略是指在抓取过程中，在完成当前层次的搜索后，才进行下一层次的搜索。该算法的设计和实现相对简单。在目前为覆盖尽可能多的网页， 一般使用广度优先搜索方法。也有很多研究将广度优先搜索策略应用于聚焦爬虫中。其基本思想是认为与初始URL在一定链接距离内的网页具有主题相关性的概率很大。另外一种方法是将广度优先搜索与网页过滤技术结合使用，先用广度优先策略抓取网页，再将其中无关的网页过滤掉。这些方法的缺点在于，随着抓取网页的增多，大量的无关网页将被下载并过滤，算法的效率将变低。 3.2 最佳优先搜索策略 最佳优先搜索策略按照一定的网页分析算法，预测候选URL与目标网页的相似度，或与主题的相关性，并选取评价最好的一个或几个URL进行抓取。它只访问经过网页分析算法预测为“有用”的网页。存在的一个问题是，在爬虫抓取路径上的很多相关网页可能被忽略，因为最佳优先策略是一种局部最优搜索算法。 因此需要将最佳优先结合具体的应用进行改进，以跳出局部最优点。将在第4节中结合网页分析算法作具体的讨论。研究表明，这样的闭环调整可以将无关网页数量降低30%~90%。 4、网页分析算法 网页分析算法可以归纳为基于网络拓扑、基于网页内容和基于用户访问行为三种类型。 4.1、基于网络拓扑的分析算法 基于网页之间的链接，通过已知的网页或数据，来对与其有直接或间接链接关系的对象（可以是网页或网站等）作出评价的算法。又分为网页粒度、网站粒度和网页块粒度这三种。 4.1.1、网页粒度的分析算法 PageRank和HITS算法是最常见的链接分析算法，两者都是通过对网页间链接度的递归和规范化计算，得到每个网页的重要度评价。 PageRank算法虽然考虑了用户访问行为的随机性和Sink网页的存在，但忽略了绝大多数用户访问时带有目的性，即网页和链接与查询主题的相关性。针 对这个问题，HITS算法提出了两个关键的概念：权威型网页（authority）和中心型网页（hub）。 基于链接的抓取的问题是相关页面主题团之间的隧道现象，即很多在抓取路径上偏离主题的网页也指向目标网页，局部评价策略中断了在当前路径上的抓取行为。部分文献提出了一种基于反向链接（BackLink）的分层式上下文模型（Context Model），用于描述指向目标网页一定物理跳数半径内的网页拓扑图的中心Layer0为目标网页，将网页依据指向目标网页的物理跳数进行层次划分，从外层网页指向内层网页的链接称为反向链接。 4.1.2、网站粒度的分析算法 网站粒度的资源发现和管理策略也比网页粒度的更简单有效。网站粒度的爬虫抓取的关键之处在于站点的划分和站点等级(SiteRank)的计算，SiteRank的计算方法与PageRank类似，但是需要对网站之间的链接作一定程度抽象，并在一定的模型下计算链接的权重。 网站划分情况分为按域名划分和按IP地址划分两种。一些文献讨论了在分布式情况下，通过对同一个域名下不同主机、服务器的IP地址进行站 点划分，构造站点图，利用类似PageRank的方法评价SiteRank。同时，根据不同文件在各个站点上的分布情况，构造文档图，结合 SiteRank分布式计算得到DocRank。利用分布式的SiteRank计算，不仅大大降低了单机站点的算法代价，而且克服了单独站点对整个网络覆盖率有限的缺点。附带的一个优点是，常见PageRank 造假难以对SiteRank进行欺骗。 4.1.3、网页块粒度的分析算法 在一个页面中，往往含有多个指向其他页面的链接，这些链接中只有一部分是指向主题相关网页的，或根据网页的链接锚文本表明其具有较高重要性。但是，在PageRank和HITS算法中，没有对这些链接作区分，因此常常给网页分析带来广告等噪声链接的干扰。在网页块级别(Block level) 进行链接分析的算法的基本思想是通过VIPS网页分割算法将网页分为不同的网页块(page block)，然后对这些网页块建立page to block和block to page的链接矩阵， 分别记为Z和X。于是，在 page to [...]]]></description>
		<wfw:commentRss>http://scseoer.com/wangluopachong.html/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Robots.txt中的Crawl-delay参数</title>
		<link>http://scseoer.com/robots-crawl-delay.html</link>
		<comments>http://scseoer.com/robots-crawl-delay.html#comments</comments>
		<pubDate>Sun, 08 Jan 2012 08:21:49 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[robots]]></category>
		<category><![CDATA[流量限制]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=2467</guid>
		<description><![CDATA[robots.txt 大致介绍： robots.txt 是搜索引擎中访问网站的时候要查看的第一个文件。robots.txt 文件告诉蜘蛛程序在服务器上什么文件是可以被查看的。 由于每个网站的实际配置和要求不一样，很多主机对流量的限制相对比较严格，一个网站的流量限制不止是普通用户浏览产生，搜索引擎的爬虫程序也会消耗很多流量，特别是抓取比较大的文件（比如视频或者图片）的时候，会让流量飙升，加上主机对流量的限制，进而可能会影响到普通用户浏览网页，所以我们可以通过 robots.tst 文件来限制搜索引擎的爬虫程序来抓取这些文件，另外爬虫程序的高频率访问也可能会导致同样的结果，下面是搜索引擎对此建议一些网站管理员可以在 robots.txt 中使用 Crawl-delay 参数来限制爬虫程序对网页的抓取频率。 Crawl-delay 参数 搜索引擎从整个因特网上抓取数以百亿计的网页，对于网络抓取搜索引擎采取大量系统，因此，一些网站的网络服务器会从不同的抓取程序的客户端IP地址登录请求。不同的抓取程序系统彼此配合，来限制任何来自单一网络服务器的活动。所谓单一网络服务器，是由IP地址判断的。因此，如果您的服务器主机拥有多个IP，它的活动则会处于更高的级别。 在robots.txt 里，可以通过参数对搜索引擎的抓取程序设定一个较低的抓取请求频率。您可以加入 Crawl-delay: xx 指示，其中，“XX”是指在爬虫程序两次进入站点时，以秒为单位的最低延时。如果爬虫的抓取频率对您的服务器是一个负担，您可以将这个延时设定为任何您认为恰当的数字，例如1或10。 例如，您想设定一个2秒的延时，语句如下： User-agent: Slurp Crawl-delay: 2 搜索引擎对 Crawl-delay 的支持情况 yahoo 对 Crawl-delay 的反应：如果你有分析网站日志文件的习惯，你会发现以前的 yahoo 每天抓取网页的频率是最高的，其次是谷歌和百度，上面的 Crawl-delay 也是从 yahoo 的站长帮助文件中了解到的，所以 yahoo 对这个参数是支持的。 2011年10月28日后 yahoo 对网页抓取频率极具下降甚至很少抓取 — 本博客日志数据。 百度对 Crawl-delay 的反应：限制百度爬虫抓取时间和频率限制，可以在 robots 中的 crawl-delay 中设置，这个参数是 baidu spider 对网站访问频率的重要参考信息之一，但 [...]]]></description>
		<wfw:commentRss>http://scseoer.com/robots-crawl-delay.html/feed</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>SOSO发布通用SEO优化指南</title>
		<link>http://scseoer.com/soso-seo.html</link>
		<comments>http://scseoer.com/soso-seo.html#comments</comments>
		<pubDate>Sat, 19 Nov 2011 04:22:08 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[SEO指南]]></category>
		<category><![CDATA[soso]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=2297</guid>
		<description><![CDATA[SOSO发薪计划鼓励用户进行搜索，SOSO首页改版吸引更多用户搜搜，加上强大的用户基础，这让更多用户开始关注 SOSO并使用它来搜素自己关注的信息，作为搜索引擎优化爱好者，无疑对其搜索结排序更加关注，那么，对SOSO的SEO，我们应该做些什么，原因很简单，因为用户关注度高，就很有可能给我们的网站带来更多的有效流量（很多网站的SOSO关键词搜索流量来源已经开始提升）。下面是SOSO官方发布的一份通用SEO指南，适合与目前主流的谷歌与百度SEO，文章底部还有SOSO的网站地图格式与提交URL删除请求。 前言 搜索引擎优化，即SEO（Search Engine Optimization），指为了提升网站/网页在搜索引擎搜索结果中的收录数量和排序位置，为了从搜索引擎中获取更多免费流量、高质量用户，针对搜索引擎的检索特点、排序规律，合理调整优化网站设计和建设方法，使其符合搜索引擎的检索规则的网站建设、网站运营行为。除此之外，SEO工作还有利于搜索引擎快速收录新页面，提高收录覆盖率的效果。 SEO是网络营销的重要手段，通过了解搜索引擎工作原理和用户需求，在尊重搜索引擎用户价值的前提下，对网站进行合理优化，可以获取更多的用户、流量和品牌。SEO具有成本低、易操作、有益于用户体验等特点，是网站自我营销时必须重视的一个环节。 搜索引擎简介和SEO基础 搜索引擎及其用户价值 搜索引擎，是对互联网的数据信息进行收集、整理，并提供检索查询服务的系统。搜索引擎擅长理解用户搜索需求、对海量数据抓取、信息甄别和打分、快速查询等工作。 搜索引擎根据用户的检索查询要求，对数据信息进行打分排序，并按照顺序输出呈现，帮助用户方便、快速、准确、全面地找到所需信息，这是搜索引擎最重要的用户价值。 一切SEO工作，都应以遵循搜索引擎工作原理和用户价值为前提。 白帽SEO和黑帽SEO 白帽SEO，指通过合理优化网站，提升用户体验，与搜索引擎良好交互，真实反映网站质量和权威性的搜索引擎优化方法。 黑帽SEO，以搜索引擎禁止的方法影响搜索引擎排序(作弊)，与用户价值和搜索体验相背离，以短期利益为主要目标的搜索引擎优化方法。搜索引擎会维护互联网网站的公正排序，给用户提供正确合理的搜索结果，而黑帽SEO的做法与此相违背。 搜索引擎在不断通过技术革新、策略优化来识别作弊行为。任何利用搜索引擎的策略缺陷漏洞，利用恶意手段获取与网页质量不符的排名，引起用搜索结果质量和用户搜索体验下降的行为都可能被搜索引擎识别为作弊行为。对待作弊行为，轻则被搜索引擎剥夺作弊权重，重则可能整个网站被搜索引擎拒绝收录。 搜索引擎工作流程图 搜索引擎工作流程图 对外，面向用户和整个互联网内容；对内，分为抓取、索引、检索几个重要模块。 搜索引擎爬虫 搜索引擎的爬虫程序（也叫Spider、蜘蛛、爬虫机器人），是搜索引擎收集信息、数据的工具。爬虫程序不断发现和下载互联网网页，这个过程是互联网网页进入搜索引擎内部必须经历的一关。 爬虫程序擅长：分配下载资源，海量并发下载，读取文字（特别是网页文本），分析站点地图并依此指引抓取页面。相反爬虫程序不擅长：读取图片、flash、JS、Ajax、frame，深层次、持续性抓取，读取有权限控制的页面，发现孤岛页面。 针对爬虫程序的SEO工作应该根据其特点针对性进行。 搜索引擎爬行轨迹示意图 搜索结果排序 搜索引擎通过理解用户搜索词、对数据进行检索，可以得到诸多可能的搜索结果。对这些结果的排序要靠成百上千的相关性策略实现。 相关性排序的目的是将结果按照对用户价值的高低排列，整个排序过程会参考网站、页面的相关度、质量、时新性、权威性等诸多因素综合考察。 SEO工作很大一部分跟搜索引擎相关性策略有关，简单来讲即通过SEO来告诉搜索引擎：哪些页面更有价值，哪些页面跟搜索词更相关，而应该被排序到更靠前的位置。 网站建立 域名注册 域名是网站的重要品牌印象。域名注册时应选择简单、易记、方便输入、贴近网站名称、能反映网站内容的域名。如fanli.qq.com、www.paipai.com。 域名一旦选定，不应随意变更；同一网站拥有多个域名应确定主要域名，并设置其他域名向主要域名跳转（301重定向）。 服务部署和网站上线 网站需要部署上线才能被用户访问。租用/购买安全可靠、高速稳定的服务器部署网站，是用户访问体验的有效保障，同时会影响搜索引擎爬虫的爬取。网站部署上线并进行域名解析后，即面向用户开发访问，同时也意味着向搜索引擎爬虫开放。 让搜索引擎发现网站 新建立的网站是互联网中的孤岛，搜索引擎也很难发现和收录它。在网站建立之初，可以将网站推荐给搜索引擎或者引导爬取收录。 向搜索引擎提交网站域名或入口。如向SOSO的提交新网站，http://www.soso.com/help/usb/urlsubmit.shtml； 建立外链，如创建友情链接、向导航网站申请收录等； 网站建立之初可重点经营内容列表页，在不影响用户体验的前提下，方便搜索引擎爬虫一次发现更多链接。 内容建设 树型扁平网状结构 层级分明的树型扁平网状结构是较理想的网站部署结构，每个页面与其父子页面有链接关联，可以帮助用户快速定位到感兴趣的频道、正文，也有利于搜索引擎理解网站结构层次和更好的爬取内容。 扁平的树型网状结构 明确区分出，网站首页、列表页/索引页/频道页、内容页，根据各个页面所在层级用链接相连，无孤岛页面； 层级、各层级分支内容不要过多，便于搜索引擎爬虫爬取； 内容和质量相似的页面组织在同一层级/目录中，便于搜索引擎进行聚合挖掘； 越重要的内容，越应放置于高层级位置，或在高层级页面中有链接直接可达； 在页面中建立导航链接、面包屑，便于用户和爬虫理解网站结构和在不同层级内容间跳转； 站点中新的内容应该尽量在深度较浅的列表页或首页发布入口，便于被搜索引擎爬虫快速发现。 腾讯网新闻频道，头条新闻放置于醒目位置 页面标题 页面标题是页面内容的重要标识，准确简洁的标题有助于用户快速识别页面内容。页面标题会被搜索引擎展现在搜索结果列表中，是用户通过搜索进入网站页面的重要入口。 标题内容在页面代码中被&#60;title&#62;标签包围，会被展现在搜索结果页、浏览器标题、页面标签、任务栏等位置，是用户识别/区分页面的重要依据； 标题内容是页面的最佳概括，应当主题明确，突出重点，内容不宜过长； 每个页面都应该拥有标题内容，避免不写标题，或无意义标题（如“无标题文档”、“网站建设中”）； [...]]]></description>
		<wfw:commentRss>http://scseoer.com/soso-seo.html/feed</wfw:commentRss>
		<slash:comments>31</slash:comments>
		</item>
		<item>
		<title>HEAD头字段总结</title>
		<link>http://scseoer.com/head-ziduan.html</link>
		<comments>http://scseoer.com/head-ziduan.html#comments</comments>
		<pubDate>Wed, 02 Nov 2011 10:14:04 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[web服务器]]></category>
		<category><![CDATA[搜索引擎]]></category>
		<category><![CDATA[数据请求]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=2198</guid>
		<description><![CDATA[Http除了Get和Post方法外，还有Head方法，Head获取http头信息，其中的Content-Length就是文件的大小，而作为网页中的图片文件，百度图片搜索引擎蜘蛛程序常常以Head方法探测文件HEAD头信息（2011年10月网站日志数据，谷歌采用GET方式获取），例如： 2011-10-30 18:06:37 HEAD /wp-content/uploads/2011/07/baidu-caishenkezhan.jpg &#8211; 123.125.71.26 HTTP/1.1 Baiduspider-image+(+http://www.baidu.com/search/spider.htm) &#8211; 200 0 0 该图片的HEAD头返回信息如下： 返回状态码：200 网页返回HEAD信息如下 Date: Wed, 02 Nov 2011 12:27:25 GMT Server: Apache/2.2.15 (Unix) mod_ssl/2.2.15 OpenSSL/0.9.8n mod_fcgid/2.3.6 Last-Modified: Fri, 02 Sep 2011 00:32:02 GMT ETag: “22caecb-57cc-4abea7d6f8480&#8243; Accept-Ranges: bytes Content-Length: 22476 Cache-Control: max-age=2592000 Keep-Alive: timeout=5, max=100 Connection: Keep-Alive Content-Type: image/jpeg HEAD头字段注释 Date（发送请求时间） Server（WEB 服务器表明自己是什么软件及版本等信息） [...]]]></description>
		<wfw:commentRss>http://scseoer.com/head-ziduan.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>网站被黑 百度是如何对待的</title>
		<link>http://scseoer.com/wangzhan-beihei.html</link>
		<comments>http://scseoer.com/wangzhan-beihei.html#comments</comments>
		<pubDate>Sat, 27 Aug 2011 15:54:07 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[百度]]></category>
		<category><![CDATA[网站]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1918</guid>
		<description><![CDATA[什么是“网站被黑”？ 网站被黑，是指黑客利用网站的程序、设置等方面的安全漏洞或管理员安全疏忽（如密码复杂度低），未经管理员授权，对网站进行了篡改。 如何处理网站被黑？ 分析系统日志、服务器日志，检查自己站点的页面数量、流量等是否有异常波动，是否存在异常访问或操作日志； 检查网站文件是否有不正常的修改，尤其是首页等重点页面； 网站页面是否引用了未知站点的资源（图片、JS等），是否被放置了外站的异常链接； 检查网站是否有不正常增加的文件或目录； 检查网站目录中是否有非管理员打包的网站源码、未知txt文件等。 如何防止网站被黑？ 定期检查服务器日志等方式发现问题，检查是否有可疑的针对非前台页面的访问； 经常检查网站文件是否有不正常的修改或者增加； 关注操作系统，以及所使用程序的官方网站。及时下载补丁，修补安全漏洞；必要时建议直接更新至最新版本； 修改开源程序关键文件的默认文件名，作弊者通常通过程序自动扫描某些特定的文件是否存在来判断是否使用了某套程序； 修改默认管理员用户名，提高管理后台的密码强度，使用字母、数字以及特殊符号多种组合的密码； 关闭不必要的服务，以及端口； 关闭或者限制不必要的上传功能； 设置防火墙等安全措施； 若问题反复出现，建议重新安装服务器操作系统，并重新上传备份的网站文件； 缺乏专业维护人员的网站，建议向专业安全公司咨询. 快速发现并处理被黑内容，并做好被黑的预防，非常体现一个网站的运营水平。上述的几点仅仅是初步的参考。做好网站的安全需要站长、管理员们的不断努力。]]></description>
		<wfw:commentRss>http://scseoer.com/wangzhan-beihei.html/feed</wfw:commentRss>
		<slash:comments>50</slash:comments>
		</item>
		<item>
		<title>百度SEO指南 V2.0</title>
		<link>http://scseoer.com/baidu-seo-guide-2.html</link>
		<comments>http://scseoer.com/baidu-seo-guide-2.html#comments</comments>
		<pubDate>Sat, 27 Aug 2011 15:38:07 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[SEO指南]]></category>
		<category><![CDATA[百度]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1913</guid>
		<description><![CDATA[通过《百度SEO指南 V2.0》，互联网创业者将获得明确、正规的搜索引擎优化标准，合理、可持续提升网站流量，获得长久、稳定的发展，并促进行业的良性发展。 搜索引擎与SEO行为间是一种良性的共生关系，比如很多优质的网站是用Flash或者Ajax做的，搜索引擎就无法很好的爬取和索引。建站者在了解了SEO的一些基本原理后，可以通过对网站的合理优化，使这些优质资源更好的发挥其检索效果，改善用户的搜索体验。 同时，对于中国这样的新兴市场，传统的中小企业对于如何触网，如何做互联网营销，并无多少经验，在广大的互联网创业者中，对于如何SEO也充斥着矛盾的舆论和猜想。让更多人了解搜索引擎的工作机制，引导广泛合理的SEO行为，让认真做原创优质内容的创业者得到更多流量，令抄袭抓取别人内容的建站行为得到警惕，是百度作为中文搜索领域的领导者应有的责任和义务，只有这样才能有效支持互联网创新力量，使互联网生态圈得到更加健康有序的发展。 域名注册 域名是用户对网站的第一印象，能否让用户迅速记住域名对网站发展非常重要。建议注册域名时选择容易让用户记忆、容易产生信任感的域名，这样可以提高回头率，并方便用户推荐。域名尽量简短，越短的域名，用户的记忆成本就越低。 域名可以和网站主题或网站名称相呼应，让人看到域名就能联想到网站内容，比如使用公司名称、商标、网站名称或者公司产品等信息来选择域名。 使用何种形式的域名后缀对百度网页搜索没有影响，但域名后缀也需要考虑方便用户记忆。.com、.cn、.net等常见的域名后缀用户更容易记忆，一些不常见的后缀可能会让用户产生不信任感，增加用户的判断成本。 服务器、空间租用 服务器、空间的速度和稳定性直接影响网站的用户体验，也会影响搜索引擎的抓取。建议选择服务稳定、速度快的服务器或者空间。 选择有实力的正规空间商 服务器和空间的稳定性需要一定的技术实力来保障，一些没有实力的空间商，可能无力提供良好的服务，服务的稳定性无法保证。甚至有空间商为了节省资源，故意屏蔽掉Baiduspider的抓取，导致网站无法被百度网页搜索收录。 保证用户的访问速度和稳定性 根据网站规模和要提供的服务来决定选择购买何种空间（服务器） 通常空间都会有流量、连接数以及功能上的限制，因为是多个网站共用一台服务器，稳定性会受到影响，但价格便宜；服务器各种限制较少，可以更自主的管理，但价格较贵。可以根据自己的需求来进行合理的选择。 根据用户群分布选择接入商 由于互通问题的存在，选择接入商也很重要，如果用户群主要在联通，就尽量选择联通访问较好的接入商，如果用户群主要在电信，则选择电信访问较好的接入商。如果用户群在全国，那就选择一家互通处理的比较好的接入商。 购买之前，可以先找一两个空间商现有的客户网站，测试访问情况如何。 面向搜索引擎的网站建设 搜索引擎只是网站上一个普通的访客，对网站的抓取方式、对网站/网页的价值判断，也都是从用户的角度出发的，任何对用户体验的改进，都是对搜索引擎改进。对搜索引擎的优化，同时也会让用户受益。 面向搜索引擎的网站建设，主要分为三个部分：如何更好的让搜索引擎收录网站中的内容、如何在搜索引擎中获得良好的排名、如何让用户从众多的搜索结果中点击你的网站。简单来说，就是收录、排序、展现。下面我们将从这三个方面分别介绍。 良好收录 良好收录：机器可读 百度通过一个叫做Baiduspider的程序抓取互联网上的网页，经过处理后建入索引中。目前Baiduspider只能读懂文本内容，flash、图片等非文本内容暂时不能处理，放置在flash、图片中的文字，百度无法识别。 建议使用文字而不是flash、图片、Javascript等来显示重要的内容或链接，搜索引擎暂时无法识别Flash、图片、Javascript中的内容，这部分内容无法搜索到；仅在flash、Javascript中包含链接指向的网页，百度可能无法收录。 百度SEO指南建议： 使用文字而不是flash、图片、Javascript等来显示重要的内容或链接。 如果必须使用Flash制作网页，建议同时制作一个供搜索引擎收录的文字版，并在首页使用文本链接指向文字版。 Ajax等搜索引擎不能识别的技术，只用在需要用户交互的地方，不把希望搜索引擎“看”到的导航及正文内容放到Ajax中。 不使用frame和iframe框架结构，通过iframe显示的内容可能会被百度丢弃。 虽然网页上提供了很丰富的信息，但由于信息都在flash中，搜索引擎无法提取，对搜索引擎来讲，这个网页没有任何内容。 良好收录：网站结构 网站应该有清晰的结构和明晰的导航，这能帮助用户快速从你的网站中找到自己需要的内容，也可以帮助搜索引擎快速理解网站中每一个网页所处的结构层次。 网站结构建议采用树型结构，树型结构通常分为以下三个层次：首页——频道——文章页。象一棵大树一样，首先有一个树干（首页），然后再是树枝（频道），最后是树叶（普通内容页）。树型结构的扩展性更强，网站内容变多时，可以通过细分树枝（频道）来轻松应对。 理想的网站结构应该是更扁平一些，从首页到内容页的层次尽量少，这样搜索引擎处理起来，会更简单。 同时，网站也应该是一个网状结构，网站上每个网页都应该有指向上、下级网页以及相关内容的链接：首页有到频道页的链接，频道页有到首页和普通内容页的链接、普通内容页有到上级频道以及首页的链接、内容相关的网页间互相有链接。 网站中每一个网页，都应该是网站结构的一部分，都应该能通过其他网页链接到。 总结一下，合理的网站结构应该是一个扁平的树型网状结构。 百度SEO指南建议： 确保每个页面都可以通过至少一个文本链接到达。 重要的内容，应该能从首页或者网站结构中比较浅的层次访问到。 合理分类网站上的内容，不要过度细分。 网站应该有简明、清晰的导航，可以让用户快速找到自己需要的内容，同时也可以帮助搜索引擎更好的了解网站的结构。 为每个页面都加上导航栏，让用户可以方便的返回频道、网站首页，也可以让搜索引擎方便的定位网页在网结构中的层次。 内容较多的网站，建议使用面包屑式的导航，这更容易让用户理解当前所处的位置：网站首页 &#62; 频道 &#62; 当前浏览页面 导航中使用文字链接，不使用复杂的js或者flash使用图片做导航时，可以使用Alt注释，用Alt告诉搜索引擎所指向的网页内容是什么。 良好收录：子域名与目录的选择 选择使用子域名还是目录来合理的分配网站内容，对网站在搜索引擎中的表现会有较大的影响。 百度SEO指南建议： 1、在某个频道的内容没有丰富到可以当做一个独立站点存在之前，使用目录形式；等频道下积累了足够的内容，再转换成子域名的形式。 一个网页能否排到搜索结果的前面，“出身”很重要，如果出自一个站点权重较高的网站，那排到前面的可能性就越大，反之则越小。通常情况下主站点的权重是最高的，子站点会从主站点继承一部分权重，继承的多少，视子站点质量而定。 [...]]]></description>
		<wfw:commentRss>http://scseoer.com/baidu-seo-guide-2.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>向谷歌提交针对性抓取请求</title>
		<link>http://scseoer.com/google-submit-request-crawl.html</link>
		<comments>http://scseoer.com/google-submit-request-crawl.html#comments</comments>
		<pubDate>Mon, 15 Aug 2011 07:49:55 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[爬虫程序]]></category>
		<category><![CDATA[谷歌]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1834</guid>
		<description><![CDATA[谷歌网站站长工具中的“Googlebot 抓取方式”功能提供了一种向Google提交全新的URL以及更新URL的收录方法。如果我们利用此工具像Googlebot那样成功抓取了一个URL，那么，我们将会看到提交该URL到谷歌索引这一选项。当我们以这样的方式提交URL后，通常在一天之内，Googlebot就会抓取该URL。然后，谷歌会考虑是否将其列入到索引中。 谷歌网站管理员工具的这一新功能可在多种情况下为站长提供帮助：如果我们刚刚推出了一个新网站，或者增加了一些重要的新页面，您可以要求Googlebot立即查找并抓取它们，而不是等待谷歌爬虫去发现。 我们也可以提交已经收录过过，但有内容更新的URL，以刷新这些URL，比如说，如果我们更新了关于自己将在本周末举办的活动的某些关键内容，并希望能够确保谷歌及时看到这些更新，可以求助于 “Googlebot 抓取方式”。又或者，我们不小心发布了一些本无意发布的信息，在从网站上删除这些信息之后，也希望能对谷歌的缓存版本（网页快照）进行更新，在这时候，“ Googlebot 抓取方式”也可以提供帮助。 如何针对性向谷歌提交URL 登录谷歌网站管理员工具账户，点击账户下添加的网站进入“控制台”； 选择控制台下面的“故障诊断”-“像 Googlebot 一样抓取”； 在界面的文本框中输入要提交的URL，选择抓取方式（一般为网络） 如果成功抓取了该URL，那么，您将会在该被抓取的URL旁边，看到一个新的“提交到索引”的链接。 点击“提交至索引”，就会看见一个弹出窗口，让我们选择是否只提交一个URL，还是该URL及其所有链接页面。 只提交一个URL：如果您的网页是新网页或最近更新的网页，请选择该选项。Google 并不保证会将提交的所有网址都编入索引。 提交该URL和所有链接的网页：如果您已对自己的网站进行较大更改，请选择该选项。Google 会以该网址为基础，将您的网站内容编入索引。Google 并不保证将您网站上的所有网页都编入索引。 注意：提交单个URL的有限次数是50次/周；提交带有全部链接页面的URL时，有限次数是10次/月。这个剩余的提交次数可以在 “Googlebot 抓取方式”页面上看到。 不需要验证也可以添加URL到Google 如果要在谷歌网站管理员工具中管理自己的网站，一般验证这一过程是必须的，但谷歌最新更新了一部分工具，不需要验证一样向谷歌可以发送添加URL的请求（提交 URL 表单），该功能具有和”Googlebot 抓取方式”功能相同的向索引提交网页方面的配额限制，但不要求验证所涉及网站的所有权，因此，我们可以提交任何想要抓取和索引的URL。 在SEO方面，网页收录是基础工作且非常重要的，谷歌在这方面做的非常不错，但我们如果想加快某一URL的抓取或收录的速度，不妨考虑利用上面介绍的”Googlebot 抓取方式”功能来提交该URL。 来源：谷歌黑板报]]></description>
		<wfw:commentRss>http://scseoer.com/google-submit-request-crawl.html/feed</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>主题信息的一种搜集与处理模型及其应用</title>
		<link>http://scseoer.com/processing-model-application.html</link>
		<comments>http://scseoer.com/processing-model-application.html#comments</comments>
		<pubDate>Fri, 05 Aug 2011 09:20:15 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[实验]]></category>
		<category><![CDATA[搜索引擎]]></category>
		<category><![CDATA[搜集]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1753</guid>
		<description><![CDATA[人们现在普遍认为，自然科学各学科的研究都有三个支柱：理论、实验和模拟。例如我们有理论物理学，实验物理学，计算物理学。随着计算机应用的不断普及，这样的方法论也在向社会科学拓展，例如在经济学研究领域用计算机来模拟市场行为已经不是新鲜事了。我们这里要指出的是，计算机在社会科学领域的应用不仅仅是模拟，在更多的场合是拓展其实验的深度和广度。我们知道，社会科学的实验主要通过采样调查，统计分析来实现。有了计算机，这样的工作在范围和规模上就可以大大扩展。不仅如此，我们还看到，由于有了计算机，社会科学工作者还有可能设计全新的实验。这是和自然科学不同的。在那里，规模更大、精度更高的实验往往意味着更加昂贵的专门实验设备。 本节以新闻传媒领域为例，提出一个实验模型。该模型的基本精神是利用一个明确定义的信息搜集与分析的过程，来确定某个主题在网络媒体上不同层面表现的强度，相当于考察传播学中“议程设置”的情况。这里的要点是，没有非平凡的计算机技术的应用，这样的模型就不可能实现；而这个模型的程序实现，相当于为网络传播学的研究构建了一个强大的实验设备。 一、 模型设计 宏观上看，本节描述的模型是一个过程，它针对人们关心的热点主题，系统地对网上的信息进行搜集和分析，从不同的角度和层次得出互联网对该主题报道的强度。它包含如下几个步骤：样本空间的选取，主题特征的提取，设置目标参量，网页的搜集以及数据的后处理。下面分别说明这些步骤。 1、样本空间的选取 当我们要系统地研究一个主题在互联网上表现强度的时候，最理想、最彻底的办法是将网上的所有信息考察一遍。但这显然是不现实的。通常，我们只能取一个样板空间来研究。具体来说，样板空间就是网页总体集合的一个子集，对应于若干特定的网站中的若干特定的网页。这有两个因素需要考虑： 样板空间的选取要和主题宣传的设计受众相关。这里强调“设计受众”是因为我们关心的主题的表现强度只是针对它的设计受众才有意义。例如，若主题是“F4”，则要选取20岁左右的青年人喜欢上的网站；若主题是“创建世界一流大学”，则要选取大学师生和管理人员经常上的网站。 样本空间本身有“时间”和“空间”两方面的含义。所谓“时间”含义是指对一个主题的舆论强度研究常常要有一个时间区间，在时间上如何采样是需要斟酌的，每隔一小时、一天，还是一个星期；所谓“空间”含义是指不仅要考虑对哪些网站的选取，还可能要考虑对所选取的网站中哪些内容采样。 2、主题特征的提取 在本节模型中，主题的特征分为两个层次，各为一个词组的集合。第一个层次叫做主题词组，第二个层次叫做主题相关词组；按定义，后者总是包含前者。为提取主题特征，我们借鉴[Glover, et al.,2002]实验方法中的基于全文分类方法, 并根据中文信息的特点进行了简化和改进。 首先人工判断整理少量和主题相关的典型网页（训练集），然后对它们的内容进行串频统计。串频统计以任意相邻的2－15个字为一个串，统计它们在训练集中出现的频率。提取出现频率较高的串，删除其中的常用普通词和无意义的串后，把它们作为该主题的特征（这些串被称为特征串，下同），进而人工将它们分成上述两个层次。这样形成的两个集合，主题词组和主题相关词组，就构成了后面判断的基础：如果一个网页含有主题词组中任意一个词，则我们称它为主题网页，若一个网页含有主题相关词组中任意一个词，则我们称它为主题相关网页。 3、目标参量 作为模型的输出目标，我们对样本空间的网页从3个正交的维度，每个维度分两个层次进行考察。 第一维度：宏观统计，变化过程 不仅考虑整个时间区间内搜集到的主题网页的总量，还考虑每个时间片上的主题网页数量的变化情况。整个时间区间上的主题网页的总量宏观地表现了该主题在新闻媒体报道中的重视程度。而每个时间片上的主题网页数量的变化情况，又可以详细的刻画出该主题报道的孕育、产生、增长、高潮、渐退直至消亡整个过程。 第二维度：绝对数量，相对数量 不仅考虑主题网页的绝对数量，还考虑主题网页在同期内全部网页数量中所占的比例。绝对数量和相对数量为我们比较不同时期的不同主题的报道力度提供了两种视野。比较主题网页的绝对数量，我们可以得出谁是更强大的主题报道；而比较主题网页的相对数量，我们可以得出所关心主题在媒体报道中的突出程度，两种既有区别又有联系。 第三维度：总体信息，独立信息 不仅考虑总的聚合信息量，还考虑从时间、空间上消重后的独立信息量。所谓“消重”是针对网上内容存在极大的复制现象而言的。通过对我国网上信息的一次全面搜集，我们曾经发现网页的平均复制律达到。相同的一篇报道可能被转载在不同的网页中，这种信息复制无疑给互联网用户的信息获取提供了极大的方便，但相对单个用户来说，还存在能最多获取多少条不同信息的问题。我们对搜集来的网页进行内容消重，把所有内容相同的网页算作一篇独立信息的网页，得到独立信息的网页数量，从而可以看出对该主题报道的丰富性、综合性。 注意到这三个维度的正交性，我们得到如图13-3所示的立方体，即我们有8个方面的数据要产生。 图13-3 用于表达网上主题新闻强度指标的立方体 例如“宏观统计，绝对数量，总体信息”指的是在确定的时空样板空间中所有和主题相关网页的总量、平均值、标准差等；而“变化过程，相对数量，独立信息”则表示的是在时间轴上展开样板空间的内容，考察不重复计算的主题相关信息量和总体信息量之间的相对关系。 4、网页的搜集 网页搜集策略直接影响主题的研究结果，不同的搜集策略可能得出完全不同的研究结果。好的搜集策略应该与样本空间有很好的对应，满足样本空间的“时间”和“空间”两方面的需求。我们先讨论在搜集中可能会遇到的问题，并给出一个好的面向主题的搜集策略应该满足哪些条件。 在网页搜集过程中，我们经常会遇到如下问题： a.网页的流逝性 根据Junghoo Cho的实验结果[Cho and Garcia-Molina,2000]，对于热门站点10%以上的网页的生命周期不超过一个星期。而这些短暂的网页可能是对主题的及时报道，它们的消失对主题研究是一个损失。 b.普通的搜索引擎的周期太长 目前的搜索引擎大多采用广度搜集策略，定期对网页进行全面的搜集。而在两次搜集期间，可能会有一大批网页因为更新或删除而无法搜到。 c.搜集的网页重复度大 Web页面的平均生命周期为138天，最常见的生命周期为62天。按普通的搜索策略，如果把搜索周期缩短的话，则搜集的大多数网页都是与前一次搜集相同的网页。这种搜集的效率太低，开销太大。 鉴于此，我们认为，面向主题的高效率的搜集策略应该有以下特点： 搜集频率足够高，保证周期短暂的网页仍然能有很大的概率被搜集到。（满足样本空间“时间”性的需求） 搜集策略必须保证有较高的数量覆盖率和质量覆盖率。（满足样本空间“空间”性的需求） 搜集策略必须具有较好的技术特性，以保证搜集过程的有效。 例如，通常搜集是由多个进程长时间协同工作完成，如果在同一时间这些进程都集中到一个网站上，则可能造成阻塞和拒绝服务，从而使得搜集过程出现异常。 5、数据的后处理 a.消重算法 前面提到过，要得到独立信息量，必须对具有相同内容的网页进行消重。对于搜集到的网页，存在两种形式的内容重复。第一种是在同一次搜集的网页中，可能存在着相同内容的网页，它们的产生是由于同一篇报道在不同网站上的复制，对应不同的URL。这种复制是互联网常见的现象，我们把对这种情况的消重称作空间上消重。另一种是在多次搜集中产生的，有些网页可能在多次搜集中都没有变化（即last-modify-time没变），这样它就被搜集了多次，我们把对这种情况的消重称作时间上消重。 本模型采用第七章 第二节中的消重算法：对每一篇网页进行切词，然后统计词频，并按词频由高到低的顺序对词进行排序，把这个序列看作一个字符串，截取前2048个字节生成MD5（16个字节）作为网页的一个属性，认为具有相同的MD5属性的网页它们的网页内容是相同的。这样就可以根据MD5属性对网页进行消重。该算法具有98%的准确率 。 消重工作分为两步： 第一步是对每个时间片上搜集的网页进行消重（空间上消重），统计出每个时间片上的独立信息量； 第二步再将所有时间片上消重后的网页合并在一起再进行一次消重（时间上消重），统计出整个时间区间内的独立信息量。 b.残差数据的处理 经上述过程得到的数据，绝大多数都是令人满意的，但仍会有个别数据出现了反常，这主要有两方面的因素。第一个因素是非可预测的破坏因素，比如网络故障、机器故障等，它直接影响了该时间片上的搜集效果；第二个因素与搜集策略有关，如果搜集策略的稳定性不够好，就会在个别时间片上出现明显的异常。 [...]]]></description>
		<wfw:commentRss>http://scseoer.com/processing-model-application.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>主题信息的搜集</title>
		<link>http://scseoer.com/topic-information-gather.html</link>
		<comments>http://scseoer.com/topic-information-gather.html#comments</comments>
		<pubDate>Fri, 05 Aug 2011 09:06:08 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[主题]]></category>
		<category><![CDATA[信息]]></category>
		<category><![CDATA[抓取]]></category>
		<category><![CDATA[爬虫]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1749</guid>
		<description><![CDATA[综合性搜索引擎如同一个公共图书馆，它试图满足各类用户的查询需求，所搜集的网页内容广而泛；而由面向主题的搜集系统所建立的主题搜索引擎，则相当于一个专业图书馆，它只搜集与主题内容相关的页面。 目前，Web主题信息搜集的主要方法来源于S. Chakrabarti 于1999年构建的Foused Crawling系统，该系统采用基于样例网页驱动的主题信息的搜集方法，所搜集的主题信息由用户通过选定样例网页来确定，并基于如下的假设： 如果页面u 是一个与主题相关的页面（正例），u到页面v 有一个超链，则页面v是正例的概率远远大于在Web上随机抽取的一个页面。 一、 主题信息分布的局部性 为考察Web上主题信息分布的特征，Davison 从一个称为 DiscoWeb 的研究型搜索引擎的网页库中抽样获取了10万个页面[Davison,2000]，通过大量的反复试验，得到了不同情形下，两个页面之间的平均相关度。该试验利用向量空间模型中向量夹角的余弦值来度量两个页面之间的相似度，其中词条的权重用TF*IDF来计算。 设随机变量u和v表示Web上的两个页面，分别用如下统计量考察页面对之间相似性的平均值。 当u和v为Web上随机抽取的两个页面时，用Random表示他们之间相似度的均值；当u和v被同一个页面所链接，即：u和v具有相同的父节点页面时，用Sibling表示他们之间相似度的均值；当u为Web上随机抽取的一个页面，u是v父节点且u和v具有同一个主机（由主机名确定）时，用SameDomain表示他们之间相似度的均值；当u为Web上随机抽取的一个页面，u是v父节点,但u和v位于不同主机（由主机名确定）时，用DiffDomain表示他们之间相似度的均值。统计试验结果如图13-1所示。 图13-1 页面对的平均相关性 图13-1显示：SameDomain对具有较高的相似度，Sibling对次之，DiffDomain 略差，随机抽取的两个页面（Random）的相关度极低。由此亦可看到Web信息组织的局部化特征。从一个网页开始的随机冲浪，其主题迁移的可能性极大。 二、 一种主题信息搜集系统 Foused Crawling系统抓取网页的过程如下：首先由用户从某一开放的分类目录体系如Yahoo!中选取若干个子类节点作为主题信息，这些节点所包含的一些页面作为训练集，构造一个分类器（采用诸如第十一章的方法构造分类器）。当抓取到一个新的页面u时，首先提交到分类器进行相关度预测， 如果页面u是一个正例（页面与主题信息的相关度超过某一个阈值），则由u指向的超链放入工作池（work pool）作为待抓取的超链。否则u被剪枝，其所指向的超链亦不进一步抓取。 Foused Crawler 主要有三部分组成： 分类器（classifier），用于判定所抓取网页的相关性，进一步可确定是否对该网页所包含的超链进行扩展； 提取器（distiller），用于找到已抓取网页集的Hub，并确定待抓取URL的优先级； 抓取器（crawler），在分类器和提取器指导下、基于具有动态可配置的优先控制策略下抓取网页。 系统结构如图13-2所示。 基本抓取思想可表述为：整个Web 可以看作一个有向图G，确定一个层次分类目录体系C，如Yahoo!等，则每一个主题c∈C可以看作由G中一些样例页面构成，记这些样例页面的集合为D(c)。这些页面可以被系统进行预处理，用户的兴趣是C的一个子集C*，用于表示用户定义的主题信息。对任意一个网页q，q关于C*的相似度即为q与主题信息的相关程度，规定：父节点与主题信息的相关度定义为各子节点相关度之和。系统开始运行时，优先抓取D(C*)中的页面，之后按与D(C*)的距离及各页面相关度的大小次序进行抓取。系统的目标是抓取尽量多的相关网页，亦即追求R(V)/&#124;V&#124;的最大化，其中，V表示系统搜集到的网页集（显然，D(C*)是V的子集），R(V)表示V中与主题相关（大于某一阈值）的网页数量，或V中各网页的相关度之和。 图13-2 Foused Crawler的系统结构 上面的系统中，分类器的选择不是必须的；如Aggarwal等的Intelligent Crawling系统就是通过若干关键词来定义主题信息的[Aggarwal, et al.,2001]，但其效果在搜集页面达到相当规模后才能体现出来，且对主题关键字较敏感。用户也可以自己挑选若干样例网页作为主题信息的定义，但其效果往往低于从某一开放的分类目录体系中选择样例并构造分类器的结果，这主要在于几个词或页面不能较好的特征化一个主题信息，特别是负例的选择面太广。 马亮等设计了一个处理中文信息的主题信息搜集系统Irobot，该系统在对已搜集页面的主题相关度评价时综合考虑了页面的标题、段落标题(通常由特殊字体确定)、Anchor文本(所引用URL的说明文本)等对于页面评价具有较高价值的特征区域，并赋予了相对较高的权重系数，以此期望提高评价结果的准确性。对待搜集URL的相关性预测，考虑了一些启发因素如：一个URL父节点的主题相关度，URL所对应Anchor文本的主题相关度，URL的Sibling因素以及该URL所在Web位置的主题相关性密度等4个方面的因素，经加权计算后进行待搜集URL相关性预测，取得了较好的效果。]]></description>
		<wfw:commentRss>http://scseoer.com/topic-information-gather.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>面向主题的信息搜集与应用</title>
		<link>http://scseoer.com/application-topic-information-gather.html</link>
		<comments>http://scseoer.com/application-topic-information-gather.html#comments</comments>
		<pubDate>Fri, 05 Aug 2011 09:00:24 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[主题]]></category>
		<category><![CDATA[信息]]></category>
		<category><![CDATA[用户]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1747</guid>
		<description><![CDATA[Web信息分布的局部专题化是互联网信息所呈现的特征之一，伴随着面向主题信息获取的需求越来越多，用户希望主题信息获取能够做到领域信息搜集更完备、更新速度更快、并能够自动发现领域内的主要资源,进而研究主题信息的变化及其分布特征。由于主题信息一般只占整个Web很小的一部分，并且具有分散性，因此传统的基于宽度优先或深度优先的搜索策略在Web信息搜集的效率上难以达到期望要求。面向主题的信息搜集系统的主要任务是利用有限的网络带宽、存储容量和较少的时间，抓取尽可能多的主题网页。 本章第一节介绍面向主题的信息搜集方法，第二节介绍一种主题信息的搜集与处理模型。]]></description>
		<wfw:commentRss>http://scseoer.com/application-topic-information-gather.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>天网知名度系统</title>
		<link>http://scseoer.com/fame-system.html</link>
		<comments>http://scseoer.com/fame-system.html#comments</comments>
		<pubDate>Fri, 05 Aug 2011 08:58:12 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[搜索引擎]]></category>
		<category><![CDATA[用户]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1740</guid>
		<description><![CDATA[天网知名度系统是在“北大-IBM创新研究院”项目支持下研究开发的一个个性化信息检索系统。该系统是天网搜索引擎技术和先进的中文信息处理技术的结合。它针对特定的（命名）实体及其特性，建立起相关的信息资源模型，通过基于该模型的网页过滤和相关度评价，提供个性化检索和定制信息的主动推送服务。 天网知名度系统可以根据用户注册的实体信息，对搜集到的原始网页进行分析和整理，依用户指定的实体属性对每个网页内容进行相关度及正负面评价，把相关的网页进行汇集、排序，并把满足要求的网页以指定的方式加工、存储，向用户提供Web信息检索服务，或主动地以简报或邮件的形式定期向用户推送有关网页信息。 天网知名度系统结构 在天网知名度系统中，我们将用户关心的对象称为命名实体，如：个人、公司、机构等。对我们已经完成的一个实验系统（FAME）来说（主要针对个人），它要求用户将其要查询的实体信息分类注册，即使是其他用户已经注册的名命实体也要求再加以注册，系统将为每个用户登记专用的实体信息，形成个人信息库和实体信息库，以保证尽量满足每个用户的个性化检索需求。 实体信息的分类由系统根据实体的特性予以划分，如个人信息可划分为以下八类： 个人所在的领域（政府、科教、业界、影视等） 个人的名字，包括别名、笔名、艺名等，保证检索的完整性 个人所在的工作单位 个人的职业描述（主席、书记、教授、记者、演员等） 个人的兼职单位（可以有多个） 个人的社会形象 特征词（用户关心的特征描述） 个人的代表作（著作、作品名、产品名等） 我们认为以上信息基本涵盖了在社会上有一定知名度的个人的相关特征，系统将根据用户注册的这些信息去分析过滤每个网页，计算网页的相关度，如图12-3和图12-4所示。 图12-3 网页与实体相关度的建立 图12-4 个性化知名度示意图 天网知名度系统的系统结构如图12-5所示，该图的上半部分除了网页信息提取外，基本上是天网原有的系统功能模块。其中，网页搜集利用了天网的抓取功能模块，为天网知名度系统搜集中文的原始网页库Url.dat。原始网页库保存为一定结构（每个网页有固定格式的附加头信息，说明网页的地址、时间、格式等信息）的文本文件，每个网页顺序存放。原始网页经过净化预处理后输入中文分词和信息提取模块，该模块完成中文分词、词性标注、实体识别以及实体关系的提取功能，形成网页表示库，其中每个原始网页被表示成网址、网页长度（以词计）、网页文本词串、词串对应的词性标记串和HTML标记串、网页中提取的实体及其实体属性之间关系的各种信息列表（如：人名列表、单位机构名列表、人名与单位关系列表、人名与职务关系列表等），为进一步的网页评价做好准备。网页索引根据不含信息提取的分词模块所处理的结果并依据词频和位置等权重信息而进行，形成索引库。 图12-5的下半部分中，左边是用户注册信息的搜集模块。在此基础上，进行实体信息的分级概念扩展，提取用户实体信息补充词典，并形成实体信息库，为每个注册实体产生实体的描述模板（profile）。图的中间部分是网页评价模块，该模块依据网页表示库、实体信息库和实体描述模板，过滤出包含注册实体的网页，根据网页信息和实体属性为每个实体的相关网页进行相关度评价，得到网页评分文件，进一步得到网页评分库。图的右边部分是用户服务界面，用户通过该界面登录系统，提交所要查询的注册实体，系统通过检索网页评分库和网页索引库，反馈给用户按照相关度排序的网页地址和摘要的列表，用户对得到的检索结果可以给系统提交相关度评判意见，该信息将反馈给网页评价模块，用于改进今后对该实体的网页评价模型的参数；另外，用户还可以注册新的实体，从而增加实体信息库的内容；也可以提交指定的网页，交付系统给予即时评价。 图12-5 “天网知名度”系统结构 天网知名度系统网页与命名实体的相关度评价 对网页与命名实体的相关度进行评价，可以决定网页的检索相关排序。在网页相关度评价之前，天网知名度系统前期的处理工作有：对天网搜来的原始网页进行标记过滤，中文分词，同时进行实体名识别、实体名与实体特性关系的识别等，如在FAME实验系统中含有：人名识别、人名与单位（Employee_of）以及人名与职务（Post_of）等二元关系的识别，进而形成网页表示库。 网页对实体的相关度可以用一个32位整数表示，所有网页对注册实体的相关度评价结果存放在网页相关度评分库中。网页相关度评分库的结构是：网页编号（网页在索引库中的ID）、实体编号（实体在实体信息库中的ID）、该网页对该实体的相关度评分值。有了以上的准备工作，网页对实体的相关度评价流程如下： 针对网页表示库中的每一个网页： 检查其实体名列表，检索用户信息库，对其中已注册的实体名建立一个该网页对该实体名的相关度评分初值； 对检索出的注册实体列表，检查该网页中的二元关系和实体信息库，对符合匹配的关系为该网页的相关度评分增加一定分值，同时利用排除词表过滤掉重名的无关网页； 对网页分词中的有效词（对语义理解有效的大部分实词）分别检索实体信息库的各类信息，分不同情况为该网页对实体的相关度评分增加不同分值； 对网页分词中的有效词检查其HTML标记，分不同情况为该网页对实体的相关度评分增加不同分值； 根据网页长度（按词计算）、网页中的实体名个数等因素调整其相关度评分值； 形成网页相关度评分库。 基于上述思想开发的FAME实验系统，小规模实现了在75万中文简体网页的范围内提供近300个名人的网页搜索服务。网页相关度评价模块采用标准C++编码实现，在PIII700,内存512MB，SCSI 硬盘的Red Hat Linux 7.2系统下运行正常，对75万网页全部处理一遍需要约80分钟；另外，系统还实现了对个别网页单独的相关度评价功能，从而保证了系统的时新性。 该系统采用了基于内容的浅层分析技术，提取网页中人名、人的职业描述以及人所在的工作单位描述，对查询信息建立了合理的结构，大大增加了网页中有关人物分析的准确性。同时，不同的用户可以根据个人的关心焦点对同一个人注册不同的实体。 我们首先来看天网知名度系统与其它搜索引擎的横向比较结果。表12-2为部分实体在各主要检索系统中的搜索结果，其中只比较检索了前20条结果，数据x/y意为在前y 条结果中有x条与实体相关；在Fame一列显示的是对现有75万网页的检索结果，在Google、百度、天网下均有两列结果，分别显示将Fame的 [人名+单位+职业] 和 [人名+单位] 等信息作为关键词的查询结果（因为若把Fame的全部信息作为关键词，很多实体将无匹配网页），其中y&#60;20 的说明检索出的结果不足20条。 表12-2 天网知名度系统与其他检索系统的横向比较结果 表12-2中数据仅为网页与实体是否相关的结果比较，可以看出，Fame仅对75万网页检索的检索结果是不错的，与Google 的海量网页库检索结果基本相当，在有几项上还要好一点，并优于百度和天网的海量网页库检索结果；而Fame的优势在于网页与实体相关程度的排序。由于各检索系统检索出的网页集合有很多差别，目前尚未找到一个合理的定量比较方法。但从实际检索的结果看，Fame 的排序结果优于其他检索系统，政府、科教等类的排序效果尤其突出。 其次我们来看一下不同的相关度评价策略对天网知名度检索结果的纵向影响。我们可以利用的信息有网页的词频、HTML标记、用户注册的信息以及从网页中提取的二元关系，实验是将这些信息逐步加入我们的评价策略，观察它们检索结果的影响。表12-3给出了对若干个实体的六种（A-F）评价结果，具体为 A、纯文本(词频) B、A+结构化用户信息 C、A+HTML标记信息 D、A+二元关系 [...]]]></description>
		<wfw:commentRss>http://scseoer.com/fame-system.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>基于Web挖掘的个性化技术的发展</title>
		<link>http://scseoer.com/web-system-development.html</link>
		<comments>http://scseoer.com/web-system-development.html#comments</comments>
		<pubDate>Fri, 05 Aug 2011 08:44:15 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[发展]]></category>
		<category><![CDATA[技术]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1737</guid>
		<description><![CDATA[基于Web挖掘的个性化技术发展有如下趋势： 1、与人工智能技术的结合 个性化系统领域的许多问题最终都可归结到机器学习、知识发现等问题上。用户建模过程通常都应用到代理和多代理技术。因此人工智能技术与Web挖掘技术的结合将会促进Web个性化系统的飞速发展。 2、与交互式多媒体Web技术的结合 随着下一代互联网技术的飞速发展与应用，未来的Web将是多媒体的世界。Web个性化技术和Web多媒体系统结合出现了交互式个性化多媒体Web系统。支持海量多媒体数据流的内容挖掘将成为Web挖掘技术的基本功能之一。由于这种基于内容的交互式个性化多媒体Web系统更能满足用户需要，因此也将成为Web个性化系统的发展方向之一。 3、与数据库等技术的结合 Web挖掘技术的基础是数据挖掘。尽管Web数据由于自身的特性（如海量、半结构、超链信息等）使得Web挖掘面临着新的挑战，但是随着数据库技术，特别是数据挖掘技术的发展，Web挖掘技术也将得到快速的发展。当然，为解决诸如质量评价、性能以及隐私问题，基于Web挖掘的个性化技术在这些方面也将得到长足的发展。]]></description>
		<wfw:commentRss>http://scseoer.com/web-system-development.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>典型个性化Web服务系统的比较</title>
		<link>http://scseoer.com/web-service-system.html</link>
		<comments>http://scseoer.com/web-service-system.html#comments</comments>
		<pubDate>Fri, 05 Aug 2011 08:42:17 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[技术]]></category>
		<category><![CDATA[服务]]></category>
		<category><![CDATA[系统]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1734</guid>
		<description><![CDATA[目前已经出现了多个应用Web挖掘技术创建的个性化Web服务系统。这些系统应用的Web挖掘类型包括使用挖掘、内容挖掘和结构挖掘；收集数据的方式有三种：从客户端、代理或服务器方得到原始数据；最后提供的服务有两类：过滤服务和导航服务。表12-1根据这三个方面的不同，比较了基于Web挖掘的典型Web个性化系统。 表12-1 典型Web个性化系统的比较 尽管Web挖掘技术已经在Web个性化系统中得到了广泛的应用，但是还存在着以下几个方面的问题。 1、隐私问题 这是一个不可回避的问题。因为要想建立个性化Web系统就必须有用户的参与同时还要分析用户反馈的信息。这就可能涉及到用户的隐私。目前的Web个性化技术还不能很好的解决这个问题：即在实现个性化服务的同时又不侵犯用户的隐私。 2、性能问题 Web个性化系统都不同程度地扩展了传统的浏览器/服务器体系结构，Web信息经过相应处理后才返回客户端，就必然会延长响应时间。实时个性化系统对响应时间要求比较高，特别是采用中间代理方式的系统，如果中间处理过程费时过多或用户数量过大，系统性能将是一个不可忽视的问题。而且针对Web系统,无论是其用户量,还是系统维护的网页通常都是海量的,目前的Web挖掘算法在处理这些数据时通常都采用离线方式，因此对于要求在线实时处理的情况还不能很好地解决。 3、质量评价问题 应用Web挖掘技术实现Web个性化服务，不同系统采用不同的Web挖掘技术，如何评价它们的建模效果以及系统最终的服务质量也是一个非常重要的问题。目前对个性化系统服务质量的评价，不同系统采用不同的方式和测试数据，因此，还没有一个通用的标准来客观评价多个不同个性化系统服务质量的优劣。需要研究一种通用的性能指标并开发相应的Benchmark来评价各种不同的Web挖掘技术。]]></description>
		<wfw:commentRss>http://scseoer.com/web-service-system.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Web挖掘技术</title>
		<link>http://scseoer.com/web-mining-technology.html</link>
		<comments>http://scseoer.com/web-mining-technology.html#comments</comments>
		<pubDate>Fri, 05 Aug 2011 08:39:11 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[内容]]></category>
		<category><![CDATA[结构]]></category>
		<category><![CDATA[网页]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1731</guid>
		<description><![CDATA[Web挖掘技术是实现Web个性化服务的核心技术之一。Web挖掘的一般过程可以分成三个阶段： 预处理：需要对收集的数据进行必要的预处理，如清除“脏”数据。 模式发现：应用不同的Web挖掘算法发现用户访问模式。 模式分析：从发现的模式集合中选择有意义的模式。 Web挖掘通常可以分成三大类，如图12-2所示。 图12-2 Web挖掘的分类 Web内容挖掘是从Web资源中发现信息或知识的过程。在创建个性化服务系统时，人们通常应用Web内容挖掘对网页内容进行分析，其中网页的自动分类技术在搜索引擎、数字化图书馆等领域得到了广泛的应用。根据实现方法的不同可以分成基于代理的方法和数据库方法。Web内容挖掘由于直接处理数据对象的内容，因此得到的结果一般比较精确，在个性化系统中得到较广泛的应用。 Web使用挖掘技术通常可以应用到两个领域: 当用来分析Web服务器的访问日志时，可以利用挖掘得到的服务模型来设计适应性Web站点；当应用到单个用户时，通过分析用户的访问历史来发现有用的用户访问模式。Web使用挖掘由于处理数据对象通常为用户的访问历史或服务器的访问日志，无法得知数据对象代表的内容，因此得到的结果一般比较粗糙，但是由于该方法比较成熟而且实现起来也较内容挖掘简单，在个性化系统中也得到了较广泛的应用。Web使用挖掘的基本方法包括：聚类、关联规则、序列模式、分类、依赖性建模、统计分析等。 Web结构包括页面内部的结构以及页面之间的结构。挖掘Web结构信息对于导航用户浏览行为、 改进站点设计、 评价页面的重要性等都非常重要。PageRank算法和HITS算法利用Web页面间的超链接信息计算“权威型”（Authorities）网页和“目录型”（Hubs）网页的权值。Web结构挖掘通常需要整个Web的全局数据，因此在个性化搜索引擎或主题搜索引擎研究领域得到了广泛的应用。]]></description>
		<wfw:commentRss>http://scseoer.com/web-mining-technology.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>基于Web挖掘的个性化技术</title>
		<link>http://scseoer.com/web-mining.html</link>
		<comments>http://scseoer.com/web-mining.html#comments</comments>
		<pubDate>Fri, 05 Aug 2011 08:33:45 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[服务]]></category>
		<category><![CDATA[用户]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1728</guid>
		<description><![CDATA[所谓Web个性化，实质上就是一种以用户需求为中心的Web服务。如图12-1所示。首先，不同Web用户通过各种途径访问Web资源，如图12-1中箭头a所示。其次，系统学习用户的特性，创建用户访问模型，如图12-1中箭头b所示。最后，系统根据得到的知识调整服务内容，以适应不同用户的个性化需求，如图12-1中箭头c所示。因此创建Web个性化服务系统的一般步骤为： 收集用户的各种信息，如注册信息，访问历史等； 分析用户数据，创建符合用户特性的访问模式； 结合用户特性，向用户提供符合其特殊需求的个性化服务。 用户对系统提供的服务做出反馈信息，系统根据反馈信息调整服务。通过用户与系统之间循环往复的交互，系统最终能够为用户提供个性化服务。从上面的分析可以看出，通过分析用户的各种信息建立用户访问模式是建立个性化服务系统的关键。因为只有首先客观地描述了用户的需求，然后才能根据这些特性向用户提供个性化服务。 图12-1 Web个性化的实质]]></description>
		<wfw:commentRss>http://scseoer.com/web-mining.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>搜索引擎个性化查询服务</title>
		<link>http://scseoer.com/search-engine-personalized-service.html</link>
		<comments>http://scseoer.com/search-engine-personalized-service.html#comments</comments>
		<pubDate>Fri, 05 Aug 2011 08:31:29 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[搜索引擎]]></category>
		<category><![CDATA[查询]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1726</guid>
		<description><![CDATA[一般的搜索引擎是基于关键词匹配的方式进行检索的，由于这种方法缺乏对关键词语义的理解，检索结果对用户而言不够理想。主要表现在两个方面： 检索结果中无关的网页过多。在所有检索结果中经常是大多数结果与用户的需求无关。尽管某些网页含有检索关键词，实际上同用户的本意无关，但是也被返回给用户了。 没有考虑不同用户的个性差异。 目前，所有用户如果输入相同的查询条件，搜索引擎就会返回相同的结果，尽管这些用户的需求各不相同。事实上，不同的用户由于受教育水平、工作环境等因素的不同而具有鲜明的个性，希望搜索引擎能够提供个性化服务，使得查询结果符合用户的个性需求。因此，如何提高搜索引擎检索结果的精度并向用户提供个性化服务已成为搜索引擎技术的一个新的发展方向和研究热点。 本章第一节讨论基于Web挖掘的个性化服务技术，第二节介绍我们研究开发的一个网上针对某一对象类的信息进行个性化查询服务的系统——天网知名度系统。]]></description>
		<wfw:commentRss>http://scseoer.com/search-engine-personalized-service.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>截尾算法</title>
		<link>http://scseoer.com/truncation-algorithm.html</link>
		<comments>http://scseoer.com/truncation-algorithm.html#comments</comments>
		<pubDate>Fri, 05 Aug 2011 08:27:57 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[分类]]></category>
		<category><![CDATA[算法]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1722</guid>
		<description><![CDATA[对于一篇待分类文档，应用m元分类算法通常得到多个类别。一般情况下都要求从这些候选类别中选择部分类别为该文档的最终分类结果。这个过程使用的方法通常被称为阈值策略。下面简单介绍三个比较常见的阈值策略。 1、位置截尾法（rank-based thresholding，记为RCut） 假设分类系统预先定义的类别数为m。整数k大于1并且小于m。对于每一个待分类的文档D，分类系统都返回一个长为m的候选类列表，取候选类列表的前k项（按类和文档的相似度排序），这篇文档就被认为属于这k个类。这种阈值策略就被称为位置截尾法。RCut方法的优点是实现非常简单，能够胜任在线分类工作。但它存在严重的缺陷：假设待分类的文档数目为n，候选类列表的每个位置都对应m个候选类。即使k变化1，每篇文档的类关系都要发生变化。因此，无法平滑地调整分类系统的性能。我们称RCut算法是以文档为中心的。 2、比例截尾法（proportion-based thresholding，记为PCut） 假设待分类的文档数目为n，预先定义的类别数为m。Pi表示训练集中属于类i的文档所占的比例。系统首先计算出每篇待分类文档的候选类列表，然后生成每个类的候选文档列表（按类和文档的相似度排序）。对于类i，取这个类的候选文档列表中的前n*Pi*x篇文档属于这个类，其他的文档则不属于这个类。其中x是经验比例因子（为一实数），通过改变它的大小，可以平滑地调整系统的性能。PCut算法的基本思想是控制分入各个类的文档数，使它们保持训练集中各个类文档数的比例关系。这种算法最大的问题是过分依赖于这种比例关系，而没有考虑类和文档的相似度以及类在候选类列表中的位置。可以看到，PCut算法是以类别为中心的。同RCut算法相比，PCut算法的系统性能比较平滑，但是不适用于在线分类。 3、最优截尾法（score-based local optimization thresholding，记为SCut） 同PCut算法一样，Scut算法也是以类别为中心。假设待分类的文档数目为n，预先定义的类别数为m。系统首先计算出每篇待分类文档的候选类列表，然后生成每个类的候选文档列表（按类和文档的相似度排序）。对于候选类列表里的每一个类，如果这篇文档和这个类的相似度大于这个类的最优截尾相似度，那么这篇文档就属于这个类。否则，这篇文档就不属于这个类，其中，每个类的最优截尾相似度是这样预先取得的：将训练集分成两部分，其中一部分仍然作为训练集，另一部分作为测试集，对每一个类，评价分类系统在这个测试集下对于这个类的分类性能，调整截尾相似度，使得系统的性能达到最优，此时截尾相似度的值就是这个类的最优截尾相似度。SCut算法性能比较优异，但是不能很好地处理那些稀有类别（就是比较少见的类别）。 表11-5 RCut和SCut截尾算法的比较 文献[Yang,2001]比较研究了上述三种阈值策略，结果发现SCut算法效果明显优于PCut和RCut算法。由于本文使用的训练样本分布比较均匀，每个类平均有17个训练网页，对于这种基本按比例分布的样本集，PCut方法就没有什么作用了,因此，我们比较研究了RCut和SCut方法,总体分类结果如表11-5所示。 从表11-5可以看出，SCut方法比RCut方法在分类质量上要好，而分类效率却要差些，但是两者的差别不是十分明显。这里，RCut方法的分类质量同基本kNN方法的分类质量完全一样，因为通过实验测试发现，当R=1时，分类器的分类质量最好，RCut的这种取大的一个文档类别的计算方法同普通kNN的计算方法一样。所以，两者的分类结果是一样的。具体达到12个大类，两者分类结果的比较见图11-15所示，从中可以看出，SCut比RCut方法的效果要好一些。 图11-15 RCut和SCut截尾算法的比较]]></description>
		<wfw:commentRss>http://scseoer.com/truncation-algorithm.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>网页自动分类算法</title>
		<link>http://scseoer.com/automatic-webpage-classification-algorithm.html</link>
		<comments>http://scseoer.com/automatic-webpage-classification-algorithm.html#comments</comments>
		<pubDate>Fri, 05 Aug 2011 08:23:55 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[分类]]></category>
		<category><![CDATA[算法]]></category>
		<category><![CDATA[网页]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1708</guid>
		<description><![CDATA[在本章第二节，我们有了一个关于各种文档自动分类算法的概貌。下面对几个比较典型的分类算法进行具体的介绍，并给出了 kNN与NB算法的分类质量与效率的实验结果比较。 一、典型分类算法 1、kNN分类算法 kNN分类算法是一种传统的基于统计的模式识别方法。算法思想很简单：对于一篇待分类文档，系统在训练集中找到k个最相近的邻居，使用这k个邻居的类别为该文档的候选类别。该文档与k个邻居之间的相似度按类别分别求和，减去一个预先得到的截尾阈值，就得到该文档的类别测度。用kNN也表示所选k个最相近文档的集合，公式（11-9）刻画了上述思想。 其中，x为一篇待分类网页的向量表示；di为训练集中的一篇实例网页的向量表示；cj为一类别；y(di,cj)∈{0,1}（当d属于cj时取1；当d不属于cj时取0）；bj为预先计算得到的cj的最优截尾阈值；sim(x,di)为待分类网页与网页实例之间的相似度，由文档间的余弦相似度公式（11-10）计算得到： kNN算法本身简单有效，它是一种lazy-learning算法，分类器不需要使用训练集进行训练，训练时间复杂度为0。kNN分类的计算复杂度和训练集中的文档数目成正比，也就是说，如果训练集中文档总数为n，那么kNN的分类时间复杂度为O(n)。 2、NB（Naïve Bayes）算法 NB算法是基于贝叶斯全概率公式的一种分类算法。贝叶斯全概率公式的定义如公式(11-11)所示。 给定一个类c以及文档d(a1，a2，…，an)，其中ai表示文档d中出现的第i个特征项的权值，n为文档中出现的特征项的总数。根据全概率公式，可以得到公式(11-12)： 其中，P(c&#124;d)表示文档d属于类别c的概率；P(c)表示待分类的文档所处的领域中文档属于这个类的概率，在具体的计算时，可以分别用训练集中属于这个类的文档所占的比例代替。P(ai&#124;c)表示在类别c中特征项ai出现的概率，可以近似地用训练集中包含有该特征项的类别c中的文档个数与训练集中类别为c的文档总数的比值表示。 由此可以看出，NB算法假设文档之间的特征项都是相互独立的。但是，这一假设对语义丰富的语言文字信息往往过于简单，这也在一定程度上限制了算法的性能。 NB算法需要使用训练集对分类器进行训练，也就是需要分别计算每个P(ai&#124;c)。假设训练集共有m个类别，n个特征项，待分类文档共有k个特征项，那么训练的时间复杂度为O(m*n)。分类的时间复杂度为O(k)。 3、决策树（Decision Tree，Dtree）算法 决策树算法通过对训练数据的学习，总结出一般化的规则，然后再利用这些规则解决问题。用决策树进行文档分类的基本思路是这样的：先用训练集为预先定义的每一个类构造一棵决策树，构造方法如下： 以训练集作为树的根结点，它表示所有的训练文档，将它标记为“未被检测”； 找到一个标记为“未被检测”的叶结点，如果它表示的所有文档都属于这个类，或者都不属于这个类，将这个叶结点的标记改为“已被检测”，然后直接跳到第三步；否则，挑选当前最能区分这个结点表示的文档集中属于这个类的文档和不属于这个类的文档的特征项作为这个结点的属性值，然后以这个结点为父结点，增添两个新的叶结点，都标记为“未被检测”，父结点表示的训练文档集中含有这个特征项的所有文档用左子结点表示，所有不含有这个特征项的文档用右子结点表示； 重复第二步操作，直到所有的叶结点都被检测过。 对每棵决策树，从它的根结点开始，判断结点的属性值（特征项）是否在待分类的文档中出现，如果出现，则沿着左子树向下走；否则沿着右子树向下，再继续判断当前结点的属性值是否在待分类的文档中出现，直到到达决策树的某个叶结点，如果这个叶结点表示的训练文档都属于这个类，则判定这篇待分类的文档也属于这个类；反之亦然。 4、Rocchio算法 其基本思想是使用训练集为每个类构造一个原型向量，构造方法如下：给定一个类，训练集中所有属于这个类的文档对应向量的分量用正数表示，所有不属于这个类的文档对应向量的分量用负数表示，然后把所有的向量加起来，得到的和向量就是这个类的原型向量，定义两个向量的相似度为这两个向量夹角的余弦，逐一计算训练集中所有文档和原型向量的相似度，然后按一定的算法从中挑选某个相似度作为界。给定一篇文档，如果这篇文档与原型向量的相似度比界大，则这篇文档属于这个类，否则这篇文档就不属于这个类。Rocchio算法的突出优点是容易实现，计算（训练和分类）特别简单，它通常用来实现衡量分类系统性能的基准系统，而实用的分类系统很少采用这种算法解决具体的分类问题。 二、kNN与NB算法比较 文献[Yang and Liu,1999]比较研究了支持向量机（SVM）、kNN、NB、Linear Least Squares Fits（LLSF）、和Neural Network（NNet）算法。研究结果表明，当训练集中每个类的正面实例比较少(少于10个)的情况下，SVM、kNN、LLSF的性能明显优于NNet和NB算法。这里，我们将比较研究kNN和NB算法。 表11-2 kNN和NB算法的分类质量和分类效率比较 从表11-2可以看出，kNN的质量明显优于NB算法，但是，NB算法的分类效率要比kNN方法略高。kNN和NB分类算法对12个不同类别的分类情况见图11-10所示。 图11-10 kNN与NB分类结果的比较 从图11-10可以看出，kNN分类算法明显优于NB算法，对于所有类别，kNN的分类结果都优于NB。从图11-10还可以看出，即使是同一个算法对于不同类别的文档，其分类能力也是各有差异的。在“医疗与健康”领域，kNN的Macro-F1达到最高值；在“新闻与媒体”领域，kNN的分类Macro-F1达到最低值。对于“医疗与健康”领域，NB的Macro-F1达到最高值；在“计算机与因特网”领域，NB的Macro-F1达到最低值。从总体而言，NB算法对不同类别比较敏感, 是一种不稳定的分类算法。kNN的分类质量受领域的影响不大。 图11-11 k的取值对分类器质量的影响（Marco-F1） 图11-12 k的取值对分类器质量的影响（Micro-F1） 针对kNN分类算法，我们分析了3种因素对分类质量的影响： k的取值； 衡量两篇文档之间相似度的方法：兰式距离法（Canberra metric）与欧式距离法（Euclidean distance）；分类目录中类别之间的层次关系。下面首先介绍k的取值对分类质量的影响。 1、k的取值 在前文的实验中，我们一直取k=20，但这不一定是k的最好取值。因此，这里我们将通过具体实验来验证k的取值对分类质量的影响。 从图11-11和图11-12可以看出，当k=15时，分类器具有最佳的分类质量，随后，随着k值的增加，分类器分类质量有所下降，最后平稳下来。 2、相似度的度量 为了计算两个文档之间的相似度可以有多种距离函数，其中欧式距离和兰式距离在实际的分类系统中用的较多，通常使用的两个向量之间夹角的余弦就是兰式距离的一种。 表11-3 欧式距离与兰式距离的比较 从表11-3可以看出，无论是分类质量，还是分类效率，应用兰式距离法来度量两个文档之间的相似度的分类效果明显优于欧式距离法。兰式距离法与欧式距离法对12个不同类别的分类情况如图11-13所示。 [...]]]></description>
		<wfw:commentRss>http://scseoer.com/automatic-webpage-classification-algorithm.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>文本分类特征选取</title>
		<link>http://scseoer.com/text-classification-feature-selection.html</link>
		<comments>http://scseoer.com/text-classification-feature-selection.html#comments</comments>
		<pubDate>Fri, 05 Aug 2011 07:56:49 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[分类]]></category>
		<category><![CDATA[性能]]></category>
		<category><![CDATA[质量]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1697</guid>
		<description><![CDATA[实现文本自动分类的基本困难之一是特征项空间的维数过高。所谓“特征项”在中文文本中主要指分词处理后得到的词汇，而特征项的维数则对应不同词汇的个数。数量过大的特征项一方面导致分类算法的代价过高，另一方面导致无法准确地提取文档的类别信息，造成分类效果不佳。因此，需要在不牺牲分类质量的前提下尽可能地降低特征项空间的维数。“特征选取”的任务就是要将信息量小，“不重要”的词汇从特征项空间中删除，从而减少特征项的个数，它是文本自动分类系统中的一个关键步骤。 为便于后面的描述，这里简要给出特征选取的一般过程。给定训练文档集合D = {d1,…,dn}，设T={t1,t2,…,tm}为对D中的文档做分词后得到的词汇全集，用[m]表示集合{1,2,…,m}。所谓“特征选取”可以看成是确定从TERMS到[m]的一个1-1映射，即 然后根据计算开销的考虑，取一个i∈[m]，认为T中那些函数值不小于i的词汇为“选取的特征项”，记做Ts。 在完成了特征选取后，分类就是基于Ts，即以其中的元素为基础，用一个向量来表达每一个文档。分类的过程就是按照某种算法来比较待分类文档的表示向量和训练集文档的表示向量，取最相近者所处的类为待分类文档的类。 [Yang and Pedersen,1997]研究了多种特征选取方法，如：文档频率（Document Frequency，DF）、信息增益（Information Gain，IG）、互信息（Mutual Information，MI）、开方检验（ test，CHI）、术语强度（Term Strength，TS）等。针对英文纯文本χ2比较研究了上述五种经典特征选取方法的优劣。 实验结果表明：CHI和IG 方法的效果最佳；DF 方法的性能同IG 和CHI 的性能大体相当，而且DF方法还具有实现简单、算法复杂度低等优点；TS方法性能一般；MI方法的性能最差。针对中文网页，其结论是否还正确，目前还没有很明确的结论。因此，本节使用同一个中文网页数据集评测了DF、IG、MI以及CHI等四种常见的特征选取方法。下面对这些典型的特征选取算法做一下简单地介绍： 1、文档频率 DF表示在训练集中包含某个特征项t的文档数。这种衡量特征项重要程度的方法基于这样一个假设：DF较小的特征项对分类结果的影响较小。这种方法优先取DF较大的特征项，而DF较小的特征项将被剔除。即特征项按照DF值排序。这里，为物理意义清楚起见，我们并没有象本节开始那样严格的从TERMS到[m]的映射，但显然这是没有困难的，不赘述（后同）。不过我们注意到，这种策略不符合被广泛接受的信息检索理论：高频词没有低频词对文档特征贡献大。DF是最简单的特征项选取方法，而且该方法的计算复杂度低，能够胜任大规模的分类任务。 2、信息增益 IG通过统计某个特征项在一篇文档中出现或不出现的次数来预测文档的类别。IG的计算公式如公式(11-4)所示。 其中：pr(ci)表示一篇文档属于类别ci的概率；pr(t)表示特征项t在一篇文档内出现的概率；表示特征项t不在一篇文档内出现的概率；Pr(ci│t)表示特征项t在属于类别ci的文档内出现的概率；表示特征项t不在ci属于类别的文档内出现的概率。m是文档类别数。G(t)值大则被选取的可能性大，即特征项按照G值排序。 3、 互信息 MI使用公式（11-5）计算某个特征项和类别之间的相关性。 其中：A为和c同时出现的次数；tB为出现而没有出现的次数；C为c出现而没有出现的次数。N为所有文档数。如果t和c不相关，则值I(t,c)为0。如果有m个类，于是对于每个t会有m个值，取它们的平均，就可得到特征选取所需的一个线性序。大的I平均值的特征被选取的可能性大。 4、CHI 使用MI衡量特征项的重要程度时，只考虑到了正相关对特征项重要程度的影响。如果特征项t和c类别反相关，就说明含有特征项t的文档不属于c的概率要大一些，这对于判断一篇文档是否不属于类别c也是很有指导意义的。为克服这个缺陷，CHI使用公式（11-8）计算特征项t和c类别的相关性。 其中：A为和c同时出现的次数；B为t出现而c没有出现的次数。C为c出现而t没有出现的次数；D为t和c同时没有出现的次数。N为训练集中的文档数。与MI类似，如果t和c不相关，则χ2(t,c)值为0。同MI相同，如果有m个类，每个t就会有m个值，取它们的平均，就可得到特征选取所需的一个线性序。大的χ2平均值的特征被选取的可能性大。 图11-8 CHI、IG、DF、MI的比较（Macro-F1） 为了观察特征项的个数对分类器性能的影响，我们分别使用CHI、IG、DF、MI特征选取算法挑选出不同个数的特征项。图11-8和图11-9分别表示当取不同百分比的特征项时，分类器宏观F1和微观F1的变化。这里需要说明的是，最右边的45%表示的所有特征项都被保留下来，而不是仅保留前45%个特征项。 从图11-8可以看出，CHI方法最优，在取前15%的特征项时，分类器的质量就稳定下来了；使用DF方法时，分类器的宏观F1波动最小，可以过滤掉80%的特征项；MI方法和IG方法都在取前25%的特征项时，分类器的质量才稳定下来了。 图11-9 CHI、IG、DF、MI的比较（Micro-F1） 从图11-9可以看出，IG方法最优，在取前15%的特征项时，分类器的质量就稳定下来了；使用DF方法时，分类器的宏观F1波动最小，可以过滤掉80%的特征项；MI方法最差，在取前25%的特征项时，分类器的质量才稳定下来了。 综合图11-8和图11-9，可以看出，CHI、IG和DF的性能明显优于MI；CHI、IG和DF的性能大体相当，都能够过滤掉80%以上的特征项；DF具有算法简单、质量高的优点，可以用来代替CHI和IG，但是同被广泛接受的信息检索理论有些矛盾。我们这里得到的结论，同文献[Yang and Pedersen,1997]使用普通英文文本评测结果基本一致。]]></description>
		<wfw:commentRss>http://scseoer.com/text-classification-feature-selection.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>网页分类器训练样本</title>
		<link>http://scseoer.com/webpage-classifier-experiment-set-2.html</link>
		<comments>http://scseoer.com/webpage-classifier-experiment-set-2.html#comments</comments>
		<pubDate>Fri, 05 Aug 2011 07:26:38 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[分类]]></category>
		<category><![CDATA[搜集]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1690</guid>
		<description><![CDATA[为了推进信息检索领域的发展，由美国国家标准和技术研究院（NIST）、信息技术实验室（ITL）检索小组、美国国-防-部高级研究计划署（DARPA）信息技术处、高级研究开发机构（ARDA）等单位共同发起了有全球影响的信息检索会议TREC，自1992年起每年一次；TREC会议实际上是文本信息检索系统的擂台赛，可以说，在TREC上展示的文本分类系统代表了文本分类领域的最新研究成果。一些大学，如CMU、BERKLEY、CORNELL等和一些公司带着自己开发的文本分类系统参加会议，由大会使用相同的训练集和测试集对这些系统进行评测。 中国科学院计算所、清华大学、复旦大学等单位近几年也有派队参加，并取得了不错的成绩。同时我们注意到，由于Web技术的发展，TREC也逐步开始提供标准的英文网页语料来评测Web信息检索系统。 表11-1 样本集中类别及实例数量的分布情况表 与面向英文的分类系统相比，中文分类系统的起步比较晚。从第五次TREC会议开始，增加了对中文分类系统的评测。实际上参加TREC-5的中文分类系统处理的重点还停留在中文的分词问题上，而且处理的对象还是新华社的新闻稿这类普通的中文文本。基于案例的有指导的机器学习方法是实现中文网页自动分类的理论基础。 因此，中文网页训练集是实现中文网页自动分类的前提条件。但是，到目前为止，还没有出现标准的中文网页语料库，因此也没有出现针对中文网页分类系统的评测。为了解决这一问题，我们通过动员不同专业的几十个学生，人工选取形成了一个基于层次模型的大规模中文网页样本集1。它包括12,336个训练网页实例和3,269个测试网页实例，分布在733个类别中，每个类别平均有17个训练实例和4.5个测试实例。样本集中类别及实例数量的分布情况如表11-1所示。 此外，为了搜集网页的方便，我们开发了一个网页实例集的搜集和整理的工具WebSmart，如图11-4所示。经过实际应用的检验，表明该工具操作方便，使用它可以非常方便地实现网页实例集的搜集和整理。 图11-4 WebSmart —一个网页实例集搜集和整理工具 下面简要地介绍上述中文网页样本集的分类体系。长期以来，国内外已存在一些可以借鉴的信息内容分类标准，通过比较分析它们的特点和对中文网页这一新型分类对象的适应性，提出了我们的分类体系。 国外具有代表性的分类标准有：《杜威十进分类法》、《美国科研系统常用分类法》、《联合国教科文组织大学学科分类法》等。由于文化背景、思维习惯等方面的不同，这些标准不能完全适应中文文献的分类。例如，分类名称和涵义存在着差异，国内多数分类法把人文科学包含在社会科学（哲学社会科学）领域内，而国外通常将社会科学和人文科学加以区别。 国内具有代表性的分类标准有：《中国图书馆分类法》（2000年第四版）；国家标准GB/T 13745-92《学科分类与代码》。这两种标准都不能满足我们的需要。《中国图书馆分类法》处理的对象是图书而非网页、分类体系比较复杂，因而不适合中文网页的分类。因为在Web上存在着大量的“新闻与媒体”类和“娱乐与休闲”类网页，用图书分类的方法来对网页分类是不精确的。而且对于非专业人员占绝大多数的普通Web用户而言，这些分类难以理解。《学科分类》标准于1992年制定，由于制定的时间过久，现在网上大量出现的新生概念，如：聊天室、虚拟社区、个人主页、在线论坛等等，在这个标准中没有体现。同时，该标准还包括大量已经过时了的类别。这些类别在标准制定时体现了先进的技术，但是目前已经被其他技术所取代或很少被人提及。 因此，上述的两个分类标准不能直接用作中文网页的分类。同时，我们还看到著名的分类目录网站，例如Yahoo!, 新浪，搜狐等都有一个在网上实用的内容目录。经过分析整理，本文最终决定采用的分类体系如图11-5所示。它包含三个层次，12个大类，共733个类别。从总体上可以分为学术性和非学术性两大类。其中学术性类别按国家标准GB/T 13745-92《学科分类与代码》分类。选用该分类体系的主要原因是它分类层次关系简单明了，中国用户比较熟悉。 图11-5 一种中文网页的分类体系 我们使用本节的设计方案实现了一个基本的中文网页分类器，并通过不断增加训练实例数，考察了每个类的训练样本数对分类器质量的影响，希望找到一个需训练的最小样本数。实际测试结果如图11-6和图11-7所示（这里需要说明的是，当训练样本数等于最右边的19时，表示训练集中的所有样本都被保留下来，而不是为每个类别取19个训练样本）。 从图11-6可以看出，当训练样本数大于等于15时，分类器的宏观F1值就稳定下来了，尽管此时图11-7的微观F1还在上升，但是增加的幅度已经很小了，并且到17时平稳下来。因此，针对本文的训练集，最小训练样本数取15个。 图11-6 Macro-F1值随样本数的变化 图11-6 Macro-F1值随样本数的变化]]></description>
		<wfw:commentRss>http://scseoer.com/webpage-classifier-experiment-set-2.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>网页分类器实验设置</title>
		<link>http://scseoer.com/webpage-classifier-experiment-set.html</link>
		<comments>http://scseoer.com/webpage-classifier-experiment-set.html#comments</comments>
		<pubDate>Fri, 05 Aug 2011 07:15:18 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[分类.质量]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1687</guid>
		<description><![CDATA[为了定量地分析影响分类器性能的关键因素，我们首先实现了一个最基本的中文网页分类器。该分类器的具体设计方案如下： 预处理。在预处理阶段，除了进行中文分词处理外，没有进行其它任何预处理； 特征选取。在这里，直接把中文分词得到的所有关键词作为特征项，并由这些特征项构成特征向量，因此没有特征选取处理过程。 分类算法。我们选用kNN（k-Nearest Neighbor）分类算法来实现基本的分类器。在实验中我们取 k = 20，即仅保留相似度最大的20个实例网页。为确定待分类网页的类别，首先需要把具有相同类别的实例与待分类网页之间的相似度相加作为待分类网页的类别相似度，最后把相似度最高的类别作为该网页的结果类别，所以这里每个待分类网页仅取一个结果类别。 截尾算法。因为上面的分类算法为每个待分类网页仅取一个结果类别，所以这里无需对分类结果应用截尾算法。 分类质量的评价指标。 在信息检索领域，通常采用查准率和查全率，人们通常借鉴这些标准来评价分类系统的优劣。 查准率表示在所有被检索出的文档结果集中，真正符合检索意图的文档所占的比率，它体现了系统检索结果的准确程度。查全率表示被检索出的文档集结果中真正符合检索意图的文档数在所有符合检索意图的文档集中所占的比率，它体现了系统检索所有相关文档的完备性。查准率和查全率这两个标准是互补的，单纯提高查准率就会导致查全率的降低，反之亦然。 因此，尽管一个好的检索系统应该同时具有较高的查准率和较高的查全率，但是实际的检索系统往往需要在两者之间做出一些折中，而避免其中一个指标过低。 为方便起见，人们还定义了一个F1值[Yang and Liu,1999]，用以反映查准率和查全率的综合效果，其定义如公式(11-1)所示。根据计算方式的不同，F1值可以分为宏观F1值（Macro-F1）和微观F1值（Micro-F1）。宏观F1值的计算方式：首先需要根据公式（11-1）分别计算每个类别的F1，然后再根据公式（11-2）来计算它们的平均值，即为宏观F1值。此外，宏观F1值还有一种计算方式：首先计算p和r的平均值，然后代入公式（11-1）来求宏观F1值，这个过程可以用公式（11-3）来表示，本文将采用这种方式来计算分类器的宏观F1值。微观F1值的计算方式：首先需要在整个测试网页集合内分别统计p和r的值，然后根据公式（11-1）计算微观F1值。 其中：p为查准率；r为查全率；m为训练集类别数，这里为12。虽然在我们使用的分类体系中共包含733个类别（样本集中类别及实例数量的分布情况详见表11-2），但是为简单起见，我们把子类的分类结果分别统计到12个大类中，所以最后共有12个类的分类统计结果。 对于F1值，从公式（11-3）可以看出，它反映了查准率p和查全率r之间的平衡关系：只有当p和r比较接近，并且取值都比较大时，F1才比较大。反之，当p和r相差比较悬殊，或者取值都比较小时，F1值就比较小。所以，F1综合反映了分类器的整体性能。本章将使用宏观F1值和微观F1来评价分类器的质量。]]></description>
		<wfw:commentRss>http://scseoer.com/webpage-classifier-experiment-set.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>实现中文网页自动分类的一般过程</title>
		<link>http://scseoer.com/automatic-webpage-classification-process.html</link>
		<comments>http://scseoer.com/automatic-webpage-classification-process.html#comments</comments>
		<pubDate>Fri, 05 Aug 2011 07:08:38 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[分类]]></category>
		<category><![CDATA[网页]]></category>
		<category><![CDATA[预处理]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1683</guid>
		<description><![CDATA[在应用基于案例的有指导的机器学习方法实现中文网页自动分类的过程中有一个基本的假设：文档的内容与其中所包含的词有着必然的联系，同一类的文档之间总存在多个共同的词，而不同类的文档所包含的词之间差异很大。因此，分类器的训练过程可以看作是在已知文档类别的情况下，统计不同类别内的词的分布，即在预先定义的类别集合C（C={c1, …, ck, …, cm}）与词项集合T（T={t1, …, tk, …, tn}）的幂集之间建立一种加权的映射关系，形成一种向量表示；相应的，分类器的分类过程，可以看作在已知一篇文档内所包含词项分布（用一个向量表示）的情况下，和在训练中形成的每个类别的向量表示进行对比，来确定该文档与类别的隶属关系。 根据对文档分类过程实质的分析，下面给出中文网页自动分类的一般过程。同普通英文文档相比，中文网页信息具有特性： 中文网页的内容使用中文书写，不像英文单词之间存在自然的形态间隔，中文需要分词处理。而且分词的效果能够显著地影响分类效果； 网页使用超文本设计。它包含大量的HTML标签和超链接。我们有可能利用这些信息来改进分类的质量。比如包含在标题&#60;title&#62;标签内的内容通常要比出现在网页正文&#60;body&#62;标签内的内容要重要的多。在Web上相邻的网页通常具有相关或相同的主题，因此网页之间的超链信息也可以给我们一些启发； 网页通常包含大量的“噪音”。同普通文本相比，网页的设计比较随意，通常包含各类广告，设计人员的注释以及版权申明等无关信息。有时同一个网页甚至会包含多个不同的主题。在进行分类之前，需要自动清除这些“噪音”，否则这些“噪音”会降低分类质量。 因此，需要对中文网页进行预处理后，才能应用相应的文档自动分类算法实现分类。 结合中文网页的特性，图11-2给出了中文网页自动分类的一般过程。其中：预处理过程主要包括中文分词以及网页内“噪音”的清除等处理；基于二元分类算法的分类器，可以把分类结果直接作为待分类网页的类别结果，而基于M元分类算法的分类器，还需要对该分类结果进行进一步的筛选后，才能作为待分类网页的类别结果。 图11-2 中文网页自动分类的一般过程 图11-3 中文网页分类器的工作原理图 根据图11-2所示的中文网页分类的一般过程，我们设计了本章研究所使用的分类器，其工作原理如图11-3所示。从总体上，分类器的整个工作周期可以分成训练过程和分类过程。在训练过程中，训练集实例经过中文分词和特征选取处理后被表示成向量形式。该特征向量集用来描述类别模式，在分类过程中使用。校验集是训练集的一部分，通过应用相应的阈值策略来预先确定每个类别的截尾阈值。在分类过程中，一个待分类的中文网页经过中文分词并表示成向量后，应用分类算法同训练过程得到的类别模式逐一比较，得到候选类别列表，然后同训练过程中得到的每个类别的阈值相比较，保留大于阈值的类别，并作为该网页的分类结果。 从图11-3可以看出，构建一个分类器的关键因素包括：预处理、训练集、特征选取算法、分类算法和截尾算法等。预处理部分的HTML网页净化方法已在第七章中介绍，如下将逐一定量地分析后4个因素对分类器性能的影响。]]></description>
		<wfw:commentRss>http://scseoer.com/automatic-webpage-classification-process.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>文档自动分类算法的类型</title>
		<link>http://scseoer.com/automatic-document-classification-algorithm-types.html</link>
		<comments>http://scseoer.com/automatic-document-classification-algorithm-types.html#comments</comments>
		<pubDate>Fri, 05 Aug 2011 07:02:38 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[分类]]></category>
		<category><![CDATA[算法]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1679</guid>
		<description><![CDATA[在Web出现之前，人们已研究过许多普通文档分类的方法，形成了各种文档自动分类（Automatic Text Categorization，ATC）技术。随着海量网页信息的涌现，ATC技术的处理对象从普通文档扩展到网页信息，自然地，ATC技术成了实现网页自动分类的基础。所谓文档自动分类就是用计算机程序来确定指定文档和预先定义类别之间的隶属关系。 目前，主要的文档自动分类算法可以分为三类： 1、词匹配法 词匹配法又可以分为简单词匹配法和基于同义词的词匹配法两种。简单词匹配法是最简单、最直观的文档分类算法，它根据文档和类名中共同出现的词决定文档属于哪些类。很显然，这种算法的分类规则过于简单，分类效果也很差。基于同义词的词匹配法是对简单词匹配法的改进，它先定义一张同义词表，然后根据文档和类名以及类的描述中共同出现的词（含同义词）决定文档属于哪些类。这种分类算法扩大了词的匹配范围，在性能上要优于简单词匹配法。不过，这种算法的分类规则仍然很机械，而且同义词表的构成是静态的，对文档的上下文不敏感，无法正确处理文档中其具体含义依赖于上下文的词，分类的准确度也很低。 2、基于知识工程的方法 基于知识工程的文档分类方法，需要知识工程师手工地编制大量的推理规则，这些规则通常面向具体的领域，当处理不同领域的分类问题时，需要不同领域的专家制定不同的推理规则，而分类质量严重依赖于推理规则的质量。因此，在实际的分类系统中较少使用基于知识工程的学习法。 3、统计学习法 统计学习法和词匹配法在分类机制上有着本质的不同。它的基本思路是先搜集一些与待分类文档同处一个领域的文档作为训练集，并由专家进行人工分类，保证分类的准确性，然后分析这些已经分好类的文档，从中挖掘关键词和类之间的联系，最后再利用这些学到的知识对文档分类，而不是机械地按词进行匹配。因此，这种方法通常忽略文档的语言学结构，而用关键词来表示文档，通过有指导的机器学习来训练分类器，最后利用训练过的分类器来对待分类的文档进行分类。这种基于统计的经验学习法由于具有较好的理论基础、简单的实现机制、以及较好的文档分类质量等优点，目前实用的分类系统基本上都是采用这种分类方法。 本章介绍的文档分类算法都属于统计学习法。根据分类结果的不同，基于统计学习法的分类系统在整体上可以被分为两类：独立二元（Independent Binary）分类系统和m元（m-ary）分类系统。所谓独立二元分类，就是给定一篇文档，分类系统对每一个类都独立地判断这篇文档是否属于该类：要么属于，要么不属于，而不存在其它的结果，并且在分类过程中，不同类别之间互不影响。所谓m元分类就是给定一篇文档，系统计算这篇文档与所有预先定义的类的相似度，并按这篇文档和各个候选类的相似度排序，最后输出候选类列表。文档分类算法如图11-1所示，在第四节我们介绍其中几个典型的分类算法。 图11-1 自动文档分类算法的分类]]></description>
		<wfw:commentRss>http://scseoer.com/automatic-document-classification-algorithm-types.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>中文网页自动分类技术</title>
		<link>http://scseoer.com/chinese-webpage-classification-technology.html</link>
		<comments>http://scseoer.com/chinese-webpage-classification-technology.html#comments</comments>
		<pubDate>Fri, 05 Aug 2011 06:58:27 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[分类]]></category>
		<category><![CDATA[网页]]></category>
		<category><![CDATA[质量]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1677</guid>
		<description><![CDATA[网页自动分类技术已经成为Web领域的一个研究热点。本章主要讨论如何应用有指导的机器学习方法实现大规模中文网页的自动分类，以及如何应用中文网页自动分类方法实现搜索引擎目录导航服务。 为了能够有效地组织和分析海量的Web信息，人们希望能够按照其内容实现对网页的自动分类。目前，网页自动分类技术在数字图书馆、主题搜索、个性化信息检索、搜索引擎的目录导航服务、信息过滤、主动信息推送服务等领域得到了广泛地应用。 在信息检索领域，评价一个系统的性能，通常有效果和效率两个方面的考虑。与此对应，评价一个分类器性能的优劣，通常也有两个基本的指标：分类质量（效果）和分类效率。 对于分类质量，考察的指标通常为查准率和查全率； 对于分类效率，考察的指标通常为分类器的训练效率和分类器的实际分类效率。 分类质量和分类效率这两个指标，既相互独立，又相互影响。在理想的情况下，人们追求分类器不但要具有较高的分类质量，而且还要具有较高的分类效率。但是在实际的应用中，有时为了追求分类质量而不得不牺牲分类效率，有时为了保证一定的分类效率而不得不在一定范围内牺牲分类质量。因此，在设计分类器时，需要根据具体的应用环境来综合考虑这两个指标，重点解决主要矛盾。 本章首先系统地定量分析影响分类器性能的各种关键因素。根据实际的测试结果，并结合搜索引擎这一特定的应用环境，来寻找一种中文网页分类器的最佳设计方案：在具有较高分类质量的同时，还具有较高的分类效率。然后，根据这个方案实现了一个能够处理海量中文网页信息的分类器。最后，应用该分类器实现了天网搜索引擎中的目录导航服务。]]></description>
		<wfw:commentRss>http://scseoer.com/chinese-webpage-classification-technology.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>面向主题和个性化的Web信息服务</title>
		<link>http://scseoer.com/web-information-service.html</link>
		<comments>http://scseoer.com/web-information-service.html#comments</comments>
		<pubDate>Fri, 05 Aug 2011 06:55:35 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[搜索引擎]]></category>
		<category><![CDATA[搜集]]></category>
		<category><![CDATA[网页]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1675</guid>
		<description><![CDATA[Web信息服务就是根据用户的信息需求,为其提供相应的Web信息；而基于主题和个性化的信息服务就是指在特定的主题范围内, 能够根据用户个人独特的信息需求, 从互联网上搜索出有关的信息,并将它们整合在一起, 以便有针对性地满足各种不同用户的信息需求。目前，针对某一领域的小型主题搜索引擎、个性化智能搜索引擎的研究已成为下一代搜索引擎的两个研究热点。 本篇介绍我们在这方面所做的一些研究性工作，主要包括： 中文网页分类技术：现已成为中文Web信息处理领域的基础性工作，例如将网页进行自动分类，可以为搜索引擎用户提供目录导航服务，进而提高系统的查准率。本篇第十一章将详细介绍中文网页分类的各种算法，并比较这些方法的优劣。利用网页分类实现搜索引擎的个性化查询服务是一项值得进一步研究的工作，其基本思想是：先对网页和不同用户分别进行分类，之后对两者进行类型匹配，从而实现个性化服务。 个性化信息服务：Web挖掘技术是实现Web个性化服务的核心技术之一，本篇第十二章首先介绍了这方面的研究进展；然后介绍了我们开发的天网知名度系统，该系统针对包含某一对象类的网页提供个性化检索服务，并在可能的时候以简报的形式推送给注册的用户。 主题信息的搜集与应用： 第十三章首先对主题信息的搜集方法做了一个概括性介绍；然后提出了一种主题信息的搜集与处理模型，基于它并针对人们关心的一个热点主题，系统地对网上的信息进行搜集和分析，从不同的角度和层次得出互联网对该主题报道的强度。]]></description>
		<wfw:commentRss>http://scseoer.com/web-information-service.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>搜索引擎检索质量评估实验的建立与分析</title>
		<link>http://scseoer.com/assessment-experimental-establishment-analysis.html</link>
		<comments>http://scseoer.com/assessment-experimental-establishment-analysis.html#comments</comments>
		<pubDate>Fri, 05 Aug 2011 06:53:08 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[搜索结果]]></category>
		<category><![CDATA[质量]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1672</guid>
		<description><![CDATA[搜索引擎检索质量评估的目标是对不同搜索引擎系统的检索结果评估其相对优劣次序。对单独一个系统的评估，得到的评估指标的得分一般没有实际意义。搜索引擎的搜集和检索两大部分的性能对最终的检索质量都有影响。[Hawking, et al.,2001]指出以P@N为评估指标时，指定结果个数N，检索精度随着文档集合大小增长而增长。并且评估对象搜集的网页范围、数量都不相同，这种差异对评估有一定的影响。 可以考虑在实验中采用一种归一化的方法，把查询结果限定在一个固定的集合内，用来减小不同评估对象的搜集系统差异对检索效果带来的差异。例如采用InfoMall系统的网页集合为基准，对所建立的查询集，用一些工具抓取几个不同搜索引擎的前若干个（如50个）检索结果，同时向InfoMall系统请求这些结果URL的历史网页，当InfoMall系统的访问界面返回错误，通知一个URL不存在时（HTTP的404错误码），则表明此检索结果不在InfoMall网页集合中。 评估实验的基本原则是盲测试性和可重复性。盲测试性是指评估实验应该尽量避免用户的主观偏向性，要求进行相关性评分的评测员不能区分评分对象属于那一个评估对象，甚至不知道评估对象差别的存在。如在实验中可以把抓取的不同搜索引擎的检索结果保持原始的顺序随机混合，即每个查询的结果序列（如只保留在InfoMall中命中的结果），对相同序号上的结果随机排列，合并成一个序列。同时使用统一的摘要提取程序，从网页原文中按查询词提取摘要，以相同的形式展现给评测人员，而且事先不透露评估对象的名称。这一过程可保证实验的盲测试性。 可重复性是一个科学实验的基本要求，TREC的评估体系在这一方面做的很好，通过构建数据集，包括文档集、查询集和相关结果集，使得评估实验具有可重复性。Web检索下，这一方法面临的最大问题是数据规模难于扩展，特别是对适合Web数据评测规模的文档集，难于有效构造出其中查询对应的相关结果集。TREC的pooling方法提高了这一工作的效率，但仍然不能适应数据规模的进一步增长。实验中，可以由自愿参加评测工作的评测员，按相关性准则对查询结果的相关性评分。这一过程并不构建一个完全的相关结果集，对一个新的评估对象进行重复实验还必须让评测员重新对变化的查询结果进行相关性评分。 评估实验选择DCV(Document cut-off value)类型的评估指标。检索性能评估通常基于P(查准率)和R(查全率)，有两类指标，一是P-R曲线和根据P-R曲线计算的平均精度AVP，这一类指标对不同的查询在同一个查全率上计算平均精度；另一类是DCV，它使用相同的评测过的文档数量进行归一化，用以表达不同查询结果中用户在同样的浏览代价下的性能。 对大规模数据量的Web检索评估，建立基于Web的评测环境和招募大量的自愿者参加评估是解决评估的数据规模扩展性问题的一个可能方法。实验中，通过使用相关度评测环境和工具，由志愿评测员对查询集合由各个搜索引擎返回的检索结果进行相关性判别。 对实验结果进行分析：首先进行异常数据清理，然后根据评估指标计算出不同搜索引擎的分值，比较不同搜索引擎的检索质量优劣。由于实验过程存在的随机因素，在结果比较分析中，还必须做统计的显著性检验以及实验的错误率分析。对两个不同评估对象，假设根据评估指标计算出的指标得分的差异符合正态分布，可以使用成对数据的t测试进行显著性检验，在实际应用中，即使正态分布假设并不成立，t测试也基本有效。实验可以采用成对数据的t测试，通常置信度取95%，对通过测试的结果认为存在显著性差异，否则没有显著性差异。实验的错误率是指在重复实验中，不同次实验得到相反的评估结果的次数与实验总次数的比率，它代表一次评估实验得到错误结果的可能性，给出如下计算公式： 其中A,B为评估对象，&#124;A&#62;B&#124;表示重复实验得到A优于B的次数。如果实验在某一变化因素控制下，计算错误率，可以用来评估实验对这一变化因素的稳定性, 如对评测员、查询集合大小以及评测指标等。]]></description>
		<wfw:commentRss>http://scseoer.com/assessment-experimental-establishment-analysis.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>查询类别分析与查询集的构建</title>
		<link>http://scseoer.com/query-category-analysis-query-set.html</link>
		<comments>http://scseoer.com/query-category-analysis-query-set.html#comments</comments>
		<pubDate>Fri, 05 Aug 2011 06:48:16 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[关键词]]></category>
		<category><![CDATA[搜索]]></category>
		<category><![CDATA[查询]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1668</guid>
		<description><![CDATA[用户信息需求千差万别，以不同查询表达，这种类型差异对于检索系统十分重要，因为不同类型的需求可以有不同的检索方法更好的完成，对系统评估也同样如此，不同类型的用户信息需求和查询需要采用不同的评估方法。 对用户查询有不同的分类方法。文献[eTesting,2000]从查询语法特征上划分为5类： 自然语言查询； 单个查询词的简单查询； 多个查询词的简单查询； 包含操作符的复杂查询和主页查询。 文献[Travis and Broder,2001]把用户信息需求分为三类：信息型，导航型和事务型。 信息型是寻找主题相关的文档，也就是传统TREC评估的ad-hoc任务； 导航型是寻找知道名称的站点或主页，对应TREC评估的homepage/named page任务； 事务型指用户期望找到一个服务入口，需要进一步进行服务访问，比如公交线路查询、歌曲下载、产品信息查询等。 文献[Kang and Kim,2003]也使用同样的三个类别，研究了具体的分类识别算法。TREC的评测不区分信息型和事务型。 可以通过对搜索引擎用户查询日志的统计分析，逆向推断用户的信息需求，得到查询类型的分布。对不同搜索引擎系统用户查询日志大量统计研究都表明，搜索引擎平均用户查询词长度很短，平均长度在2~3个词之间。短查询很难充分表达用户的信息需求，是搜索引擎为提高系统性能面临的一个重要挑战。这也为从查询日志中逆向推断用户信息需求带来了困难。短查询词在不同的上下文环境下存在多义，即使对相同含义，从用户角度也隐含着不同的信息需求。例如，查询“绿茶”，可能是指电影名，也可能是指茶叶；指电影名时，用户可能希望下载或观看，也可能希望了解影评等相关信息，这就分别对应上述事务型和信息型的查询类型。在统计过程中，使用普遍情况最大可能的用户需求作为查询类别的判断准则，如表10-4所示。 表10-4 用户查询信息类别 在一个查询样本中，可对不同类别的查询分别进行筛选，构建查询集。先去除那些可能对评测人员产生困扰的不良查询，比如性、暴力方面的查询；再各挑选查询意图明确的若干个查询（如50个），构成评估用的查询集。在Web搜索环境下，短查询现象普遍，因此很难对挑选出的每个查询补充上确切的查询意图描述，在实验过程中可以统一使用表10-4中的评估准则。]]></description>
		<wfw:commentRss>http://scseoer.com/query-category-analysis-query-set.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>搜索引擎系统质量评估</title>
		<link>http://scseoer.com/search-engine-system-quality-evaluation.html</link>
		<comments>http://scseoer.com/search-engine-system-quality-evaluation.html#comments</comments>
		<pubDate>Fri, 05 Aug 2011 06:43:10 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[搜索引擎]]></category>
		<category><![CDATA[质量]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1665</guid>
		<description><![CDATA[公开有效的搜索引擎质量评估对指导用户选择搜索服务，对搜索引擎服务提供者与研究人员不断尝试新技术，提高服务质量十分重要。商业搜索引擎内部通常会有质量评估，一般不会公开。 这一方向的工作与研究主要由信息检索领域的研究人员推动。 信息检索可以看作这样的过程和方法，通过它，一个需要信息的用户可以把他的信息需求转换成为对数据集中若干文档的引用，从而找到有用的信息。评估从这个研究方向创立开始就一直为人们关注。 根据评估对象的不同，可以分为6个级别： 工程级关注系统的效率； 输入级关注输入数据的覆盖率； 处理级评估数据处理过程中的算法、技术和方法的效果； 输出级评估结果输出后的交互、反馈等； 应用级评估系统的应用和对生产率的影响； 社会级评估系统的应用和对生产率的影响。 其中前三个级别的评估以系统为中心，后三个以用户为中心。 进行评估有如下几个前提要求： 被评估的系统，包括算法和数据； 评估准则，如信息检索中的相关性； 评估指标，如信息检索中的查准率和查全率； 评估指标的获取，如信息检索中的相关性判别； 评估方法，包括整个过程的设计与组织。 目前信息检索领域最重要的评估工作由TREC组织。 TREC主要在处理级进行检索效果评估，把相关性作为评估准则。相关性是一种复杂的感知和社会现象，它不是简单二元的是否判别，和环境、上下文有密切联系。相关性判别通过专门的评估人员人工判断，在大规模数据集上进行检索系统评估时，这种人工的工作成为最大的开销，并且使得对整个数据集进行完全的相关性判别成为不可能。为了让评估实验可重复，TREC建立了大规模的评估数据集，包括数据集，查询集和相关结果集。 其中相关结果集通过一种称为pooling的方法构造，对每个评估用的查询，从所有参加评估的结果序列中挑选出前一部分，人工判断其相关性，其它文档作不相关处理。在TREC的推动下，评估方法的研究得到了很大发展。 文献[Zobel,1998]研究表明pooling方法下对系统相对性能评估具有稳定性，但同时查全率被估计过高。 文献[Voorhees and Buckley,2002]通过统计实验错误率研究了查询集大小对评估的影响，指出小的查询集会使评估结果具有高错误率； 文献[Buckley and Voorhees,2000]研究了查询集大小、评估指标对评估结果稳定性的影响，指出对于Web环境，适合使用P@10(前10个结果的精度)或P@20作评估指标，同时需要较多的查询以减少错误率，100个查询对P@20较合适。 文献[Voorhees,2001]研究了多级的相关性判别对评估的影响，指出Web环境下对高度相关的评估和一般相关的评估结果不一致，相比更不稳定。文献[Cormack, et al.,1998]研究了大规模评估数据集构建的技术，提出了改进的pooling方法。 Web搜索引擎与传统信息检索有许多不同的特点，这些给传统的信息检索评估带来了新的挑战。Web搜索处理的数据是整个Web，即使采用pooling方法，TREC建立静态评估测试数据集的方法也很难扩展到这样的数据规模。同时Web数据还在不断动态变化，对搜索引擎的评估很难建立在同样一个静态的数据集上，如何评估不同数据集上检索系统的质量也是一个新的研究内容。 文献[Hawking, et al.,1999]研究了TREC的信息检索方法在Web环境下是否有效，不过实验建立在TREC的大规模数据集上，具有一定的偏向性。 文献[Hawking, et al.,2001]对11个搜索引擎进行了评估，指出不同搜索引擎有显著性差异，不同评估指标间高度相关；特别提出了对未来Web搜索引擎质量评估需要针对不同用户的信息需求类型采用不同的评估技术。 文献[Singhal and Kaszkiel,2001]详细分析了TREC Web Track的评估方法在Web环境下的不足，包括查询类型、相关性判别是按文档为基础，还是以用户为中心，按站点为基础，不同数据集上的评估结果是否可以比较等问题。 文献[Craswell, et al.,2003]是2003年TREC Web Track的报告，分为主题提取类型和导航类型两种任务模式。主题提取类型以P@N(前N个结果的精度)为评估指标，返回结果以站点为单位，以主题相关性和内容质量为评估准则。 导航类型以MRR(第一个正确答案的平均序号倒数)和S@10(答案出现在前10个结果的查询比例)为评估指标。]]></description>
		<wfw:commentRss>http://scseoer.com/search-engine-system-quality-evaluation.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>网页权重最终计算</title>
		<link>http://scseoer.com/webpage-weight-calculation.html</link>
		<comments>http://scseoer.com/webpage-weight-calculation.html#comments</comments>
		<pubDate>Thu, 04 Aug 2011 09:42:55 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[相关性]]></category>
		<category><![CDATA[网页权重]]></category>
		<category><![CDATA[超链接]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1651</guid>
		<description><![CDATA[以上已经给出了如何得到一个检索的相关网页集合，下面的工作是计算每个网页和查询q的相关度。相关度运算依赖三个方面，它们分别是：基本权值、链接权值和用户评价权值。首先计算每一个结果网页p的基本权值WB(q,p)。 按照第一节的论述，每一个查询q可以被分解为m个特征项｛t1, t2, … tm｝的逻辑运算。因此，对于每一个结果网页p，都可以获得每一个特征项在该网页中的权值WB(ti, p)。我们按照如下方法定义权值的逻辑运算： 任何一个用户的检索都可以表示为特征项的与（∩）和或（∪）的运算表达式，因此我们得到相应的权值运算公式（10-6）。 R就是相应的逻辑运算表达。根据公式(10-2)，通过一定的运算过程，可以得到一个网页p的对应查询q 的基本权值WB(q,p)。 对于一个查询q，还需要考虑链接权值WL(p)和用户评价权值WU(q,p)。有两种方法来处理这三者之间的关系： 1、让WB(q,p)作为基准权值，而链接权值和用户评价权值作为比例系数： 2、每一种权值按照一定的比例重新构成新的权值： 天网选择了第二种方法。在这种方法里，每种权值都起到了影响结果权值的作用，但是，它们的影响又都被限制到一定的范围内。第二种方法的优点如下： 几乎所有的网页拥有者，尤其是商业网站，期望它们的网页被排在搜索结果的前列。一些网站就利用一些手段来欺骗搜索引擎。例如，它们通过向网页中加入一些不可见的文本来提高它们基本权值部分的值：一个旅馆为了扩大影响，将它们的主页中加入大量的不可见的词汇“计算机”。如果这样，当用户检索计算机时，这个旅馆的主页将堂而皇之的排在前几个结果中。利用方法第二种方法可以在一定程度上避免这种欺骗。 如果忽略一个站点内部的链接，这就使得网站的作者很难通过超链权值对搜索引擎进行欺骗。一般来讲，其它网页的编辑不会愿意以牺牲自己网页质量的代价来将一些不相关的超链加入到自己的网页中。 用户评价权值也是一个容易被用来欺骗搜索引擎的特性。一些网站的所有者或许会雇佣一些职员，不停的在检索结果页面中点击它们自己的网页。如果按照方法一，经过一定的时间，这个总被点击的网页最终将升到第一的位置。但如果使用方法二，就可以有效的避免这个问题，因为用户的影响已经被限定到了一个合理的范围。 总的来讲，结果排序是搜索引擎技术最重要的一个方面，从概念上讲，主体是本章第二节讨论的那些因素，但在实际系统中会衍生许多变化，其细节常常是商业机密。]]></description>
		<wfw:commentRss>http://scseoer.com/webpage-weight-calculation.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>收集用户反馈信息</title>
		<link>http://scseoer.com/user-feedback-information.html</link>
		<comments>http://scseoer.com/user-feedback-information.html#comments</comments>
		<pubDate>Thu, 04 Aug 2011 09:36:03 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[权重]]></category>
		<category><![CDATA[用户评价]]></category>
		<category><![CDATA[网页]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1639</guid>
		<description><![CDATA[在搜索引擎中，当用户给出查询并得到一个返回结果列表之后，绝大多数的情况下他们都是扫描一下前面几个条目的摘要，感觉有他需要的内容，则点击对应的链接，去阅读网页全文。对来自于不同用户的同一个查询词来说，若某个链接虽然在返回结果表上出现的位置不太靠前，但被选取点击的次数比较多，于是系统应该感到该链接是比较受欢迎的，其位置应该往前调。举例来说，如果80%输入查询词“北京大学”的用户都点击了输出结果的第10项，则系统应该认为第10项对于查询“北京大学”来说才是最相关的结果，应该将它排在前面。 具体实现起来，我们的办法是通过用户点击数（User Hit Number, UHN）来达到这一目的。对于一个检索q，会得到很多的检索结果网页，将这些网页表示为p0, p1, p2, … , pn。假定检索q在一天内被提交了m次，定义WUHi如下： 之后，我们定义检索q对应的一个网页p的UHN： 但是，如果我们按照上述方法来统计用户评价权值的话，我们就忽略了返回结果中URL的位置信息。按照天网的统计，47.3%的用户只访问天网返回给他们的第一页（包含10个结果），12.2%的用户会继续访问第二页。这意味着一个结果在返回网页中的位置将会很大程度的影响用户点击的可能性。因此，如果一个结果网页在返回网页中排在尾部，即使这个网页和检索的相关度非常之高，它都只有很小的可能性被用户看到并点击。我们以一种补偿算法来弥补这个缺陷。这就是按照用户对每个返回页面访问的概率进行补偿。补偿因子c(pos(q,p))按照表10-3来定义。考虑到补偿因子，定义计算公式（10-1）。 公式（10-1）定义了检索q在一天的时间内，其结果页面p得到的用户评价，但是，这只考虑了一天的情况。应该如何来考虑长时期的用户评价呢？考虑n+1天的数据：WUD0, WUD1,&#8230;, WUDn。最简单的方法是将这些数据求和得到这段时间的用户评价。 表10-3 补偿因子定义表 但这是不合理的，因为用户在不同的时间感兴趣的网页是不同的。例如：当用户在奥林匹克运动会召开之前检索“奥林匹克运动会”，他会大量的点击那些讲述有关奥林匹克运动会准备情况和参赛运动员情况的网页。在奥林匹克运动会召开的过程中，大量的用户更关注关于世界纪录被打破的情况，各个国家获得的奖牌数和排名情况。当奥林匹克运动会结束后，他们的兴趣会转向一些有关奥林匹克运动会的评论的网页。如果仍使用公式（10-2），当用户在奥林匹克运动会进行时检索，他们将会看到大量的讲述有关奥林匹克运动会准备的网页排在前面，因为这些网页曾被给予了很高的用户评价。为了避免这个问题，我们使用一种衰减算法： 这里的k是衰减系数。系数k的值越大，先前的数据对结果的影响就越大。k=0和k=1是两个极端情况。k=0表示历史的数据不被考虑；k=1表示所有的历史数据都和现在的数据有相同的重要性。 搜索引擎面对的是数以亿计的用户，而上式需要搜索引擎保留所有的历史数据，这样的代价十分巨大。所以我们通过转化成公式（10-3）来解决这个问题。 利用一个递归程序，我们只需要记录两个数据：历史数据WUA1 和当前数据WUD0. 当一个新的网页刚刚被索引时，它没有被用户点击的机会，所以如果采用上述的方法时，它的用户评价值会是零，需要给予它们一些补偿。办法是给一个新的网页一个缺省的用户评价值： 补偿系数l反映了对于一个新的网页的重视程度。WUAmax(q) 是对于所有的p取值最大的WUA(q,p) 值。考虑了补偿之后，新的用户评价值由如下公式（10-4）计算。 我们仍然需要对这个值进行归一化得到公式（10-5），其中WUmax 代表对于所有的p的WU&#8217;(q,p) 的最大值。]]></description>
		<wfw:commentRss>http://scseoer.com/user-feedback-information.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>利用链接的结构</title>
		<link>http://scseoer.com/link-structure.html</link>
		<comments>http://scseoer.com/link-structure.html#comments</comments>
		<pubDate>Thu, 04 Aug 2011 09:23:12 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[权重]]></category>
		<category><![CDATA[超链接]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1633</guid>
		<description><![CDATA[网页之间的超链接是Web的基本特点，这也是从应用上区别现在的Web和以前的Internet最突出的特征。如果说TCP/IP协议组将上百万计算机无缝连接起来了，则HTTP/HTML协议组将上百亿信息（网页）无缝连接起来了。海量网页之间的相互链接形成了一个巨大的有向图，这个图的很多结构性特征既有趣，也有重要的意义。特别地，我们关心一个网页的入度。 图10-4 网页的互联结构示意 在这部分，我们主要考虑WWW中超链的互链关系对一个网页权值的影响。Web有两个基本的构成因素：网页和超链。如果我们将网页认为是节点，超链是有向边的话，就可以将整个网络抽象为一个巨大的有向图。从图中可以看到，每个网页的入度是不同的，我们称每个网页的入度为网页的链接命中数（Link Hit Number，LHN）。 为什么LHN应该影响一个网页的权值呢？我们知道这些超链都是网页的编辑加入网页中的。他们之所以加入这些超链，是他们认为这些超链是有价值的，值得他们网页的浏览者去深入浏览。如果一个网页被大量的其它网页所链接（也就是说，被大量的网页编辑推荐），可以确定，这个被链接的网页是相对重要的，它们会对上网浏览的用户有更大的帮助。 所有的链接都应当按照如上所述的方法考虑吗？经过分析，天网将超链分为两类：链接向本网站内部网页的超链（自我推荐）和链接向其它网站上的网页的超链（他人推荐）。我们忽略第一类链接，理由如下： 我们通过统计发现，很多网站的页面都是运用一定的页面模板实现的。在模版中会包含大量的该网站的索引超链，而这些超链会跟随模版被继承到该网站的每一个网页中。显然，这些超链不应该被考虑。 有些大型网站（含有大量的网页）的主页会被本站点的其它网页大量链接，而获得很高的LHN，尽管它有可能被极少的其它网站所链接。 我们还要考虑网页编辑的欺骗行为。例如，它们在某些网页中包含大量的不可见链接指向自己的页面，进而获得较高的LHN。 在下面的部分，我们将总的LHN值称作原始LHN，将被其它站点链接的LHN值称为LHN。 使用如上所述的策略，新网页将会面临不公正的待遇，因为一个新的网页，即使质量很高，由于知道它的网页编辑很少，也只能得到很小的LHN值。它们需要时间，才能被其他的网页编辑了解和评价。因此，对于新的网页，应用LHN去评价它们的优劣是不合适的。我们既然已经采用了LHN的方法，就应该按照一定的算法对新网页给以LHN的补偿。以下就是LHN补偿算法。 如果使用UNIX系统的时间格式(自1970年以来的秒数)，可以获得网页的发布时间T(p)，如果令当前时间为Tnow，补偿的阈值时间为Tst，用如下公式获得补偿权值： 考虑了补偿权值后，得到新的LHN值： 用WLmax来表示对于系统所有的p的WL&#8217;(p)的最大值，采用如下公式将LHN值进行归一化，得到期望的超链权值：]]></description>
		<wfw:commentRss>http://scseoer.com/link-structure.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>形成网页中词项的基本权重</title>
		<link>http://scseoer.com/word-basic-weight.html</link>
		<comments>http://scseoer.com/word-basic-weight.html#comments</comments>
		<pubDate>Thu, 04 Aug 2011 09:14:44 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[标签]]></category>
		<category><![CDATA[相关性]]></category>
		<category><![CDATA[网页权重]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1627</guid>
		<description><![CDATA[前面提到了向量空间模型，但根据我们的讨论，并不能够将它完全照搬到搜索引擎系统中来。网页信息和正文文本最重要的差别就是在网页中含有大量的HTML标签（tag）。因此，我们在天网中提出了一个改进的TF*IDF算法用于检索和相关度评价算法。相对传统的IR而言，增加了对HTML标签和网页的可索引文本长度。可索引文本长度表示用户通过浏览器窗口看到的一个网页的文本内容长度。 考虑被HTML标签包围的一段文本内容，到底这些标签应该如何影响这段内容呢？天网将所有的标签分为两类：一类是影响文本权值的标签，如&#60;FONT&#62;、&#60;H1&#62;等；另一类是不影响文本权值的标签，如&#60;IMG&#62;、&#60;FRAME&#62;等。在此我们选择表10-2中的标签作为影响文本权值的标签。 表10-2 影响权值的HTML标签 对于一个网页，首先给予该网页中的每个特征项一个缺省的权值W0。如果一个特征项还被其它的有权标签包围，这些标签的权值将会影响到这个特征项的权值。例如，“hello”在&#60;big&#62;&#60;b&#62;hello&#60;/b&#62;&#60;/big&#62;环境中的权值应该为： WBT=W0+Wt(big)+Wt(b) 通过此式，可以获得每个特征项在网页中每次出现的权值。假设特征项t在网页中出现n次，每次出现的权值分别为WBT1, WBT2, … WBTn，就可以得到特征项t在整篇网页中的权值： 对于一个网页，应用上式对每个特征项进行权值计算是公平的。但是，考虑到相同的特征项出现在不同的网页中，网页的长度越长，特征项可能获得的权值也就越高。所以，一个特征项的权值应该在某种程度上受到网页长度的影响。另外，为了区分高频词和低频词对网页的影响程度，我们沿用IR中的IDF项： Smax表示最大的网页可索引文本大小；S(p)代表网页p的可索引文本大小；N代表被索引网页的总量；T(t)是包含特征项t的网页的数量。 通过以上的分析，可以看到一个特征项的权值由三部分组成：第一部分是考虑了HTML标签影响的绝对权值；第二部分是考虑网页大小对权值的影响；第三部分是特征项出现频率对权值的影响。 最后，对WB(k,p)进行归一化处理。其中WBmax代表对于所有的k、p而言WB&#8217;(k,p)的最大值。 WB(k,p)将作为基本权值来参与相关度评价的运算。]]></description>
		<wfw:commentRss>http://scseoer.com/word-basic-weight.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>相关排序的一种实现方案</title>
		<link>http://scseoer.com/relevance-ranking-scheme.html</link>
		<comments>http://scseoer.com/relevance-ranking-scheme.html#comments</comments>
		<pubDate>Thu, 04 Aug 2011 09:03:54 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[权重]]></category>
		<category><![CDATA[相关性]]></category>
		<category><![CDATA[链接]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1625</guid>
		<description><![CDATA[一个网页是否重要，我们可以从其它网页上找出相应的线索。如果一个网页十分重要，那么会有大量的链接指向这个网页。因此，需要对一个还没有搜集的URL 地址进行被链接次数的统计，以确定该URL 获得的其它网页的评价，我们同时赋予其相应的权值Wl。另外，可以根据我们日常在网上的访问，来获得一些有价值的网站，加入到配置文件中。当一个网页属于这些重要网站时，我们就赋予它另外一个权值Ws。还有就是网页的编码类型。作为一个主要为华人服务的搜索引擎，我们主要的关注点在中文信息，所以我们应该优先搜集那些中文网页。即便是中文，仍然有不同的编码类型。例如，中国内地主要以 GB为主，港台地区则以Big5为主，在北美及欧洲地区还存在HZ编码。按照搜索引擎服务的用户群，应该给相应的网页赋以不同的优先搜集次序，在我们的系统里，它体现为编码权值Wc。 基于以上三个主要方面的考虑，得到一个URL的权值评价： Wt(p)=Wl(p)+Ws(p)+Wc(p) 这样，每个待搜集的网页都有自己的Wt，超链选择程序根据这些权值，从中选出一个或一批权值最大的来搜集，即达到了我们期望的目的。]]></description>
		<wfw:commentRss>http://scseoer.com/relevance-ranking-scheme.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web查询模式下的新信息</title>
		<link>http://scseoer.com/web-query-model-new-information.html</link>
		<comments>http://scseoer.com/web-query-model-new-information.html#comments</comments>
		<pubDate>Thu, 04 Aug 2011 08:58:59 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[搜集]]></category>
		<category><![CDATA[数据特征]]></category>
		<category><![CDATA[用户行为]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1618</guid>
		<description><![CDATA[上述链接分析可以有效的计算网页的重要程度，但是带有明显的偏向，即不重视新出现的网页。新出现的网页，尽管可能很重要，但由于时间短，被链接的次数显然不可能很高，PageRank的值就不会高。因此需要来补偿这个问题，人们注意到，除网页本身特性外，搜索引擎的应用环境和传统信息查询也有些不同，这可以从两个方面考虑。 1、用户行为 和传统IR的用户群相比，虽然搜索引擎的用户群的经验少，但他们的数量却十分巨大。大型商业搜索引擎，如Google，AltaVista，百度等，每天都有上1000万次的用户检索。通过对这些用户检索行为的统计分析，我们可以从中获取许多有用信息，这些信息可以大大提高搜索引擎检索结果的准确率，提高检索的质量。 Direct Hit技术就是基于以上思想创立的。这项技术的主要特点是跟踪用户对检索结果的后继行为：哪些站点被用户选择浏览了？用户在这个站点上花费了多少时间？通过对这些数据的统计，搜索引擎就可以提高那些经常被用户选择，而且花了大量时间去浏览的站点的权值，降低那些不太被用户关心的站点的权值。对于新加入系统的网页，系统则先给它们一个缺省的权值，然后由用户来决定它们的重要性。另外，系统还可以利用以前的用户检索行为来对以后的相似检索进行优化，帮助用户尽快发现自己需要的信息。 这个技术的另一个优点就是可以对一个固定的用户的行为进行跟踪和统计，进而发现这个用户的喜好和对检索结果的期待，从而产生专门针对该用户的检索结果。这就是我们后面会提到的个性化检索。例如，一个做建筑材料的工程师，当他检索“windows”，他最大的可能是关注有关窗户的问题；一个计算机工程师，同样的检索则更关心微软的Windows产品。通过几次用户检索行为的跟踪学习，我们就可以获得这些信息，进而在以后的检索中，我们就对检索的输出结果进行针对用户的适应性调整。 图10-1 Inktomi提供的几种搜索引擎技术的比较 Direct Hit公司的Gary Cullis在搜索引擎1999年年会上将搜索引擎使用的四种技术，即： 根据网页本身信息（Author） 根据超链链接关系（Other Author） 人工编辑产生的目录系统（Editor） 根据用户行为（User） 进行了比较，如图10-1所示，得出根据用户行为的技术比其它几种技术无论在查准率和查全率上都有相当多的优势。 2、新词的产生 在本章的第一节，我们提到过词典Σ，但没有强调它的重要性。事实上，它是以关键词为查询表示的任何信息检索系统的基础，中文尤其如此。在传统信息检索场合，例如图书馆，信息资源相对稳定，信息内容相对成熟，词典也就相对稳定，没有表现出突出的矛盾。网络环境下，用户的信息需求很宽泛，特别是“时代感”很强，关注的内容与社会新闻和事件经常紧密相关，因此在查询中常常会有那些时髦的新词，例如“大腕”，“美眉”之类。从我们前面介绍的倒排表工作原理可知，如果词典中没有相应的词，就不可能查到含有它们的网页（严格说是“不能有效地”查到它们，原因见后）。因此，获得新词，将它们及时地加入词典中，是维护运行搜索引擎的一个重要工作。下面是关于这一问题的论述。 简单的讲，词典就是一个译码器，它分配给词典中的每一个条目一个唯一的整型编码。前面我们已经论述过词典在预处理和查询服务两个阶段的必要性。在这里，我们从系统设计的高度再分析一下词典的用途。我们将系统分为核心和外围应用，图10-2显示了词典的地位，它相当于系统内核和外围之间的一座桥梁。外围应用通常是和系统输入和输出（广义的）打交道的，它们面临的数据千差万别。如果让核心直接处理这些形态各异的数据，就会导致系统核心代码的急剧膨胀，系统运行效率迅速降低。通过词典的处理，将各种数据以统一的整型编码的形式交给系统内核，使得系统内核的处理简单，保证了系统的运行效率。 图10-2 词典在系统中的地位 既然词典处于桥梁的地位，那么词典本身的设计就十分的关键。天网系统采取了Hash表的方法来实现系统的词典。对于每一个输入数据Dinput，按照分布式搜集策略部分的分析，我们可以将其对应到一个大整数。我们记Hash表的大小为h_size，对任意一个输入数据，我们根据公式都可以获得它Hash表的入口地址： 其中的Fkey就是我们按照公式得到的Hash的散列函数。任何值域小于定义域的散列函数，都不能保证没有冲突，这就要求我们的散列函数造成冲突的概率尽量的小。通过选择适当的h_size和散列函数，我们可以控制Hash的平均拉链长度。 对于散列函数Fkey，我们把593,286个项数据放入特征项大小为100万的Hash表中散列，得到的平均拉链长度为1.32。这意味着，我们对任何一个数据Dinput操作时，需要的Hash相关的操作为1.32次。其它的相关操作，如Fkey的运算、Hash表的增删改查，都是常数复杂度。因此，我们可以获得词典的运算复杂度为O(1)。 在进行中文分词时，就需要依赖中文词典。复旦大学在它们的文档分类系统中，使用基于Church提出的计算互信息和χ2统计量的方法对文档进行专有词汇学习，所提取的专有词汇（5,000个）接近该系统使用的原始词典大小（11,000个词条）的一半。结合关键词筛选的专有词汇学习技术使系统对开放语料的分类准确率提高了15%。所以，按照需要不断扩大词典的容量是必须的。 如何扩大词典的容量？回顾我们对系统的分析，系统只有两个和外界数据的接口，即Web和用户检索。天网选择用户的检索进行学习，其理由如下： 首先，学习词汇是为了满足用户的检索需求，提高检索的质量。通过对用户检索数据的分析，从中学习新词，针对性强，更能提高检索的质量。 其次，从统计上来看，Web上的数据和用户检索的字符串有着很大的差别。Web网页中的中文大部分都是连写在一起的句子，以标点符号分开。而用户输入的检索字符串，根据我们的统计，大部分是词汇和词汇组成的短语。在网页中，面对一串连续的中文字符串，我们很难从中间提取出新词。而我们对用户的检索输入做一定的简单处理，即可以比较方便的学习到新的词汇。 我们可以通过如下步骤分析： 图10-3 新词学习 词汇统计部分将用户的检索字符串进行一定的分析和筛选处理，并对通过筛选的词汇进行频率统计。 1、用户输入的检索有一部分是复杂的逻辑检索（大约20%），我们应该首先将这些带有逻辑运算符号的检索字符串转化为简单检索形式。 2、我们发现，检索中有大量的英文检索和中英混合检索，我们这里处理的是中文新词学习，因此我们要将所有的英文词汇过滤。 3、我们前面已经提到，对于过长的中文字符串，它是一个词汇的可能性极小，为了提高学习的准确度，我们定义一个学习词汇的最大长度n，把所有检索字符串串长大于n的过滤掉。 4、我们对这些合法的“可能新词”进行学习，统计出每个词汇的检索频率。 词汇筛选部分主要有两个步骤。首先进行词频筛选，将低频的检索排除在新词之外。众所周知，搜索引擎用户可以随便的检索任何内容，对于那些只有极少数人关心的生僻词汇，我们不用加入到词典中，因为词典的过度膨胀会在一定程度上降低系统运行的效率。另外，有很多的用户不能十分确定他们要检索的中文的正确拼写，或者在检索时不小心输入错误，如将“搜狐”输入成为“搜虎”。通过词频的筛选，可以在一定程度上解决这些问题。另外，统计得来的候选词汇，有一部分在我们的词典中已经存在，需要将它们过滤；还有一部分是两个或多个合法词汇组成的短语，一样需要将它们过滤掉，如“计算机网络”。 学得的新词将和搜集端从网页中提取的特征项共同组成新的词典，为以后的搜集和特征项提取服务。通过新词学习技术，使得系统对于新词检索的准确率大大提高，表10-1给出了新词学习前后检索准确率的对比数据。 表10-1新词学习对检索准确率的影响 由于篇幅原因，我们仅列出了10个新词的检索结果. 通过我们对100个新词的检索结果的统计，我们获得更新前的平均检索准确率为49.7%，更新后的平均准确率为78.8%. 即搜索引擎系统对于新词的平均检索准确率提高了58.6%.]]></description>
		<wfw:commentRss>http://scseoer.com/web-query-model-new-information.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>链接分析</title>
		<link>http://scseoer.com/link-analysis.html</link>
		<comments>http://scseoer.com/link-analysis.html#comments</comments>
		<pubDate>Thu, 04 Aug 2011 08:30:13 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[权重]]></category>
		<category><![CDATA[网页]]></category>
		<category><![CDATA[链接]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1613</guid>
		<description><![CDATA[从开发利用的角度看，网页和普通文本的不同主要反映在两个方面：HTML标签和网页之间的超链接。 我们知道，HTML设计有丰富的标签，是网页作者用于将网页的不同部分以不同的形式呈现给用户的手段，包括文字的布局，字体、字号的变化，等等，主要追求的是视觉效果。因此，标签能给我们提示其中文字的重要程度。例如，常识告诉我们，在同一篇文字中，比较大的字体往往是作者比较强调的内容；而在一版（以区别“一篇”，如同报纸）内容分块、且有一定布局的文字上，放在前面和中间的应该是作者比较强调的，等等。许多著名搜索引擎在网页的预处理阶段记录了这些信息，并用于结果排序。例如Alta Vista, Inktomi, Excite, Infoseek，等等。 链接反映的是网页之间形成的“参考”、“引用”和“推荐”关系。可以合理的假设，若一篇网页被较多的其他网页链接，则它相对较被人关注，其内容应该是较重要、或者较有用。因此，可以认为一个网页的“入度”（指向它的网页的个数）是衡量它重要程度的一种有意义的指标。这和科技论文的情况类似，被引用较多的就是较好的文章。同时，人们注意到，网页的“出度”（从它连出的超链个数）对分析网上信息的状况也很有意义的，因此可以考虑同时用两个指标来衡量网页。这些想法即是斯坦福大学Google研究小组和IBM公司的Clever系统开发小组几乎在同一时间分别提出著名的PageRank技术和HITS技术的基础。 可以用一种“随机冲浪”模型来作为PageRank的理论基础，该模型描述网络用户对网页的访问行为，假设如下： 用户随机的选择一个网页作为上网的起始网页； 看完这个网页后，从该网页内所含的超链内随机的选择一个页面继续进行浏览； 沿着超链前进了一定数目的网页后，用户对这个主题感到厌倦，重新随机选择一个网页进行浏览，如此反复。 按照以上的用户行为模型，每个网页可能被访问到的次数越多就越重要，这样的“可能被访问的次数”也就定义为网页的权值，PageRank值。如何计算这个权值呢？PageRank采用以下公式进行计算： 其中Wj代表第j个网页的权值；lij只取0、1值，代表从网页i到网页j是否存在链接；ni代表网页i有多少个连向其它网页的链接；d代表“随机冲浪”中沿着链接访问网页的平均次数。选择合适的初始数值，递归的使用上述公式，即可得到理想的网页权值。 IBM研究院Clever系统中的相应技术称为HITS（Hyperlink-Induced Topic Search）。Clever 描述两种类型的网页： “权威型（Authority）网页”：对于一个特定的检索，该网页提供最好的相关信息； “目录型（Hub）网页”：该网页提供很多指向其它高质量权威型网页的超链。 进而在每个网页上定义“目录型权值”和“权威型权值”两个参数。当遇到一个检索时，Clever先利用检索的关键词得到一个网页的根集合，如从搜索引擎返回结果取前200个网页；然后根据这个集合在整个网页有向图中的位置来扩展这个根集合。具体办法是，将被链接（包括链出和链入）的网页加入到这个根集合中，形成一个新的集合；依据指定的网页规模进行扩展，如，使根集合扩展到一个包含1,000到5,000个网页的集合。 在得到这个集合后，就开始计算集合中每个网页的目录型权值和权威型权值。Clever的做法是采用目录型网页和权威型网页相互评价的办法进行递归计算。对于一个网页p，用xp来表示网页p的权威型权值，用yp来表示它的目录型权值，并且用如下公式进行计算： 这样的递归式也容易用矩阵方法表示。令所有选出来的网页都进行标号，我们得到所有网页的编号集{1,2,…,n}。令相邻矩阵A 为一个n×n的矩阵，如果存在一个从网页i链接到网页j 的超链，就令矩阵中的第（i,j）个元素置为1，其它各项置为0。同时，我们将所有网页的权威型权值x和目录型权值y都表示成向量形式x = (x1, x2, … xn)，y = (y1, y2, … yn)。由此我们可以得到计算x和y的简单矩阵公式：y=A⋅x， x=AT⋅y，其中是AT的转置矩阵。进一步，我们有： 经过一定次数的递归运算后，会得到集合中每个网页的权威型权值和目录型权值。按照这两个不同的权值，分别取出前k个返回给用户。根据Clever系统自己的测试数据，对于返回给用户的前10个检索结果，Clever系统在50%的情况下获得了高于Yahoo!和AltaVista的用户评价。 通过上面的分析，我们发现这两种方法有很多相似之处。它们都利用了网页和超链组成的有向图，根据相互链接的关系进行递归的运算。但是，两者又有很大的区别，主要在于运算的时机。 Google是在网页搜集告一段落时，离线的使用一定的算法计算每个网页的权值，在检索时只需要从数据库中取出这些数据即可，而不用做额外的运算，这样做的好处是检索的速度快，但丧失了检索时的灵活型。Clever使用即时分析运算策略，每得到一个检索，它都要从数据库中找到相应的网页，同时提取出这些网页和链接构成的有向子图，再运算获得各个网页的相应链接权值。这种方法虽然灵活性强，并且更加精确，但在用户检索时进行如此大量的运算，检索效率显然不高。]]></description>
		<wfw:commentRss>http://scseoer.com/link-analysis.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>传统IR的相关排序技术</title>
		<link>http://scseoer.com/traditional-ir-related-sorting-technique.html</link>
		<comments>http://scseoer.com/traditional-ir-related-sorting-technique.html#comments</comments>
		<pubDate>Thu, 04 Aug 2011 08:19:36 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[向量空间]]></category>
		<category><![CDATA[权重]]></category>
		<category><![CDATA[词频]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1606</guid>
		<description><![CDATA[给定某个文档集合D，大小为M；设两篇文档d1，d2 ∈ D，一个查询q。用什么样的标准来讲“d1与d2相比，前者和q更相关”？这方面最经典、最有影响的工作是Gerald Salton等在30多年前提出的“向量空间模型”（Vector Space Model，VSM）。该模型的基础是如下假设：文档d和查询q的相关性可以由它们包含的共有词汇情况来刻画。 这样，文档d和查询q就都被简化成词汇的集合（多重集）。不失一般性，令 Σ={t1,t2,&#8230;&#8230;tN} 为一个词典，ti为词项，N为它的规模，则： d=&#60;t1m1,t2m2,&#8230;&#8230;tNmN&#62; q=&#60;t1n1,t2n2,&#8230;&#8230;tNnN&#62; 其中，mi，ni，i=1, 2, …, N，表示相应词项出现的次数，即词频TF；如果次数为零，则表示该词项在文档或查询中没有出现。在实际应用中，人们通常去掉ti而直接用mi和ni来表示d和q。 d和q相关程度的评价就以这样两个向量的某种“相近程度”为基础，这其中，有一些细节的变化。 1、上述表示中，词项在文档和查询中出现的次数（词频）是一个基本量，我们称为“词频”模型。在实用中用规格化表示（以一篇文档为例）。 查询q也有同样的表达形式。这里，wi也称为词频，称这种方式为用词频来表示词项在文档或查询中的权重。 2、在许多情况下，为了简便起见mi, ni只在集合{0,1}中取值，表示词项的出现与否，不关心其次数；此时的模型称为“二元模型”。 3、若一个词项ti在许多文档中都有出现（例如“我们”，“大家”等），尽管它可能在文档内部出现的频度也很高，它对于不同文档的区分能力就不会很强，因此它的权重应该相对较小。将这种观念刻画出来，引入词项的文档频率DF的概念。用ki表示词项ti在文档集合D中涉及的文档个数，M是集合D的大小，则文档频率为。 我们需要的是和df成反比的一个量，称之为倒置文档频率IDF，常用的一种定义为，这样结合词频，就有了经典的TF*IDF词项权重的设计 给定某种权重的定量设计，求文档和查询的相关性就变成了求d和q向量的某种距离，最常用的是余弦（cos）距离 上述这些理论，源于传统信息检索领域，针对的是普通文本。这样一种理论虽然从根本上看起来比较粗糙（将文本近似成一个词项集合，完全忽略语法和语义），但几十年来在大量真实语料评估的驱动下，其不断完善的实现在实践中得到普遍认可。 从具体实现的角度看，这样一种理论在倒排文件的数据结构上能够很容易得以实现。给定文档集合D和词典Σ，对D中的每一个d得到其权重表示（那些wi）是预处理的工作，同时自然也得到了所需的M，N等。 现在的问题是，我们需要得到网页（用p来表示）和查询q的相关性。最初，一种简单的方法就是用普通文本作为网页的近似，即，p∝d，只考虑网页中那些用户可见的文字部分，忽略标记和超链等内容，于是上面的理论和实践都可以马上照搬。但人们很快发现这有很大问题，其原因在于传统IR方法的成功有两个重要的内在假设： 被索引的信息本身有很高的质量，至少在信息的组织和内容上有着比较高的质量。在Web出现以前，传统的IR之所以能够行之有效至少在部分上是依赖这一点的。很多的IR产品一般都是针对一个特定的领域，如法律信息、医疗信息、环保信息等等。这样它们可以针对这个领域进行算法的优化，同时，也避免了对一词多义的处理。 检索信息的用户有一定的相关技能和知识。也就是说，当用户面对一个很大的信息源时，他知道通过什么样的手段去提高检索的准确率，但同时又不降低系统的查全率。与此相对应的，传统的IR系统总是提供一套相当复杂的检索语法来满足用户的不同要求。 然而，这些假设在Web上都已不再成立： Web上网页的质量参差不齐，大量的网页组织性、结构性比较差。同时，Web又是一个无所不包的载体，它涉及到政治、经济、教育、生活等各个层面。这使得IR中的很多技术都没有了施展才能的余地。另外，网络上充斥着很多没有任何意义的网页，很多镜像的网页，如果不采取相应的技术处理，将会在很大程度上影响检索质量。 大部分检索用户是没有任何经验的。他们经常只输入一个或者两个检索词来检索他们需要的网页，但会得到大量的返回结果，很难达到满意的程度。很少有用户愿意使用逻辑运算来提高检索的质量。即使这样，在不少用户的输入表达中，依然存在各种各样的问题。 基于此，人们发现原有的IR技术已经不能适应Web的发展，必须改进原有的IR相应技术，研究新的适合Web的技术和算法，提高Web检索的质量。]]></description>
		<wfw:commentRss>http://scseoer.com/traditional-ir-related-sorting-technique.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>相关排序与系统质量评估</title>
		<link>http://scseoer.com/relevance-ranking-system-quality-evaluation.html</link>
		<comments>http://scseoer.com/relevance-ranking-system-quality-evaluation.html#comments</comments>
		<pubDate>Thu, 04 Aug 2011 08:01:24 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[排序]]></category>
		<category><![CDATA[相关性]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1604</guid>
		<description><![CDATA[传统上，人们将信息检索系统返回结果的排序称为“相关排序”（relevance ranking），隐含其中各条目的顺序反映结果和查询的相关程度。在搜索引擎的情形，人们也这么讲，但内涵其实是有了差别。 一方面，搜索引擎维护的内容十分繁杂且不规范，不像传统的图书、文献等有很好的分类体系管理。 另一方面，搜索引擎面对的用户背景广阔，层次多样，不像传统的图书馆所面对的用户通常有相对比较整齐的用户群。 因此，搜索引擎要给出的不是一个狭义的相关序，而是某种反映多种因素的综合统计优先序。检索质量评估的目标是对不同搜索引擎系统的检索质量评估其相对优劣次序。 本章的第一节介绍传统的相关排序技术； 第二节分析网络环境下影响排序的若干新的因素，并讨论如何利用Web间的链接关系进行相关度排序； 第三节给出了考虑这些因素后的一个结果排序的具体实现方案； 第四节介绍搜索引擎系统质量评估的一般技术与方法。]]></description>
		<wfw:commentRss>http://scseoer.com/relevance-ranking-system-quality-evaluation.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>海量Web信息的特征分析</title>
		<link>http://scseoer.com/web-information-feature-analysis.html</link>
		<comments>http://scseoer.com/web-information-feature-analysis.html#comments</comments>
		<pubDate>Thu, 04 Aug 2011 07:59:20 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[相关性]]></category>
		<category><![CDATA[网页]]></category>
		<category><![CDATA[访问次数]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1593</guid>
		<description><![CDATA[我们将天网 2000年4月上旬搜集的100万网页按照被用户访问的次数按降序排序，设该URL序列为U1,U2,…,U1000000，其对应的用户点击次数依次为V1,V2,…,V1000000，它们对应的网页入度为H1,H2,…,H1000000，网页镜像数为C1,C2,…,C1000000，URL目录深度是D1,D2,…,D1000000，另外，我们还增加了一个参照序列，它对每一个URL赋予同等重要度，即S1,S2,…,S1000000，其中Si=1。图9-14，图9-15，图9-16，图9-17分别示意了被用户访问的14万多网页按照用户行为（被点击次数）、网页入度、镜像度及目录深度进行排序后的分布情况。可以看出，被用户点击越多的URL，其网页入度和镜像度也相对地越高，目录深度表现的则不是很明显。 对这100万网页消除镜像网页后得到868,357个有效网页，这其中有131,906个有效的被访问网页，然后我们分别计算出有效网页和有效的被访问网页的入度总和、镜像度总和以及目录深度总和，列于表9-3中。从表中的比例关系可以看出，被访问网页的入度、镜像度都大于平均数（15.19%），而目录深度略小于平均数。如果我们根据入度H(P)、镜像度C(P)和目录深度D(P)来计算网页P的搜索权值W(P)，即： W(P)=f(H(P),C(P),D(P))                     (9-13) 则W(P)应当与H(P)和C(P)呈现某种正比关系，与D(P)成反比关系。这表明网页入度和镜像度越高，或目录深度越浅，网页重要度越大。我们优先搜集短目录的网页，还可以得到一个好处：避免了深度优先搜索，以搜集更多网站的重要网页。 表9-3 各网页参数的分布 图9-14 网页的被访问次数 天网系统的启发式搜集策略已考虑到目录深度这一因素，表明它的效果很好：当系统搜集到国内1/10的网页时已基本遍历完国内所有网站（CNNIC 2000年1月的统计信息表明当时国内有15153个站点）。另外，在制定搜索导向策略时，还可以考虑一些其他措施。比如我们可以配置一些导向词（如用户经常查询的关键词），当导向词和一个网页的相关度很高时，可以赋予它较高的搜索权值。而如果一个URL的父URL有较高权值，则它也应被赋予较高权值。这些因素不是本节的主要考察对象。 我们把URL序列{Ui}对应的用户点击序列{Vi}、入度序列{Hi}、镜像度序列{Ci}、目录深度序列{Di}以及参考序列{Si}分别进行规整化，得到新的序列{Vi&#8216;}、{Hi&#8216;}、{Ci&#8216;}、{Di&#8216;}和{Si&#8216;}。即采用公式（9-14）来计算{Vi}，可得到子序列{Vi&#8216;}（也可采用同样的方法得到其它规整化后的序列）： 图9-15 用户点击url对应网页的入度 图9-16 用户点击url对应网页的镜像度 图9-17 用户点击url对应网页的目录深度 对于{Hi&#8216;}、{Ci&#8216;}和{Si&#8216;}，我们分别求与{Vi&#8216;}的差平方和，得到： 可以看出，网页入度与访问次数的偏差最大，而镜像度与访问次数的偏差和参考序列与访问次数的偏差比较接近。这一结果出乎我们的预料，尤其是我们认为网页入度最有可能与被访问次数相一致，以后可以象Google系统或Clever系统那样被用作影响结果排序（result ranking）的因素，但它与被访问次数的差平方和反而最大。这说明了一般情况下，URL的入度与受用户查询相关度排序影响的用户点击行为呈现某种反比关系，在进行结果排序时不能简单地认为某个URL的入度越大，其检索权值就越高。 图9-18 站内网页的树状结构 通过对实际数据的分析，我们发现，国内有影响的网站的主页、技术文档和书籍的目录主页多获得了比较高的入度，而一般的网页入度都较低。 进一步分析发现，网站一般组织成类似树形的结构，如图9-18所示。大多数载有文章的网页（图中的空心矩形），它们极少被外站的网页所链接，在本站一般也只被一个网页所链接。而主页（图中的椭圆），它们既有超链指向站外，也被站外网页所链接。图中的实心矩形是目录网页，如时代商城目录主页，它们被站外网页所指向，但自己的超链不向外指。图9-18中的三角为一些专门向外指的网站，常被命名为“网络导航”，“友情链接”之类。 进而分析天网的用户查询日志发现，绝大多数用户查询是针对普通网页的，只有少量的是在查找一些站点主页，如北大、清华、中科院、新浪网和方舟等。因而对所有的网页都用入度来和被访问次数计算差平方和是没有什么用处的。在这一启发下，我们对一百万网页中的一万多个主页来求它们被访问次数的差平方和，得到： 从公式（9-18），（9-19），（9-20）可以看出，此时网页入度成为与用户访问次数相关度最好的指标，镜像度与用户行为的相关度也吻合的较好。 综合公式（9-15）至（9-20）的结果，我们得到如下启示：在搜索引擎提供服务时，应当将网站查询和一般网页的查询区分处理，这样一方面可以缩小输出结果范围，提高检索质量外，还应当为这两类查询采用不同的相关度排序算法。如用户在进行网站查询时，除了根据查询项与网页的相关度计算该网页的基本权值外，还要根据其入度和镜像度计算附加权值，检索子系统综合这两个权值以进行结果排序。而对于普通网页，计算附加权值时就可以不考虑网页入度。]]></description>
		<wfw:commentRss>http://scseoer.com/web-information-feature-analysis.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用户行为与Web信息的分布特征</title>
		<link>http://scseoer.com/user-behavior-web-information.html</link>
		<comments>http://scseoer.com/user-behavior-web-information.html#comments</comments>
		<pubDate>Thu, 04 Aug 2011 07:31:55 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[用户行为]]></category>
		<category><![CDATA[网页信息]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1591</guid>
		<description><![CDATA[在2000年4月上旬，天网搜集了1,000,000 个国内网页，这些网页立刻作为新的数据对外提供服务。在随后的14天时间里，有141,779篇网页通过天网的引导被用户访问，总访问次数为400,641。哪些网页被访问，访问了多少次都通过日志文件被记录了下来。我们将基于这些信息来考察Web信息（主要是入度、镜像度和目录深度）的分布特征及其与网页重要度之间的关系。 这里对网页重要度的度量规则定义为：用户访问越多的网页越重要。需要指出的是，用户点击URL的行为是受天网系统的输出页面中结果排序的影响的，如75%的用户点击落在前5个输出页面中，输出页面中，某个URL的权值是使用文档向量空间模型和TF*IDF算法计算出来的，它反映了该URL和用户查询项之间的相关程度，这种排序本身就有其合理性。而且用户在点击一个URL之前，通常先浏览该网页的摘要等信息，如果他对该网页内容感兴趣才去点击它。所以这种受相关度排序影响的用户行为能够很好地反映网页的重要程度。下面我们首先定义几个网页参数—网页入度、镜像度和目录深度，然后具体考察其与网页重要度之间的关系。 “网页P的入度H(P)”是指整个网络中指向网页P的超链数目。正如SCI文章影响因子的计算，一篇文章若较多地被其他文章所引用，那它的影响因子就较大。同样地，我们也认为只有当其他网页的编辑者认为此网页重要时，才会在他们所编辑的网页中加入指向此网页的超链。 “网页P的镜像度C(P)”是指整个网络中网页P的镜像个数。对于一则新闻，我们常常用“被多家报刊杂志转载”来形容它的被关注程度。对于网上的各种信息，如新闻、文学作品、技术文档等，如果它真的被大量网民所关注的话，就会有很多网站把这篇网页拷贝过来，当然也许会被略加改动。 “域名深度”是指域名中包含的子域的个数，“目录深度”是指域名中所包含目录的层数。下面我们将域名深度和目录深度统称为目录深度D(P)。域名和目录都是人们用层次结构组织信息的一种方式。网页处在这种层次结构中的深浅是否与人们对它的关心程度有某种联系？]]></description>
		<wfw:commentRss>http://scseoer.com/user-behavior-web-information.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>缓存替换策略研究</title>
		<link>http://scseoer.com/cache-replacement-policy.html</link>
		<comments>http://scseoer.com/cache-replacement-policy.html#comments</comments>
		<pubDate>Thu, 04 Aug 2011 06:32:33 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[技术]]></category>
		<category><![CDATA[缓存]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1586</guid>
		<description><![CDATA[前面的统计分析表明了查询缓存和热点击缓存的可行性，下面以天网 1999年4月15日到1999年6月10日的查询日志作为输入来对几种缓存替换策略进行比较，选择一种最适合于搜索引擎系统的策略。我们评测的替换策略包括FIFO（First In First Out）、LRU（Least Recently Used）和LFU（Least Frequently Used）三种，其中LFU是带衰减的LFU，即每次发生替换时用某个衰减因子去衰减原来的查询次数并累加新的查询次数。 对于FIFO和LRU这两种替换策略，主要是考察在不同的缓存大小下的命中率，而对于LFU，还多了一个参数，那就是衰减因子，调整衰减因子的大小，LFU策略下缓存的命中率可以有很大的差别。 图9-12 FIFO、LRU和带衰减的LFU的缓存命中率比较 图9-13 3种替换策略的局部比较 表9-2 调整后的LFU与LRU命中率的比较 图9-12给出了FIFO、LRU和带衰减的LFU三种替换策略的缓存命中率，其中对于LFU，我们将衰减因子固定为0.998。从图中可以看出，当缓存的大小到达一定程度时，缓存的命中率可以很高，当缓存的大小为500时，这3种替换策略的缓存命中率都到了60%以上，几乎2/3的查询都可以在缓存中命中，平均的用户查询响应速度就会大大提高。这说明查询缓存的效果很好。同时，我们可以看出LRU和LFU替换策略下的缓存命中率要比FIFO好得多，而在0.998的衰减因子下，LFU比LRU的命中率相差不大，两条线几乎重叠在一起；我们把图9-12中的部分结果局部放大，得到图9-13，可以看出， LFU比LRU略好一些，但效果不是很明显。 实际上，LFU在不同的缓存大小下，取得最佳命中率的衰减因子都不同，如果在不同的缓存大小下调整衰减因子，LFU可以得到比LRU更好的命中率，表9-2是一些调整了衰减因子后的LFU的命中率，可以看出它要比LRU的效果好一些。 综合以上结论，LRU和LFU的缓存命中率要明显好于FIFO，LFU如果固定了衰减因子，其效果和LRU相差不多，如果选取好的衰减因子，可以得到比LRU稍微好一些的效果。考虑到实现的复杂性，LRU和FIFO都比较简单，而LFU在发生替换的时候要进行衰减，必须遍历整个缓存，其替换时间要远远大于LRU和FIFO，而其效果和LRU相差的又不是很多。所以，综合考虑这几种替换策略，LRU是最好的选择。]]></description>
		<wfw:commentRss>http://scseoer.com/cache-replacement-policy.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>基于用户行为的启示</title>
		<link>http://scseoer.com/user-behavior-inspiration.html</link>
		<comments>http://scseoer.com/user-behavior-inspiration.html#comments</comments>
		<pubDate>Thu, 04 Aug 2011 06:27:01 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[查询]]></category>
		<category><![CDATA[点击]]></category>
		<category><![CDATA[缓存]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1582</guid>
		<description><![CDATA[用户查询分布的统计分析表明用户的查询词是非常集中的，这表明在查询中使用缓存的可行性：用户经常查询的词其实是很少的，把这些查询次数较高的词的查询结果放在缓存中，使用容量很小的缓存就能命中大部分的用户查询，这样就可以用较小的空间取得较大的缓存命中率。 假设在缓存中命中一个用户查询需要的延迟是Tm，在磁盘文件中查找一个用户查询需要的时间是Td，缓存命中率是p，这样在引入缓存后，用户查询的平均响应时间变为原来（即未使用缓存）的η倍： 在天网系统中，一次访问硬盘的时间大约是一次访问内存的时间的几十倍，这样就有： 由这个结果可以看出，如果在缓存中命中大部分的用户查询，即缓存命中率较高时，可以大大改善用户查询的平均响应时间。 用户雷同查询项的统计分析表明用户查询有一定的稳定性，这进一步说明了查询缓存的可行性，即在缓存中存放的查询信息及其结果不只是在很短的时间内才有效，可能经过一段时间后还被用户查询，这样缓存的实现就更加有价值了。而相邻N项查询项的查询频率偏差很小且非常稳定，从另一个角度说明了查询缓存的可行性：缓存替换过程不会因为用户查询短期内的变化而产生颠簸现象。 我们对用户在输出结果中翻页情况的统计分析表明用户通常只浏览前几页的内容，这说明了对输出结果进行排序的重要性，即应当尽可能地把用户最想要的网页放在前几页。Direct Hit技术能够跟踪用户对检索结果的后继行为，来获取大量的有用信息，以便提高查询结果排序的合理性。 例如，那些经常为用户所浏览的网页应该被赋予较高的权值。这样做是非常合理的，因为目前几乎所有的搜索引擎系统在响应用户的检索请求并输出结果时，其返回页面中都包含了摘要信息，用户点击一个URL，表明该URL符合他的要求。如果一个URL被很多用户所点击，表明该URL相对重要，我们应当提高其权值，使其排在输出结果的前面。为了根据一个URL被点击的次数来计算其权值，就需要在每次用户点击某个URL时，修改该URL的点击次数。如果计数器放在磁盘上，会引起大量的磁盘I/O，严重影响系统性能（一个大型搜索引擎每秒的访问量通常超过几百次）。 用户点击URL的局部性启发我们可以使用热点击缓存，即在内存中开辟一个空间，将用户点击过的URL放到里面，该URL若再次被点击，其点击次数和权值的修改都可以在内存中完成。因为用户的点击具有一定的局部性，所以只需要将很少的URL都放到内存中就可以在内存中命中绝大部分的用户点击，能够大大提高用户查询的响应速度。 然而如果在计算某个URL的被点击次数时没有具体到某个查询项，根据这样计算出来的URL权值来进行输出页面的URL排序显然是不合理的。然而如果对于用户提交过的每个查询项都维护一个URL列表，空间开销会很大。而我们对查询项考虑与否的URL点击分布的统计分析表明，大部分查询项下的URL点击频率和所有用户点击过的URL点击频率是大致相同的，这样我们在实现热点击缓存的时候，就没有必要再去记录查询项的信息了，只需要记录每个URL本身的信息即可，实现热点击缓存的空间代价和复杂程度就可以大大降低了。 另外，我们验证了搜索引擎系统中用户查询分布是一个自相似的随机过程，其自相关函数是以双曲函数衰减的，即其具备长期依赖性。查询分布的自相似性一方面表明查询分布的局部性特征是长期有效的，为引入查询缓存提供了理论基础，另一方面，类似于人们在发现了网络交通的自相似性后，利用自相似序列来测试Web服务器的性能，查询分布的自相似性对于设计和评价一个大型搜索引擎系统也具有重要的实用价值。]]></description>
		<wfw:commentRss>http://scseoer.com/user-behavior-inspiration.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>查询过程的自相似性</title>
		<link>http://scseoer.com/query-process-self-similarity.html</link>
		<comments>http://scseoer.com/query-process-self-similarity.html#comments</comments>
		<pubDate>Wed, 03 Aug 2011 10:06:09 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[日志]]></category>
		<category><![CDATA[查询]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1561</guid>
		<description><![CDATA[我们在统计每相邻N项查询项之间的频率的差平方和的时候，发现差平方和在长时间内一直比较稳定，似乎具有自相似性的特征，于是可以对查询日志做进一步分析，以验证用户的查询是否具有自相似性。 自相似性直观上说就是一组序列在很长的时间范围内表现出结构上的相似性。自相似模型的主要特点是长期依赖性，而不象泊松分布那样只能体现出来短期的依赖性。下面我们首先引入自相似性随机过程的定义。 定义9-1设X是一个广义平稳随机过程，其均值为μ，方差为δ2，自相关函数为ρ(τ)，如果ρ(τ)具有以下形式： 其中L(τ)一个在τ趋于无穷大时缓慢变化的函数，即，对所有的x&#62;0成立。现将X分为大小为m、非交叠的子块（聚合过程），用每个子块的均值所组成的序列表示一个随机过程，即： 对每一个m，X(m)都表示一个广义平稳随机过程，而ρ(m)(τ)表示X(m)的自相关函数. 如果对所有的m，聚合过程X(m)有着和X完全相同的自相关函数： 则称X为一个（严格二阶）自相似的随机过程，其自相似系数为H=1-β/2。 验证一个随机序列的自相似性，直观上的办法是取不同的m值，看不同聚合过程的分布图形是否相似，是否仍符合一般自相似性的序列的图形特征。进而我们可以采用如下的数学方法从理论上验证一个随机序列是否是自相似性的： 设X = （X1，X2，……，Xn）为待验证的随机序列，μ是这个序列的均值，S2(n)为这个序列的方差。我们先按公式（9-10）计算R/S统计值（rescaled adjusted range statistic）然后计算log(R(n)/S(n))，对于不同的n，取横坐标为log(n)，纵坐标为log(R(n)/S(n))作图，各个点和原点的连线的斜率应该比较接近，如果用一条直线来拟合，这条直线的斜率如果在0.5到1之间，这个序列就满足自相似性，如果在0.7以上，这个序列就具有很强的自相似性了。 图9-8 相邻500项中不同查询项的分布 图9-9 相邻1000项中不同查询项的分布 我们首先从直观上观察查询分布图是否符合自相似性特征。先将用户的查询每500项分为一组，统计每一组中不同的查询项的个数，以组号为横坐标，不同的查询个数为纵坐标，得到图9-8。然后调整组的大小为1000（即m=2），2000(即m=5)，做同样的统计，得到图9-9和9-10。自相似性的序列其聚合后的分布图形仍能保持结构上的相似，其结果并不会因为聚合后就变的平缓了。而从图9-9和9-10中可以看出，用户查询分布满足上述特性。 图9-10 相邻2000项中不同查询项的分布 图9-11 查询项分布的自相似性特征 接着，我们采用前面讲过的数学方法来严格地验证查询分布的自相似性。以天网日志中的数据为基础，利用公式（9-10）分别计算出log(R(n)/S(n))和log(n)，并以为横坐标，log(R(n)/S(n))为纵坐标得到函数图像如图9-11所示。可以看出几乎所有点都在斜率为0.58和0.82的直线之间，我们通过用最小二乘法来做直线拟和，求出拟合直线的斜率（即Hurst参数）是0.67。当hurst因子介于0.5和1之间时，随机过程就是自相似的。这样，我们就验证了用户查询具备良好的自相似性。 本节的分析都是对天网某个时期的日志进行统计的，根据自相似性的特点，我们可以知道用户的查询是具有长期稳定性的，这样就可以将在前面的分析中得到的结果推广到搜索引擎长期以来的查询行为中，而且可以认为在今后相当长的时期，这些结果仍然有效。]]></description>
		<wfw:commentRss>http://scseoer.com/query-process-self-similarity.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>考虑与不考虑查询项时点击URL分布的对比分析</title>
		<link>http://scseoer.com/clicks-url.html</link>
		<comments>http://scseoer.com/clicks-url.html#comments</comments>
		<pubDate>Wed, 03 Aug 2011 09:50:07 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[点击]]></category>
		<category><![CDATA[统计]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1555</guid>
		<description><![CDATA[对于点击URL的分布情况还有另外一种统计方法，即针对用户查询词的统计，因为用户的每一次点击都是在某个查询的结果中进行的，这种统计的方法就是把用户的点击和相应的查询联系起来。其具体方法是：将点击的URL按其对应的查询词分类，统计每个查询词下各个URL点击的次数。 图9-7 考虑查询项与否的URL分布情况 这样我们就得到了两种统计方法的结果，并且我们对这两种方法进行了比较。进行比较的方法是：在针对查询项的统计结果中，每个查询词Qi下每个被点击的URL页面Uj都有一个点击次数Wij，在不考虑查询的URL统计中，该URL也有一个点击次数Wj。在考虑查询项的点击次数的统计中，某个查询项Qi下的URL点击次数形成一个向量： 同时，这些URL在不考虑查询项时的URL点击次数也对应着一个向量： 对于每个查询项，我们计算这两个向量的夹角余弦值： 这个夹角的余弦值越接近1，说明两个向量的夹角越小，两个向量的角度越接近，两个向量中各个分量占的比率越接近，即两种统计中，各个URL的点击次数占的百分比越接近。我们对用户点击次数最多的10000个词按上述方法做了比较，比较结果如图9-7所示（横坐标是查询词的编号，纵坐标是该查询词按上面方法计算的余弦值）。由图9-7可以看出，针对大部分的查询词计算出来的余弦值都是在0.8以上，这表明，在大部分的查询项下URL的点击频率和在所有查询项URL的总点击频率基本上是一致的。]]></description>
		<wfw:commentRss>http://scseoer.com/clicks-url.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用户点击URL的分布情况</title>
		<link>http://scseoer.com/clicks-url-distribution.html</link>
		<comments>http://scseoer.com/clicks-url-distribution.html#comments</comments>
		<pubDate>Wed, 03 Aug 2011 09:44:12 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[URL]]></category>
		<category><![CDATA[点击]]></category>
		<category><![CDATA[统计]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1552</guid>
		<description><![CDATA[我们用2000年4月份天网的查询日志来统计用户点击URL的分布情况。这里我们假设用户点击的URL序列为S1={u1 , u2, … , un}，其中这n个URL中共有m个是不同的，按其被点击次数进行降序排序得到序列S2={U1, U2, … , Um}，而S3={C1, C2,…, Cm}是与S2对应的被点击次数序列。按公式（9-1）的计算方法，我们可以得到：统计序列S2中前某个百分比的URL其对应点击次数占总点击次数的比率Y，其统计结果如图9-6所示，其中横坐标表示所选URL的数目占用户点击的URL总数的比率，纵坐标表示所选URL的被点击数目占用户点击总数的比率。 图9-6 用户点击URL的分布情况 从图9-6的统计结果可以看出，用户点击的URL实际上也是非常集中的，2000年4月天网1.0系统的数据库一共维护了100多万有效页面，但是在统计数据中被点击的URL只有16万多个，还不到总的有效页面的1/6。而且在被点击的页面中常被用户点击的也是相当集中的，超过50%的页面只被点击了一次，不到1/3的页面的点击次数占到了总点击次数的2/3。这就表明了用户点击URL也具有很强的局部性。]]></description>
		<wfw:commentRss>http://scseoer.com/clicks-url-distribution.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用户在输出结果中的翻页情况统计</title>
		<link>http://scseoer.com/page-statistics.html</link>
		<comments>http://scseoer.com/page-statistics.html#comments</comments>
		<pubDate>Wed, 03 Aug 2011 09:40:46 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[用户]]></category>
		<category><![CDATA[统计]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1549</guid>
		<description><![CDATA[我们用2000年4月份天网系统的查询日志来统计用户点击URL的翻页情况，其中该日志记录了近50万的用户点击情况，包括用户点击的URL及该URL所在输出结果中的页号。具体做法是：统计相同页号的页面点击次数占总点击次数的百分比。假设天网系统中能够提供n个显示页面（在当时的实际系统中n=2000，每个页面包含10个网页信息），用{P1 , … , Pn}来表示，它们对应的点击次数分别为C1 , … , Cn。对第i个页面，我们根据公式9-5计算其点击次数占总点击次数的百分比Yi。得到的结果如表9-1和图9-5所示（横坐标是页号，纵坐标是该页面的被点击次数占总点击次数的比率）。 图9-5 用户翻页情况统计 其中前面5页中URL点击次数占总点击次数的比例列在了表9-1中，可以看出大部分的用户点击都落在前面几页中，象第一页的用户点击占总点击的47%，而前面5页的点击占到了总点击的75%以上。而图9-5表明用户很少浏览第100页以后的内容。这说明用户很少会在查询结果中翻很多页，用户一般就看看前面几页的内容而已。]]></description>
		<wfw:commentRss>http://scseoer.com/page-statistics.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>相邻N项查询词的偏差分析</title>
		<link>http://scseoer.com/deviation-analysis.html</link>
		<comments>http://scseoer.com/deviation-analysis.html#comments</comments>
		<pubDate>Wed, 03 Aug 2011 09:35:26 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[日志]]></category>
		<category><![CDATA[统计]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1543</guid>
		<description><![CDATA[根据天网1999年4月15日到1999年6月10日的查询日志，对其中相邻N项用户查询词的频率的差平方和进行了统计。具体做法如下：将用户查询每1000项分为一组，对于相邻的两组A和B，假设A组中出现的不同的用户查询是(ab1，ab2，……，abk，a1，a2，……，an)，其中abi是A组和B组中所共有的，ai是A中出现但B中没出现的查询。而B组中出现的不同的用户查询是(ab1，ab2，……，abk，b1，……，bm)，其中bi是B组中出现而A组中没出现的。 A和B中的这些不同的查询项构成一个向量空间 我们假设某查询词qi在A中出现的次数为Fai , 对其规整化后作为其特征项Ai 这样就得到了A组的特征向量： (A1，A2，……，Ak，Ak+1，……，Ak+n，Ak+n+1, ……, Ak+n+m) ，其中Ai=Fai/1000。 同样我们可以对这些不同的查询项在B组中出现的查询频率进行规整化后，得到B组的特征向量： (B1，B2，……，Bk，Bk+1，……，Bk+n,Bk+n+1 ……, Bk+n+m) ，其中Bi=Fbi/1000。 图9-4 相邻1000项查询词的频率的差的平方和 我们计算以上两组特征向量的差平方和（如公式9-4所示），计算的结果如图9-4所示。该图显示：大部分的差平方和都是在0.02到0.06之间。它一方面说明了每相邻1000项之间的查询相差不是很大，二是说明了每相邻1000项之间的差别很稳定，即用户的查询不但在短时期内偏差不大，具有短期的相关性，而且这个偏差也比较稳定。]]></description>
		<wfw:commentRss>http://scseoer.com/deviation-analysis.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>雷同查询词的衰减统计</title>
		<link>http://scseoer.com/same-query-word-attenuation-statistics.html</link>
		<comments>http://scseoer.com/same-query-word-attenuation-statistics.html#comments</comments>
		<pubDate>Wed, 03 Aug 2011 09:05:17 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[用户查询]]></category>
		<category><![CDATA[统计]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1540</guid>
		<description><![CDATA[基于天网1999年4月15日到1999年6月10日期间的日志记录，对用户雷同查询项的衰减情况进行统计分析，这里，我们把序列S1进行了分组，每相邻1000项分为一组，并假设第i组的查询序列为Ai={qi1 , … , qi1000}，我们用T1表示A1中不同的查询项组成的集合，然后计算后面各组的查询项中有多少个查询项出现在T1中，即对于Ai，我们计算Yi的值： 图9-3 雷同查询词的衰减 当取不同的i值时就可以得到不同的Yi值，其结果反映在图9-3中，其中横坐标表示组号，即第几组1000项，纵坐标表示该组查询项落在第1组查询项中的个数。从统计结果可以看出，第1组查询中的部分关键词或多或少地在其随后的多组查询中也出现了，直到第48组才完全消失，这表明用户的查询具有一定的稳定性。]]></description>
		<wfw:commentRss>http://scseoer.com/same-query-word-attenuation-statistics.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用户查询词的分布情况</title>
		<link>http://scseoer.com/user-query-distribution.html</link>
		<comments>http://scseoer.com/user-query-distribution.html#comments</comments>
		<pubDate>Wed, 03 Aug 2011 09:01:28 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[函数]]></category>
		<category><![CDATA[用户查询]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1535</guid>
		<description><![CDATA[我们以天网1999年4月15日到1999年6月10日期间的日志记录作为分析对象，首先统计了用户查询词的分布情况。这里我们采用本章开头介绍的那种统计分析思路，假设用户的查询词序列为S1={q1 , q2 , … , qn}，其中这n项查询词中共有m个不同的查询词，按其查询次数进行降序排列得到序列S2={Q1 , Q2 , … , Qm}，而S3={C1 , C2 ,…, Cm}是与S2对应的查询次数序列。我们希望考察序列S2中前某个百分比的查询词其对应查询次数占总查询次数的比率Y，即计算公式（9-1）的值: 图9-1 查询词的分布情况 通过对分析对象进行统计，我们得到n=9.6&#215;105，而m=1.6&#215;105。若以0.01作为x取值的跨度，可以计算得到一系列的Y值，如图9-1所示（其中X轴是用户查询词占查询词总数的百分比，Y轴是与X轴的百分比相对应的查询词的查询次数总和占总的查询次数的百分比）。该图显示，用户的查询词是非常集中的。例如，前20%的查询词的查询次数占了总查询次数的80%，即满足80/20规则，也就是商业贸易中常提到的：80%的交易来自20%的客户。 图9-2 查询词分布函数及其拟合函数 我们对图9-1中的查询词分布曲线进行函数拟合，得到其拟合函数，如图9-2所示。我们发现拟合函数具有幂函数的特征，其形式为： 这种幂函数具有这样一个特征(xa(a&#60;1)))：在x越接近0的地方，y值增长越快，在x接近1的地方y的变化趋于平缓。这也表明了查询词的分布具有很强的局部性：绝大多数用户查询的关键词落在了相对很小的一个集合上。]]></description>
		<wfw:commentRss>http://scseoer.com/user-query-distribution.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用户查询与点击日志</title>
		<link>http://scseoer.com/user-query-click-log.html</link>
		<comments>http://scseoer.com/user-query-click-log.html#comments</comments>
		<pubDate>Wed, 03 Aug 2011 08:52:31 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[日志记录]]></category>
		<category><![CDATA[用户查询]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1531</guid>
		<description><![CDATA[一般的搜索引擎系统主要维护了两类信息，一类是和搜集到的Web页面相关的信息，另一类是在服务过程中收集到的用户行为信息（记录在所谓的日志文件中）。 前者指的是机器人从网上抓取的网页经过分析器分析处理后得到的信息，主要包括网页所包含的关键词、摘要信息、元信息（如网页作者、长度、修改时间等）以及URL超链信息，这类信息通常是作为输出信息给用户看的。而后一类信息主要包括用户输入的查询项，查询时间，用户的IP地址，用户在输出页面中所点击感兴趣页面的URL。这两类信息的数据量都很大，在天网系统中它们都已超过千万量级。 天网日志文件分为用户查询日志和用户点击日志。其中用户查询日志是在用户提交查询请求时记录的，它记录了用户查询时提交的关键词、提交时间、用户IP、页号（查询结果分页显示，每页显示10个查询结果，用户首次查询页号为1， 用户翻页时的页号即为用户选择的结果页面号）、是否在缓存中命中等信息。用户查询日志的一个简单的记录格式为： 用户查询日志的一个简单的记录格式 用户点击日志是用户浏览查询结果时点击页面时记录的，它记录了用户点击页面的时间、点击页面的URL、用户IP、点击页面的序号（该页面在查询结果中的位置）、该点击对应的查询词等信息。用户点击日志的一个简单的记录格式为： 用户点击日志的一个简单的记录格式 根据天网系统维护的日志数据，如下统计分析了用户行为的分布特征，主要包括： 用户查询词的分布情况 雷同查询词的衰减统计 相邻N项查询项的偏差分析 用户点击URL的分布情况 用户在输出结果中的翻页情况 在分析上述统计结果时，我们发现用户行为表现出极为强烈的局部性，这启发我们采用查询缓存和热点击缓存来提高系统性能。我们以日志中的用户行为作为输入，模拟实现FIFO、LRU以及带衰减的LFU等3种缓存替换策略，测试了其缓存命中率，比较了它们的优劣。 另外，我们发现相邻N项查询项的偏差分布是稳定的，于是猜想用户查询项的分布过程符合自相似性，进而我们对此进行了验证，证明我们的猜测是对的。类似于互联网上网络流量的自相似性特征，该结论对于设计和评价一个搜索引擎系统具有很高的指导意义。 另外，我们还根据天网系统所搜集的网页信息统计分析了Web信息的一些重要参数的分布特征，这些参数包括网页入度、目录深度及镜像度等（这些参数将在后面第四节中定义）。随后我们分别求出了这些参数的分布与用户点击URL的分布的差平方和，依此来度量这些参数对网页重要度的影响。同时，我们也得出了URL的入度、镜像度等参数与用户行为反馈后的相关度的方差分析对搜索引擎结果排序算法（ranking algorithm）的一些启示。这些结论可以被用来提高搜索引擎的检索质量。]]></description>
		<wfw:commentRss>http://scseoer.com/user-query-click-log.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>用户行为的特征及缓存的应用</title>
		<link>http://scseoer.com/user-behavior-characteristics-application-cache.html</link>
		<comments>http://scseoer.com/user-behavior-characteristics-application-cache.html#comments</comments>
		<pubDate>Wed, 03 Aug 2011 08:46:15 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[日志]]></category>
		<category><![CDATA[用户行为]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1522</guid>
		<description><![CDATA[通过对大量用户行为的统计分析，我们发现搜索引擎用户输入的查询词语和查询过程中所点击到的网页URL均表现出明显的时间局部性；而且用户查询的分布符合幂函数特征并具有良好的自相似性。这些规律可能有多方面的价值，其中之一就是用来指导查询缓存的设计。而搜索引擎所访问数据的特殊性使得我们在缓存设计中有必要重新考察相关的细节。 因此，本章除通过数据具体展示上述规律外，作为应用，还比较了查询缓存设计中FIFO，LRU及带衰减的LFU等3种缓存替换策略。最后，本章还讨论了基于用户行为考察海量网页信息的分布特征，并利用URL的入度、镜像度、目录深度等网页参数与用户行为反馈后的相关度的方差分析, 阐明其对优化搜索引擎系统排序算法的启示。 在对一些观察数据（或者测试数据）进行统计分析，以得到关于这些数据的某些总体性质的时候，问题常常可以如下抽象：给定一个集合，S={e1,e2,&#8230;&#8230;en}，，假设对其中的元素总共进行了N次观察（或者说这些元素在实验中总共出现了N次）；这N次出现分布到具体的元素上就形成了一个整数序列：C=&#60;c1,c2,&#8230;&#8230;cn&#62;，其中。将C的元素降序排列，可得到，其中，，亦即。 根据不同的需求，我们可能关心如下几个统计量： 1、集合S中元素出现频度（相当于概率密度）分布的递减情况，亦称为频度频级分布。 2、集合S中元素出现频度按降序排列后的前缀累积分布情况（相当于概率分布函数） 3、有时为了需要，对（2）中的i做变换：i=n⋅x,即有（相当于规格化） 在直角坐标系内画出有序对(x,y)的散点图，就可以很容易得到“A%的元素覆盖了B%的观察”之类的结论。这样的统计分析方法在这一章会多次用到。 本章的主要内容安排如下： 第一节简要介绍了一般搜索引擎系统中用户的查询日志与点击日志所记录的基本信息； 第二节对近两个月的天网日志进行了分析，得到了用户行为的一些重要的统计特征； 基于这些特征分析，第三节讨论了搜索引擎系统使用查询缓存的必要性，并比较了几种数据替换策略； 第四节基于用户的行为对海量Web信息的分布特征进行了分析。]]></description>
		<wfw:commentRss>http://scseoer.com/user-behavior-characteristics-application-cache.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>高性能检索子系统小结</title>
		<link>http://scseoer.com/retrieval-system.html</link>
		<comments>http://scseoer.com/retrieval-system.html#comments</comments>
		<pubDate>Wed, 03 Aug 2011 08:35:19 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[技术]]></category>
		<category><![CDATA[检索]]></category>
		<category><![CDATA[算法]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1520</guid>
		<description><![CDATA[第一节通过分析天网检索子系统的设计与实现，概述了检索系统所要关心的若干基本技术。检索系统的设计目标围绕检索效果和检索效率两个方面展开。系统通过一个集成框架把多种技术融合到一起，包括中文文本自动分类技术、中文信息提取技术等，以求能不断提高检索质量。天网检索分布式系统构架有效解决了系统可扩展性问题，它是高效检索系统实现的物理基础。而检索系统在索引创建和检索上的相关实现技术，则是高效检索系统实现的保证。 第二节着重从 I/O 数据量的角度分析了影响倒排文件查询效率的各种因素，以及提高系统效率的一些技术，试图定量化地描述数据规模和查询效率之间关系。所得到的结论可以指导在计算机系统硬件、数据规模、系统性能（响应时间、吞吐量）之间做预测和评价，作为评估信息检索系统设计的一个依据。我们同时指出，所讨论的模型没有涉及其他一些优化技术，特别是压缩技术和缓存技术。这样一些优化技术实际上能够在相当程度上有效提高系统吞吐率。在这个意义上，依据该节模型所得的结论会比较偏于保守。 第三节在天网实践的基础上，提出了一种基于自动识别新词技术的混合索引技术。与其它几种常用索引词选择技术相比，这一技术能够有效提高搜索引擎检索效率，同时不会导致检索效果下降。 第四节研究了搜索引擎中倒排文件缓存技术。通过分析数据访问序列的局部性特征，以及基于真实数据的缓存仿真实验，探讨了倒排文件缓存优化设计中的性能指标选择问题、替换算法、页面大小和倒排文件组织方式等对缓存性能的影响，得到如下结论： 通过缓存变长的 IO 序列对象，采用 GD-SIZE1 替换算法，可以明显减少磁盘系统 I/O 访问的次数； 通过按页面对齐方式组织倒排文件，选取大的页面作为访问倒排文件的单位，可以使磁盘系统带宽利用率得到优化。]]></description>
		<wfw:commentRss>http://scseoer.com/retrieval-system.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>缓存策略的选择</title>
		<link>http://scseoer.com/cache-strategy-choice.html</link>
		<comments>http://scseoer.com/cache-strategy-choice.html#comments</comments>
		<pubDate>Wed, 03 Aug 2011 08:29:38 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[性能]]></category>
		<category><![CDATA[算法]]></category>
		<category><![CDATA[缓存]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1518</guid>
		<description><![CDATA[我们注意到，现代操作系统的文件系统通常都提供I/O数据的缓存功能，通常以页为单位。也就是说，如果在应用层不安排缓存，应用中发生的I/O操作物理上也都可能在内存发生。文献[彭波,2004b]通过四组缓存仿真实验，验证了倒排文件缓存经过优化设计，可以比文件系统缓存性能更好。 具体的方法可以通过缓存变长的IO序列对象，选择性能更好的GD-SIZE1替换算法，从优化磁盘系统I/O次数的角度来提高系统性能；也可以通过选取大的页面作为访问倒排文件的单位，从优化磁盘系统带宽利用率的角度提高系统性能。 最后按页面对齐的方式组织倒排文件可以进一步优化缓存和系统性能。而这一组织方式下，可以直接把倒排文件页面存放在磁盘设备上，通过直接的设备访问接口，越过文件系统read/write调用来访问倒排文件数据。再加上优化设计的倒排文件缓存，使得索引服务的性能得到进一步的提高。]]></description>
		<wfw:commentRss>http://scseoer.com/cache-strategy-choice.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>负载特性</title>
		<link>http://scseoer.com/load-characteristic.html</link>
		<comments>http://scseoer.com/load-characteristic.html#comments</comments>
		<pubDate>Wed, 03 Aug 2011 08:28:27 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[序列]]></category>
		<category><![CDATA[缓存]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1514</guid>
		<description><![CDATA[这一部分分析负载数据的性质，讨论它们对倒排文件缓存和缓存替换算法的影响。 1、I/O序列对象大小 I/O序列中的对象大小不同，其中由位置数据访问产生的部分是固定长度(32KB)，而对文档数据访问产生的对象大小分布很不均匀，以4KB为单位对其分布统计如图8-8所示。其中值为7.59KB，79%的请求对象长度在64KB以下，同时也有少数较大的数据访问。有效的缓存替换算法需要考虑对象的大小。对大量的小数据对象优先缓存，可以提高缓存的命中率，而对大对象优先缓存可以提高缓存的字节命中率。因为I/O序列反映的是系统I/O请求的次数，所以缓存命中率更为重要。在考虑缓存替换策略时，偏向小对象的方法预计可以获得更好的性能。 2、序列中对象的频度分布 对象被访问的频率是缓存设计的一个重要因素。如果序列中对象访问频率分布非常不均匀，则需要考虑两个问题，一是缓存少数高频对象可以提高性能，另一个是不区分出大量低频对象将降低性能。实际上对象的访问频率和访问的时间局部性是相关的，可以推导出高频的访问对象也会具有较高的访问时间局部性。 I/O序列和PAGE序列的访问频度对其访问频度的序号的分布如图8-9。在计算数据点序号时，对同频度的数据使用最后一个数据点的序号，这样图中曲线平滑，没有尾部数据点堆积，便于分析和比较。总体看，两个序列都存在访问频度分布不均匀的现象，但和通常的Zipf’s分布相比，这种差异还算是很平缓，可以预期频率是倒排文件缓存替换算法应该考虑的一个因素。但只考虑频率的替换算法，如LFU，效果不会很好。两者间，I/O序列的频率特性比PAGE序列更有利于缓存应用。 3、序列中对象的时间间隔分布 序列的时间局部性可以从序列中对同一个对象的两次连续访问的时间间隔分布来考察。使用访问在序列中的位置间隔，而不使用绝对时间，可以屏蔽用户查询密度在各个时间段内的周期性对分析的影响。 I/O序列和PAGE序列的时间间隔分布如图8-10。由于直接的时间间隔分布十分散乱，图中的处理是把距离数据按2000为单位分组，表现的是各组的频度。可以看到对数坐标下，序列的时间间隔分布接近直线，说明具有良好的时间局部性。I/O序列的斜率为1.039，PAGE序列为0.764，表明在同样的缓存大小比例下，I/O序列可以预期得到比PAGE序列更高的缓存命中率。较强的时间局部性有利于缓存设计，对象访问的时新性(freshness)是替换算法需要考虑的一个重要因素。 4、序列的重复模式 序列的空间局部性是指序列中固定模式的重复，这可以通过原始序列和随机排列处理后的序列中的唯一的定长串的个数来说明。空间局部性也是缓存设计需要考虑的因素。 取I/O序列和PAGE序列前10万个数据，处理得到其中长度从1到9的连续串，统计唯一串的个数。再把序列进行随机重排，重复统计。得到序列中指定长度的唯一串的个数如图8-11。随机排列破坏了序列中的重复模式，即破坏了序列的空间局部特性。图中随着串长度的增加，唯一串的个数也增加。随机排列的序列增加速度最快，其空间局部性最差；I/O序列增加得最为平缓，其空间局部性较强，PAGE序列次之。]]></description>
		<wfw:commentRss>http://scseoer.com/load-characteristic.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>倒排文件缓存</title>
		<link>http://scseoer.com/inverted-file-cache.html</link>
		<comments>http://scseoer.com/inverted-file-cache.html#comments</comments>
		<pubDate>Wed, 03 Aug 2011 08:24:06 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[搜集]]></category>
		<category><![CDATA[数据]]></category>
		<category><![CDATA[结构]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1510</guid>
		<description><![CDATA[体系结构 天网检索系统采用分布式体系结构，按文档划分的方式组织数据到多个索引服务节点，它们独立的并行执行用户查询，把各自检索结果提交给查询服务器汇总返回给用户。各级缓存的位置如图8-7。 图8-7 搜索引擎检索系统缓存结构 倒排文件缓存位于索引服务节点上，对查询执行器在执行用户查询过程中访问的倒排文件数据进行缓存。大量统计研究表明用户查询词序列具有良好的局部性，可以预期查询执行器发出的读取这些查询词倒排数据序列也具有同样的性质，这是人们研究倒排文件缓存的基本出发点。 在搜索引擎应用环境下，用户提交的查询中包含查询词个数通常很少，而词间的位置邻近关系对结果排序十分重要。与[Saraiva, et al.,2001]的过滤向量空间模型查询处理技术不同，天网使用带位置数据的全文倒排索引，对多个词的用户查询计算邻近权值。查询执行器访问倒排文件的数据分为两类，一是查询词对应的倒排表中的文档编号和文档内权值数据，称为文档数据；另一部分是查询词对应的出现在每篇文档中的位置数据，称为位置数据。 执行过程中，各个查询词按倒置文档频率降序处理，先读取文档数据，执行文档集合的布尔运算（通常搜索引擎默认为AND），得到一个小的结果集合，同时使用文档内权值数据计算每个结果文档对查询的相关性权值；再读取对应的位置数据，对结果集合进行邻近权值排序。通过索引压缩技术，再结合对高频词使用位图记录文档数据，可以有效控制文档数据的长度。一般情况下，位置数据总量是文档数据量的3～4倍，查询执行中不必全部读取，通过随机访问的倒排索引组织技术，可以减少数据读取量。 天网查询执行器读取倒排文件的数据序列包括文档数据序列和位置数据序列。每次读取的数据长度不固定，但基本可以在一次磁盘系统I/O操作下完成（不考虑文件系统开销和数据组织碎片的条件下），这样的数据序列总称为I/O序列，它的项数代表磁盘系统执行的I/O次数。另外，以固定页面为单位，可以把I/O序列转换为页面访问序列，称为PAGE序列，它的项数对应磁盘系统实际读取数据总量，这可以衡量磁盘系统的带宽使用效率。搜索引擎的查询执行属于磁盘密集型应用，和数据库系统的事务处理应用类似，瓶颈在于磁盘系统每秒能够执行I/O次数的能力，即其IOPS参数；但平均每次访问的数据量比数据库事务处理要大，磁盘系统带宽参数也不能忽略。从实际系统的性能角度分析，与考察PAGE序列相比，考察I/O序列对缓存系统的性能评估更为有意义。 负载数据 我们采用踪迹驱动（trace driven）的方法来研究倒排文件缓存的性质。采用天网2002年11月的用户查询日志，在北大燕穹提供的数据产品中的编号为YQ-QUERYLOG.021203。查询日志记录了用户查询是否被天网的查询结果缓存命中。把被结果缓存命中的查询剔除，就得到实际到达索引服务节点图8-7所示的查询序列。 表8-3  数据集基本统计信息 同时，还需要形成一个该查询序列所针对的文档集合。为此，我们从天网搜集的网页集合中随机抽取一批网页，建立索引，修改查询程序，把访问倒排文件的每次操作记录到日志文件，内容包括访问数据的索引词编号、文件偏移、数据长度、访问类型。其中访问类型采用位置数据块的编号。取经过过滤的查询序列中连续的10万个查询，送入查询程序执行，记录得到此查询序列在天网查询执行器下的倒排文件访问序列。根据访问日志中的索引词编号、访问类型与数据长度可以得到I/O序列，根据文件偏移和数据长度和指定的页面大小(例如4KB)，可以得到PAGE序列。 最后，为了更有效的数据处理，把两个序列中的对象标识（I/O序列中是索引词编号与访问类型，PAGE序列是页面编号）转换为从0开始的连续整数。数据集的统计信息如表8-3所示。]]></description>
		<wfw:commentRss>http://scseoer.com/inverted-file-cache.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>倒排文件缓存机制</title>
		<link>http://scseoer.com/inverted-file-cache-mechanism.html</link>
		<comments>http://scseoer.com/inverted-file-cache-mechanism.html#comments</comments>
		<pubDate>Wed, 03 Aug 2011 08:19:10 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[倒排文件]]></category>
		<category><![CDATA[缓存机制]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1508</guid>
		<description><![CDATA[缓存技术是提高系统性能和可扩展性的一种重要手段，在计算机各个应用领域都有广泛的应用。如何有效的在搜索引擎检索服务系统中使用缓存技术也是近年来学术界广泛关注的问题。 缓存技术的有效性建立在被缓存对象访问序列存在的局部性特征上。与操作系统内存管理、数据库系统和Web代理缓存这些领域大量的研究相比，搜索引擎检索系统上的缓存研究相对较少。它们之间有共性，但由于被缓存对象特征和对象访问模式的差异，又各自具有自己的特点。搜索引擎检索系统中通常被研究的缓存对象可分为三种，即查询结果、布尔操作的中间结果、以及倒排文件。 文献[Xie and O'Hallaron,2002],[Wang, et al.,2001]详细分析了搜索引擎用户查询日志，发现用户查询具有很强的局部性，提出了缓存查询结果的可行性。在文献[Wang, et al.,2001],[Markatos,2001],[Saraiva, et al.,2001]中，进一步研究了缓存替换算法、缓存大小等因素对系统性能的影响。 天网在[Wang, et al.,2001]的基础上实现了查询结果缓存，有效的提高了系统性能。文献[Chidlovskii, et al.,1999]提出语义缓存，把布尔查询的中间结果作为缓存对象，并利用查询结果间的语义关系加速后续查询的执行。这种方法可以充分利用不同查询之间的相关性提高缓存命中率，缺点是限制在布尔查询上，可能影响结果相关性排序。 第三种是倒排文件的缓存，用户查询经过查询器执行，转换为对倒排文件数据的访问序列，这些数据也可以作为缓存对象。[Jonsson, et al.,1998]研究了IR背景下用户交互式查询的倒排文件缓存与查询执行结合的方法，[Saraiva, et al.,2001]研究了一个实际搜索引擎（TodoBR）中的倒排文件缓存对系统效率的影响。 下面我们基于天网的实际运行数据，重点讨论倒排文件缓存的优化设计。与[Saraiva, et al.,2001]相比一个差异在于它使用的是过滤向量空间模型查询处理技术，而天网的查询处理考虑查询词位置邻近关系，使用带位置数据的倒排索引，并使用索引压缩和块随机访问技术提高性能。这种查询处理技术的不同，导致所产生的访问倒排文件数据序列性质的差异。文献中对倒排文件缓存的研究，基本以固定大小的页面为单位，忽略了倒排文件访问数据是变长这一特点；并且缺乏替换策略、数据组织对缓存效率影响的分析。本节就如下问题展开讨论。 缓存性能评估的指标如何选取？ 倒排文件缓存与操作系统的文件缓存相比是否有优势？ 倒排文件的数据组织方式对缓存效率及系统性能的影响如何？]]></description>
		<wfw:commentRss>http://scseoer.com/inverted-file-cache-mechanism.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>混合索引实现</title>
		<link>http://scseoer.com/hybrid-index-realization.html</link>
		<comments>http://scseoer.com/hybrid-index-realization.html#comments</comments>
		<pubDate>Wed, 03 Aug 2011 08:16:19 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[日志]]></category>
		<category><![CDATA[索引]]></category>
		<category><![CDATA[网页]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1504</guid>
		<description><![CDATA[混合索引的实现主要包括未登录词识别、扩展词典组织和分词两个部分。除了两趟分词和扩展词对基本词条的覆盖处理外，索引系统的创建过程和检索过程同一般的索引实现没有区别。 1、未登录词的识别 目前，从语料库中自动识别或者学习词典未登录新词，特别是面向领域的专业词汇以及人名、地名、机构名等专有名词等方面，已经有了大量的研究工作和实用的技术。对文本数据常规的未登录词识别算法一般包括如下步骤： 提取n元组：使用基本词典，将文本进行部分分词，从部分分词结果中提取n元组，即包含n个相邻基本词条的字串。一般n元组的规模很大，不利于后续处理，常通过设定n元组的提取规则加以限制。例如可以设置如下规则：对单字，只有连续出现的单字才能生成n元组；形成新词的n元组必须包含一个单字等。 噪声剔除：删除那些包含低构词能力字的n元组，例如常见的助词“的”、“得”，介词“在”“把”等。对于这些字，由于数量少，可以人工收集包含它们的词。 剔除n元重叠：把那些在n取不同值情况下重复被提取的n元组剔除。 最后剩下的n元组按出现频次降序排列，为识别结果。 未登录词可以从网页文档集合与用户查询日志两种基本语料数据中得到。网页文档集合规模很大，用简单的n元组提取方式执行完整的未登录词识别算法会产生数量巨大的候选元组，难以处理。实际实现时，通过加入一些提取规则限制提取范围，使得在识别效率和识别效果间取得平衡。 第一个规则的基本出发点是，常被用户查询的词或短语应该在文档集合中比较重要，而重要的词往往会在网页中的一些特殊位置和标签中间出现，例如标题，H标签，加重的文字等。网页中这些文字首先被选择执行n元组提取。 第二个规则，网页和普通文本不同，网页中通常会有大量已经被自然分隔的较短的字串，分隔包括标点，网页标签，例如导航链接上的文字，选择框中的文字，表格等等。 这些较短的字串极可能就是一个词，被选取执行n元提取。第三个规则是从网页原文摘要文字中提取n元组。天网搜索引擎使用了文档模型技术对搜集系统得到的网页进行预处理，提取了网页正文的摘要。摘要文本是正文中最重要的内容，而且长度相对于正文全文小很多。通过上述三个规则，可以有效控制未登录词识别执行的数据规模，提高识别效率，而且提取的是整个文档集合中重要的文本内容，对识别效果没有太大损失。 从用户查询日志中识别未登录词，除了使用基本的识别方法外，还可以利用查询日志数据的特点。例如，直接从网页文档语料库中学习新词需要较复杂的处理算法，处理数据量大，而日志文件中用户的查询词通常比较简短，几乎没有完整的句子，只需做一些简单的处理，即可方便地学习新词。而且，如果用户查询词在词典内没有收录，很有可能就是潜在的新词，所以学习新词的准确率也比较高。搜索引擎日志中用户查询词在频度分布上是高度集中的。通过对天网用户查询日志的统计分析表明，前5%的高频词占据了64%以上的总查询次数；前20%的查询词占据了83%以上的总查询次数。我们可以利用查询词的频度分布特性来大量地减少n元组提取过程中处理数据量。而且从提高系统检索效率的角度，对长期保持高频度的用户查询可以直接加入到扩展词典里，越过识别过程。 2、扩展词典组织与分词 识别出的新词保存在扩展词典中。基于扩展词典的分词实际上是一个对基本分词结果序列在扩展词典上的最长匹配查找过程，即输入基本分词结果序列，找到序列中在扩展词典里的所有最长的匹配词条。为了高效实现对分词的支持，先把每个新词字串用基本词典进行分词，转换为一个基本词条的序列。再使用一个散列查找表把基本词条的字串转换为连续的整数编码。扩展词典保存每个词条中基本词条的整数编码，这相当于一个由数字组成的n元组的集合： 图8-5 扩展词典树结构示例 系统中n取2到6，式中t为基本词条编码，D表示扩展词典。在扩展词典保存时，各元组按第k（1≤k6）个元素的t值进行基数排序。再把排序结果每一层上相同t值的节点合并，转换为树结构保存。示例如图8-5所示。 图8-6 扩展词典匹配查找算法 在图8-5中，树节点保存实际上是基本词条的编码，且每一层的兄弟节点按节点内编码数值有序。基于这样数据结构的扩展词典匹配查找算法如图8-6所示。]]></description>
		<wfw:commentRss>http://scseoer.com/hybrid-index-realization.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>混合索引原理</title>
		<link>http://scseoer.com/hybrid-index.html</link>
		<comments>http://scseoer.com/hybrid-index.html#comments</comments>
		<pubDate>Wed, 03 Aug 2011 08:09:34 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[分词]]></category>
		<category><![CDATA[原理]]></category>
		<category><![CDATA[索引]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1501</guid>
		<description><![CDATA[混合索引是在建立倒排索引过程中的一种索引词选择方法与技术。索引词的选择是检索系统实现的一个重要环节。现代搜索引擎普遍采用全文索引技术，把网页文档中提取出来的所有词语都选择参与索引。 在理想情况下，索引词应该是表达文档内容的语义单位，对应着语言学里的词汇词的概念，它是专门表示含义，而其实际意义无法由组合成分相加得到的最小语言单位。但对于自动文档索引过程，识别文档中的词汇词，例如短语十分困难，因此通常选取语法意义上的最小语言单位为索引词。对英文文档，这一过程相对容易。对中文网页文档的索引过程，词间没有空格自然分隔，为索引词的选择带来了新问题。 文献[Nie, et al.,2000]研究表明相对于按字索引，基于自动分词的索引方式具有良好的检索效果。对搜索引擎系统，更出于检索效率的因素，通常通过自动分词来选择索引词。在文档索引过程中，先通过中文自动分词程序的处理，把文档正文分割成为独立的分词单位，然后在这些分词单位基础上选择索引词。分词单位是指具有确定语义或语法功能的基本单位，通常被直接选作索引词。 目前，中文自动分词的成熟技术都是基于分词词典的机械型分词方法，这一方法的主要难点在于分词歧义处理和未登录词的识别，其分词词典规模是制约分词精度的重要因素。我们使用北京大学计算语言所的中文自动分词软件，该分词软件的基本词典规模为6万词。中文自动分词软件使用的词典选词十分严格，随意加入新词将影响分词软件的歧义处理过程，导致分词精度下降。文献[Stokoe, et al.,2003] 研究表明对英文文档数据，信息检索系统加入词歧义处理可以提高检索精度。 对于中文文本，这一问题更加突出，任意扩大分词词典规模而忽略对分词精度的影响会对检索系统的检索效果带来负作用。同时，对处理Web数据，分词基本词典的规模是远远不够的。 一方面，网上大量的常用词、新出现词、专业词汇等没有被收录，从而会被分词程序切分成分离的单字，每个单字被分别索引。这样的词在检索时会按短语查询执行，虽然可以检索出基本相同的结果集合，但执行过程需要从倒排文件中读取多个索引词的倒排项数据，然后执行位置检查，这大大降低了系统的检索效率。 另一方面，分词词典中的分词单位一般很短，常用的短语也会被分词程序切分开，同样这一方式在对短语的查询上效率很低。如果分词程序使用的词典中分词单位过长，切分出短语，又可能使得组成短语的词无法被检索，导致检索系统召回率下降。如何扩大分词词典的规模，使得分词程序能够切分出更多的词，甚至短语，同时又不降低分词程序的分词精度，不降低检索效果是中文搜索引擎检索系统面临的一个基本问题。 天网检索系统采用混合索引技术解决上述问题。这一技术首先用统计方法对索引文档中的未登录词进行识别，把识别出的新词（不被基本词典收录的字串）放入一个扩展词典。这可以有效扩大词典规模，但由于统计方法识别未登录词存在相当的错误率，扩展词典里面也存在不少被错误识别的词。系统目前控制扩展词典规模在50万词语左右。扩展词典在保存时，把识别的新词词条使用基本词典进行分词，保存切分开的基本词序列。 在索引创建过程中，对文档正文进行两趟分词。首先是基于基本分词词典的常规中文分词，采用北京大学计算语言所的分词软件。分词执行中包括复杂的歧义处理过程。第二趟再对基本分词结果使用基于扩展词典的分词，这一分词过程的最小单位是基本词典里的词条，采用正向最大匹配分词算法。两次分词的结果都被选择作为索引词，在倒排文件的创建中都被放入倒排索引词典，这一方法即混合索引。例如：基本词典有“国家”“图书馆”两个基本词条，无“国家图书馆”；系统通过识别，发现“国家图书馆”极为可能是一个词语，于是把它加入到扩展词典。对文档中出现的“…国家图书馆…”字串，第一趟基本分词步骤把它切分为“国家”和“图书馆”两个基本词条，第二趟扩展分词再把它切分为“国家图书馆”，最终索引词包括“国家”“图书馆”和“/2国家图书馆”这样三个单位。扩展分词结果使用转义符“/”标识，转义符后紧接扩展词包含的基本分词词条个数，用于查询时位置关系的计算。 混合索引的检索过程对用户输入的查询串执行同样的两趟分词。首先是基本分词，第二趟再对基本分词结果使用扩展分词。根据扩展分词结果词条包含的基本分词词条个数，标记被扩展分词结果覆盖的基本词条，它们在查询执行过程中无需处理。如上例，当用户输入查询“国家图书馆”，经过两趟分词，被切分为：“国家”“图书馆”，“/2国家图书馆”。其中前两个基本词条被第三个扩展词条覆盖，查询执行中只需直接读取索引词“/2国家图书馆”对应的倒排项数据，即可完成查询执行过程。相对于分别读取“国家”和“图书馆”的倒排项数据，然后按其中的位置数据验证短语关系的方法，使用混合索引大大提高了检索效率。在混合索引条件下，当用户查询“图书馆”时，检索将按正常的查询过程执行，混合索引也不会降低系统的查全率。 与文献[Bahle, et al.,2002] 的短语索引相比，混合索引使用统一的倒排索引词典，没有额外的二级索引词典访问开销；并且混合索引不限制扩展词条为两个基本词条长，可以索引更长的短语，更加灵活。与词索引+Bi-gram索引相比，混合索引使用了未登录词的识别技术，可以有效控制倒排索引词典规模，避免了Bi-gram词典膨胀的问题。 混合索引也是索引结构的规模与检索效率间的一种折衷。一方面，文档中的词被重复索引导致索引结构增大，占用更多的存储资源，另一方面，这些增加的索引，使得更多可能形成词语或短语的字串被索引，可以大大提高对它们的检索效率。实际环境中，系统存储开销相对于检索效率不是那么重要，所以混合索引成为一项可用的技术。]]></description>
		<wfw:commentRss>http://scseoer.com/hybrid-index.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>混合索引技术</title>
		<link>http://scseoer.com/hybrid-indexing-technique.html</link>
		<comments>http://scseoer.com/hybrid-indexing-technique.html#comments</comments>
		<pubDate>Wed, 03 Aug 2011 08:06:01 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[技术]]></category>
		<category><![CDATA[索引]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1499</guid>
		<description><![CDATA[大量的统计研究表明，搜索引擎用户输入查询长度平均较短，并且很少使用系统提供的查询操作符。这种情况下，检索结果排序考虑用户输入的查询词之间的短语关系或者位置邻近关系，对提高检索结果的效果十分重要。 通过丰富倒排文件的数据结构内容，这样的关系有可能在预处理阶段充分地表达出来，从而为检索服务算法的运行提供数据基础。文献[Anh and Moffat,2002]中介绍倒排索引的几种常见级别和索引的压缩技术，其中词级（Word-Level）的倒排索引记录索引词在文档中出现的每个位置信息，检索时通过这些位置信息来执行短语或邻近关系的检查。 词级索引是倒排文件实现短语或邻近查询的一般组织方式。 文献[Sadakane and Imai,2001]提出了邻近查询的通用算法，给出了最短邻近距离定义下的最优解算法。不过这个算法开销太大，在实际系统中并不实用。 文献[Brin and Page,1998]介绍了邻近查询的一种近似实现方法，具有更好的检索效率。 文献[Bahle, et al.,2002]，[Williams, et al.,1999] 提出了一种新的短语索引技术，对倒排索引词典里每个索引词，按其后续词组织倒排数据项，即为每个索引词与其后继的索引词建立辅助倒排索引。 这一方法可以提高短语查询的效率，但它的缺点是基本索引词典和后继词词典分开存储，在查询过程中需要增加一次对后续词的词典数据读取，一定程度上抵消了对短语查询效率的提高。 在中文信息检索领域，什么是最佳的索引单位一直是困扰中文全文检索的一个问题。研究表明使用中文分词，按词索引结合二元组(Bi-gram)索引是检索效率和效果较优的索引方式。这实际上是一种混合索引，不过对大规模文档集合，二元组索引的倒排索引词典膨胀迅速，索引文件中包含大量无用内容，对检索效率也带来有负面影响。 在天网搜索引擎的实践中，针对上述各种技术的优劣，采用了一种基于未登录词自动识别技术的混合索引方法。实践表明，这一方法可以有效提高搜索引擎检索效率。]]></description>
		<wfw:commentRss>http://scseoer.com/hybrid-indexing-technique.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>结合计算机性能指标的考虑</title>
		<link>http://scseoer.com/combined-performance-consider.html</link>
		<comments>http://scseoer.com/combined-performance-consider.html#comments</comments>
		<pubDate>Wed, 03 Aug 2011 08:03:33 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[内存]]></category>
		<category><![CDATA[吞吐量]]></category>
		<category><![CDATA[检索]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1493</guid>
		<description><![CDATA[在诸如搜索引擎和数字图书馆等信息检索应用中，主要特点是数据密集型，处理算法比较简单。因此与CPU、内存等因素相比，I/O乃是决定系统性能的关键。进而，在网络访问条件下，I/O实际包含两个阶段，一是磁盘和内存之间，二是内存和网络之间。在不同条件下的，这两个阶段分别都可能成为系统性能瓶颈。下面主要讨论磁盘I/O。 表8-2 一些典型磁盘的性能数据 SCSI是服务器常用的I/O总线，除了有较高的速度外，在I/O高负载下消耗CPU时间少也是一个重要优点（SCSI消耗CPU时间5%，IDE可以达到60-100%）。现在常用的Ultra320 SCSI，最高带宽可达320MBps。表8-2是一些高性能磁盘的相关数据，IOPS项表示磁盘每秒钟可以执行的随机I/O操作，它与磁盘平均访问时间、读写的数据块大小、内部传输速率有关。 总的来说，因为磁盘结构中存在机械装置，决定了它的平均响应时间在毫秒级（平均10ms），每秒钟可以完成的I/O操作也很有限（IOPS平均是100，即达到平均每秒种100次I/O访问，这个估计忽略了每次读写的数据块大小产生的影响）。当前单个磁盘的平均数据传输速率在20-50MBps之间，并没有完全利用SCSI总线的全部带宽，解决这个问题的方法是采用冗余磁盘阵列技术（RAID）。N个磁盘组成的数组可以使数据传输速率获得接近N倍的提升，并且可以改善I/O请求的响应时间（同时也增加了IOPS），不同的配置方案对I/O系统这两方面的影响可参考[Scheuermann, et al.,1998]。显然，这种提高I/O性能的方法是以增加系统硬件成本为代价的。 在检索系统的两个效率指标中，响应时间作为个体性能指标相对比较容易满足，它也受到系统吞吐量的影响，如果用户查询数量超过了系统可能的负载，会造成查询响应延迟增大。因此，吞吐量对系统设计和运行更为重要。根据前面论述，我们将查询词项的平均频率和I/O性能作为查询效率的决定因素，用它们估计系统的吞吐量和数据规模的关系。用户的大部分查询中的词项数量比较少，查询一个主题时用2-3个单词就可以描述，查询文章的题目时可能有10个词项以上。不妨设Lq表示用户查询中的词项个数，估计平均Lq等于5。得出如下不等式： 在这个不等式中，对词项的倒排表长度只考虑主要部分(TN×TF)，将I/O时间估计为磁盘访问平均延迟时间和数据传输时间。假设将每个倒排表读入内存只需一次I/O，花费时间可以估计为，每次读取倒排表的时间乘Lq×m必定不大于1秒。当系统的I/O性能（Tlatency、IOBandwith）和TF确定下来后，我们就得到TN与m之间的反比关系。 更简化的模型是忽略数据块大小不同造成的传输时间变化，利用前面得出的一个磁盘的IOPS=100，可以计算出在不考虑资料缓存情况下，系统平均每秒钟处理查询的上限m=IOPS/Lq=20。根据磁盘的可用带宽大约是20MBps，得出每个查询的I/O应不大于1MB，也就是满足如下条件： 代入以上得出的估计参数，有如下结论： 对汉语字符： TN≤400MB （TF=0.05%，Lq=5 ） 对英语单词： TN≤4GB （TF=0.005%，Lq=5 ） 由于在这个条件下，每个词项的倒排表长度达到200KB，对20MBps的硬盘读取时间大约是10ms，忽略它不太合适，因此实际中吞吐量要低于每秒钟20个。 依据上面结果，可以估计出能够索引的数据量。汉语的一个字符占两个字节，如果对汉语字符建索引，要维持每秒20个查询的系统吞吐量，最多只能索引大约800MB的文本数据库。英语的一个单词平均占用字节6-8个（包括空格符），同样情况下可以索引24-32GB的英语文本。由于汉语字符的ITF分布规律，对单个字符建索引难以提高检索系统的规模，解决的方法是对汉语文本做切词处理，按照词组建索引，有效地改善单词项的频率分布情况，能够取得和英语单词同样的结果。 这种方法比用冗余磁盘阵列提高I/O性能的代价要小得多，效果也更显著。从成本上考虑，一台机器索引的数据量不应低于它内存的10倍，即在10GB以上，实际中要根据上面的结论在硬件设备选用、数据规模、响应时间、吞吐量之间做折中选择。]]></description>
		<wfw:commentRss>http://scseoer.com/combined-performance-consider.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>倒排文件的一种性能模型</title>
		<link>http://scseoer.com/inverted-file-performance-model-2.html</link>
		<comments>http://scseoer.com/inverted-file-performance-model-2.html#comments</comments>
		<pubDate>Wed, 03 Aug 2011 07:44:48 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[倒排文件]]></category>
		<category><![CDATA[索引]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1471</guid>
		<description><![CDATA[所谓性能模型，在此就是要给出关于N，M，p(i)，d，B，r和k的一种关系，从而能够在给定系统内部参数的条件下对其外部行为（吞吐率）进行估计。 需要对p(i)和B，以及几个假设进行一下说明。p(i)是倒排表长度的统计分布函数，即M×(pi)的长度表示i的记录表的个数，i∈[0, N]。于是倒排表的平均长度为。 B是支持倒排文件运行的下层系统的瓶颈带宽。取决于不同的情况，可能是磁盘的I/O带宽，也可能是网络带宽，我们不做区别。这里讨论的模型的思路是根据同时到达的查询量k，得到一个数据量D，然后看能否有。 为简单起见，我们假设查询q1, q2, …, qk都是单纯的，即它们都直接属于集合TERMS；同时假设它们是在TERMS上随机、独立的分布。 现在考察k个查询所导致的输出数据量，D。每个查询都可能落到M个词项中的任何一个中，k个查询可能涉及M的任何1, 2, …, 或者k项，于是对应不同的数据量。如果能算出涉及i项的概率，记作fM,k(i)，i = 1, 2, …, k, 则我们就能有 D = 一个倒排表的平均数据量 × k个并发查询平均涉及的倒排表个数 下面集中考虑fM,k(i)。 首先看k个查询随机落在M个词项的所有可能总数，这相当于从集合{1,2,…,k}到{1,2,…,M}的映射的个数，即Mk。 然后对i = 1, 2, …, k，考察k个查询恰好落在i个倒排表上的情况，这相当于是考虑集合{1，2，…，k}的i-划分的个数，再加上这i个倒排表可能落在M中的任意i个上；前者即第二类斯特林数S(k, i)。注意到查询在不同倒排表之间是可区分的，因此需要考虑的是排列，于是我们有 注意到， 还有， 于是， 这样， 此即为我们得到的一种倒排文件性能基本模型。它直接给出的是k个并发查询所导致的数据量。基于倒排文件的查询处理算法通常不复杂，不是计算密集型的任务。对于大规模倒排文件来说，数据从磁盘移动到内存，或者从内存通过网络送出是主要时间消耗所在，而D/B即为响应输出完成所需时间。如果我们设D/B≤r，即D≤B*r，我们就有可能对D中的各种情况进行讨论，诸如M的影响，p(i)的影响，等等。下面做些讨论，针对数据在磁盘和内存间的移动。 系统对文档信息检索的支持粒度，通常可分为“全文索引”和“非全文索引”两类。非全文索引只需告知哪些文档含有特定的词项，而全文索引则还需要给出该词项在相关文档中出现的位置等信息，多次出现就要多次记录。这样，对于公式（8-1）中的d来说，它的大小在全文索引情形下和词项在不同文档中出现的平均次数成比例，即，而在非全文索引情形下则基本上是常数（核心信息是一个文档编号），我们记做c，通常也就是几个字节。也可以将α×d一并考虑。对于每一个倒排表（对应于一个具体的词项tj）来说，它的数据量在全文索引情形下正比于N×DF(tj)+ TN×TF(tj)，前一部分是倒排表中文档号和频率占用的长度，后一部分是位置信息占用的长度。因为TN要远大于N，所以系统中每个词项倒排表的长度主要是由它的词频率TF和数据规模TN决定的。非全文索引的情况下则只有N×DF(tj)。在平均情况下， 为理解这个公式，对其中的符号所代表的量的数量级有些具体的概念是有益的。以天网搜索引擎的中文部分为例，c≈101,α≈105,M≈5&#215;104,N≈3&#215;107,TN≈1010。非全文索引的倒排表数据量在106数量级，而全文索引是它的若干倍。由此我们也能估计出，作为整个倒排文件的记录文件，即使非全文索引，内存也是放不下的。 另外，α也可以单独考虑。按照我们的定义，它是倒排文件中倒排表长度的平均值，也就是和词表中词项的文档频率相关的一个量，即。 由于TF和DF常常是和应用相关的统计量，可以在具体实现之前进行估计，从而使我们有可能在设计倒排表应用时就能根据式（8-1）对查询导致的数据量有个估计。 在标准的倒排文件查询处理算法中，系统要将用户查询中单词项对应的倒排表读到内存中执行集合操作，因此倒排表的长度将首先影响操作执行的时间。当索引网页量增加时，高频词项的倒排表将急剧膨胀，占用大量I/O带宽、内存空间以及CPU时间，严重降低系统效率。理想情况下，所有词项的频率应该尽可能低，而且大小相近，使得所有倒排表保持同步增长，系统性能不会因为一部分单词记录表的长度快速增长而受损。实际情况中，词项的频率分布和文件的语言有关，下面我们以英语单词和汉语字符为例分析。 表8-1 英汉词频统计排序对照 为更好地表示它们的分布情况，取相应的ITF和IDF研究。将所有单词按照它们的ITF（IDF）值从小到大排列，赋予[0，T]的序号x，作为坐标图的横轴，ITF（IDF）值作为坐标图的纵轴，就得到单词的ITF（IDF）分布图。图的起点越高，同时越平滑，单词的记录表长度趋于平均，越有利于索引更多的文件。 我们以[CCF,2004],[EF,2004]统计出的英语单词和汉语单字的频率作为原始数据进行分析，两个统计结果都是按照单词的出现频率从高到低排序，表8-1是对它们进行数据抽样的结果，表示降低到某一个频率数值时的单词序号。 可以看出，使用的汉字比英语单词要少的多（5,299对16006），汉语的高频字比英语的高频单词要多（指使用频率高于万分之一），低频词则反之。在万分之一频率处，两者的数量近似。在十万分之一处，英语有六千多个单词，汉语单字却不到三千个。在根据表8-1资料绘制出的ITF分布图8-4所示，两条曲线在接近ITF=4处相交，汉语字符的曲线比英语单词的曲线要陡峭的多。这种特性决定了索引同样数量的单词（TN相等），汉语字符的倒排表平均长度要大于英语单词的，而且增长更快（随着TN的增长）。 用户在实际查询中词项的频率决定要读取的记录表长度，为了得到它们和系统吞吐量的关系，必须估计系统运行时查询词项的平均频率。汉语字符在0.05%频率处的累计频率（Cumulative frequency，大于此频率所有单词出现频率累加）达到76%，在0.01%频率处的累计频率则达到94%，这从侧面反映了在汉语查询中，用户查询词的平均频率要大于0.01%，估计为0.05%。根据英语单词的累计频率和实际情况，估计英语中用户查询的单词平均频率为0.005%。 图8-4 英语单词和汉语字符的ITF分布 在本节的最后，我们指出关于D的两个近似表达式，只要M相对于k较大，都应该是很有效的： 这个结果和直觉如此相符：总数据量是文档单元数据量、倒排表长度和并发查询数的乘积。 在有些场合；例如面向领域的主题搜索引擎中，M可能就没有必要很大（例如我们在有关中学数学网页搜索引擎的构建中，M为200左右），此时α也不会很大，于是k有可能做得较大。]]></description>
		<wfw:commentRss>http://scseoer.com/inverted-file-performance-model-2.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>倒排文件的概念</title>
		<link>http://scseoer.com/inverted-file.html</link>
		<comments>http://scseoer.com/inverted-file.html#comments</comments>
		<pubDate>Wed, 03 Aug 2011 06:39:04 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[倒排]]></category>
		<category><![CDATA[检索]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1462</guid>
		<description><![CDATA[这一节的内容在信息检索算法的教科书中有不同形式的介绍。为本章的完整起见，在此给一简要概述。 所谓倒排文件（inverted file），是描述一个词项2集合（TERMS）元素和一个文档集合（DOCS）元素对应关系的数据结构，记： 当我们以“文档”为出发点时，我们可以讲di中包含哪些tj，或者某一个tj在di文档中出现了多少次。而“倒排文件”直接给出的是一个tj出现在哪些di中，进而还可以有它在某一个di中出现在哪些位置（含多少次）。用PL（tj）表示tj出现于其中的文档记录的集合，称为对应于tj的倒排表（inverted list），下面是信息检索研究中常用的几个相关量。 N：文档集合的大小 M：词项集合的大小 词项tj所涉及文档的个数 词项tj的文档频率 IDF(tj)=-logDF(tj)：倒置文档频率；其值越小表示出现频率越高。 fi,j：倒置文档频率；其值越小表示出现频率越高。 ：系统所有文档分解后包含词项的总量（包括重复，即一个多重集（multi-set）） ：词项tj在所有文档中出现的频度（词频） ：倒置词频；越小表示出现频率越高。 作为数据结构，倒排文件分两部分：第一部分是由不同词项组成的索引，称为词表(vocabulary)，第二部分由每个词项出现过的文档集合构成，称为记录文件(posting file)，每个词项的对应部分称为倒排表，亦称记录表(posting lists)，可以通过词表访问。图8-3是一个示意。 图8-3 倒排文件结构示意图 图8-3的左边是词表，中间是记录文件。对应于词表的每一项，记录文件中有若干个倒排表，一般长度记为sj；统计分布为p(i)。至于PL（tj）的每一项，取决于信息检索的方式（例如是否全文检索），内容会有不同，我们在此只用d表示其平均数据量，后面讨论中会适当展开。图8-3的右边我们还表示了查询的到达量k、响应时间要求r和系统的最大输出能力B，这是我们讨论性能模型时需要的。]]></description>
		<wfw:commentRss>http://scseoer.com/inverted-file.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>倒排文件性能模型</title>
		<link>http://scseoer.com/inverted-file-performance-model.html</link>
		<comments>http://scseoer.com/inverted-file-performance-model.html#comments</comments>
		<pubDate>Wed, 03 Aug 2011 06:23:11 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[倒序]]></category>
		<category><![CDATA[性能]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1459</guid>
		<description><![CDATA[上一节，我们已经多次提到了倒排文件，可以说它是现代大规模搜索引擎工作的一个核心技术。虽然原理简单，但它灵活而高效，可以根据需要做不同的变通。本节结合检索系统的宏观需求和实现倒排文件的硬件参数，建立起倒排文件的一种性能模型，该模型对于在设计阶段估算倒排文件的运行效率有一定的指导意义。 评价一个大规模信息检索系统，有两个方面基本的考虑：效果（effectiveness）和效率（efficiency）[Frieder, et al.,1999]。“效果”常常也称为“质量”，指检索返回结果集合的准确性（或者相关性）和完整性，通常有两个指标：查准率和查全率，是第十章的内容，本章将不涉及。“效率”，我们在此也称“性能”，最重要的指标就是系统的查询响应时间（response time）和系统的查询吞吐率（throughput）。 响应时间是指从用户向系统提交查询到他开始看到结果的时间间隔。对于面向普通用户的网络查询系统来说，这个时间在“秒”量级是比较合理的；例如Web搜索引擎和数字图书馆，用户通常不会有耐心在一个查询上等待超过10秒钟还不见任何回应1。 吞吐率是指系统在单位时间（秒）里可以服务的最大用户查询数量。这里实际上有两个层次的含义。 一是在单位时间里系统能够承受、不至于导致“拒绝服务”的查询的数量; 二是在单位时间里能够接受、并满足服务质量的查询数量。 前者往往和系统硬件与底层软件有关，是在构造实际的信息检索系统时必须考虑的；本节主要涉及后者，并假设在第一种含义上的“查询数量”是足够大的。对于第二种含义来说，所谓“满足服务质量”指的就是满足响应时间要求。例如，若一个系统设计的平均响应时间为3秒，它的“吞吐率为20”意味着它每秒钟能接受20个查询，并在3秒钟左右都能给出查询结果。 显然，这两个指标既独立，也相关。前者是对单个用户查询表现出的性能，后者表示的是系统的整体性能，也称作系统的并发度。因此，对性能问题的讨论可以归结为系统在满足一定响应时间条件下的吞吐率。在Web环境下，好的信息资源总是有大量用户同时访问，吞吐率应该是需要考虑的一个重要问题。大型门户网站如此，搜索引擎、数字图书馆也如此。只是前者要简单些，由于主要提供的是HTTP服务，吞吐率基本就是在上述第一种含义上的；后两种应用不同，它们要涉及在服务器方比较复杂的操作，需要有更深层次的考虑。 倒排文件是大型信息检索中使用最广泛的文件索引方法。所谓“倒排”表示依据检索属性来列举相关文件，是计算机科学中基本的信息查询方法之一[Knuth,1973]，当前也在搜索引擎和数字图书馆中广为使用。但我们发现，尽管人们围绕倒排文件作了不少研究工作，不少也是旨在提高其性能，但尚未见到关于倒排文件（及其实现）性能的一般性讨论，从而使我们依然难以回答下面的问题：给定一个倒排文件（规模，结构参数等）和它将在其上运行的计算机的基本性能（CPU，硬盘指标等），系统能够提供什么样的响应时间和吞吐率？如下我们将围绕这一问题的解决展开讨论。]]></description>
		<wfw:commentRss>http://scseoer.com/inverted-file-performance-model.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>检索过程</title>
		<link>http://scseoer.com/retrieval-process.html</link>
		<comments>http://scseoer.com/retrieval-process.html#comments</comments>
		<pubDate>Wed, 03 Aug 2011 06:20:03 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[关键词]]></category>
		<category><![CDATA[索引]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1457</guid>
		<description><![CDATA[天网分布式检索系统执行查询时，由WWW查询服务器通过多播把用户输入的查询串发送给每一个索引节点。各索引节点独立在本机上执行查询，再把检索结果中排序最前的K（K=100）个结果返回给WWW查询服务器，在K值控制合理情况下，可以把返回结果数据包控制在一个以太网数据帧大小内，使系统具有很小的网络通信开销和延迟。WWW查询服务器上。 RetrievalAgent负责结果数据的收集、合并、重新排序，并访问文档服务器、提取摘要，格式化生成查询结果页面返回给查询用户。 文献[Wang, et al.,2001]通过分析搜索引擎用户查询日志，提出并在天网WWW查询服务器上实现了检索结果缓存。使用LRU缓存替换算法，缓存容量为500个检索结果时，缓存命中率能达到60％左右，有效提高了系统整体性能。 在天网的分布式检索结构中，系统性能瓶颈最终在索引节点。通过实验发现，索引节点的检索效率瓶颈在于磁盘系统的性能，检索算法中对倒排文件中查询词对应的倒排项数据读取是检索效率优化的重点。首先采用的是系统级优化措施。注意到操作系统中I/O系统的实现特点，采用C函数库提供的带缓冲的文件访问接口效率最差，操作系统提供的底层文件访问接read/write效率较好，而使用内存文件映射或者直接设备访问可避免多次的内存拷贝问题，从而大大提高I/O访问的效率。其次再通过对倒排文件的组织优化，通过减少每次访问倒排项数据的数量和访问次数来提高检索效率。天网系统中采用了三种基本技术：索引压缩、随机访问的索引组织和重要索引词单独索引。 1、索引压缩 倒排索引压缩可以减小倒排项数据长度。在检索过程中可减少内存和I/O带宽的使用，但同时要对压缩数据解码，增加了CPU时间耗用。实际系统中，I/O是系统的瓶颈，而且CPU和I/O之间性能差距还在不断扩大，所以索引压缩技术作为一种有效提高检索效率的技术被普遍采用。 倒排索引压缩的方法基于“游程编码”，增量整数序列被变换为差分序列。组织倒排索引文件，可以把倒排项中的文档号和出现位置编号，都按递增序排列，这样可以通过“游程编码”变换，把大整数序列变换成较小的整数序列，再选取一种整数编码方案实现高效的倒排项数据压缩。 文献[Witten, et al.,1994]中给出了多种变长编码方法，其中Golomb编码是压缩效率较优的一种。 文献[Williams and Zobel,1999]比较了多种编码方法的编码和解码效率。在搜索引擎应用中，检索效率是主要优化目标，而索引数据的空间占用相对并不重要。变长编码有解码慢的缺点，天网系统实际采用字节对齐的定长编码ByteCode。实验测试得到ByteCode和Golomb的平均压缩比率分别为0.3359和0.2635，解码时间两者的比例为1:6。 2、随机访问的索引组织 文献[Navarro, et al.,2000]提出了对倒排索引的索引项建立二级索引，使得可以随机访问倒排项数据块。在一般情况下，这一技术可以减少倒排项数据的访问量，但同时可能增加I/O访问的次数。在采用这一技术时需要确定随机访问倒排项数据块的大小，在节省I/O带宽与I/O访问的次数的开销之间取得最好的折中。具体来说，小数据块访问会带来更多次系统调用，带来更多次的寻道时间消耗；大数据块访问读入冗余的数据，带来过多的数据传输时间消耗。根据磁盘访问性能分析的实验表明，使用较大的数据块系统性能较好，因此天网检索系统目前采用32KB为最小块单位。 在二级索引之外，倒排项数据还使用数据块自索引技术。选择32KB为二级索引块大小，每32KB的位置信息记录一个开始文档号。每块数据内部使用512字节作为自索引的段长，使用ByteCode压缩编码。自索引技术不减少I/O数据访问量和访问次数，但使得检索算法在处理倒排项数据时，可以跳过一些压缩的数据块，节省处理时间。 3、重要索引词单独索引 对重要索引词单独索引，这样可以产生一个小的倒排索引文件，控制其大小能保存在内存中，如果有相当的查询在这个小索引文件中获得足够的返回结果，则查询结束；当检索得到的结果不足时，才去访问磁盘上的整个倒排文件。通过这一方式，系统可以节省大量磁盘的访问开销，大大提高效率。 这一技术有效应用的前提是小索引中查询得到的结果文档在整个倒排文件的查询结果集合中排序在最前面，否则会降低系统检索质量。这一点可由排序算法保证。被选择的重要索引词包括Anchor text，Title还有利用天网文档模型技术提取的正文摘要中的词。]]></description>
		<wfw:commentRss>http://scseoer.com/retrieval-process.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>创建索引</title>
		<link>http://scseoer.com/index-create.html</link>
		<comments>http://scseoer.com/index-create.html#comments</comments>
		<pubDate>Wed, 03 Aug 2011 06:16:38 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[索引]]></category>
		<category><![CDATA[网页编码]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1455</guid>
		<description><![CDATA[对一个中文搜索引擎，索引创建不仅仅是一个高效的倒排算法，它还包含许多重要的方面：索引词的选择，中文分词、编码识别与转换、网页净化、强健的页面分析等。 1、索引词选择 索引词的选择是检索系统实现的一个重要环节。现代搜索引擎普遍使用全文索引技术，即网页文档中所有词都参与索引。理想的索引词应该是表达文档内容的语义单位，即语言学里的词语，是那些专指义，而实际意义无法由组合成分相加得到的最小语言单位。但实际系统中中文文本必须通过自动分词程序的处理，分割成为独立的分词单位，再从分词结果中选择索引词。自动分词算法有两大类，普遍采用的方式是基于词典的分词方法，这一方法效率高，但分词精度受词典规模制约；另一种是基于统计语言模型的方法，可以发现一些新词。实际应用是两种方法的不同程度的组合。 除了中文分词外，对英文单词、数字、英文缩写词、特殊专有词的识别由一个词法分析器完成，通过不断完善词法规则，就可以支持如“C++，C＃，AT&#38;T”这样的一些特殊词。英文单词统一转换为小写，但不作词根和词形变换。 2、网页预处理 创建索引需要对网页进行分析，其中编码转换是一个重要步骤。Web上的网页包含多种字符集和编码，搜索引擎的索引系统必须对它们转换，采用统一字符集和编码方案。UNICODE是一种兼容性较好的字符集选择，而且可以使用不同的编码方案，比如UTF8,UTF16等。但由于程序移植和编程习惯上的困难，天网目前仍然使用了GBK为系统的内部编码，这对于主要面向中文的搜索引擎已经足够了，但如果进一步考虑国际化，UNICODE应该是更好的选择。常见的中文编码包括简体中文的GBK , GB2312, ISO-2022-CN , GB18030，还有繁体中文的BIG5 , BIG5HKSCS和EUCTW。 在GNU的GLIBC库中有对这些编码的转换支持，但是对于简体、繁体转换是简单的基于字－字映射，准确度不高。在网页分析中，识别网页的编码方式也比较繁琐。按HTML的规范[W3C,1999]，页面内容的编码依次由Web服务器返回的HTTP头信息中的charset字段；网页中meta标签里的charset属性以及每个网页元素的charset属性确定。但在实际情况中，网页存在许多编码设置错误的现象，尤其是那些由简繁体自动转换而生成的中文网页。这时需要有一个自动识别编码的模块，按统计的方法自动识别网页的正确编码。 此外，大量网页中存在不符合HTML规范的错误，这要求网页分析模块十分健壮。同时许多网页中存在大量无用的信息，比如广告、导航条等，这一现象在大型网站使用相同模板的网页中普遍存在。这些网页噪音对用户的信息检索没有意义，因此不应该被包含到索引范围内。 3、索引创建算法 天网检索系统采用带位置信息的词级全文索引。系统采取了按站点划分网页数据的分布式方案，各个索引节点相互独立，索引创建过程在每个节点上独立进行。采用两趟的内存倒排创建算法，依次为每个小文档集倒排，最后执行多路归并，生成总的倒排文件。主要步骤如下： 页面分析。按HTML语法规则分析网页标签结构、调用中文分词和英文词法分析器提取索引词。分析过程中记录每个索引词的文档频率df和在文档内的词频tf，通过散列表转换为索引词编码，保存得到词典文件(lexicon file)，并保存页面分析的结果到临时文件。 按统计得到的索引词的tf和df属性,可以估计出对应倒排项数据的长度，以此预申请整个文档集合倒排需要的内存空间。重新读取页面分析保存结果的临时文件，在内存中执行倒排，把结果保存到临时倒排文件中。 对生成的多个临时倒排文件，执行多路归并，压缩编码，输出得到最终的倒排文件。 在索引创建过程中，页面分析，特别是中文分词为主要时间开销。算法的后两步相对很快。这样创建算法的优化集中在中文分词效率上，而没有采用效率更高的倒排创建算法。]]></description>
		<wfw:commentRss>http://scseoer.com/index-create.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>检索系统设计与结构</title>
		<link>http://scseoer.com/retrieval-system-design-structure.html</link>
		<comments>http://scseoer.com/retrieval-system-design-structure.html#comments</comments>
		<pubDate>Wed, 03 Aug 2011 06:13:12 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[检索系统]]></category>
		<category><![CDATA[网页数据]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1451</guid>
		<description><![CDATA[搜索引擎检索系统的设计围绕检索效率和检索效果这两个指标展开。对一个成功的搜索引擎来说，首先必须具有相当高的检索效率。由于通用搜索引擎是面向大众的，其信息需求的重要性参差不齐，绝大多数可以说是“随心所欲”的，其价值不值得等待很长的时间，因此一个响应迟缓的系统只能意味着较少的用户。 按一般的习惯，搜索引擎对用户查询的响应时间应该不超过秒级，这相对于搜索引擎需要处理的海量网页数据而言是一个挑战。而如何提高搜索引擎检索效果，更是人们不断研究的课题，但它是要在保证检索效率的前提下才有意义。因此，信息检索领域有一种观点，认为搜索引擎的检索技术相对于最新的信息检索研究成果是一种倒退。 如果仅从检索效果上看，确实如此，但由于搜索引擎面临的效率压力，使得在实现上往往需要在效率和效果之间折衷，而不一定采用效果最好的技术。同时，有统计表明在Web搜索环境下，用户普遍使用短查询、不做查询优化,这些特点也是搜索引擎提高检索效果面临的主要困难（因为用户向系统提供的信息太少）。但在另一方面，传统信息检索只从文本内容上计算文本和查询的相关程度，而Web环境下，除了网页文本数据，还有大量其它信息可以为这一相关性的计算提供辅助支持，比如网页内的HTML标记，URL，链接关系，Anchor text，网站目录数据等。如何有效利用这些信息是搜索引擎提高检索效果的一个重要途径。 天网的检索系统设计原则有两个： 一是追求系统效率和可扩展性。 二是力图通过一个集成的框架结构，能够有效地把各种有利于改善检索效果的技术集成起来， 如图8-1所示。这样一个框架结构体现在三个方面： 文档表示。对一个网页文档可以有多种角度的表示方式，包括索引词、半结构化的元数据以及全局的网页属性。 用户信息需求的类型识别，以求能为不同类型的信息需求选择最佳的检索方式。 不同检索排序方式得到的结果的融合。 图8-1 检索系统集成框架结构 在图8-1中，方框表示检索系统，在服务点（SE ServicePoint）接受用户的查询请求（User InfoNeed）。用户请求经过检索代理(Retrieval Agent)分类，进行检索策略的选择，调用索引服务提供的相应检索机制来完成检索。通常，搜索引擎提供的最基本检索方式是基于关键词的布尔查询(Boolean OP)。但通常用户输入的查询为自然语言词语或者短语，并不是一个布尔表达式。一般情况下，搜索引擎默认用户的输入查询词之间为与(AND)关系。 为了提高检索效果，有些搜索引擎也采取查询词扩展（query expansion）和相近(Proximity)计算技术，并用这些计算的结果来驱动后台的结果提取过程。Google成功的使用了链接分析技术为每个网页赋予一个全局的权值（PageRank值）来表示网页的重要程度。网页的这种全局属性的检查在图8-1中由GlobalProperties模块执行，除了PageRank，还可以包括根据权威的网站目录数据、用户反馈或人工编辑等方式得到的网站权值。 Meta是元数据查询的执行模块，可以包括时间、文档格式、站点名称、分类类别等各种网页元数据，针对网页数据的信息提取技术可以融合到这一模块中。天网在中文网页自动分类方面有一个研究小组，其网页文本自动分类技术已经应用在天网目录服务和检索中。在检索系统框架中，网页文档的分类类别起着重要的作用。利用Meta模块返回的网页类别信息，Retrieval Agent可以进行类别聚合，把相同类别的网页集中显示给用户，这样一种方式可以更好的组织检索结果，改善检索效果。 Semantic Constrains模块是语义的约束检查模块，它建立在对网页文本中特定语义关系识别的自然语言处理技术之上，是实现回答自然语言问题的必要技术，第十二章将要介绍的“天网知名度”就是这样一种技术的成功应用。 天网检索系统的具体实现同样基于信息检索技术。 首先是排序算法和检索模型的选择。在图8-1的框架结构中，检索系统的相关性排序由多种因素综合决定。这其中，最基础的排序建立在信息检索的布尔模型和向量空间模型基础上。在BooleanOP模块中，首先执行布尔查询，得到的结果作为候选文档集合，然后按向量空间模型的相似度算法计算各个文档与查询的相似度，结果作为排序的基础。最后由RetrievalAgent综合其它模块返回的信息，再进一步排序。典型的一种情况是，当查询词在AnchorText或者Title中出现时，把全局属性里的PageRank值与文档的相似度权值通过线性组合方式相加得到最后的排序权值。排序采用一种分级算法，分为三个级别：查询词的邻近关系运算结果；查询词出现的位置，包括Title、AnchorText；相似度权值与其它的权值，如全局属性的PageRank权值。各种权值通过线性方式组合起来。 其次是索引的实现技术。天网检索系统采用倒排文件索引。对于大规模文档数据，倒排文件是经过大量实践检验的一种高效率的索引组织方式，能够很好的支持多种检索模型，提供高性能的检索。人们对倒排文件的组织和检索效率做了大量的研究工作，文献[Moffat and Zobel,1996],[Witten, et al.,1994],[Navarro, et al.,2000]对天网的索引实现有重要的影响。[Moffat and Zobel,1996],[Witten, et al.,1994]重点在倒排索引的压缩，[Navarro, et al.,2000]在倒排索引的随机访问技术，它们都被应用到天网的索引系统中。由于搜索引擎的责任是索引不断变化着的海量网络信息，倒排文件的组织还需要在检索效率和更新效率上进行折衷。一般倒排索引的索引项数据用链表方式分块存放有利于提高更新效率，但这会降低检索效率；反之，索引项数据连续存放有利于检索，而不利于更新。天网检索系统以检索效率为主要优化的目标，索引更新采用部分索引重建的方式。 整个检索系统采用分布式系统结构。搜索引擎的海量网页数据索引无法在单台机器上集中完成，分布式系统是解决数据规模和系统可扩展性问题的基本方法。天网检索系统的系统结构如图8-2所示。 图8-2 天网WWW检索分布式系统构架 现在运行的检索服务系统共使用20台PC(PIII733/1GB)，其中一台为WWW查询服务器，其余19台为索引服务器，文档服务节点和WWW查询服务器使用同一机器。文献[Lu,1999]通过性能仿真实验对分布式信息检索系统的可扩展性进行了深入研究。我们注意到，在学术界当人们谈及“分布式信息检索”时指的是研究不相交数据集在分布环境下的数据集选择和检索问题，和这里谈的搜索引擎检索的分布式系统结构不是一回事，但其提出的部分复制技术有很好的参考价值。文献[Tomasic and Garcia-Molina,1993]研究了倒排索引的物理组织对分布式查询的性能影响，认为最好的数据分布方式是“host index organization”,也就是每一个文档的全部索引项应该都分布在同一台处理机上。 这种数据组织方式不仅可以最大限度降低节点间通讯开销，而且由于索引节点之间相互独立工作，整个查询系统有很好的容错性。天网的分布式检索系统设计就以此作为出发点。 前面我们从总体上描述了天网检索系统的设计思想和系统结构，下面两部分分析天网的索引创建和检索实现技术。]]></description>
		<wfw:commentRss>http://scseoer.com/retrieval-system-design-structure.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>高性能检索子系统</title>
		<link>http://scseoer.com/high-performance-retrieval-subsystem.html</link>
		<comments>http://scseoer.com/high-performance-retrieval-subsystem.html#comments</comments>
		<pubDate>Wed, 03 Aug 2011 06:05:54 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[搜索引擎]]></category>
		<category><![CDATA[搜集]]></category>
		<category><![CDATA[预处理]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1449</guid>
		<description><![CDATA[以Google为代表的商业搜索引擎获得了很大成功。到2004年4月，Google已经索引了全世界42亿个页面，每天接受上亿次查询请求。但是商业搜索引擎的核心技术属于商业机密，在激烈的竞争环境下不会公开。而在研究领域，因为受到条件的限制，对大规模通用搜索引擎系统的技术探讨也较少。 在第二章我们介绍过，搜索引擎包括搜集子系统，预处理和服务子系统三大部分。有时候为方便起见，将建立索引和提供服务放在一起，称为检索子系统。搜集系统研究如何更快速抓取更多高质量网页的相关技术，检索系统研究如何进行网页文档索引，为用户提供高性能的检索服务。后者主要建立在信息检索领域的相关技术之上，同时根据Web自身的特点也发展了一些新技术。 文献[Brin and Page,1998]是Google在斯坦福大学的原型系统的一个较全面技术介绍，其中重点介绍了其检索系统的设计与实现，验证了使用链接分析技术可以有效提高搜索引擎检索效果。和传统的信息检索系统相比，大规模搜索引擎的检索系统面临许多新的挑战。 本章以天网Web服务检索系统为基础，分析搜索引擎的检索系统设计与实现的基本技术。 本章内容安排如下： 第一节围绕检索效率和检索效果这两个最基本的指标，介绍了天网检索系统的软件集成框架结构和分布式硬件系统结构，并从索引创建和检索过程详细分析了高效检索系统的相关基本实现技术。 第二节讲述了一种倒排文件基本性能模型，给出了响应时间、吞吐率和系统内部参数之间的一种关系。并结合计算机的性能指标，对模型进行了精化。 第三节详细阐述了天网中所采用的混合索引技术。首先介绍了索引词选择对检索系统的影响，以及一般的索引词选择方法存在的优缺点，然后给出了一种基于倒排文件实现的混合索引方法，它可以有效提高在搜索引擎中进行短语查询的检索效率，同时不影响系统检索效果。 第四节阐述了倒排文件的缓存优化设计技术。通过对真实搜索引擎系统的倒排文件访问数据序列的特性分析和仿真试验，考虑不同的系统性能参数优化目标，得到了一种倒排文件缓存的优化设计方法。]]></description>
		<wfw:commentRss>http://scseoer.com/high-performance-retrieval-subsystem.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>算法评测</title>
		<link>http://scseoer.com/algorithm-evaluation.html</link>
		<comments>http://scseoer.com/algorithm-evaluation.html#comments</comments>
		<pubDate>Tue, 02 Aug 2011 09:58:37 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[关键词]]></category>
		<category><![CDATA[算法]]></category>
		<category><![CDATA[网页]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1431</guid>
		<description><![CDATA[评价方法 我们为网页消重算法设计的评价指标包括算法复杂度、查全率和准确率三个方面，其中算法复杂度又包括时间复杂度和空间复杂度。在本节中，查全率是指消重算法所发现的转载网页占总网页的百分比，而准确率反映了算法所发现的转载网页中有多少是真正的转载网页。假设要处理的网页数为N，后4种算法使用的关键词个数为M，每个关键词的权值占4个字节，MD5摘要占16个字节，则算法1、2和5的空间复杂度约为(16×N)，算法3和4的空间复杂度约为(N×M×4+N×16)。可以看出这5种算法的空间复杂度都很小。本节将重点考察算法的时间复杂度、查全率和准确率。时间复杂度和查全率将直接基于天网系统2000年5月份的数据并运行算法来得到。由于算法输出的转载网页太多，我们无法一一判断每个网页是否是真正的内容转载网页，因而对于准确率的计算我们采用了如下的估算方法：先将算法的输出结果（即算法求出的转载网页）分为n段，在每段中对镜像随机取100个采样，用人工确认的办法得到每100个采样的准确率，最后用这n个准确率的平均值来作为算法的准确率。 实验结果 在2000年5月上旬，我们使用天网的搜集子系统从国内的2万多个Web站点上搜集了1,182,899个网页，对于每个网页我们都保存了其摘要、关键词及其权值等信息，依此作为我们的实验对象。这5种算法运行的机器是一台PC机，配有双CPU，内存为256MB，硬盘36G，运行的操作系统为Turbo Linux 6.0。 基于上述实验环境，我们分别使用上述5种算法来消除转载网页。当关键词个数N取10、向量偏差度阈值δ取0.01时，得到了第一组实验结果如表7-3所示。其中“总和”是指只要某个网页被五种算法中的任一种检测为转载，它就被确定为转载。实际上这里的“总合”等价于算法1和算法5的“总和”，因为算法2、3和4发现的转载网页都能够由算法5所发现。 算法1与其它算法的差别较大，这是由于它们所选取的判断对象的不同造成的，前者选用了512字节的摘要，而后者用的是一组关键词。 从表7-3可以看出，这五种算法的准确率都很高，而其中第5种具有最高的查全率，而准确率的损失又不是太大，我们认为效果是最好的。同时，也可以看出“总和”的查全率要比5种算法中的任意一种好得多，而其准确率也很高。这启示我们可以结合使用算法1和5来消除转载网页。 表7-3 当N=10、δ=0.01时5种算法的查全率和准确率 由于算法3和4的效果受向量偏差度阈值δ取值的影响，我们令δ=0.1，N=10重复了上述实验，得到的结果如表7-4所示。可以看出δ的取值对算法的查全率和准确率影响不大。 表7-4 考察δ的取值对算法3和4的影响 关键词个数N的取值是影响后4种算法效果的一个关键因素，因而我们针对效果最好的第5种算法，通过取不同的N值，得到了查全率的变化曲线，如图7-10所示。从图中可以看出，当关键词取得极少时,镜像算法的查全率很高,这无疑是用极低的准确率作代价的。关键词慢慢增多，查全率迅速下降，当选取到9个或10个关键词时，这种下降趋势变得很平缓，同时准确率达到一个比较高的水平。当选取到二十个以上的关键词时，有些低频词被选取，一部分转载网页的差别被反映出来，于是查全率有较大下降。随着选取的关键词继续增多，有差别的转载网页全部被认为是不同网页，剩下的完全相同网页使查全率不再随选取关键词的多少而变化。我们得到的结论是，关键词取10个左右最恰当，在较高的准确率的基础上，获得了最大的查全率与最小的运算量（主要是指关键词排序和签名运算）。 图7-10 查全率随选取关键词个数的变化 与现有算法的比较 为了与现有的算法进行比较，我们把文献[Shivakumar and Garca-Molina,1998]的实验结果（主要包括查全率和运行时间）列于表7-5中。我们的实验结果列于表7-6中。其中文献[Shivakumar and Garca-Molina,1998]的实验平台为带双CPU的SUN UltraSPARC工作站，内存为256MB, 对换工作区大小为1.4G，机器运行的操作系统为SunOS 5.5.1。可以看出其运行环境是优于我们的。基于关键词的消重算法有一个优点，就是只用一次签名就可以很好的判断某网页是否为转载，这样对N个网页计算其网页转载的复杂度为O(N)。通过比较表7-5和表7-6的数据，可以看出，算法1和5平均处理一个网页的时间总和不到“分段签名算法”的十分之一。我们的算法在时间上有明显的优势。另外，从这两个表可以看出，算法1和5总和的查全率要好于分段签名算法的，这表明消重的效果也略好于文献[Liu, et al.,2000]的分段签名算法。 表7-5 分段签名算法的时间复杂度及性能 当然我们的算法也有其局限性。如算法1要求事先知道各个网页的摘要信息，而后4种算法则要事先知道每个网页的关键词。但是目前绝大多数的搜索引擎是基于关键词匹配的，系统本身已为我们找出文章的摘要和关键词。而对于数字化图书馆项目而言，大多数数字化文档的摘要和关键词也是事先知道的，因而我们的算法仍然是适用的。 表7-6 基于关键词的各算法的时间复杂度及性能 (N=10, δ=0.01) 小结 本节描述了5种网页消重算法，并使用天网系统对之进行了评测，体现了这些方法的优越性。我们的实验也进一步表明在WWW上存在大量的镜像和转载网页，如下为比较常见的几类： 政府部门的法令、通告。例如，公安部颁布的《计算机信息网络国际联网安全保护管理办法》在国内的网站上有120个镜像。 重大新闻、热点新闻。例如，《中欧WTO谈判取得进展但未达成协议》有75个镜像。 技术文档。如：TUCOWS WinSock utilitics 有一百个镜像，Micorsoft Internet Information Server 2.0 Manuls有90个镜像。 提供一定服务的网站和网页。例如，“黄金书屋”的镜像有30个，而列出了国内各所大学URL的网页有上千个。 除了采用本节的消重算法来提高搜索引擎系统的输出质量外，还可以研究以网页的镜像度为参考来判断网页的重要度，进而提高Web搜集系统的搜集质量和效率。同时，这些算法若应用于数字化图书馆项目，也将是行之有效的。]]></description>
		<wfw:commentRss>http://scseoer.com/algorithm-evaluation.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>消重算法</title>
		<link>http://scseoer.com/duplicate-elimination-algorithm.html</link>
		<comments>http://scseoer.com/duplicate-elimination-algorithm.html#comments</comments>
		<pubDate>Tue, 02 Aug 2011 09:45:31 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[算法]]></category>
		<category><![CDATA[网页消重]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1425</guid>
		<description><![CDATA[算法基础 当前比较成功的搜索引擎系统大多是基于关键词匹配和结合向量空间模型来完成用户的检索请求的。典型的系统包括Google和天网系统。通常这类系统在对已抓取回来的网页进行分析时，要提取网页中出现的关键词和摘要信息，并以关键词作为网页的特征项。 天网系统在搜集并分析一篇网页时，提取并记录了网页中出现的关键词，同时根据公式赋予每个关键词一个权值，这些关键词的权值构成一个向量空间，可以用来表示该网页。另外，我们还从网页中提取了512个字节的有效文字（指用户实际访问该网页时能看到的文字，在html和其他格式的网页中，有一些用户看不到的文字，它们告诉浏览器该执行什么样的操作及如何显示网页，包括字体、颜色、排版等信息）作摘要。当用户查询时，摘要同网页的标题、URL等信息一起显示给用户，供用户了解网页的内容，选择感兴趣的进行浏览。 算法描述 考虑到基于关键词匹配的搜索引擎系统的特点，结合使用网页的向量空间模型，我们提出了5种网页消重算法，用于快速、有效地发现Web上的转载网页。下面逐一介绍这几种算法。在以下的描述中，用Pi表示第i个网页，其权值最高的前N个关键词构成的特征项集合为Ti={t1,t2,&#8230;,tin}，其对应的特征向量为Wi=&#60;Wi1,Wi2,&#8230;Wim&#62;，其摘要用Abstract(Pi)表示，前N个关键词拼接成的字符串用Concatenate(Ti)表示，而先对N个关键词按字母序排序后再拼接成的字符串用Concatenate(sort(Ti))表示。另外，用MD5(X)来表示字符串X的MD5散列值，用Mirror(Pi,Pj)表示Pi和Pj互为转载网页，用A→B表示“若A成立则B成立”。 算法分析 可以看出，我们设计的第1种算法采用了对网页摘要求MD5散列值的方法，当两个网页的散列值（占16个字节）相同时，就认为二者是互为转载的。由于MD5算法的严格性保证了当两个网页的摘要内容有一个字节不同时，其散列值就不同，这样就使得本来应作为转载处理的却没有被确定为转载网页。为此，我们又基于向量空间模型理论，提出了第2种和第5种算法。第5种算法表明，当两个网页的权值最高的前N个关键词集合相同时就认为二者是互为转载的网页。第2种算法比第5种要严格一些，它不仅要求两个转载网页的前N个关键词相同，其顺序也是一致的（按权值排序），因而第2种算法有可能会漏掉一些转载网页。 算法2和算法5都只是要求转载网页的前N个特征项相同，没有考虑到这些特征项所构成向量的夹角大小。算法3和算法算法4则分别在算法2和算法5的基础上分别考虑了两个网页特征向量的相似度。但向量相似度的计算并没有使用夹角余弦值来定义，因为它只度量了两个向量的夹角大小，而没有考虑向量的长度。我们认为只有当两个向量的夹角小，同时其长度相差也小时，二者才是相似的。针对这一点，我们又设计了判断两个向量相似度的方法，即算法3和4的第二个条件： 可以看出，SIM能够同时兼顾向量的夹角和长度两个因素。当两个网页内容毫不相关时（即它们的关键词集合没有交集），Wi与Wj垂直，SIM的值为1。当两个网页相同时，SIM为0。当两个网页相似而不相同时，SIM的值介于0和1之间，于是SIM的值成为判断两个网页相似度的标准。另外，类似于算法5是对算法2的条件放松，算法4也是对算法3的放松。 后四种算法都对向量空间模型理论作了较大的简化。首先，我们只从网页中出现的所有关键词组成的M个特征向量提取了前 N个(N&#60;M),这把理论模型的限制放松了。只所以可以这样做是因为： 1、特征向量的前N个分量绝对值大，基本能确定特征向量的方向。取较少的关键词能减少算法的复杂度。尽管有可能降低其准确度，降低多少，后面的实验将对其作出评测。 2、转载网页的制作人，对网页稍加改动变成相似网页时，不能改变其基本意思。而网页的基本意思一般通过其中出现的高频词来反映。后面的(M-N)个词出现的次数为1或2，相对而言，这些词的出现是不稳定的，当使用这些词来判断相似网页时，反而会漏掉一大批相似网页。 其次，后4种算法都要求前N个关键词组成的集合要相同。这却把理论模型的限制加强了。这主要是由于对算法复杂度的考虑，判断两集合交集大小需要先求出它们的交集。求交集运算的复杂度较大，而把一百万网页两两求交集，其1012量级的运算量是我们不敢提及的。我们只能考虑用MD5算法对集合签名，实际上就是对关键词序列签名，来表示集合的相同与不同。签名算法有极高的敏感性，作用对象稍有不同就会给结果带来很大的差异，并且不可能从签名差异的大小来判断原签名对象差异的大小。作这样的简化后，有可能出现这样的情况，位置在N附近的词在排序上出现的微小变动，如第N 个词与第N+1个词位置互换了，本来是两篇相似度很高的文章，可能会被我们的算法漏掉。这对算法的影响到底有多大，我们仍需通过实验来评测。]]></description>
		<wfw:commentRss>http://scseoer.com/duplicate-elimination-algorithm.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>网页消重算法</title>
		<link>http://scseoer.com/webpage-duplicate-elimination-algorithm.html</link>
		<comments>http://scseoer.com/webpage-duplicate-elimination-algorithm.html#comments</comments>
		<pubDate>Tue, 02 Aug 2011 09:18:28 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[算法]]></category>
		<category><![CDATA[网页指纹]]></category>
		<category><![CDATA[网页消重]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1423</guid>
		<description><![CDATA[如前所述，我们粗略地将内容完全相同的网页称作镜像网页，主题内容相同的网页称作转载网页。就消除主题内容重复的网页而言，我们完全可以把镜像网页看作转载网页的特例来处理。由此，所谓网页消重就是指去除网页集合中转载网页的过程。 国际上对转载文档消重算法的研究最初主要是针对大型文件系统的，后来又被拓展应用于数字化图书馆项目和搜索引擎系统。美国Arizona大学的研究人员采用计算文档的重叠程度的方法来发现一个大型文件系统中的相似文件。Stanford大学的研究人员开发了SCAM (Stanford Copy Analysis Mechanism)原型系统用于发现相似的数字化文档，后来在对其消重算法作了改进之后应用于Google搜索引擎系统。几乎所有的上述消重技术都基于这样一个基本思想：为每个文档计算出一组指纹（fingerprint），若两个文档拥有一定数量的相同指纹，则认为这两个文档的内容重叠性较高，也即二者是内容转载的。 由于上述系统的应用目标不同，它们计算文档指纹的方法以及在如何度量两个文档的相似程度方面有较大差别。文献[Shivakumar and Garca-Molina,1998]采用了一种对全文分段签名的算法。这种算法把一篇网页按一定的原则分成N段（如每n行作为一段），然后对每一段进行签名（即计算指纹），于是每一篇文档就可以用N个签名后的指纹来表示。对于两篇文档，当它们的N个签名中有M个相同时（m是系统定义的阈值），则认为它们是互为转载的网页。 该算法使用对&#60;文档标识(DocID),段标识(ChunkID),指纹(Fingerprint)&#62;三元组排序的方法避免了对所有网页作两两比较，使算法复杂度有所降低。但是该算法的空间复杂度和时间复杂度仍然是相当大的，若应用于海量的搜索引擎系统（通常包含上亿个Web页面），仍然难以取得理想的效果。我们结合基于关键词匹配的搜索引擎系统的特点，提出了5种网页消重方法，实验表明这些方法的效果很好，目前已被成功地应用于北大天网搜索引擎系统，用于消除转载网页。]]></description>
		<wfw:commentRss>http://scseoer.com/webpage-duplicate-elimination-algorithm.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>模型应用及实验研究</title>
		<link>http://scseoer.com/model-experimental-research.html</link>
		<comments>http://scseoer.com/model-experimental-research.html#comments</comments>
		<pubDate>Tue, 02 Aug 2011 09:16:42 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[内容重复]]></category>
		<category><![CDATA[网页噪音]]></category>
		<category><![CDATA[网页重复]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1417</guid>
		<description><![CDATA[DocView模型在网页自动分类中的应用及实验分析 网页与传统文本的一个重要区别是网页内容的随意性，这就导致网页内容中的噪音内容很多，因此，在网页分类过程的开始首先对网页作适当的净化，可以在一定程度上改进分类的准确性。将DocView模型中正文要素和相关超链要素重新组合就得到了净化的网页。在本实验中，我们以一个现有的分类器作为基准，提取基准分类器的训练集和测试集中网页的DocView模型，并用模型中正文要素和相关超链要素组合成的新网页替换原始网页，从而形成净化的训练集和测试集。然后，通过对净化后的训练集学习得到新的分类器，并用净化后的测试集进行测试。通过比较新分类器与基准分类器的测试结果，证明模型中正文要素和相关链接要素提取的正确性以及用它们代替原网页的合理性。 1、实验数据集 实验中用北京大学网络实验室开发的分类器作为基准分类器，该分类器支持的分类体系中共有733个类别，分为三层，其中顶层类有12个，该分类器的训练集和测试集共有15570个网页，这些网页就是按照上述分类体系组织的。 2、如果DocView中正文要素和相关超链要素提取的正确性足够高，那么把DocView中正文要素和相关超链要素组合起来生成的新网页将有效的消除噪音内容，因此用新网页代替原网页后的新训练集会使得各个类别的主题更为明显，而新测试集中网页的类别也更为清晰。所以，基于新训练集和测试集的测试结果也会得到提高。 3、实验评测标准 对分类效果的评价采用传统的查准率、查全率、F1 值。 4、实验结果及其分析 图7-9是新旧分类器的性能比较，横轴表示不同的类别编号，对应上面式子中的下标i（最后一项是关于所有12类的平均值），表7-1是图7-9中类别编号对应的类别含义。 图7-9 网页净化前后分类效果对比 通过图7-9我们看到，所有类别的分类结果均比原来有所改善。由于我们并没有对分类器的特征项提取算法和分类算法作任何改进，所以，图7-4所示的提高完全是从网页本身的改进得到的。因此可以得到两条结论： 净化过程中，没有出现明显的信息遗漏。 广告等噪音信息确实得到有效的去除。 表7-1 类别编号对照表 由于人工选取训练集和测试集的网页时已经做到尽量选取正文信息多、噪音信息少的网页，因此，网页净化在实际应用中的效果要比该实验的结果更为明显。 DocView模型在网页消重中的应用及实验分析 在本实验中，我们将DocView模型应用于预处理环节中的网页消重1。消重是指将搜集到的网页中的镜像或转载网页去掉的过程（镜像网页可以理解为一种特殊的转载网页），在消重后的网页集上建索引再提供服务可以保证用户查询时不会出现大量内容重复的网页。由于大量的转载网页并不是对原始网页的简单拷贝，而是将要转载的内容放在新的模板中再提供服务。因此模板中的内容就会干扰消重程序对转载网页的判断，从而导致错误消重。常见的错误消重有以下两种情况： 相同的内容，由于放在了不同的模板中导致应该被消掉但实际上被消重程序判断为非转载网页而保留。 不同的内容，由于放在了相同的模板中导致不应该被消掉但实际上被消重程序判断为转载网页而消掉。 从实际系统中也可以看出，模板因素是导致消重不够准确的一个主要原因。鉴于此，本实验中首先提取网页的DocView模型，然后将模型中的正文要素取代原始网页作为判断转载网页的依据。 1、实验数据集 实验中使用三组网页：基准网页集、转载网页集、非转载网页集。 基准网页集是用来模拟Web上被转载的原始网页，该集合中的每一个网页都存在一个或多个满足特定条件的转载网页在转载网页集中，也存在一个或多个满足特定条件的非转载网页在非转载网页集中。 转载网页集是用来模拟Web上的转载网页，该集合中存放基准网页集中每个网页对应的转载网页，这些转载网页满足如下条件：与对应的基准网页使用不同的模板。该集合用来测试上述情况一。 非转载网页集是用来模拟Web上使用相同模板但内容不同的网页，该集合中存放基准网页集中每个网页对应的非转载网页，这些非转载网页满足如下条件：与对应的基准网页使用相同模板而且内容属于同类。要求与基准网页内容属于同类是因为属于同类的网页容易被误消，所以使用同类的网页能更好的说明问题。该集合用来测试上述情况二。 理想情况下，转载网页集中的网页应该全部被消掉，而非转载网页集中的网页应该全部保留。因此，我们可以通过计算一个消重算法对转载网页集和非转载网页集消掉的网页个数来评价该消重算法。 我们人工为基准网页集、转载网页集、非转载网页集三个集合选取了网页，网页内容覆盖体育、娱乐、新闻、科技、社会、财经、教育、医学、IT、游戏等领域，目的是为了让实验网页的正文内容覆盖面足够广从而避免模板内容与网页正文内容有特殊关系。三个集合中共有79个网页，其中基准网页集有26个，转载网页集有26个，非转载网页集有27个。 2、实验思想 由于消重的目的是消去主题内容相同的网页，而DocView模型中的正文要素正是去掉网页中模板内容后的主题内容，因此，在使用相同的消重算法的前提下，用DocView模型中的正文要素代替网页原文参与消重，消重准确性应该有所提高。 3、实验结果及分析 表7-2中的数据是使用同一种基于关键词的消重算法但基于不同内容的消重结果。表中的数据是被消掉的网页数。 表7-2 消重实验结果 从上表中的数据可以看到，在基于网页原文的消重方法中，由于模板因素的干扰，导致消重算法将模板不同的转载网页作为不同网页而没有消掉。而用DocView模型中的正文要素代替网页原文参与消重，可以很好的克服模板因素的干扰，从而提高消重准确性。]]></description>
		<wfw:commentRss>http://scseoer.com/model-experimental-research.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>提取DocView模型要素的方法</title>
		<link>http://scseoer.com/extraction-docview-model-element-method.html</link>
		<comments>http://scseoer.com/extraction-docview-model-element-method.html#comments</comments>
		<pubDate>Tue, 02 Aug 2011 09:08:36 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[内容]]></category>
		<category><![CDATA[算法]]></category>
		<category><![CDATA[网页噪音]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1411</guid>
		<description><![CDATA[对Web上的网页，我们根据其网页类型可以将它们分为三类：有主题网页、Hub网页和图片网页。针对三类网页的信息提取算法各不相同，因此在对网页进行深入分析之前首先要判断网页的类型。为此，我们首先描述这三类网页的特征及判断方法，然后将对面向有主题网页的模型提取算法进行详细的讨论，最后简要的介绍面向Hub网页和图片网页的算法。 1、网页类型判断方法 在视觉上，大多数网页是容易区分类型的，因为三种类型的网页有着较为明显的视觉特征。在有主题网页中通过成段的文字描述了一件或多件事物，虽然也会有图片和超链，但这些图片和超链并不是网页的主体。图片网页中内容是通过图片体现的，而文字仅仅是对图片的一个说明，因而文字不多。Hub网页通常不会描述一件事物，而是提供指向相关网页的超链，因此，Hub网页中超链密集。 虽然视觉上判断网页的类型是比较容易的，但让计算机自动做到这点却不容易。下述的量化方法可以在绝大多数的情况下准确的识别网页的类型。网页都是有一定布局的，比如分左右两边或是中间和边缘。网页作者通常将重要的内容放在网页的中间部分，而边缘部分内容的重要性相对较低，这也是符合人的浏览习惯的。因此，依据网页中间区域的内容判断网页的类型是相对合理的，而网页中内容的位置信息在本节中构造的标签树中是通过内容块的属性记录下来的。 本节前面提到，在构造标签树时，依据内容块中词项数与图片数的比值以及内容块中词项数与anchor text中词项数的比值将网页中的内容块分为topic、hub和pic三个类型，基于内容块的类型，我们可以使用网页中间区域hub内容块包含的词项数与网页中间区域词项数的比值来判断网页是否为hub类型。同理，使用网页中间区域pic内容块包含的词项数与网页中间区域词项数的比值可以判断网页是否为pic类型。实际效果表明，该方法判断网页的类型是较为准确的。 2、有主题网页的信息提取算法 该算法以一组启发式规则为指导，首先提取出网页的正文信息，然后以正文信息为基础，提取DocView模型中其它的要素。过程如图7-5所示。下面按照各个要素的生成过程分别描述。 正文： 一篇有主题网页中的正文通常是用成段的文字来描述，中间通常不会加入大量的超链，而非正文信息通常是伴随着超链出现的。基于此，我们提出了正文选取的规则（称为正文规则）。 正文规则：有主题网页中，如果一个内容块是topic类型的，则该内容块中的内容为正文的一部分。 依据正文规则，深度优先遍历标签树并依次记录topic类型的内容块，就得到该网页的正文，也就是该网页的主题内容。 图7-5 有主题网页DocView模型生成过程 关键词： 关键词选取的依据是特征项的权值，因而特征项权值的合理计算是正确提取关键词的保证。以标签树为基础，结合HTML网页的特点以及提出的量化方法，可以按照下述过程得到网页主题内容的特征向量。 图7-6 计算网页特征项权值的算法 使用图7-6所示算法得到特征项向量后，我们可以用两种策略决定选取关键词的数量。 绝对数量策略。首先定义好DocView模型中关键词的个数α，严格选取权值最大的α个特征项作为该网页的关键词。 相对数量策略。该策略中不需要规定要选取的关键词的个数，而是依据特征项权值的绝对大小。该策略首先定义了一个阈值β，而后计算所有特征项权值的算术平均值avg，选取特征项中权值大于avg * β 的作为该网页的关键词。这种策略虽然会导致每个网页中被选取关键词的数量不均，但它却可以更准确地提取关键词。 内容类别: 内容类别是通过对正文分类得到的。网页的量化表示是网页分类过程中必不可少的阶段，而在前面关键词提取过程中已经得到了正文的特征向量，于是直接使用正文特征向量进行分类可以节省网页量化过程的时间开销，这正是将共性需求的信息一次性提取的优势之一。仅对网页的正文分类有效的排除了噪音内容的干扰，从而提高了分类的准确性。我们使用的是北京大学网络实验室开发的分类器（详见第十一章）。 标题: HTML网页中，网页的标题由&#60;title&#62;标签标识。通过统计我们知道，94.12%的网页是有标题的，但在这些标题中，有很多是如下标题：“Untitled Document”、“New page”、“welcome”、 “欢迎访问”。这其中有的是网页制作工具为新创建的网页赋予的初始名称，有的是网页制作者较为常用的网页标题。它们是没有任何网页描述能力的，因而并不是合格的标题。针对没有标题或者使用上述无描述能力标题的网页，我们从关键词集合中选取权值最高的作为网页的新标题。 摘要: 摘要的提取基于这样的事实：文章都是按内容分段组织的；阅读者通常是根据一段文章中某几个子句来得到该段文章的大意，而这几个子句的选择通常是通过扫描某些关键词来定位的。因此，如果可以自动识别文章中不同的段落，那么基于上述得到的关键词，就可以得到能够模拟读者浏览文章过程的摘要提取算法。 图7-7 正文段落识别过程 识别文章段落: HTML网页中的结构信息是对网页版面的描述，这使得自动识别文章的不同段落成为可能。在正文提取部分已经得到了网页的正文，在网页的标签树中，所有正文块也构成了一个树状结构，称之为正文树。在正文树中，首先找到所有叶子节点的最近共同祖先结点作为正文根结点。正文根结点的各个子结点对应的正文块就是正文的不同段落。段落识别过程如下图所示。图7-7中的&#60;tr&#62;内容块就是正文根结点，其下面三个&#60;p&#62;内容块就是三个段落。 基于段落的语句提取： 以正文的段落为单位，在各个段落中定位网页的关键词并累加关键词的权值作为关键词所在语句的权值；最后在每个段落中限量选取权值大的语句，就组成了网页的摘要。该方法得到的摘要不能保证摘要中的语句之间有上下文关系，但能作到简短的摘要能覆盖整个文章的内容。 相关超链： 在超链选取的过程中，我们基于这样一个假设：网页中的超链在网页排版时通常按照主题聚集，换言之，相同主题的超链在网页中的位置是相近的，通常放在一个最里层的内容块（该内容块中不再包含其他内容块）中或并列的几个最里层内容块中。这就意味着我们可以以内容块为单位对超链进行取舍。对于超链的选取，我们实验了两种策略。 1、基于anchor text的超链选取策略 anchor text是对超链所指向网页简短、概要的说明，在一定程度上体现了被指向的网页的内容。基于anchor text的超链选取方法是通过比较每个hub类型内容块中anchor text集合与正文的相似度来决定该块中链接的取舍。 图7-8 基于anchor text的超链选取算法 通过这一算法，我们可以对hub类型内容块中的超链进行取舍，而其它类型内容块中的超链通常是对正文中某些信息的详细说明，因而其它类型内容块中的超链通常是内容相关的。因此，整理上述算法保留的Hub类型内容块中的超链和其它类型内容块中的超链就构成了整篇网页的相关超链集。 2、基于分类的超链选取策略 基于分类的超链选取方法是通过判断一个Hub类型内容块中某个超链（通常是第一个）指向的网页与本网页正文的类别是否相同来决定该块中所有链接的内容相关性。该方法可以有效的解决上述方法中anchor text信息过少的不足，而且实验结果证明，该方法确实比基于anchor text的方法准确，但需要动态的从Web上抓取并分类，因而时间开销很大。 [...]]]></description>
		<wfw:commentRss>http://scseoer.com/extraction-docview-model-element-method.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>网页的表示</title>
		<link>http://scseoer.com/webpage-representation.html</link>
		<comments>http://scseoer.com/webpage-representation.html#comments</comments>
		<pubDate>Tue, 02 Aug 2011 08:56:36 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[内容]]></category>
		<category><![CDATA[权重]]></category>
		<category><![CDATA[标签]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1405</guid>
		<description><![CDATA[网页的表示是网页内容分析的基础，在网页内容分析过程中通常需要两个层次的表示，抽象表示和量化表示。 抽象表示是以网页制作规范（如HTML规范）为依据和出发点，构造出能体现网页内容结构和内容重要性等信息的表示模型，其目的是充分利用网页制作规范，挖掘出网页中隐含的信息，为后续量化表示提供更多可利用信息。对于HTML网页，最常用的方法是构造网页的标签树。 量化表示则是从计算机处理的角度出发，利用信息检索领域的技术和从网页中挖掘的隐含信息，生成计算机可以直接用于计算的表示模型，如向量空间模型等。下面对这两个层次的表示方法做详细描述。 1、抽象表示 HTML通过定义一套标签来刻画网页显示时的页面。因此，对于HTML网页最常用的抽象表示方法是构造网页的标签树。 依据标签的作用可以将HTML的标签分为三类： 规划网页布局的标签：在视觉上，网页是由若干提供内容信息的区域（我们称之为内容块）组成的，而内容块是由特定的标签规划出的（称之为容器标签），而且容器标签是允许嵌套的。常用的容器标签有&#60;table&#62;、&#60;tr&#62;、&#60;td&#62;、&#60;p&#62;、&#60;div&#62;等。因此，依据容器标签可以将网页表示成树状结构，虽然该树状结构描述的是网页内容的布局结构，但布局信息中隐含着网页内部各部分内容的相关性信息。 描述显示特点的标签：在HTML标准中定义了一套标签来规范其包含的内容的显示方式（比如：字体变大、粗体、斜体），我们称之为重要信息标签。常用的重要信息标签有&#60;b&#62;、&#60;I&#62;、&#60;strong&#62;、&#60;h1&#62;、&#60;h2&#62;等十几种。这类标签中的内容通常是网页作者希望引起读者注意的，因此隐含着一定的内容重要性信息。 超链相关的标签：超链是HTML网页区别于传统文本的最明显的特点之一，表示着网页间的关系，因此整理出超链标签并作合理的分析可以挖掘出网页间的内容相关性信息。 目前，有很多构造标签树的工具（如：W3C HTML lexical analyzer和HTML Tidy），它们各有特点，W3C HTML lexical analyzer有很强的通用性，适合各种标识语言；HTML Tidy则能够自动发现并修正标签的错误。由于内容分析需要在网页内部计算各个部分之间的相关性以及确定各部分内容的重要性，因此，用传统的顺序整理各种标签的方法构造出的标签树在用于内容分析时并不方便。适合内容分析的标签树强调内容块的概念，倾向于以内容块为单位的内容组织方式。另外，内容分析过程中经常会关心这样一些信息：标签树的规模（结点个数）、每个内容块包含的各种类型信息（如：文本、超链或图片）及其数量等。鉴于此，我们自行开发了更适合内容分析的标签树构造工具。 下面简要的描述标签树。给定一篇HTML网页，顺序整理出容器标签就得到了对应的标签树的框架。而后，整理每个内容块（对应标签树的一个结点）中的超链标签、图片标签和重要信息标签，并在标签树中对应的结点中记录下来。这样就构造了一棵基本的标签树。对上述基本标签树信息作适当的分析、整理就可以得到内容分析过程中需要的一些描述信息。譬如，依据内容块中词项数与图片数和超链数的比值可以为每个内容块设定一个类型，分为topic、hub、pic三种。如果内容块中词项数与图片数的比值小于某个阈值，该内容块就是pic类型，如果内容块中作为anchor text出现的词项数与该块中总词项数的比值小于某个阈值，该内容块就是hub类型，否则为topic类型。这样，标签树中每个结点都有类型和属性集两组描述性信息，以及超链集和重要标签集等数据信息。 图7-3是一个标签树的图例，其中link_list表示该内容块中超链集合；weighty_tag_list表示该内容块中重要标签集合。 图7-3 HTML Tree 结构 2、量化表示 1、合理利用网页的特点 在传统的文本处理领域中，一个文本被看作是一个特征项向量（w1,w2,&#8230;&#8230;,wn），其中wi是第i个特征项的权值，n是特征项的总数。这样，每个文本就被映射到了向量空间中的一个点，因而向量空间中的点的距离就可以用来衡量其对应的文本的相似性。在量化方法上，对权值的计算，比较常用的是采用TF*IDF方法。在量化方法上，我们可以充分的利用HTML网页中的重要信息标签信息以及HTML网页内容的布局结构。 为了体现重要信息标签中内容的重要性，通常的做法是对重要信息标签中的内容加权值。但重要信息标签中包含的并非都是重要内容，其中的噪音信息非常多，例如：“Tel”、“Fax”、“联系电话”、“传真”、“广告服务”、“前一页”等等。我们对此做了这样的统计，从Web上随机抓取的20000个网页中，包含在我们定义的重要信息标签中的内容有9091条，其中上述的噪音内容（共定义了22个）出现了1200条，也就是说，重要信息标签中的噪音信息至少占13.2%。因此，简单的对重要信息标签中的内容加权是不合理的，整理噪音词集合并对重要信息标签中的内容进行过滤，对过滤后的真实重要内容加权值可以避免噪音扩大化。 由于网页中的标签结构是对页面布局的描述，我们不难得到这样的结论：如果某个内容块中存在真实重要信息，那么这个内容块的重要性也相对较高；如果一个内容块的重要性较高，那么这个内容块的外层嵌套块的重要性也相对较高。可以看出，导致网页中内容块重要性增加的是包含真实重要内容的重要信息标签。基于这个结论，我们给网页中每个内容块赋予一个权值，用来表示这个内容块的重要性，并提出内容块权值的传递规则（我们称其为权值传递规则）。由于内容块与标签树中结点是一一对应的关系，以下对权值传递规则的描述统一使用标签树的结点而不使用内容块。 权值传递规则： 标签树中每个结点的初始权值为1。 每个重要信息标签都有一个影响因子。如果标签树某个叶子结点中存在重要信息标签并且重要标签中的内容是真实重要内容，那么累加重要信息标签的影响因子，得到的和就是该叶子结点的影响因子。没有出现重要标签的叶子结点的影响因子为1。 对于每一个叶子结点，如果影响因子为λ且λ &#62; 1，则该叶子结点的权值变为当前值的λ倍，它的父结点以及父结点下的其他子树中的结点均变为当前值的倍，然后以该父结点为变化源，按照上述规则再向外扩展一次。每一次扩展过程中，遇到父结点为&#60;body&#62;或父结点权值超过预定上限就结束整个权值传递过程。过程如图7-4所示。 图7-4 内容块权值传递过程 不难证明，“权值传递规则”有以下两个性质： 性质7-1 对于初始的标签树，无论从哪个结点开始、以什么顺序执行“权值传递规则”，标签树最终的权值结果都是相同的。 性质7-2 如果初始标签树中叶子结点影响因子的分布不同，那么标签树最终的权值结果一定是不同的。 其中，性质7-1是保证规则正确的基本条件，性质7-2则说明，“权值传递规则”可以保证：初始标签树中叶子结点影响因子的分布与最终标签树中权值结果是一一对应的。另外，可以证明，“权值传递规则”的两个性质与权值向上传递的层数是无关的。 2、适合内容分析的HTML网页量化表示 内容分析过程中的处理对象是网页中的内容块，对于内容块的表示，特征向量方法同样是适用的。但在具体的量化方法上有所不同。一个最重要的区别在于，内容分析过程中侧重的是一张网页内部各个内容块之间的相似度比较，而不是网页间的相似度比较。因此，在特征项权值的计算方法上，我们更侧重特征项在一张网页内部的重要性，而不是特征项在一个文档集合上基于统计的重要性。基于上述分析，我们使用公式（7-1）来计算特征项权值。 其中，Bweightj表示内容块j的权值，它的值由一个内容块中的重要标签来决定的；BN表示网页中内容块的总数；n表示网页中不同关键词的总数；BTfij表示关键词i出现在内容块j中的词频。 3、量化表示方法分析与改进 分析上述的特征项权值公式可以知道，如果网页中没有出现重要标签信息，则所有内容块的权值均为1，那么公式（7-1）就变为完全依赖于词频的计算方法。统计发现，只有19％的网页中有重要标签，这就是说，公式（7-1）对大多数网页而言，是简单使用词频来衡量特征项的重要性；但是，文档中很多高频词并不是真正重要的。基于上述分析可以知道，必须要对高频词做特殊的处理。 所谓“高频无关词”，是指虽然在文档中词频很高，但却没有主题描述能力和区别能力，例如：“中国”、“可以”。在基于词频的权值计算方法中，该类词的权值将会很大；另外，“高频无关词”很容易出现在重要标签中，因而对重要标签中的信息加权也使得这种词的权值很大。因此，在内容分析之前去掉“高频无关词”，既可以提高网页内容表示的准确性，又能减少网页向量中的维数，提高效率。 “高频无关词”最明显的特征是：在大量的文档中都以高频词的角色出现。基于这个特征，我们可以通过词频和文档频率确定某个文档集合的“高频无关词”集。如果使用网页集合并且该集合的规模足够大，那么就可以得到近似Web上的“高频无关词”集。实验数据表明，“高频无关词”与非“高频无关词”在作为高频词出现的文档频率上有很大的差别。因此，我们可以依据该跳变的位置确定高频无关词集。]]></description>
		<wfw:commentRss>http://scseoer.com/webpage-representation.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DocView模型</title>
		<link>http://scseoer.com/docview-model.html</link>
		<comments>http://scseoer.com/docview-model.html#comments</comments>
		<pubDate>Tue, 02 Aug 2011 08:41:30 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[网页内容]]></category>
		<category><![CDATA[网页噪音]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1401</guid>
		<description><![CDATA[本节中提出的DocView模型包括：网页标识、网页类型、内容类别、标题、关键词、摘要、正文、相关链接等要素。其中正文和相关链接要素属于网页的内容数据，而其他6项则属于网页的元数据。下面将对模型中的各个要素作详细描述。 网页标识是对Web上网页的唯一性标识，在DocView模型中使用网页的URL作为网页标识。 网页类型是根据网页内容的表现形式进行划分的，在本节中将网页分为三类：有主题网页（topic）、Hub网页（hub）、图片网页（pic）。其中，有主题网页是指网页中通过文字描述了一件或多件事物，是有一定主题的；如一张具体的新闻网页就是典型的有主题网页。Hub网页是指专门用来提供网页导向的网页，因而是超链聚集的网页；如门户网站的首页就是典型的Hub网页。图片网页是指网页的内容是通过图片的形式体现的，其中文字很少，仅仅是对图片的一个说明；如某个机构包含图片的人员介绍网页就是典型的图片网页。 将网页分为上述三个类型是因为三类网页在用途和处理方法上存在较大的差别。其中Hub网页与其它两类网页的区别在于网页在Web上发挥的作用不同，Hub网页通常不会具体的讲述一件事物，而是提供关于相关信息的链接集。而图片网页与其它两类网页的区别在于处理的方法不同，由于图片网页的内容是通过图片表达的而不是通过文字，因而，传统信息处理领域的方法对图片网页是不够有效的。三类网页间的区别导致很多应用领域都会对它们作适当的区别。 内容类别是从语义上对网页的内容进行分类，它是计算机获取网页语义信息的一个直接手段，在Web上的研究领域中有着广泛的使用。它是通过特定的分类器对网页内容分类得到的，依赖于一定的分类体系，本书第十一章将有详细的介绍。 标题、关键词和摘要是概括描述Web文档内容的重要的元数据，对于Web信息检索等领域的工作有非常重要的作用。 正文是原始网页中真正描述主题的部分，因此，在某些具体应用中用正文代替原始网页更为合理。 相关链接是指在本网页中指向与正文内容相关的网页的链接，而非广告等噪音链接。将正文和相关超链重新组合就得到了净化后的网页。 图7-1用DocView模型提取的网页要素，图7-2是将提取的网页正文和相关超链重新组合成的净化网页。 图7-1 用DocView模型提取的网页要素 图7-2 净化后的网页]]></description>
		<wfw:commentRss>http://scseoer.com/docview-model.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>网页净化与消重【引言】</title>
		<link>http://scseoer.com/introduction.html</link>
		<comments>http://scseoer.com/introduction.html#comments</comments>
		<pubDate>Tue, 02 Aug 2011 08:35:47 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[网页噪音]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1399</guid>
		<description><![CDATA[今天，当我们浏览Web，从中获取所需信息的同时，还会常常看见大量和我们所关心内容无关的导航条、广告信息、版权信息以及调查问卷等，我们称之为“噪音”内容。有时候，我们可能从这些噪音内容中得到一些意外的惊喜；另一些时候，我们可能不喜欢这些东西消耗人类宝贵的注意力资源。同时，我们观察到噪音内容通常伴随着相关的超链。因此，噪音内容会导致相互链接的网页常常并无内容相关性。这样，网页内容的混乱不仅给Web上基于网页内容的研究工作带来困难，也给基于网页超链指向的研究工作带来困难。另外，随着Web上各种研究与应用的深入发展，仅仅是原始网页内容已经不能满足需求，还要求能够提供便于计算机处理的元数据信息，例如关键词、摘要、网页内容类别等。然而，现在Web上大部分网页仍然是普通HTML网页，并不包含必要的元数据。鉴于此，本节讨论一个网页表示模型建立和实现的方法，这一方面使我们能够自动从网页中提取相关的元数据，另一方面也去除了和网页主题内容无关的噪音内容，进而在原始Web上搭建一个噪音小、描述清晰、更易于处理和利用的网页信息平台。 在主题搜索领域，大量的广告、导航条等噪音内容会导致主题漂移（topicdrift）。这说明传统的主题搜索算法中以网页为粒度构造的Web图不够准确，必须深入到网页内部将处理单元的粒度缩小，才能提高内容分析的准确性。在[Chakrabarti, et al.,2001]中提出了一套解决方法，首先将网页表示为一棵DOM树结构并找到与主题一致性较高的子树，然后对这些子树作特别的处理，从而提高主题提炼的效果。 在Web信息检索领域，检索结果的相关性和检索的速度是评价一个Web检索系统的两个指标。如果不去除原始网页中的噪音内容，检索系统必然对噪音内容也建立索引，从而导致仅仅因为查询词在某张网页的噪音内容中出现，而把该网页作为结果返回，而网页的主题内容可能和这个查询词完全无关。可以看出，噪音内容不仅使索引结构的规模变大，而且还导致了检索准确性的下降。针对这个问题，[Lin and Ho,2002]中提出了一个去除网页中噪音内容的方法，该方法首先依据&#60;table&#62;标签构造网页的标签树，从而依据&#60;table&#62;标签将一张网页规划为相互嵌套的内容块；而后，对于使用同一个模板作出的网页集，找出在该网页集中多次出现的内容，作为冗余内容，而在该网页集中出现较少的内容块就是有效信息块。实验证明该方法是有效的，但该方法必须局限在基于同一个模板的网页集，而Web上的网页模板不计其数，该方法显然不够通用。 实际上，任意一张网页，人是比较容易区别其中的噪音内容和主题内容的。这说明我们有可能追求自动识别一张网页中的主题内容和噪音内容而不需要依赖于一个网页集合；这样就可以使去除网页噪音内容的方法更加通用和独立。 在网页分类领域，由于噪音内容与主题无关，训练集中的噪音内容会导致各个类别的特征不够明显，而待分类网页中的噪音内容则会导致该网页类别不明确，因而影响了网页自动分类的效果。[Li and Shi,2002]中提出了通过去掉网页中的噪音内容来提高网页分类质量的方法。 在网页信息提取领域，自动识别模式的方法必须要从整个网页中提取模式，而不是只针对主题内容提取。因此，在净化后的网页上作信息提取不仅可以排除噪音信息对信息提取的干扰，提高信息提取的准确性，而且可以使得网页中的结构简单化，提高信息提取的效率。 上述分析我们看到，噪音内容对基于网页的研究工作的影响是普遍而严重的，虽然各个领域采用的方法各不相同，但处理的目的都是为了去除网页中的噪音内容，得到真正的主题内容。 另一方面，随着Web上研究与应用的发展，单纯的网页内容已经不能满足需求，网页元数据得到越来越广泛的使用。在Web信息检索领域，单纯依赖关键词匹配的检索手段过于单一。内容类别、摘要等元数据信息的合理使用，不仅使用户可以从不同的角度进行查询，而且也使得查询的准确性得到提高。而主题搜索、个性化信息服务以及数字图书馆也都强烈的依赖资源的元数据信息。因此，准确且高效的提取必要的元数据是Web上各个研究领域面临的重要问题。 在元数据和主题内容的提取方法上，可以从信息提取领域的研究成果（特别是从HTML网页中提取语义信息）中得到很多启发。针对从HTML网页中提取语义信息，早期的方法是：针对某一类具体网页，人工提取该类网页的内容组织模式。然后，信息提取系统根据该模式从属于该类的网页中提取相应的内容，对元数据和主题内容的提取可以采用同样的办法，但这些方法有一个共同的局限性，那就是需要人工提取内容组织模式，这对于内容组织风格繁多的Web来说显然是不适用的。 因此，在[Wemble, et al.,1999]中提出了5条启发式规则，综合利用这5条规则系统可以自动地发现网页中各个主题信息块（chunk）的边界。[Yang and Zhang,2001]提出了一种基于视觉相似性来自动分析网页语义结构的方法，该方法首先比较HTML网页内容的视觉相似性，然后使用一个模式发现算法来确定这些视觉相似的内容最有可能的组织模式，最后按照该模式将内容重新组合。 通过对上述研究成果的分析，我们发现不同领域的工作存在两个共性： 1、工作结果的共性。虽然各个领域所做的工作都是为了解决网页复杂化给本领域带来的问题，但各个领域的工作结果中有着共同的部分。譬如，各个领域都需要去除原始网页中的噪音内容，然后在净化后的网页上进行后续工作；很多领域都需要获取网页的元数据信息。即净化的网页和元数据是它们都需要的结果。 2、工作过程的共性。在获得不同结果的过程中存在着共同的中间环节。譬如：网页分类、摘要的提取以及关键词的选取都需要对文档进行分词操作。而这些中间环节有时是整个工作中效率上的瓶颈。 这些共性启示我们有可能通过归纳不同应用需求中的通用元素，并作为一个模型一次性提取出来，从而对多种应用提供一个统一的支持。可以想象，这样做既便于提高所需信息的质量，又最大限度地避免重复工作带来的时间开销，从而在信息量和复杂性这两个相互制约的因素之间找到一个合理的折中点。 基于这样的思想，本节在参考了Dublin Core[Dublincore,2003]和EDA（Encoded Archival Description）[EAD,2002]后，提出了一个包含元数据和内容数据的网页表示模型（称为HTML_DocView）。该模型包含这样几项信息元素：网页标识、网页类型、内容类别、标题、关键词、摘要、正文、相关链接。参考上述文献中提出的启发式规则,并结合我们自己对HTML网页的统计和观察，本节提出了一套更丰富的启发式规则。在这套启发式规则的基础上，借助传统信息检索领域的方法，结合HTML网页的特点，提出了从网页源文件生成其HTML_DocView模型的方法和算法。该方法与前述相关工作相比更为通用，不需要依赖网页模板以及同类的网页集。 本节的方法已被应用到几种具体的实验中；其中，在网页分类实验中，使用DocView模型对网页预处理后，分类效果得到普遍的提高。将DocView模型应用于搜索引擎的消重过程中，其效果也是明显的。]]></description>
		<wfw:commentRss>http://scseoer.com/introduction.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>网页净化与消重</title>
		<link>http://scseoer.com/webpage-purification-eliminating.html</link>
		<comments>http://scseoer.com/webpage-purification-eliminating.html#comments</comments>
		<pubDate>Tue, 02 Aug 2011 08:28:25 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[网页净化]]></category>
		<category><![CDATA[网页消重]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1397</guid>
		<description><![CDATA[网页净化和消重是大规模搜索引擎系统预处理环节的重要组成部分。所谓网页净化（noise reduction）就是识别和清除网页内的噪音内容（如广告、版权信息等），并提取网页的主题以及和主题相关的内容；消重(replicas or near-replicas detection)是指去除所搜集网页集合中主题内容重复的网页。建索引一般是在消重后的网页集上进行的，这样就可以保证用户在查询时不会出现大量内容重复的网页。 本章第一节论述了一种HTML网页净化与元数据提取的方法，通过它我们可以从一个网页源文件中自动提取网页的一些主要元素，包括网页标识、网页类型、内容类别、标题、关键词、摘要、正文、相关链接等信息。第二节给出了五种转载网页的消重算法，通过这些方法可以消除绝大多数主题内容重复的转载网页。]]></description>
		<wfw:commentRss>http://scseoer.com/webpage-purification-eliminating.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>可扩展搜集子系统小结</title>
		<link>http://scseoer.com/extensible-collection-subsystem.html</link>
		<comments>http://scseoer.com/extensible-collection-subsystem.html#comments</comments>
		<pubDate>Tue, 02 Aug 2011 08:26:30 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[搜索引擎]]></category>
		<category><![CDATA[搜集系统]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1395</guid>
		<description><![CDATA[第一节以天网这样一个实际系统由集中式到分布式的过程为例，说明了基于Web信息急速膨胀的需要而产生的对搜索引擎技术发展的要求。 提出并设计了可扩展Web信息搜集系统结构，使之达到能够搜集数量不断增长的网页的要求。 在详细介绍可扩展Web搜集系统的主要设计思想时，还对比介绍了集中式搜集系统的设计与实现。它的实际应用就是天网系统。 目前此可扩展搜集系统结构已经实际应用于天网2.0系统，自2001年6月以来，共进行了多次大规模的Web信息搜集工作，采用多台搜索机器分布式并行工作。其中2001年11月6日16时至2001年11月22日8时，我们的实际运行系统用12台PC机连接在100Mbps速度线路上，对全国静态网页（不包括通过提交查询词动态生成的网页）进行了一次搜集。 搜集过程从 http://net.cs.pku.edu.cn 站点开始，采用一种类似于先宽搜索的策略，直到没有进一步可以搜索的网页。共搜集到网页47,707,998个，涉及到46,669个Web站点，其中不重复的网页为22,382,623个，平均每个站点有479.63个不重复的网页。实际运行和我们的模拟评测结果一致，证明我们并行搜集系统设计高效可行，达到了预定目标。同时我们意识到分布式搜集系统的成功也带来了大量的后续工作：如并行分布式消除重复或转载网页，后台的分布式索引和面向客户的分布式检索，系统管理等。 搜索引擎作为网上信息搜集整理的最直接应用，虽然已经有多家实际系统，但是从分布式系统设计来看，Harvest搜集系统有诸多地方考虑欠周没有最终实现；从早期的文献看，Google搜集系统在URL分配上采用集中式，而不是分布式，从而会形成系统的瓶颈。从研究状况来看，有关天网的可扩展Web信息搜集系统结构设计的论文是较早在国际上发表的应用于搜索引擎实际系统中的阐述分布式系统结构的论文之一。 分布式系统的动态可配置能力对于系统的适应性、可靠性都有重要的意义。在第二节中论述的两阶段映射模型提供了一种在系统成员变化时协调分布式搜集系统的方法。通过分析，可以采用优化的方案实现两阶段映射模型。当系统进入协调过程中，只需在各个节点间移动网页 URL对应的MD5数据和未访问URL列表。每个主控应该维护自己已经搜集网页URL对应的MD5值。为使系统快速的从不稳定状态进入稳定状态，多播技术对于主控之间的信息更新很有帮助。 至此我们重点介绍了可扩展Web信息搜集系统的设计原理与实现方法，并通过一些实验和分析优化了系统的设计，尤其是针对系统动态可配置性的设计。]]></description>
		<wfw:commentRss>http://scseoer.com/extensible-collection-subsystem.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>系统的动态可配置性设计</title>
		<link>http://scseoer.com/configuration-design.html</link>
		<comments>http://scseoer.com/configuration-design.html#comments</comments>
		<pubDate>Tue, 02 Aug 2011 08:23:39 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[URL]]></category>
		<category><![CDATA[搜集]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1392</guid>
		<description><![CDATA[并行系统中WSR模块的存在，使每个节点都能够保持当前系统中所有节点的最新信息，是系统动态可配置性的前提。在保证系统负载平衡的条件下，我们考虑三种方法保证系统具有动态调度性： 采用散列函数动态调度url。 第二个方案是结合第一种方法，同时每个节点记录着一张WWW主机表，这张表在各个节点是相同的，其中每一条记录包含一个WWW主机及其所对应的一个节点。 采用逻辑上二级映射的方法。首先用散列函数映射URL到一张逻辑表上，然后将这张表上的相应部分映射到各个节点。 对以上三种方法通过对节点数增减1的情况分析，可以知道动态调度性的好坏，设WWW主机数为m，系统初始节点数为n，ni，nj表示系统中任意两个节点，加1情况记为n-&#62;n+1，减1情况记为n-&#62;n-1。 第一种、系统初始 每个节点负责的主机数为m/n，散列函数对n取模，可以保证系统负载平衡。在n-&#62;n+1情况下，散列函数对n+1取模，此时可以保证系统负载平衡，但是由于模数改变使原先分配给节点ni负责的URL可能分配给nj负责，从而导致重复搜集一些已经搜集过的网页；在n-&#62;n-1情况下具有同样的缺陷。 图6-8 URL两阶段映射 第二种、两阶段映射 为了克服第一种方法存在的缺陷，每个节点需要附加存储两个表：主机表和本节点已经访问过的url表。每个节点保存的主机表相同，已经访问过的url表各自不同。WWW主机数目有限，后加进的节点没有足够的WWW主机去进行搜集，为达到负载平衡的要求，需要其它节点迁移一部分主机及其所附带的已访问过url的信息给新加入的节点。此时url经过散列函数处理后，需要额外采取一个步骤：在一个节点判断得到该url属于自己负责后，应先根据主机表判断此url对应主机是否已经被其他主机负责，如果没有，才应该自己处理；同理，在一个节点判断得到一个url属于另一个节点（不妨设为A）负责后，应先根据主机表判断此url对应主机是否已经被其他主机负责，如果没有，才将该url传给A。这种方法由于需要维护各节点之间主机表一致，节点数目变化时需要传送主机和附属url信息，较第一种方法增加了主机之间的通信量，我们决定将每个url采用MD5算法，用16个字节表示每个url。 第三种、采用逻辑二级映射的方法 其中一级逻辑节点可以用数组形式存储（不妨设这个数组为A），每一个数组元素的下标即是它所代表的逻辑节点号，其中存储该逻辑节点对应的节点序号。举例说明，设n=10为10个物理节点，m=50,000为逻辑节点的数目，系统初始如图6-8 a)所示：其中A[1]到A[50,000]称为逻辑节点。URL经过散列函数处理后首先平均映射到逻辑节点上，再经过第二次映射将第1到第5,000的逻辑节点映射到1节点，第5,001到第10,000的逻辑节点映射到2节点，以此类推将逻辑节点平均分配到10个节点上。 当节点数增1，每个节点都要让出一部分控制的逻辑节点给新的节点，即对A做部分修改。如图6-8 b)所示，n11是由n1，n2，…，n10匀出部分组成，其逻辑数组中对应的项被置为11。当节点数减1，如图6-8 c)所示，减掉的节点要让出自己控制的主机，平均分配给其他节点，同样要修改逻辑数组中的值。 同第二种方法比较，这种方法多一次映射，同样每个节点需要保存自己访问过的url，随主机迁移时需要转给新的节点。但是这种方法可以不必存储主机表，每个节点中只要保存一份同样的数组A就可以了；这样就减少了节点之间的通信量，并且系统配置改变后，不必像第二种方法一样在散列函数处理后作附加的判断步骤。 现在，由于第一种方法实现简单，在模拟系统中我们采用这种方法。第三种方法较前两种方法优越，是我们系统实现的选择，以保证系统具有良好的可动态配置性。]]></description>
		<wfw:commentRss>http://scseoer.com/configuration-design.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>性能测试和评价</title>
		<link>http://scseoer.com/performance-test-evaluation.html</link>
		<comments>http://scseoer.com/performance-test-evaluation.html#comments</comments>
		<pubDate>Tue, 02 Aug 2011 08:13:50 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[搜集]]></category>
		<category><![CDATA[系统]]></category>
		<category><![CDATA[网页]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1387</guid>
		<description><![CDATA[上述系统设计首先通过一个类似于“trace driven simulation”的方法进行了模拟。具体做法是在一个单节点网页搜集系统的正常运行过程中加入数据采集程序，产生并行算法需要使用的模拟数据。对于每个网页，采集了它的URL和所包含的URL链接，总共得到了761,129篇网页的信息，数据量大小为507MB。以此作为我们并行算法模拟的输入，分别考察了节点数n为2，4，8，16四种情况。为对比起见，在每次运行多节点模拟时也同时运行单节点的模拟。下面是从几个方面对实验结果的评价。 1、负载平衡分析 如前所述，我们为系统负载平衡采用的基本技术是利用散列函数在节点之间动态分配HOST(URL)。由于这里要考虑的是一个过程，不能仅仅用过程结束后每个节点总共分得了多少url来评价是否平衡。因此，我们通过分析每个节点每小时搜集网页数来评估负载平衡的效果。具体来说，模拟程序以小时为数据采集的单位，考察了系统前10小时运行结果。 设系统中包含两个节点，在一个小时内节点一搜集的网页数为2（即n=2），节点二搜集的网页数为3（由于我们只关心两行数据的差别，这里用一些小整数是无关紧要的），依此比例进行下去，取前十小时作为一组参照序列。规整化后如表6-3所示，其中t表示时间（小时），i表示节点编号，中间的数据表示“节点i在t小时里得到的网页总数”。 如果四组实验数据好于参照序列，认为达到负载平衡要求。规整化四组实验数据和参照序列数据，计算出的数据表示成图6-5。在图6-5中三角形线表示参考数据方差，方形线表示节点数为2时的方差，钻石形线表示节点数为4时的方差，加号形线表示节点数为8时的方差，星号形线表示节点数为16时的方差。从图中可以看出任何一组实验数据的方差都小于参考方差。而且随着节点数的增加，平衡性越来越好。在节点数为16时，几乎和x轴重合。说明各个节点搜集的网页数基本相等，因此并行搜集子系统负载平衡达到预期目标。 2、通信开销 实验中为保证环境一致性而采用集中解析域名方式，因此各个节点之间只有交叉url的通信量。各节点之间传递的只是url，每个url长度设定最大为128字节。在今后的实际系统中，为提高域名解析的利用率，各节点已经解析出的主机名要互相传送，每个节点都维护一份当前系统已解析出的主机名与IP地址的对应表。各个节点中的表要保持一致，这也构成主机通信的一部分。每个主机名与IP对应关系的存储长度不会超过72个字节（用64个字节存储主机名，4个字节存储IP，4个字节存储访问时间），因此节点之间通信量不大。另外，为了实现系统的动态调度，需要在增减节点时，将现存节点中维护的相应表进行修改，为了保证表的一致性，需要在各个节点之间互相传递信息。这种情况并不会经常出现，因此不会过多的增加节点通信量。考虑在上述后两种情况下的节点通信中，一个副本要传送给多个节点，在实际系统的运行中我们采用组播技术。 3、可扩展性 图6-6是模拟系统设计可扩展性的具体结果，我们考察了系统节点数n = 1，2，4，8，16等情形。其中，横轴表示目标搜集系统的运行时间，单位为小时；纵轴为累积搜集的网页数。图中分别显示了在5种不同的系统规模下前10小时的运行结果。 模拟过程是在一台机器上，通过多个进程的协调进行的，体现了本章第二节描述的方案和算法，以及如图6-4所示的系统模型。 图6-6 n个节点并行搜集系统及集中式系统性能随时间的变化 将图6-6的内容综合起来，我们得到图6-7。X轴代表节点数，Y轴表示n个节点协同工作搜集的网页数与单个节点在同样时间段里搜集网页数的比（称为加速比）。由图中可以看出加速比随着节点数的增加基本上是线性增加，因此并行系统具有良好的可扩展性。 图6-7 分布式系统效率]]></description>
		<wfw:commentRss>http://scseoer.com/performance-test-evaluation.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>关于性能的讨论</title>
		<link>http://scseoer.com/discussion-performance.html</link>
		<comments>http://scseoer.com/discussion-performance.html#comments</comments>
		<pubDate>Tue, 02 Aug 2011 08:06:44 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[带宽]]></category>
		<category><![CDATA[搜集系统]]></category>
		<category><![CDATA[网页]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1383</guid>
		<description><![CDATA[从实际应用的不同需求出发，海量网页搜集系统的性能可以有不同的定义，涉及四个主要参数，完成一批网页搜集所花的时间（T，小时），收到的网页数量（P），系统和Internet之间的带宽（B，Mbps），参与搜集的机器节点数（n）。如果按照平均每篇网页15KB数据量计算，注意到上述参数的单位，我们有最基本的 例如，P=108，B=100，T33.3小时。当然，这是最理想的情况了。通常，如果B表示网络连接的额定带宽，≥表示实际达到的有效带宽，B&#62;&#62; 。虽然有效带宽是随时间变化的，但在固定的环境下，同样一段长时间（例如一天）的平均有效带宽基本上是稳定的，因此讨论 有意义。下面是关于性能的几种考虑： 1、在给定硬件条件（节点数，网络有效带宽）下，给定时间内搜集不同网页的数量。上面提到过，在一段时间的平均有效带宽是有意义的。一次搜集过程通常要历经几天甚至几周，因此用有效带宽来比较系统设计是合理的。 2、给定硬件条件（节点数，网络有效带宽），达到某给定网页搜集量所花的时间（越少越好）。网页搜集过程告诉我们，刚开始会比较快，unvisited_list迅速增长，每一个抓回来的网页都带回来一些新的URL。但随着过程的进行，进展会越来越慢，不仅新发现的URL少了，更重要的是新发现的HOST(URL)少了，这导致搜集网页逐渐集中到几个大网站上，网站本身的吞吐能力限制了搜集速度，甚至引起比较多的HTTP应答失败。同时，由于网站的数量变少，负载平衡可能开始出现问题（HOST(URLs) &#62;&#62; n不再成立）。这表现为随着搜集过程的进行，每天收到的网页越来越少。在实际中，人们可能先根据经验确立一个目标网页数量，达到后就停止。例如我们在2003年初估计中国的网页数量在1亿以上，但超过2亿的可能性不大，再考虑到以先宽方式搜集时得到的网页的重要性随时间快速递减，于是搜集1亿左右就停止会是一种合理的考虑。 在给定时间（T）内，完成搜集给定目标网页数量（P）所需的节点个数（n）。有许多因素使得给定P，n并不和T成线性反比。较小的n意味着许多好处：较小的节点之间通信开销，较少的外部通信资源（出口带宽）冲突，较好的负载平衡。因此，如果我们有一个搜集时间长度（例如两周），确定一个目标网页数量（例如1亿），也许用n = 20会提前3、5天，但用n = 5可能也能满足要求。 无论哪一种标准，性能的瓶颈可能在不同的条件下表现在系统的不同部分。如前所述，抓取一个网页的任务包含有许多阶段，其中涉及系统的不同部件：处理器，磁盘，网络带宽。例如当节点数比较少时，处理器和磁盘会是个瓶颈，因为每个节点需要启动较多的抓取进程，否则达不到所需的抓取能力。当节点较多时（例如大于10），网络带宽就成为主要矛盾。Internet Archive的Brewster告诉我们，他用6台机器，T1连接，每次抓两个月，2×109左右网页，30TB数据量。30TB/60 = 0.5TB/天，需要46Mps以上的平均有效带宽。]]></description>
		<wfw:commentRss>http://scseoer.com/discussion-performance.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>节点间URL的划分策略</title>
		<link>http://scseoer.com/node-url-partition-strategy.html</link>
		<comments>http://scseoer.com/node-url-partition-strategy.html#comments</comments>
		<pubDate>Tue, 02 Aug 2011 07:56:00 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[URL]]></category>
		<category><![CDATA[搜集]]></category>
		<category><![CDATA[网页抓取]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1379</guid>
		<description><![CDATA[为方便讨论起见，本节我们约定如下符号和术语。 URLs= {URL1, URL2, …}，所要完成收集的网页地址集合。这是一个开放和动态变化的集合。所谓“开放”，指其中元素的个数是事先未知的，具体有哪些元素当然也事先未知。在本文讨论的意义下，URLs的大小至少在千万量级。所谓“动态变化”，指它在收集过程中随着新发现的地址增加。通常，一次搜集过程由某些“种子”网页开始，沿着它们包含的超链，按照某种搜索策略（先宽，先深，等等）往下进行，直到没有新的地址发现，或者人为决定不要再进行了（例如磁盘已满）。 HOST(URL)，一个网页地址的域名部分（或称主机部分），通常对应某台Web服务器，例如URL = http://net.pku.edu.cn/pp_outline.htm，HOST(URL) = net.pku.edu.cn。于是我们可以看到在URL上有一个按照域名的自然划分（即url1和url2同属这个划分的一个“块”，当且仅当HOST(URL1)=HOST(URL 2)），记为HOST(URLs)，即它的每一个元素是一台主机上所有网页的集合。在不至于引起混淆的情况下，我们也可以方便地将HOST(URLs)的元素看成是所涉及主机的域名。在本文讨论中国网页的意义下，HOST(URLs)的大小在10万量级（同样在不至于引起混淆的情况下，我们有时也用HOST(URLs)直接表示它的大小，于是符号HOST(URLs)的含义在本文是“重载的”，由上下文确定具体是哪一种。）。 抓取进程，负责根据一个url完成一篇网页的抓取、分析和存储。它不负责更新任务池，只是将得到的链接返回给下述协调进程。 让n表示并行收集系统的节点数，[n] = {0,1,2,…,n-1}表示网页搜集节点的集合。经验告诉我们每个节点启动200个左右并发抓取进程是比较合适的，它们共享（争用）CPU、网卡和硬盘资源。从原理上讲，我们可以考虑从URLs到200×n个进程之间的映射。但我们认为所带来的管理复杂性要比可能带来的好处大得多。于是我们考虑粗一些的粒度，将目标设定在URLs上形成一个“优化的”n-划分。而在节点内部的并发进程则以一种自由的方式来共同完成分到该节点的任务。 何为优化？就是要在负载平衡和降低开销之间求得一种最好的折中。由于每个任务的执行时间可能相差很大（受网页的大小、网络状态的波动等的影响），简单的按照任务个数的平均分配即使对于负载平衡也是没有意义的。 我们所采用方法的基本思路是对HOST(URLs)进行随机分配，即建立一个从HOST(URLs)到[n]之间的映射。一旦一个HOST(URL)映射到了某一搜集节点，该搜集节点就要负责HOST(URL)下面所有网页的收集。尽管不同的Web站点含有的网页数量会相差很大，但由于HOST(URLs) &#62;&#62; n，并且如果我们的分配函数足够随机，则可以认为分到各个节点上的网页个数比较均匀的可能性很大。 具体来说，每个节点维护两张表，visited_table, unvisited_table，分别代表到目前为止本节点已经抓过的网页和需要抓取的网页。宏观上看，整个系统有向量visited_ table[n], unvisited_ table[n]。每个节点除启动若干抓取进程外，还运行一个协调进程，controller。协调进程的工作是根据本节点抓取进程和从其他节点的协调进程来的信息，维护本节点的visited_ table和unvisited_ table。下面是协调进程的工作算法如图6-3，算法中从抓取回来的网页中解析出的超链接集合links包含的每一个link就是一个URL。 图6-3 协调进程工作算法 从它的工作内容来看，每个节点的visited_table和unvisited_table是此消彼长的。unvisited_table就相当于一个“任务池”，在整个收集过程中它先是逐渐变大，然后逐渐变小，理论上讲，是可以最终为空的。 我们还看到，在不同节点上运行的协调程序是需要通信的：发送不该本节点负责的URL，接收该本节点负责的URL。而从理论上讲（只要不同的url对应不同的网页），这种两级并行的策略能保证网页不被重复抓取。 然而，互联网上复杂的现象使得这个理论的前提不成立。不同的域名可以对应相同的IP地址，例如net.pku.edu.cn和net.cs.pku.edu.cn都对应162.105.203.25，从而沿着这两个不同域名的访问是等效的（这只需要在相应的DNS服务器上做适当映射就能实现）。这就意味着两个不同的URL可能对应相同的网页，于是该网页就可能被多次抓取。一种考虑是当收到一个URL时，首先得到HOST(URL)的IP地址，然后依据这个IP地址来发出HTTP请求。 但我们看到，在某些情况下在HTTP请求中用IP地址（而不是用域名）会得不到所希望的HTTP应答。典型的情况就是大型门户网站为动态分配访问负载所采用的组技术：一个组的代表可以是某个“内部域名”，例如pagegrp1.sohu.com.cn，但它可以包含若干IP地址，这些IP也可能根据应用的需要分成几个子组，例如一个子组对应来自对www.sohu.com.cn的访问，另一个子组对应来自对news.sohu.com.cn的访问。当用域名引起的访问发生时，pagegrp1服务器动态确定某个IP来提供服务，而不允许直接通过pagegrp1内的任何IP来进行访问。于是，就出现了这样矛盾的要求：为了不重复抓取同一个网页，需要在HTTP请求中用IP地址；但为了能够正常访问采用组技术的大型网站，在HTTP请求中不能用IP地址。我们目前的做法是照顾后者，即容忍了有些网页的重复抓取（然后通过一个“消重”过程去除冗余）。 这样，我们就得到如图6-4所示的一个系统运行示意图。其中的协调进程之间两两建立起连接，形成一个逻辑全互连关系，直接传递它们之间的交叉URL。 图6-4 分布式Web搜集系统结构 在图6-4中调度模块（记为WSR）有特别的意义，它维护系统内所有登记协调进程的信息，包括它们的IP地址和端口号。当任何一个协调进程的信息有所改变时，WSR负责将更新的信息转送给其他协调进程，便于建立连接和变更连接。协调进程从0开始编号，直到n-1，各自负责收集存储属于自己范围内的网页。每个节点上运行若干抓取进程，它们在协调进程的管理下工作。抓取进程负责接收从所属协调进程发送的URL，抓取该URL指向的网页并传送给所属协调进程。各协调进程之间都建立有双向连接，可以全双工的工作。当任一协调进程发现自己的收集模块发回的网页中包含不属于自己的URL时，就将此URL传送给负责它的协调进程去处理。为减少通信量，各协调进程之间只传送URL。]]></description>
		<wfw:commentRss>http://scseoer.com/node-url-partition-strategy.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>利用并行处理技术高效搜集网页的一种方案</title>
		<link>http://scseoer.com/parallel-processing-technology.html</link>
		<comments>http://scseoer.com/parallel-processing-technology.html#comments</comments>
		<pubDate>Tue, 02 Aug 2011 07:48:00 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[URL]]></category>
		<category><![CDATA[搜集]]></category>
		<category><![CDATA[网页]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1377</guid>
		<description><![CDATA[Web上成千上万的WWW服务器通过网页之间的链接构成海量信息，各个主机之间的联系或多或少，但都可以说是相对独立的。单处理机系统受限于CPU的处理能力、磁盘存储的容量，不可能具备处理这种海量信息的能力，更不必说跟上Web信息的飞速增长了。 采用并行处理技术成为一个自然的选择。高性能并行计算机系统的种类有很多：SMP, NUMA, MPP, 机群。比较起来，后者对我们的应用是最适合的。这不仅是由于其价格较低，还由于我们网页收集应用的基本特征：操作单纯，进程之间的通信量不大，对磁盘容量和聚集I/O吞吐率要求高，需要有经济效能较高的系统可扩展性以适应未来信息量增长的要求。这些都使我们认为机群是最好的选择。 在网页搜集子系统中，最基本的任务是一篇网页的抓取，它大致上要完成如下功能：从任务池中取一个网页的地址URL，通过DNS得到其IP地址，用该IP地址与Web服务器建立TCP/IP连接，发HTTP请求，等待接收HTTP应答，关闭TCP/IP连接，分析收到的网页，将其中包含的新链接加入任务池中，将网页存放到磁盘数据库中。 由于网页抓取任务的这些阶段内容在完成时间上的不均匀性和不确定性（例如取决于网络状态等等），系统的并行性可以很自然地体现在两个层次：一个节点内部多个进程的并行和节点之间的并行。我们看到，如上所述系统微观上表现为明显的任务并行特征，但为了减少通信量，设计中考虑了一种在节点间采用数据并行、节点内采用任务并行的基本策略。即首先是确定一个在节点间动态划分网页URL的算法，保证不同的节点收集的网页不会重复，而在节点内由抓取进程自由获取下一个任务。 作为一个并行系统的设计，我们追求如下目标：单台机器的搜集能力不应随着搜集机器数量的增加下降很多，即要在追求负载平衡的同时将系统的通信和管理开销降到最低。同时，从实际运行出发，我们还要考虑系统的动态配置问题，即要允许在运行过程中添加和删除节点机器（这是因为一次搜集时间比较长，在这期间有时难免出现机器故障等，需要修复然后再投入服务；而在修复期间系统应该继续运行）。下面的讨论将按照如下要点展开。 在节点间划分URL的策略 关于性能的讨论，包括负载平衡、通信开销和可扩展性等 性能测试和评价 系统的动态可配置性设计]]></description>
		<wfw:commentRss>http://scseoer.com/parallel-processing-technology.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>集中式搜集系统</title>
		<link>http://scseoer.com/centralized-collection-system.html</link>
		<comments>http://scseoer.com/centralized-collection-system.html#comments</comments>
		<pubDate>Tue, 02 Aug 2011 07:45:36 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[robots.txt]]></category>
		<category><![CDATA[网页抓取]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1372</guid>
		<description><![CDATA[搜集系统包括主控模块、搜集器和原始数据库。主控模块是其中的控制模块，它主要负责： 与网页抓取与分析进程的交互：发送配置信息，发送URL，接收分析结果。 与原始数据库的数据交互。 访问控制：智能导向，robots协议，主机访问频度，IP地址等的控制。 与外部系统的接口。 系统设计目标 主控与网页抓取与分析进程的分布。在系统设计中，必须采用分布式技术将任务分布到多台机器上并行的处理。海量网页独立的分布在网络上，对并行访问提供了充分的可能性和合理性。同时，分布并行还会节省网络带宽资源。 可定制性。系统可以让用户依据自己对信息的兴趣，配置用于引导系统搜集的导向词，以及搜集的范围。 良好的开放性。尽可能使用和遵循现有的标准和协议，加强与其它系统交换信息的能力，包括支持HARVEST系统的SOIF信息格式和信息内容，以及robot协议。 一定的扩展性。系统能在CERNET的网络环境下有效的运行，不需改动或改动很少就能适应不同的需要。 一定的智能化。为了提高整个系统的查全率、查准率及搜索速度，搜索的内部算法应具备一定的智能化。 系统结构和主要设计思想 集中式系统结构主要体现在主控的系统结构上。主控系统结构如图6-2所示。可以看出主控系统由6个进程组成，这些进程的功能如下： “主进程”负责产生其他五个进程，接受“抓取分析进程”的连接并交互。 “结果插入进程”通过PIPE接收主进程得到的访问结果，通过各种检查后存入数据库已访问网页列表。其中新的URL放入NewUrlCache或者新的未处理URL列表（当NewUrlCache满时）中，等待“新URL处理进程”进行处理。 “robots存取分析进程”得到URL选取进程发出的SIGUSR1信号后，检查主机表中需要处理的表项进行存取分析。 “URL过期检查进程”定期检查数据库中已经访问的网页，如过时，则将该主页的URL放入未访问URL列表中。 “未访问URL选取进程”从未访问URL列表中选取合格的未访问的URL放入缓存中。“新URL处理进程”从NewUrlCache或新的未处理URL列表中，取出新URL进行处理。 图6-2 搜集系统的主控结构 表6-1 Soif数据描述 主进程与网页抓取与分析进程之间的交互是通过SOCKET来实现的，这样主控与存取分析进程可以运行于不同的机器上。它们之间是通过SOIF数据格式进行交互的。另外，敏感内容监控程序为了实时监控，也向主控发GETS的SOIF数据包，主控对此连接加以标识，每当出现敏感内容时就通过此连接发送PUTS的SOIF数据包。系统所用的SOIF数据包如表6-1所示。 主进程与结果插入进程之间是通过PIPE进行通信的，当主进程收到PUTR的数据包时便转发给结果插入进程，由结果插入进程处理结果。插入进程对新的URL不做处理，而是放入新URL的缓冲区，或当缓冲区满时放入数据库。 新的URL最终由新URL处理进程统一处理。重复的抛弃，未访问的插入数据库的未访问表中。 主进程与robots存取分析进程的通信：当主进程将新的主机插入到数据库中的主机表后，就向robots存取分析进程发SIGUSR1信号进行通知。Robots存取分析进程在信号处理过程中置标记，随后在主机表中查询到相应的表项进行处理。 表6-2 Soif具体语法 主进程与URL选取进程的通信是通过共享内存来进行的。将共享内存组织成循环队列，主进程与选取进程通过PV操作来实现互斥区的操作。 可以看出，通过这种设计，系统的功能及模块的划分比较清晰，主控模块中多个进程并发工作极大地提高了搜集处理信息的速度。另外，系统在选取未访问URL时和处理新URL时使用了两个缓冲，未访问URL选取进程不必每次等待主进程取走选取结果而可以继续选取。结果插入进程也不必等所有新URL处理完才从主进程接收下一个结果进行处理。这样，进一步提高了进程间的并行程度。 管理员可以根据实际情况，将主控和网页抓取与分析进程进行分布和组合，也可以动态控制网页抓取与分析进程的数目。以达到分担服务器负载，提高并发度，加快信息搜集的目的。 在进行信息访问时，我们同时要遵循有关“Web robot”的各种约定：例如，不要在短时间内多次访问同一个服务器；获取“robots.txt”文件，不访问由它指定的目录等。为此我们在数据库中建立了一个主机表和一个禁止访问目录表，主机表记录了最近一次访问一个主机的时间，以及“robots.txt”文件的访问信息（没有、超时或成功访问）。只有在当前时间与此主机上次访问时间之差大于规定的时间间隔，并且不在禁止目录表中时，才允许访问此主机上的URL。 每个节点网页抓取与分析进程和主进程之间信息交换的格式采用了扩展的SOIF格式，如表6-2所示。 从SOIF的语法定义中我们可以看出，每一个对象“OBJECT”包含一个模板类型“TEMPLATE-TYPE”，一个URL和一串由字节数控制长度的属性和属性值的列表。由于是由长度分隔属性值，SOIF属性值也可以是二进制的。SOIF的格式易于分析，易于扩展，格式简单并且有足够的表达摘要对象的能力。它可以由软件自动生成，也可以手工建立。SOIF有几个基本的属性，它们是:Abstract, Author, Description, Keyword, Title。 下面给出一个SOIF的例子： @FILE{http://net.cs.pku.edu.cn Abstract{57}:     HomePage of Computer Networks Lab of CS Peking University Author{11}:      LI [...]]]></description>
		<wfw:commentRss>http://scseoer.com/centralized-collection-system.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>天网系统结构</title>
		<link>http://scseoer.com/net-system-structure.html</link>
		<comments>http://scseoer.com/net-system-structure.html#comments</comments>
		<pubDate>Tue, 02 Aug 2011 07:28:40 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[天网]]></category>
		<category><![CDATA[用户]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1369</guid>
		<description><![CDATA[1997年发布的天网1.0版采用单机搜集、单机服务的系统结构（我们习惯称之为集中式结构）不适应Web上信息规模的迅猛发展，为此我们从1999年开始花了大约一年的时间设计和实现了天网2.0版的分布式并行系统结构。 系统分布的核心是数据的分布。对搜集部分而言，实际是将URL分布在执行搜集任务的机器之间，保证它们搜集的URL不会重复。对查询部分，则是将索引数据分布在执行检索任务的机器之间。天网2.0系统概貌如图6-1所示。为了突出搜集和查询部分的并行化问题，其中略去了搜索引擎三段工作流程中的预处理部分（尽管在大数据量时它也是需要并行的！）。 搜集节点之间相互协调，分配URL，保证一个Web主机的全部网页只能存在于一个搜集节点上。每个索引节点对应搜集节点搜集的网页，查询代理节点通过多播向所有索引节点发送查询命令，等待搜集到全部索引节点返回的检索结果后，对所有结果依据相关度排序，并缓存一定数量的结果，最后向用户返回结果的首页。用户的后续查询（翻页），将会在缓存命中，不必再次启动后面的网络查询，这将大大减少查询的响应时间，降低后台查询系统的负载，从而提高查询系统的性能。 天网系统 第二章的图2-3示出了天网的详细系统结构。可以看出，从功能模块上划分，天网系统由搜集子系统、索引子系统、检索子系统和日志挖掘子系统四个子系统构成。搜集子系统包括主控、搜集器和原始数据库；索引子系统包括索引器和索引数据库；检索子系统包括检索器和用户接口。日志挖掘子系统包括用户行为日志数据库和日志分析器。 主控除了按照启发式算法优先选择重要的URL并分派给各个机器人外，还完成站点过滤、实现robot协议和域名解析并缓存等功能。搜集器按照HTTP协议负责从Web上抓取网页，为提高网页搜集速度，通常可以启动上百个搜集器同时工作。搜集器同时对搜集回来的网页内容进行分析处理，包括调用切词软件以提取关键词和摘要、提取URL超链、记录网页的元信息（如作者、修改日期、长度等），并将这些内容存入原始数据库。 索引器将原始数据库的内容重新组织，建立索引数据库，以提高检索效率。用户接口在截取用户的查询请求后，将它转发给检索器，检索器根据查询项和索引数据库的内容，找到匹配的网页后，进行相关度计算并排序，然后通过用户接口返回给用户。另外，用户接口程序还将用户行为信息（包括用户查询项、用户点击的URL、用户翻页情况等）记录到日志数据库。日志分析器用于跟踪用户行为，以提高搜索引擎的服务质量，如可以学习新词来动态更新词典内容。]]></description>
		<wfw:commentRss>http://scseoer.com/net-system-structure.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>对质量和性能的追求</title>
		<link>http://scseoer.com/ruality-performance.html</link>
		<comments>http://scseoer.com/ruality-performance.html#comments</comments>
		<pubDate>Tue, 02 Aug 2011 07:14:20 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[搜集系统]]></category>
		<category><![CDATA[相关性]]></category>
		<category><![CDATA[网页排序]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1366</guid>
		<description><![CDATA[在“WEB搜索引擎基本原理和技术”中，我们讨论了搜索引擎的基本工作原理，并通过一个实际的例子，阐释了这些原理在一个简单搜索引擎中实现的各个细节。同时，在上篇中我们也多次提到了性能问题和质量问题。尽管没有展开讨论，但其中的要素已经显示出来。事实上，这两个问题在搜索引擎的三个子系统中都有不同程度的体现。 中篇将围绕这些因素展开，具体来说，将讨论五方面的内容： 1．一个并行搜集子系统的详细设计方案。尽管一个搜集子系统的硬件并行度不需要很高，但不做并行是达不到性能要求的。而能否在较短的时间内搜集到足够多的网页，也对搜索引擎系统后续的服务质量有直接影响。但只要是多个节点同时在网上搜集网页，就会引入新的技术问题。这将是第六章讨论的内容。 2．在我们浏览网页，从中获取所需信息的同时，还会常常看见大量和我们所关心内容无关的“噪音”内容，如广告信息、版权信息等，有效的去除和网页主题内容无关的噪音内容，提取网页的元数据信息，如关键词、摘要、网页内容类别等，是Web信息处理的一项重要内容。在网页搜集的过程中，通过两个数据结构unvisited_table和visited_table，我们可以完全避免对相同的url执行多次网页抓取过程。但这并不保证抓到系统中来的网页都是不同的。Web上大量的网页镜像和转载现象使得内容真正“独立的”网页要比实际搜集到的网页少很多。将相似的网页识别出来，当查询发生时只返回一个代表，这既是提高查询服务效率的需要，也是提高查询服务质量的需要。这是第七章的内容。 3．查询子系统的性能模型和并行查询子系统。能够同时响应的用户查询数量，是商业搜索引擎的一个基本指标。与门户网站一样，商业搜索引擎也是以日访问量作为基本的业绩指标，但和门户网站不同的是，每一个访问在搜索引擎上引发的过程要复杂许多。因此，设计一个能够承载每秒几十个，每天上百万人访问的查询子系统是一个非平凡的工作。高档的硬件设备有可能降低设计的压力，但第八章立足于普通的PC机群，给出了一种性能评价模型。天网的实现和测试表明，该模型在系统设计之前，作为一种先验的性能估计手段是可用的。 4．查询局部性的发现与利用。从第八章的分析中我们会看到，查询性能的一个主要瓶颈是磁盘操作。第九章通过分析天网用户查询序列的特点，发现在查询内容上存在很强的时间局部性，即在任何一个不长的时间段内，许多用户关心的内容是相同或者相似的。这个结论和文献中的一些结果吻合。这种现象提示我们，通过在内存中设计查询缓存和热点击缓存，有可能明显减少系统的磁盘操作，从而提高查询的效率。天网的实践也验证了这种认识和理论。 5．相关排序与质量评估。从根本上讲，搜索引擎的服务质量体现在查询结果序列上。首先我们需要有足够多的结果来参加排序，这由搜集足够多的网页和良好的词典设计等技术来保证；然后是这些结果的排序问题。一般来讲，影响结果排序有两类因素，静态因素和动态因素。静态因素指的是和查询无关的因素，例如网页内容的重要性、新颖性、权威性等，可以在预处理阶段形成；动态因素指的是和查询相关的因素，例如和查询词的匹配程度，查询词在网页中出现的“份量”等。它们是第十章的讨论内容。]]></description>
		<wfw:commentRss>http://scseoer.com/ruality-performance.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>信息查询服务小结</title>
		<link>http://scseoer.com/information-inquiry-services-summary.html</link>
		<comments>http://scseoer.com/information-inquiry-services-summary.html#comments</comments>
		<pubDate>Tue, 02 Aug 2011 07:10:29 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[搜索引擎]]></category>
		<category><![CDATA[网页]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1364</guid>
		<description><![CDATA[信息查询服务作为搜索引擎三个步骤（网页搜集，预处理和查询服务）的最后环节，负责把前两个阶段建立好的索引网页库、索引词表、倒排表提供给用户服务，这个交互的过程是通过查询代理完成的。查询代理接受用户的查询请求，在倒排索引中查找符合要求的文档返回，并且提供网页快照功能。 搜索引擎原理上篇第三、第四和第五章这三个连续篇章，以设计并实现一个小的搜索引擎 TSE 为目标，讲述了目前流行的搜索引擎的基本特征，使读者可以快速对搜索引擎技术的整体有一个具体的认识，为进一步理解本书的中篇和下篇内容打下基础。对搜索引擎技术感兴趣的读者，除了参考我们的 TSE 开放代码外，还可以参考其他的开放代码的小搜索引擎程序 。]]></description>
		<wfw:commentRss>http://scseoer.com/information-inquiry-services-summary.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>查询结果的显示</title>
		<link>http://scseoer.com/show-query-results.html</link>
		<comments>http://scseoer.com/show-query-results.html#comments</comments>
		<pubDate>Tue, 02 Aug 2011 07:07:53 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[查询方式]]></category>
		<category><![CDATA[算法]]></category>
		<category><![CDATA[网页快照]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1360</guid>
		<description><![CDATA[列表显示摘要结果 用户界面主要用于和用户交互，包括响应用户的查询检索和记录用户的行为。用户界面主要负责和用户直接接触的事件，如图5-1 所示，它包括： 获取用户的查询请求，提交给查询代理； 查询代理检索索引词表和倒排表，产生结果按照一定的输出格式显示给 用户; 记录日志，包括用户查询短语和查询时间等信息。 对于功能 1，通过 HTML 语言的&#60;FORM&#62;来实现。用户在相应的检索表格中输入需要查询的短语，然后提交即可。对于一个已经提交的检索，服务器方启动一个 CGI 程序进行响应。该程序对用户提交的各个表项进行合法性检查，通过后形成一个结构数据传给查询代理。 对于功能 2，主要用到动态网页生成技术和动态摘要算法。按照查询代理检索回来的数据，CGI程序根据决定输出风格的模版，将结果数据整合到模版中，形成结果页面，输出给用户。动态摘要算法如图 5-3 所示，在文件TSESearch.cpp中实现。用户查询q的向量表示为q = {t1,t2,&#8230;,tm}。包含查询q的网页正文Cnt，并且Cnt已经过滤掉网页标签等格式信息。为了保证用户检索的所有  it都 被加亮显示，摘要算法是在一个循环中实现的。其中b2.1 是很必要的一步。以中文编码的网页为例，每个汉字占用 2 个字节空间，如果摘要算法不能够正确的判断一个汉字的起始位置，而是从汉字的一半位置开始，就会形成第三章图 3-2 中的部分摘要信息乱码。TSE通过定位完整汉字的起始位置，可以正确显示摘要信息，没有乱码。 图5-3 动态摘要算法 图5-4 用户查询日志的记录格式 对于功能3，查询代理接受用户输入的信息，记录到日志文件中。图5-4是TSE中的一段用户查询日志记录，包括用户查询时间和查询短语。 网页快照 搜索引擎索引的网页不一定是当前互联网上最新的网页，因此存在已经消失的可能性。为保证用户能够继续访问相应信息，搜索引擎一般都提供网页快照功能。 TSE中的网页快照在第三章给出了图示3-3，在文件Snapshot.cpp中实现。索引网页库是用第四章中第二节的方法生成的。]]></description>
		<wfw:commentRss>http://scseoer.com/show-query-results.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>结果集合的形成</title>
		<link>http://scseoer.com/result-set-formation.html</link>
		<comments>http://scseoer.com/result-set-formation.html#comments</comments>
		<pubDate>Tue, 02 Aug 2011 06:59:30 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[检索算法]]></category>
		<category><![CDATA[运算]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1356</guid>
		<description><![CDATA[根据用户输入的查询短语，产生结果集合，是检索倒排索引的过程。首先对用户输入的查询短语应用第四章中讲到的中文自动分词技术，获得查询q的向量表示，q  =  {t1,t2,&#8230;tm}，然后执行检索算法，算法描述如图  5-2，实现代码在文件TSESearch.cpp中。这个算法是实际搜索引擎检索算法的简化，应用在TSE中。实际搜索引擎的倒排索引中记录了索引词的权重和位置信息，检索阶段应该一起读出，并加以综合考虑；并且为了在获得结果前读取尽量少的数据，查询q中的ti按文档频率的倒数降序排列。在TSE中，文档权值由索引词频率决定，并且选取结果K是包含查询词的所有文档。 图 5-2 基本的检索算法 图 5-2 中b2.2 检索运算是算法中的重点，首先因为它的运算量很大。如果记&#124;P(ti)&#124;为集合P(ti)内所包含的网页数目为，那么，它要处理的网页数目就是： 其次，它处理的是集合运算。如果系统支持与和或运算，分别对应集合的交和并运算。例如集合 A 和 B，做运算时需要将集合内的元素两两比较，这样的复杂度为&#124;A&#124;&#124;B&#124;，即平方复杂度。显然，无法接受这么慢的速度，需要采用更加高效的算法。对于理论上提到的集合，在计算机中用表的方式表达。如果将这个表示为有序表，集合运算就成了有序表的归并运算。有序表的归并运算的时间复杂度为O(&#124;A&#124;+&#124;B&#124;)，这可以大大提高了检索运算的效率。 如何将每个特征项对应的网页表达成按照网页编码顺序组成的有序表？这就需要排序。根据理论上的证明，无论采用何种排序算法，排序的最低复杂度为O(nlogn)。但是，在索引系统设计时，可以通过给予先搜集到的网页以小的网页编码的方法，使得索引项自动保持了顺序，避免这一步的运算。 通过以上的分析，可以得出从接收到用户的请求到得到相关的网页，相应的运算的复杂度为O(NP(q))，即线性复杂度。 对检索得到相关网页集合，下面的工作就是计算每个网页和查询检索串q的相关度，它在图5-2所描述的基本检索算法的第c步完成。]]></description>
		<wfw:commentRss>http://scseoer.com/result-set-formation.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>检索的定义</title>
		<link>http://scseoer.com/retrieval.html</link>
		<comments>http://scseoer.com/retrieval.html#comments</comments>
		<pubDate>Tue, 02 Aug 2011 06:48:04 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[检索]]></category>
		<category><![CDATA[相关网页]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1345</guid>
		<description><![CDATA[首先，定义系统的元检索—单个词汇的检索方式。 设为系统的特征项词典；集合为系统当前保存的网页集合；系统的索引可表示为集合：，其中 r(t, p) 是相关度函数，表示词汇t 和网页 p 的相关度，如果 t 是网页 p 的一个特征项，那么它就使用相关度算法给出相应的正值，如果不是，相关度为  0；搜索引擎系统 S 为一个三元组，则有公式（5-1）： 其中，WP 代表检索词汇t 的相关网页集合， 函数是系统 S 的元检索函数。 显然，用户不可能总是进行词汇级的检索。大部分的用户输入的检索是词组或自然语句。如何从检索中提取出关键词，在各种信息检索系统中实现是不同的，有些系统直接从检索输入中提取关键词；有些系统提取关键词后，再根据一些规则对关键词进行扩充.  在本模型中，统一的将它们定义为关键词提取函数：，即通过函数g获得检索输入q的相关关键词集合，由公式（5-1），关键词ti的相关网页集合为WP（ti），则最终检索输入q的对应结果为： 其中，函数 f  表示从 q 中提取的关键词的逻辑关系运算式，  f（q, S）  是系统检索的抽象表达式.  由公式（5-1）和（5-2）可以得到，作为文档特征项的关键词在检索过程中起到了桥梁作用，关键词选择的好坏直接影响到检索结果的质量。]]></description>
		<wfw:commentRss>http://scseoer.com/retrieval.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>查询服务的系统结构</title>
		<link>http://scseoer.com/query-service-system-structure.html</link>
		<comments>http://scseoer.com/query-service-system-structure.html#comments</comments>
		<pubDate>Tue, 02 Aug 2011 06:31:26 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[排序]]></category>
		<category><![CDATA[索引]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1342</guid>
		<description><![CDATA[在TSE中信息查询对应第三章图3-4的右侧部分，我们将它单独列出来，去掉TSE中没有实现的日志挖掘部分后，得到信息查询服务的系统结构，如图5-1所示。 图5-1 信息查询的系统结构 经过TSE的Web信息预处理，传递到服务阶段的数据包括索引网页库和倒排文件，倒排文件中包括倒排表和索引词表。查询代理接受用户输入的查询短语，切分后，从索引词表和倒排文件中检索获得包含查询短语的文档并返回给用户。 因为内存与外存（磁盘）的响应时间差距很大，在实际使用的搜索引擎中，为了提高响应时间，索引词表是驻留在内存中的，用户近期查询过的结果信息也是缓存在内存中的。如果内存足够大，所有倒排表项也可以驻留在内存中。只有这样，才能保证在大数据量和大访问量（例如每秒1000个查询）的情况下，搜索引擎在秒级内得到响应。]]></description>
		<wfw:commentRss>http://scseoer.com/query-service-system-structure.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>网页预处理小结</title>
		<link>http://scseoer.com/pretreatment-webpage.html</link>
		<comments>http://scseoer.com/pretreatment-webpage.html#comments</comments>
		<pubDate>Tue, 02 Aug 2011 06:27:07 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[分析]]></category>
		<category><![CDATA[切词]]></category>
		<category><![CDATA[索引]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1340</guid>
		<description><![CDATA[本节“搜索信息的预处理”结合 TSE 讲解了索引网页库算法，中文切词算法，分析网页和建立倒排文件索引的方法。 “搜索信息的预处理”作为搜索引擎运行三个阶段（网页搜集、预处理和查询服务）的中间环节，具有举足轻重的地位。对于本章内容的理解，可以加深对于整个搜索引擎流程的理解，同时考虑到网页搜集和查询服务模块，也会更清楚为什么这个环节需要考虑中文切词、分析网页和建立倒排索引等问题。]]></description>
		<wfw:commentRss>http://scseoer.com/pretreatment-webpage.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>分析网页和建立倒排文件</title>
		<link>http://scseoer.com/analysis-webpage-establishment-inverted-file.html</link>
		<comments>http://scseoer.com/analysis-webpage-establishment-inverted-file.html#comments</comments>
		<pubDate>Tue, 02 Aug 2011 06:23:36 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[反向索引]]></category>
		<category><![CDATA[正向索引]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1332</guid>
		<description><![CDATA[为网页建立全文索引是网页预处理的核心部分，包括分析网页和建立倒排文件。二者是顺序进行，先分析网页，后建立倒排文件（也称为反向索引），如图所示。 分析网页与建立倒排文件流程 分析网页 分析网页过程如图 4-6 所示，它包括提取正文信息（指过滤网页标签，scripts， css，java，embeddedobjects，comments 等信息）和把正文信息切分为索引词两个阶段。形成的结果是文档号到索引词的对应关系表。每条记录中包括文档编号，索引词编号，索引词在文档中的位置信息，”索引词载体信息”（在本书中网页与文档是不加以区分的，但是网页中包含普通文档所没有的 HTML 标签信息，这些信息标识了文档中索引词的字体和大小写等信息，或称载体信息，是搜索引擎的服务阶段提供更好的结果排序所需要的）。在 TSE 中只保存了文档编号和索引词信息。 过滤网页中非正文信息的算法如图所示。 过滤网页中非正文信息算法 得到网页正文信息，调用切词模块，获得正向索引，格式如图所示。每一个网页由两行信息组成，第一行是文档编号，第二行是使用切分模块将文档正文信息划分成索引词后的集合。 正向索引表记录格式 建立倒排文件 搜索引擎面临大量的用户检索需求（几十~几千点击/秒），要求搜索引擎在检索程序的设计上要高效，尽可能的将大运算量的工作在索引建立时完成，使检索时的运算尽量的少。一般的数据库系统不能快速响应如此大量的用户请求，在搜索引擎中通常采用倒排索引技术。 由正向索引建立反向索引 在本文图一中，创建倒排索引包括建立正向索引和反向索引。分析完网页后，得到以网页编号为主键的正向索引表，如图上图 a)所示（对应 TSE 中的正向索引如本文图二所示）。当反向索引建立完成后，得到图 b)。这是一个表的重组的过程，为了加快速度全过程需要在内存中完成。在小数据量时，有足够的内存保证该创建过程可以一次完成。数据规模增大后，可以采用分组索引，然后再归并索 引的策略。该策略是，建立索引的模块根据当时运行系统所在的计算机的内存大小，将索引分为 k 组，使得每组运算所需内存都小于系统能够提供的最大使用内存的大小。按照倒排索引的生成算法，生成 k 组倒排索引。然后将这 k 组索引归并，即将相同索引词对应的数据合并到一起，就得到了以索引词为主键的最终的倒排文件索引，即反向索引。具体程序实现可以参考  CrtForwardIdx.cpp  和 CrtInvertedIdx.cpp 的代码。 真正的搜索引擎，倒排文件很大，无法直接调入内存，通常在内存中存储以索引词和倒排表项偏移位置组合的 ISAM 信息。实现方法同样可以采用本章第二节介绍索引网页库的方法。]]></description>
		<wfw:commentRss>http://scseoer.com/analysis-webpage-establishment-inverted-file.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>中文分词算法技术</title>
		<link>http://scseoer.com/automatic-word-segmentation.html</link>
		<comments>http://scseoer.com/automatic-word-segmentation.html#comments</comments>
		<pubDate>Mon, 01 Aug 2011 17:39:21 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[中文切词]]></category>
		<category><![CDATA[分词]]></category>
		<category><![CDATA[算法]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1321</guid>
		<description><![CDATA[中文分词算法技术对索引网页库信息进行预处理包括网页分析和建立倒序文件索引两部分，分词算法技术是网页分析的前提。文档由被称作特征项的索引词（词或者字）组成，网页分析是将一个文档表示为特征项的过程。在提取特征项时，中文又面临了与英文处理不同的问题。中文信息和英文信息有一个明显的差别：英语单词之间用空格分隔；而在中文文本中，词与词之间没有天然的分隔符，中文词汇大多是由两个或两个以上的汉字组成的，并且语句是连续书写的。这就要求在对中文文本进行自动分析前，先将整句切割成小的词汇单元，即中文分词（或中文切词）。 用具体例子来说明，就是如何把“我的笔记本”这样连续书写的语句切分为“我”，“的”和“笔记本”三个词汇单元。 在检索和文档分类系统中，自动切词系统的速度直接影响整个系统的效率。中文信息的检索主要有两种：基于字的检索和基于词的检索。基于单字的检索系统建立单字索引。 在检索时得到每个单字的索引，而后加以适当的逻辑运算，得到检索结果。而基于词汇的检索系统对词汇建立索引，检索词汇时一次命中。TSE系统采用基于词的索引，具有较快的速度和较高的准确性，同时能够减少索引信息对磁盘空间的占用。 本节从介绍切词软件的原理开始，讲到真正切词软件的实现，此切词软件中使用的基本词典包括108,782个词条及其对应词频。词典和切词源程序可以在[ChSeg,2003]获得，运行在Red Hat Linux 8.0以上的系统中。 中文分词算法介绍 自动分词的基本方法有：基于字符串匹配的分词方法和基于统计的分词方法，更多关于语言学的知识可以参考北大计算语言研究所网站 http://icl.pku.edu.cn 内的相关内容，本节以下部分内容直接引自该网站提供的资料。 1、基于字符串匹配的分词方法 这种方法又称为机械分词方法，它是按照一定的策略讲代分析的汉字串与一个充分大的词典中的词条进行匹配，若在词典中找到某个字符串，则匹配成功（识别出一个词）。 按照扫描方法不同，串匹配分析方法可以分为正向匹配和逆向匹配。 按照不同长度优先匹配的情况，可以分为最大或最长匹配，和最小或最短匹配； 按照是否与词性标注过程相结合，又可以分为单纯分词方法和分词与标注相结合的一体化方法。 常用的几种机械分词方法如下： 正向最大匹配； 逆向最大匹配； 最少切分（使每一句中切出的次数最小）。 还可将上述各种方法相互组合，例如，可以将正向最大匹配方法和逆向最大匹配方法结合起来构成双向匹配法。由于汉语单字成词的特点，正向最小匹配和逆向最小匹配一般很少使用。一般说来，逆向匹配的切分精度略高于正向匹配，遇到的歧义现象也较少。统计结果表明，单纯使用正向最大匹配的错误率为1/169，单纯使用逆向最大匹配的错误率为1/245（这可能是因为汉语的中心语靠后的特点）。 对于机械分析方法，可以建立一个一般的模型，形式地表示为ASM（d,a,m）即 Automatic Segmentation Model。其中： d：匹配方向，+表示正向，-表示逆向； a：每次匹配失败后增加或减少字串长度（字符数），+为增字，-为减字； m：最大或最小匹配标志，+为最大匹配，-为最小匹配。 例如，ASM(+, -, +)就是正向减字最大匹配法（Maxim oach，MM），ASM(-, -, +)就是逆向减字最大匹配法(简记为RMM方法)，等等。对于现代汉语来说，只有m=+是实用的方法。 2、基于统计的分词方法 从形式上看，词是稳定的字的组合，因此在上下文中，相邻的字出现的次数越多，就越有可能构成一个词。因此字与字相邻共现的频率或概率能够较好的反映成词的可信度。可以对语料中相邻共现的各个字的组合的频度进行统计，计算它们的互现信息。计算汉字X和Y的互现信息公式为： 其中，P（X,Y）是汉字X、Y的相邻共现频率，P（X）、P（Y）分别是X、Y在语料中出现的概率，互现信息体现了汉字之间结合关系的紧密程度。当紧密程度高于某一个阈值时，便可认为此字组可能构成了一个词。这种方法只需对语料中的字组频度进行统计，不需要切分词典，因而又叫做无词典分词法或统计取词方法。 但这种方法也有一定的局限性，会经常抽出一些共现频度高、但并不是词的常用字组，例如“这一”、“之一”、“有的”、“我的”、“许多的”等，并且对常用词的识别精度差，时空开销大。实际应用的统计分词系统都要使用一部基本的分词词典（常用词词典）进行串匹配分词，同时使用统计方法识别一些新的词，即将串频统计和串匹配结合起来，既发挥匹配分词切分速度快、效率高的特点，又利用了无词典分词结合上下文识别生词、自动消除歧义的优点。 词汇切分算法最重要的指标是准确，在兼顾准确性的情况下也要考虑时间复杂性。下面具体介绍正向减字最大匹配法。 正向减词最大匹配法 正向减字最大匹配法切分的过程是从自然语言的中文语句中提取设定的长度字串，与词典比较，如果在词典中，就算一个有意义的词串，并用分隔符分隔输出，否则缩短字串，在词典中重新查找（词典是预先定义好的）。 算法要求为： 输入：中文词典，待切分的文本d，d中有若干被标点符号分割的句子s1，设定的的最大词长MaxLen。 输出：每个句子s1被切为若干长度不超过MaxLen的字符串，并用分隔符分开，记为s2，所有s2的连接构成d切分之后的文本。 正向减字最大匹配法流程 该算法的思想是：事先将网页预处理成每行一个句子的纯文本格式，从d中逐句提取，对于每个句子s1从左向右以MaxLen为界选出候选字串w，如果w在词典中，处理下一个长为MaxLen的候选字段；否则，将w最右边一个字去掉，继续与词典比较；s1切分完之后，构成词的字符串或者此时w已经为单字，用分隔符隔开输出给s2。从s1中减去w，继续处理后续的字串。s1处理结束，取T中的下一个句子赋给s1，重复前述步骤，直到整篇文本d都切分完毕。 考虑到词典的条目较多，而且每切一个词都要比较，采用STL中的map容器作为存储词典的数据结构。map容器采用的数据结构是“红黑树”，“红黑树”是一种较常用的查找效率较高的平衡二叉搜索树[Cormen, et al.,2001]。在实际应用中可以采用hash表数据结构存储获得更快速的查找。算法的主程序流程如图4-4所示，切词程序CutWord如图4-5所示。 其中MaxLen是一个经验值，通常设为8个字节（即4个汉字），MaxLen过小，长词会被切断；过长，又会导致切分效率低。 为进行算法分析，先给出算法的伪码实现。 切词算法流程图 vpid SegmentAFile（T） [...]]]></description>
		<wfw:commentRss>http://scseoer.com/automatic-word-segmentation.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>索引网页库</title>
		<link>http://scseoer.com/index-webpage.html</link>
		<comments>http://scseoer.com/index-webpage.html#comments</comments>
		<pubDate>Mon, 01 Aug 2011 16:45:43 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[索引文件]]></category>
		<category><![CDATA[网页]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1316</guid>
		<description><![CDATA[原始网页索引库记录格式 使用TSE的Web信息搜集程序，获得的网页信息是原始网页库，取其中一个文件Tianwang.raw.2559638448，来进行下面的讲解，它包括12,933个网页，容量为146MB，文件名Tianwang表示存储格式符合天网格式要求，扩展名一raw是表示未经过处理的原始网页，扩展名二2559638448是TSE搜集程序，中线程号为2559638448搜集器搜集到的原始网页信息。 注意：在32位文件系统中，每个文件不能超过2GB，负责存储网页信息的线程要有检查机制，超过后应该存储到新创建的文件中。天网格式存储网页支持网页压缩存储，在实际的面向海量数据的搜索引擎中是很必要的，因为网页信息通常可以压缩到原来所占空间的1/3以下，节省大量磁盘空间开销。 索引网页库算法 在天网格式中一个原始网页格式库由若干记录组成，每个记录包括记录头部信息（HEAD）和数据（DATA），每个数据由网页头信息（header），网页内容信息（content）组成，如上图所示，其中具体内容的含义请参照第三章 第二节网页信息存储的天网格式。索引网页库的任务就是完成给定一个URL，在原始网页库中定位到该URL所指向的记录。 如果不对网页库建立索引信息，可以通过顺序查找的方法完成URL到指定记录的过程，但是会消耗大量的I/O，数据量增大的时候不能够满足搜索引擎的快速响应要求，所以需要创建索引。对原始网页集R，索引网页库算法描述如下图所示。 网页及URL索引文件 索引网页库算法在程序 DocIndex.cpp中实现，搜索引擎面对的海量数据，选择数据结构的时候需要考虑两个因素：紧凑的数据格式和高效的检索能力。在TSE中，对网页内容和URL的摘要算法可以采用MD5算法，产生16个字节的唯一标识。为了便于查看，把16字节的标识转化为可以用ASCII码表示的32字节唯一标识。 网页索引文件Doc.idx如上图表示，以ISAM（索引顺序访问模式）储存，这种结构可以保证数据的紧凑性和 O(1)的检索能力。为节省空间，索引文件中的每一行记录不保存文档的长度，因为文档长度可以通过后续文档起始位置偏移和当前文档起始位置偏移的差获得。为了保证对最大文档号数据读取的一致性，在最后一行增加“哨兵”，它不对应实际的文档数据，其中文档摘要为空，表示文档索引的结束。 URL索引文件Url.idx如上图所示，以ISAM储存，包含了URL的摘要和文档编号。为了能够快速的对给定url找到对应的文档编号，将上图按照URL摘要排序，得到文件Url.idx.sort。然后根据二分查找算法在Url.idx.sort中查找到对应的文档编号。采用二分查找算法获得网页快照的实现在Snapshot.cpp文件中。]]></description>
		<wfw:commentRss>http://scseoer.com/index-webpage.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>信息预处理的系统结构</title>
		<link>http://scseoer.com/pretreatment-system-structure.html</link>
		<comments>http://scseoer.com/pretreatment-system-structure.html#comments</comments>
		<pubDate>Mon, 01 Aug 2011 16:23:49 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[索引]]></category>
		<category><![CDATA[网页信息]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1313</guid>
		<description><![CDATA[在TSE中网页预处理的中间部分，我们将它单独取出来，去掉TSE中没有实现的PageRank部分后，如图所示。 网页预处理系统结构 经过TSE的Web信息搜集，保存下来的网页信息是按照天网格式顺序存储的。按照天网格式保存网页信息，容错性好，即使有数据损坏，也是局部性的，不会导致扩散或者其他数据无法存取。缺点是不能够按照网页url，随机存取其所指向的网页。 因此网页预处理的第一步就是为原始网页建立索引，实现图中索引网页库，有了索引就可以为搜索引擎提供网页快照功能（在本章第二节中讲解）；接下来针对索引网页库进行网页切分，将每一篇网页转化为一组词的集合（在本章第三节中讲解）；最后将网页到索引词的映射转化为索引词到网页的映射，形成倒排文件（包括倒排表和索引词表），同时将网页中包含的不重复的索引词汇聚成索引词表（在本章第四节中讲解）。 网页预处理处于搜索引擎三段式工作流程的中间，所产生的数据都是中间数据，如果不提供必要的应用程序接口，难以作为数据产品提供给其他程序使用。]]></description>
		<wfw:commentRss>http://scseoer.com/pretreatment-system-structure.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>网页搜集总结</title>
		<link>http://scseoer.com/summary-webpage-collection.html</link>
		<comments>http://scseoer.com/summary-webpage-collection.html#comments</comments>
		<pubDate>Mon, 01 Aug 2011 16:18:22 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[搜集]]></category>
		<category><![CDATA[网页信息]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1311</guid>
		<description><![CDATA[网页信息的搜集首先介绍了超文本传输协议，为搜集工作提供必要的背景知识；接着给出我们的搜索引擎教学程序TSE的系统结构，结合TSE的搜集端的源程序进行讲解，分析了一个综合性搜索引擎搜集端所应具备的绝大部分功能。 网页信息搜集是搜索引擎三个步骤（搜集、预处理、服务）的首要环节。对于内容的理解，是深入理解整个搜索引擎流程的基础，同时考虑到预处理和服务模块，会更清楚为什么在搜集这个环节需要保存原始网页库和网页结构库。]]></description>
		<wfw:commentRss>http://scseoer.com/summary-webpage-collection.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>搜集信息的类型</title>
		<link>http://scseoer.com/collect-information-types.html</link>
		<comments>http://scseoer.com/collect-information-types.html#comments</comments>
		<pubDate>Mon, 01 Aug 2011 16:15:45 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[URL]]></category>
		<category><![CDATA[搜集网页]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1309</guid>
		<description><![CDATA[搜集信息类型取决于最后搜索引擎提供服务需要哪些信息，只要把最后提供服务的信息搜集回来，搜集子系统的目的就达到了。 在TSE中不仅限于HTML文本和普通文本，还可以搜集pdf，doc等资源，因为这些资源可以利用免费得到的转化工具如pdftotext3，wvware4转化为文本格式。 根据MIME规范，TSE搜集的网页类型包括：“text/html”，“text/plain”，“text/xml”，“application/msword”，“application/pdf”， “application/postscript”，“application/vnd.ms-execl”，“text/rtf”，“application/vnd.ms-powerpoint”。 在TSE搜集网页文件类型内，还具有过滤URL功能，该函数在文件Page.cpp中实现。 /* * 过滤掉无用的链接 * 如果要过滤，返回ture; 否则返回false */ bool CPage::IsFilterLink(string plink) { if( plink.empty() ) return true; if( plink.size() &#62; URL_LEN ) return true; const char *filter_str[]={ “gate”,”search”,”library”,”data/scop”,”uhtbin”,”staff/staff”, “enter”,”userid”,”pstmail?”,”pst?”,”find?”,”ccc?”, “fwd?”,”tcon?”,”&#38;amp”,”Counter?”,”forum”,”cgisirsi”, “+”,”{“,”}”,”proxy”,”login”,”mailto:”,”javascript:” }; int filter_str_num = 25; string link = plink; CStrFun::Str2Lower( link, link.length() ); for(int i=0; i&#60;filter_str_num; i++){ if(link.find(filter_str[i]) != string::npos) [...]]]></description>
		<wfw:commentRss>http://scseoer.com/collect-information-types.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何首先搜集重要的网页</title>
		<link>http://scseoer.com/collect-important-webpage.html</link>
		<comments>http://scseoer.com/collect-important-webpage.html#comments</comments>
		<pubDate>Mon, 01 Aug 2011 16:06:11 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[爬虫程序]]></category>
		<category><![CDATA[网页搜集]]></category>
		<category><![CDATA[重要页面]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1301</guid>
		<description><![CDATA[Web上的信息具有异质性和动态性，由于受时间和存储空间的限制，即使是最大的搜索引擎也不可能将全球所有的网页全部搜集过来，一个好的搜集策略是优先搜集重要的网页，以便能够在最短的时间内把最重要的网页抓取过来。 在此要求下，一方面要采用分布并行的体系结构来协同工作，一方面要优先搜集重要的网页。 对于网页重要程度的评定，要依据搜集信息所针对的不同应用而定。 从而信息的搜集可以采用不同的策略。对于信息量相对较小的应用，如为发现专业信息而设计的主题Web信息搜集系统，可以依据定制的关键词，优先搜集网页中包含或部分包含这些关键词的网页，通过提高该网页URL及包含的URL的权值来达到目的。对于为处理海量数据而设计的可扩展Web信息搜集系统，如何评定一个网页的“重要度”，目前还是一个值得研究探讨的问题。 根据搜集经验，体现网页重要度的特征有： 网页的入度大，表明被其他网页引用的次数多； 某网页的父网页入度大； 网页的镜像度高，说明网页内容比较热门，从而显得重要； 网页的目录深度小，易于用户浏览到。 这里定义“URL目录深度”为：网页URL中除去域名部分的目录层次，即URL=schema://host/localpath中的localpath部分。如： URL为http://www.pku.edu.cn，则目录深度为0； 如果是http://www.pku.edu.cn/cs，则目录深度为1。 这样的特征并非臆断，而是从长期从事搜索引擎工作中得来的，从天网搜索引擎多年的工作及用户行为日志中，可以反映出这种一般性规律，这样的例子如：重要的学术论文网页，因为经常被引用，就表现为入度大；如果被重要的网页引用或多次被其他站点镜像，也可被认为有价值、重要；如网页URL目录深度浅，说明位于网站“浅层”，通常是被编辑网页的人认为重要而放在易于访问到的地方，网站的主页或各板块的首页一般被经常浏览而显得重要。 需要说明的是，URL目录深度小的网页并非总是重要的，目录深度大的网页也并非全不重要，有些学术论文的网页URL就有很长的目录深度。多数重要度高的网页会同时具有上述4个特征，即上述表示重要度特征的因素并非独立无关的。 网页的权重可以形式化表示为 weight(p)=f(indegree(p),indegree(father_p),directorydepth(p)) 其中weight(p)表示网页p的权重，indegree(p)表示网页p的入度函数， indegree(father_p)表示网页p的父网页的入度函数，mirror(p)表示网页p的镜像度函数，directorydepth(p)表示网页p的目录深度函数。 如果能够综合利用或部分利用上述特征，可以认为是重要的。但是如何确定每一个特征量的影响因子却很困难。如果定义的不好，反倒会影响重要网页的发现。是否有简单的方法来确定重要的网页呢？不妨先来分析一下网页的分布情况。 网页就像一个海洋（图） 整个Web就象一个深不见底的海洋，如图所示。把这个海洋分成两个层次，表层和底层。表层包含的主要是“静态网页”（不通过提交查询信息即可获得的页面），底层包含的主要是“动态网页”（需要通过提交查询信息获得含有内容的网页）。 目前搜索引擎的工作主要集中在表层工作。在表层中重要网页的分布或者更接近于海面，或者更接近于底层。对于网页的搜集工作，就象一条捕鱼的船行驶在海面上，目的是撒网捕捉尽可能多而且重要的网页。对于重要网页的获取，人为的策略干预难免会有疏漏，因此不妨考虑如何尽可能多的获得包含重要URL的网页问题。 实际搜集网页经验说明，网站的首页是飘浮在海面上的，网站数目远小于网页数，并且重要的网页也必然是从这些网站首页链接过去的，因此搜集工作应当优先获得尽可能多的网站首页。 由此不难想象宽度优先搜集是尽快获得重要网页最好的办法。采用宽度优先搜集最直接有效的方法就是根据网页URL的目录深度确定优先级，这是一个既客观又容易获得的信息。 搜索引擎开始工作时，既不知道要搜的网页入度大小（即不知道要访问的网页URL被哪些其他网页指向），也不知道网页内容是什么，所以对于表征网页重要性的第1、2、3项特征在搜集工作开始时无法确定。这些因素只能在获得网页或几乎所有的Web 链接结构之后才能够知道。只有特征4是不需要知道网页的内容（没有抓取网页之前）就可以确定某个URL是否符合“重要”的标准，而且网页URL目录深度的计算就是对字符串的处理，统计结果表明一般的URL长度都小于256个字符，这使得URL目录深度的判别易于实现。所以对于搜集策略的确定，特征4是最值得考虑的指导因素。 如前面所述，特征4具有局限性，所以首先探讨它对于决定网页重要度到底有多大的影响，采取什么样的措施能够尽量避免这种局限性带来的片面搜集，从而对搜集策略做出有效的调整。 由于搜集网页是由多台机器分布式协同工作的，所以搜集策略的制定是在系统的调度层就开始了，从系统的角度考虑，天网2.0搜集部分2由18台+2台机器冗余构成，采用了两阶段映射模型,确保分配不同的URL给spider抓取，使不同的机器搜集回来的网页无重复。 对负责搜集的单个节点而言，根据网页URL的目录深度和链接关系设定权值，以决定网页重要度，并优先搜集权值大的网页。实现类似于宽度优先搜索的启发式搜集策略。这种搜集策略在实际系统运行中证明有很好的效果。以下主要阐述单个节点上的搜集策略。 以目录深度评估网页重要度，辅以下述的修正方法，在天网实际系统中应用，实际测试表明，可以达到比较好的搜集效果。 1、URL权值的设定：根据URL的目录深度来定，深度是多少，权值就减少多少，权值最小为零。 2、设定URL初始权值为10（此值设定的越小，从未访问URL集合中排序输出就越快。但是也不能太小，否则URL的权值意义就不大了，导致搜集策略不明显）； 3、URL中出现字符”/”，”?”，或”&#38;”1次,则权值减1，出现”search”，”proxy”，或”gate” 1次，则权值减2；最多减到零。（包含”?”，或”&#38;”的URL是带参数的形式，需要经过被请求方程序服务获得网页，不是搜索引擎系统侧重的静态网页，因此权值相应降低。包含“search”，”proxy”，或“gate”，说明该网页极大可能是搜索引擎中检索的结果页面，代理页面，因此要降低权值）。 4、选择未访问URL的策略。因为权值小不一定说明不重要，所以有必要给一定的机会搜集权值小的未访问URL。选择未访问URL的策略可以采用轮流的方法进行，一次按照权值排序取，一次随机取；或者N次按照权值排序取，M次随机取（N≥1，M≥1）。N，M 的选择可以根据系统实际运行情况获得。 这种方法可以在搜到国内网页总量1/10的时候，已经覆盖了国内绝大多数站点。保证“重点突出、覆盖全面”。在具体实现中采用两次轮流充满待访问URL队列，可以保证不漏掉其他重要网页，做到兼顾。]]></description>
		<wfw:commentRss>http://scseoer.com/collect-important-webpage.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>域名与IP的对应问题</title>
		<link>http://scseoer.com/domain-corresponding-ip.html</link>
		<comments>http://scseoer.com/domain-corresponding-ip.html#comments</comments>
		<pubDate>Mon, 01 Aug 2011 15:46:54 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[IP]]></category>
		<category><![CDATA[域名]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1299</guid>
		<description><![CDATA[记录未访问和已访问URL信息，可以保证搜集的网页中所有的URL都不同。但是域名与IP的对应存在复杂的关系，导致即使URL不同，也可能指向的物理网页是相同的，这就导致重复搜集。为了解决这个问题，需要分析清楚域名与IP的对应关系。 域名与IP的对应关系存在4种情况：一对一，一对多，多对一，多对多。一对一不会造成重复搜集，后三种情况都有可能造成重复搜集。 后三种情况出现的原因 1、可能是虚拟主机。例如：www.pku.edu.cn , www.gh.pku.edu.cn, www.acgs.pku.edu.cn, caspu.pku.edu.cn都映射到同一个IP 162.105.129.12的情况，但这是采用虚拟主机技术完成的，由于4个站点的内容互不重复，认为是4个Web服务器。 2、可能是DNS轮转。多域名的情况在商业站点中较常见，因为商业站点的单位时间访问量大，需要复制服务器内容，通过DNS轮转达到负载均衡，满足用户需求。 例如： 一个域名对应多个IP。 [webg@BigPc ]$ ping ent.sina.com.cn PING upiter.sina.com.cn (202.112.8.5) 56(84) bytes of data. [webg@BigPc ]$ ping ent.sina.com.cn PING upiter.sina.com.cn (202.112.8.2) 56(84) bytes of data. [webg@BigPc ]$ ping ent.sina.com.cn PING upiter.sina.com.cn (202.112.8.3) 56(84) bytes of data. 多个域名对应一个IP。 [webg@BigPc ]$ ping cul.sina.com.cn PING upiter.sina.com.cn (202.112.8.3) 56(84) bytes [...]]]></description>
		<wfw:commentRss>http://scseoer.com/domain-corresponding-ip.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>记录未访问、已访问URL和网页内容摘要信息</title>
		<link>http://scseoer.com/record-url-abstract.html</link>
		<comments>http://scseoer.com/record-url-abstract.html#comments</comments>
		<pubDate>Mon, 01 Aug 2011 15:40:39 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[URL]]></category>
		<category><![CDATA[抓取]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1297</guid>
		<description><![CDATA[gatherer从一个事先制定好的URL列表出发（可以理解为初始的未访问URL列表），这个列表中的URL通常是从以往访问记录中提取出来的，特别是一些热门站点和“What＇s New ”网页，此外，很多搜索引擎还接受用户提交的URL。 Gatherer访问了一个网页后，会对它进行分析，提取出新的URL，将之加入到待访问列表中，如此递归地访问Web。 完成搜集网页的工作，即使是只有一个gatherer，也需要解决如何避免重复搜集网页的问题。因此定义两个表，“未访问表”和“已访问表”。“未访问表”中存储准备取入待访问队列的URL，“已访问表”中存储已经请求过网页的URL。 这样当gatherer因为访问新的网页解析出新的URL后，根据“未访问表”，“已访问表”，就可以判断哪些工作已经完成，从而避免重复搜集。 在TSE中，除了存储上述“已访问表”和“未访问表”的摘要信息，还存储了已经获取网页内容的摘要信息。存储网页内容的摘要信息的原因是Web上存在大量的复制网页，它们是url不同，内容完全一样。 在TSE中，对访问过的URL，未访问过的URL和获得的网页内容分别作MD5摘要，获得其唯一标识，建立3个集合。新解析出的URL，首先根据已经访问过的URL的MD5集合判断是否已经抓取过，如果没有则放入未访问URL库，否则放弃；查找的时候可以做到O(1)的时间复杂度。]]></description>
		<wfw:commentRss>http://scseoer.com/record-url-abstract.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何避免网页的重复搜集</title>
		<link>http://scseoer.com/avoid-repetition-webpage-collection.html</link>
		<comments>http://scseoer.com/avoid-repetition-webpage-collection.html#comments</comments>
		<pubDate>Mon, 01 Aug 2011 15:37:09 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[抓取]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1295</guid>
		<description><![CDATA[重复搜集，是指物理上存在的一个网页，在没有更新的前提下，被搜集程序重复访问。造成重复搜集的原因，一方面是搜集程序没有清楚记录已经访问过的URL，另一方面是由于域名与IP多重对应关系造成的。下面分情况介绍解决方法。 记录未访问、已访问URL和网页内容摘要信息 域名与IP的对应问题]]></description>
		<wfw:commentRss>http://scseoer.com/avoid-repetition-webpage-collection.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>控制对一个站点并发搜集线程的数目</title>
		<link>http://scseoer.com/control-collect-number-threads.html</link>
		<comments>http://scseoer.com/control-collect-number-threads.html#comments</comments>
		<pubDate>Mon, 01 Aug 2011 15:33:21 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[URL队列]]></category>
		<category><![CDATA[抓取]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1293</guid>
		<description><![CDATA[提供Web服务的机器，能够处理的未完成的TCP连接数有一个上限，未完成的TCP连接请求放在一个预备队列，这个队列有一个预先定义的数量限制，它规定在任何时刻能够处理的请求数目。当一个服务器的预备队列达到它定义的限制时，任何新的连接请求都会被忽略，直到队列可用为止。 多道搜集程序并行的工作，如果没有控制，势必造成对于搜集站点的类似于DoS攻击的副作用，也就是塞满了Web服务器的预备队列，导致后续请求被忽略。 因此在TSE的Crawl.cpp中增加一段控制代码。 其中NUM_WORKERS_ON_A_SITE，定义在文件Tse.h中，为const unsigned int NUM_WORKERS = 2，表示一个站点同一时刻最多有2个gatherer在搜集它的网页。代码的实现是根据待放入URL的主机部分，判断待访问队列中是否已经有足够数目的包含该主机的URL，如果是则等待，直到有空缺才插入待访问队列。空缺的产生是因为gatherer程序下载了该URL，并从待访问队列删除了该URL。]]></description>
		<wfw:commentRss>http://scseoer.com/control-collect-number-threads.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>多线程并发工作</title>
		<link>http://scseoer.com/multi-thread-concurrent-job.html</link>
		<comments>http://scseoer.com/multi-thread-concurrent-job.html#comments</comments>
		<pubDate>Mon, 01 Aug 2011 15:26:30 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[线程]]></category>
		<category><![CDATA[网页]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1291</guid>
		<description><![CDATA[在TSE中启动多个gatherer是用多线程方式实现的。 代码如下，在文件Crawl.cpp中。 // 创建多个搜集线程. Pthread_t tids = (pthread_t*)malloc(NUM_WORKERS * sizeof(pthread_t)); if( tids == NULL) cerr &#60;&#60; “malloc error” &#60;&#60; endl; for(unsigned int i=0; i&#60; NUM_WORKERS; i++){ if (pthread_create(&#38;tids[i], NULL, start, this) ) cerr &#60;&#60; “create threads error” &#60;&#60; endl; } 对应start的工作代码实现功能是多个搜集线程并发的从待抓取的URL队列中取出任务，然后去抓取URL对应的网页。请参考start过程。]]></description>
		<wfw:commentRss>http://scseoer.com/multi-thread-concurrent-job.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>多道搜索程序并行工作</title>
		<link>http://scseoer.com/search-program-parallel-job.html</link>
		<comments>http://scseoer.com/search-program-parallel-job.html#comments</comments>
		<pubDate>Mon, 01 Aug 2011 15:23:23 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[客户端]]></category>
		<category><![CDATA[带宽]]></category>
		<category><![CDATA[网页]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1289</guid>
		<description><![CDATA[搜集端程序相当于客户端，在HTTP/1.0中，即使客户端希望在同一次会话中从同一服务器传输更多的HTML页面，该TCP连接也会被终止，每一个新的请求需要建立另一个TCP连接，这造成了HTTP服务器的负担。 在HTTP 1.1版中，提供对持续TCP连接的支持，可以参看RFC2068 Hypertext Transfer Protocol &#8212; HTTP/1.1。这样改变一下可节省Web服务器资源，而且可以节省网络可使用的带宽。此外，由于避免了每次请求都重新建立连接的开支，使用一个持续的连接比HTTP /1.0的实现具有更高的操作效率。在TSE中使用的是HTTP/1.1的请求方式，注意不是简单的更换HTTP/1.0这个字串为HTTP/1.1，而是需要保留上次已经建立的连接，如果该连接没有失效，则本次继续使用。 通常情况下局域网的延迟（latency）在1-10ms，带宽（bandwidth）为10-1000Mbps，Internet的延迟在100-500ms，带宽为0.010-2 Mbps。所以针对搜索引擎应用的搜集程序通常是在同一个局域网内的多台机器，每个机器多个进程并发的工作。这样一方面可以利用局域网的高带宽，低延时，各节点充分交流数据，另一方面采用多进程并发方式降低Internet高延迟的副作用。 因为局域网的利用率几乎接近1，而Internet因为有路由和拥塞控制等额外要求利用率不高，所以局域网与Internet的连接是至关重要的。因此需要同时启动多个gatherer并发的创建多个TCP连接，并发的下载网页。这种方式加快了Web信息的搜集，但是要避免多个gatherer重复的收集网页（在下一小节中具体介绍解决方法），还要避免由于同一时间内与同一服务器连接过多而给服务器端造成的严重性能问题。 究竟应该有多少个节点并行搜集网页，每个节点启动多少个gatherer？下面逐步分析得到。先给出理论值，然后给出经验值，最后给出单节点的搜集效率。 计算理论值 天网2002年1月统计纯文本网页平均大小为13KB（下文中不特殊说明的网页均指纯文本网页）。 在连接速率为100Mbps快速以太网络上（以太网的MTU（Maximum Transfer Unix）是1500字节），假设线路的最大利用率是100%，则最多允许每秒传输（1.0e+8b/s）/ （1500B×8b/B）≈ 8333个数据帧，也即每秒传输8333个网页。 如果局域网与Internet的连接为100Mbs，Internet带宽利用率低于 50%，则每秒传输的网页数目平均不到4000个。 如果搜集系统由n个节点组成，单个节点启动的gatherer数目应该低于4000/n。 经验值 在实际的分布式并行工作的搜集节点中，还要考虑CPU和磁盘的使用率问题，通常CPU使用率不应该超过50%，磁盘的使用率不应该超过80%，否则机器会响应很慢，影响程序的正常运行。在天网的实际系统中局域网是100Mbps的以太网，假设局域网与Internet的连接为100Mbps（这个数据目前不能得到，是我们的估计），启动的gatherer数目少于1000个。这个数目的gatherer对于上亿级的天网搜索引擎是足够的。 单节点的搜集效率 以太网数据帧的物理特性是其长度必须在46~1500字节之间。说明在一个网络往返时间RTT为200ms的广域网中，服务器处理时间SPT为100ms，那么TCP上的事务时间就大约500ms（2×RTT+SPT）。 网页的发送是分成一系列帧进行的，则发送1个网页的最少时间是(13KB/1500B) × 500ms ≈4s。如果系统处于满负荷运转，单个节点启动100个gatherer程序，则每个节点每天应该能够搜集（24×60×60s/4s）× 100pages = 2,160,000个网页。考虑到gatherer实际运行中可能存在超时，搜集的网页失效等原因，每个节点的搜集效率小于2,160,000个网页/天。]]></description>
		<wfw:commentRss>http://scseoer.com/search-program-parallel-job.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>网页信息存储的天网格式</title>
		<link>http://scseoer.com/webpage-information-storage.html</link>
		<comments>http://scseoer.com/webpage-information-storage.html#comments</comments>
		<pubDate>Sun, 31 Jul 2011 08:51:05 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[信息储存]]></category>
		<category><![CDATA[索引文件]]></category>
		<category><![CDATA[网页信息]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1264</guid>
		<description><![CDATA[将获取网页信息保存在磁盘中，需要按照规定的格式保存，便于后续处理和提供服务。在TSE中，采用天网格式存储获得的网页。下面介绍天网格式存储方案。注意这种方案只是顺序保存网页信息，没有索引文件。在第四章中我们会讲到，如何组织这些保存下来的原始网页信息，建立索引文件，支持单个网页信息的检索。 原始网页信息的存储格式应当设计为适合长期保存并易于处理，可以作为终端产品提供给用户使用。考虑到终端产品使用的便利性，要求原始网页库的存储格式具备简单性的特点。 由于存储介质都是有寿命的，所以应当考虑当存储介质损坏时数据的可恢复性。例如：磁盘的某个扇区损坏，导致部分数据不能读出，如果剩下的数据仍然可以使用，就能将损失降到最少。对于海量数据来说，在存储和传输的过程中，由于硬件和软件问题导致数据错误是不可避免的。因此，原始网页的存储格式还应当具备隔离错误的特点。 天网存储格式定义 根据以上考虑，天网存储格式定义如下： 1) 一个原始网页库（RAW_DB）由若干记录组成，每个记录（RECORD）包含一个网页的原始数据，记录的存放是顺序追加的，记录之间没有分隔符； 2) 一个记录由头部（HEAD）、数据（DATA）和空行（BLANK_LINE）组成，顺序是：头部 + 空行 + 数据 + 空行； 3) 一个头部由若干属性组成，每个属性（PROPERTY）是一个非空的行，头部内部不允许出现空行； 4) 一个属性包含属性名（NAME）和属性值（VALUE），并由冒号“:”隔开，顺序是：属性名 + 冒号 + 属性值； 5) 头部的第一个属性必须是版本属性，属性名为version，例如：version: 1.0，该属性表明记录的版本号； 6) 头部的最后一个属性必须是数据长度属性，属性名为length，例如：length: 1800，该属性值必须是数据（DATA）的长度（字节数），不包括空行的长度； 7) 为简化起见，属性名必须是小写的字符串。 注：一个空行（BLANK_LINE）仅由一个换行符（line feed，LF，即C语言中的“\n”）组成，在UNIX系统的显示中表现为一个空行，所以称为空行。Microsoft Windows系统和UNIX系统在空行机制上有所区别：在Windows系统下，纯文本显示中的一个空行由一个回车符（carriage return，CR）和一个换行符组成（即C语言中的“\r\n”）；而在UNIX系统中一个空行仅由一个换行符组成。 当前存储格式版本描述 存储格式允许有多个版本，以满足将来进行扩展的需要。 当前存储格式的版本属性为1.0。一个记录的存储格式如下（// 后为注释）： version: 1.0 // 版本号 url: http://www.pku.edu.cn/ // URL origin: http://www.somewhere.cn/ // 原来的URL date: Tue, 15 Apr [...]]]></description>
		<wfw:commentRss>http://scseoer.com/webpage-information-storage.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>发送请求和接收数据</title>
		<link>http://scseoer.com/request-send-receive-data.html</link>
		<comments>http://scseoer.com/request-send-receive-data.html#comments</comments>
		<pubDate>Sun, 31 Jul 2011 08:45:17 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[Socket]]></category>
		<category><![CDATA[发送请求]]></category>
		<category><![CDATA[接收数据]]></category>
		<category><![CDATA[搜索引擎]]></category>
		<category><![CDATA[网页信息]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1262</guid>
		<description><![CDATA[1、构造请求消息体并发送给服务端 搜集端与服务端建立好连接后，前者按照HTTP的要求构造消息体发送给服务端。这段实现代码包含在函数int CHttp::Fetch( string strUrl, char **fileBuf, char **fileHeadBuf, char **location, int* nPSock )中。 HttpFetch函数中部分代码参考了http://fetch.sourceforge.net中的int http_fetch(const char *url_tmp, char **fileBuf)函数，但是它不能够返回请求URL的网页头信息，不能确定网页是否已经重定向，所以有针对性地做了改动。另外由于该函数是用C写成的，为了保持原代码的完整，对于URL的解析需要单独作一次，而不是采用前面已经给出的URL类来实现（URL类在TSE的其他部分会经常用到）。 代码实现在文件Http.cpp中。在TSE中消息体的组装中采用HTTP 1.1协议，抓取程序不主动关闭Socket通道，这样当Web服务器支持持续连接，后续该网站的网页请求就可以利用已经建立的Socket通道进行，可以节省时间和网络带宽。如果服务器不支持持续连接，使用已经建立的Socket通道会报错，此时需要重新建立连接。 2、获取网页头信息和体信息 服务端接受搜集端发送的请求消息后，先返回一个HTTP头信息（为方便起见，后面我们称“网页头信息”），其中包含文件类型，大小，最后修改时间等内容；接着是两个“\r\n”，表现为一个空行；然后返回HTTP体信息，其中包含网页的全文内容。获取上述头信息和体信息的实现代码同样包含在函数int CHttp::Fetch( string strUrl, char **fileBuf, char **fileHeadBuf, char **location, int* nPSock )中，在文件Http.cpp中。 网页头信息获取后，进行解析，根据返回码，判断Web服务器是否针对该请求转向，如果转向，应该重新组装消息体发送请求；根据传输类型，网页体的大小，申请内存空间准备接收，如果超出预定接收大小，放弃该网页；根据网页类型，判断是否获取该网页。如果满足获取条件，继续进行网页体信息的获取。 注意网页头信息中给定的网页体大小有可能错误，所以读取网页体信息应该是处在一个循环体中，直到不能读到新的字节为止。因此根据需求增减内存空间，是格外需要注意的地方。在读取网页信息时，存在服务器长时间不响应的情况，为了加快搜集效率，要设定超时机制，超时后放弃该网页。接收的数据如果超出预定接收大小，放弃该网页。]]></description>
		<wfw:commentRss>http://scseoer.com/request-send-receive-data.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>TSE 与服务器建立连接</title>
		<link>http://scseoer.com/tse-server-connection.html</link>
		<comments>http://scseoer.com/tse-server-connection.html#comments</comments>
		<pubDate>Sun, 31 Jul 2011 08:41:22 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[Socket]]></category>
		<category><![CDATA[客户端]]></category>
		<category><![CDATA[服务器]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1256</guid>
		<description><![CDATA[已经从URL中获得了服务器的主机名，要能够从服务器上获取网页内容，还需要客户端进程与服务端进程建立连接。UDP和TCP的通信采用Socket 方法实现，Socket为进程间通信提供了端点。通信由消息组成，消息是在一个进程的Socket与另一个进程Socket之间传送的。 如图所示，一个进程要能够接收消息，它的Socket必须绑定到一个本地端口和本地地址上。发送到指定Internet地址和端口上的消息，只能被绑定到该地址和端口的Socket所属进程接收。 Socket和端口 TSE 通过Socket与服务器建立连接 连接的建立过程是异步的，一方在监听建立连接的请求，一方将发起建立连接的请求。连接一旦被接受，操作系统（例如UNIX）自动创建新的socket使之与客户端连接成通信的通道，这样服务端就可以在原来的Socket上继续监听其他客户的请求了。连接建立后，双方进程可以通过建立好的连接进行读写操作。 与服务器建立连接函数CreateSocket在Http.h中定义，Http.cpp中实现。在与服务器建立连接的时候，使用了非阻塞连接。超过定时，就放弃。具体代码可以参看Http.h中定义的int nonb_connect(int, struct sockaddr*, int)函数。 考虑到此函数是为Web信息的搜集服务设计的，特别增加DNS缓存和IP范围控制功能。 增加DNS缓存的原因： 1、 URL数以亿计，而主机数以百万计。如果没有DNS缓存，搜集子系统每次搜集新的URL，即使刚在上一次的任务中解析过该主机名，也要重新进行域名解析（除了用IP地址直接表示的主机，如：162.105.80.44）。为了避免频繁的查询DNS服务器，造成类似于拒绝服务攻击的副作用，要建立DNS缓存。 2、针对小规模的网页搜集（如百万量级）， DNS缓存只需要建立在内存中就够了，一是因为内存占用不多，二是因为域名解析有时效性，即使把这些解析出的信息保存到外存上，过几天也失去了意义。如果是为亿量级服务的Web信息搜集模块，要考虑单独建立为搜集子系统服务的DNS模块，这样能够既加快网页信息的获取，又进一步降低对DNS服务器的压力。 增加IP范围控制的原因： 1、有些站点不希望搜集程序搜走自己的资源。比如很多建设在大学范围内的论文检索系统，通常只是对学校IP范围内开放的。如果搜集程序处于允许检索IP范围内，搜集了这些资源，然后提供服务，就有可能使非授权用户看到了论文信息。 2、 针对特定信息的搜索，比如：校园网搜索，新闻网站搜索。 3、网络资费方式也会对搜集策略产生影响。有的网络基础设施提供商可能会规定在对不同IP范围信息的访问采用不同的资费政策，因此从运行成本考虑，也可能需要对IP范围进行控制。]]></description>
		<wfw:commentRss>http://scseoer.com/tse-server-connection.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TSE 定义URL类和Page类</title>
		<link>http://scseoer.com/tse-url-page.html</link>
		<comments>http://scseoer.com/tse-url-page.html#comments</comments>
		<pubDate>Sun, 31 Jul 2011 07:33:50 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[搜索引擎]]></category>
		<category><![CDATA[网页头信息]]></category>
		<category><![CDATA[网页抓取]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1253</guid>
		<description><![CDATA[1、定义URL类 TSE程序首先必须要做的一件事情是根据一个给定的URL，组成消息体，发送给该URL指向的服务器。为此，定义Url类。下面是URL类的定义，对应文件Url.h。 enum url_scheme{ SCHEME_HTTP, SCHEME_FTP, SCHEME_INVALID }; class CUrl { public: string m_sUrl; // URL字串 enum url_scheme m_eScheme; // 协议名 string m_sHost; // 主机名 int m_nPort; // 端口号 string m_sPath; // 请求资源 public: CUrl(); ~CUrl(); bool ParseUrl( string strUrl ); private: void ParseScheme ( const char *url ); }; URL可以是HTTP，FTP等协议开始的字符串，TSE主要是针对HTTP协议，为了不失一般性，在url_scheme中定义了SCHEME_HTTP，SCHEME_FTP，SCHEME_INVALID，分别对应HTTP协议，FTP协议和其他协议。一个URL由6个部分组成： &#60;scheme&#62;://&#60;net_loc&#62;/&#60;path&#62;;&#60;params&#62;?&#60;query&#62;#&#60;fragment&#62; 除了scheme部分，其他部分可以不在URL中同时出现。 Scheme：表示协议名称，对应于URL类中的m_eScheme. Net_loc：表示网络位置，包括主机名和端口号，对应于URL类中的m_sHost和m_nPort. [...]]]></description>
		<wfw:commentRss>http://scseoer.com/tse-url-page.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TSE 搜集网页</title>
		<link>http://scseoer.com/tse-collect-webpage.html</link>
		<comments>http://scseoer.com/tse-collect-webpage.html#comments</comments>
		<pubDate>Sun, 31 Jul 2011 07:24:05 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[搜索引擎]]></category>
		<category><![CDATA[搜集网页]]></category>
		<category><![CDATA[数据结构]]></category>
		<category><![CDATA[网页信息]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1250</guid>
		<description><![CDATA[在TSE中网页搜集对应图4的左侧部分，我们将它细化为下图（图5）所示。网页搜集的过程是从URL库（初始时包含用户指定的起始种子URL集合，可以是1个或多个）获得输入，解析URL中标明的Web服务器地址、建立连接、发送请求和接收数据，将获得的网页数据存储在原始网页库，并从其中提取出链接信息放入网页结构库，同时将待抓取的URL放入URL库，保证整个过程的递归进行，直到URL库为空。 TSE 搜集网页 搜索引擎为了提供检索服务，需要保存网页原文。网页搜集子系统不但要能够获取以.html, .htm, .txt结尾的URL对应的网页（在本章后面的小节对于搜集信息类型会有更详细的阐述），还应该能够获取不是以.html结尾的URL，比如.pdf，.doc，因为.pdf，.doc等文件可以通过转换程序生成为.html或者.txt文件，同样为搜索引擎提供检索服务。作为搜索引擎的起始流程，搜集的网页要按照一定的格式存储，便于后续组织和提供服务。 传统应用的实现在系统结构定下来后，重点是确定其中的数据结构。而面向对象方法具有更好的特性，我们是采用C++面向对象的方法结合源代码讲述。针对系统实现的描述，依据重要名词定义为类的原则，重点讲解URL类和Page类。本章后续部分是把TSE中的搜集部分分解开来讲解，包括：定义URL类，定义Page类，与服务器建立连接，构造请求消息体并发送给服务器，获取服务器返回的网页元信息（或者称为网页头信息）和获取网页信息（或者称为网页体信息）。]]></description>
		<wfw:commentRss>http://scseoer.com/tse-collect-webpage.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>TSE 小型搜索引擎系统</title>
		<link>http://scseoer.com/small-search-engine-system.html</link>
		<comments>http://scseoer.com/small-search-engine-system.html#comments</comments>
		<pubDate>Sun, 31 Jul 2011 07:14:22 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[搜集网页]]></category>
		<category><![CDATA[查询结果]]></category>
		<category><![CDATA[网页快照]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1242</guid>
		<description><![CDATA[TSE是一个适合教学用的搜索引擎，设计的目标之一是让它足够小，便于任何一个对搜索引擎感兴趣的人都可以利用自己有限的硬件资源（例如自己的台式机）搭建；让它尽量简单，让具有一般程序设计基础的爱好者可以全部理解；让它的功能相对完整，能够反映一个大规模搜索引擎的主要成分。 首先从TSE的外部表现形式来看它所能完成的工作，然后给出TSE系统结构图。搜索引擎是通过浏览器界面展现给用户的，下面是TSE的用户界面。 TSE的用户界面 在查询输入框输入查询短语并回车 (或者点击 “搜索”按钮) ，即可得到相关资料。查询时关键词之间不需要使用“and”，因为TSE会在关键词之间自动添加“and”。TSE提供符合您查询条件的全部网页。 例如：想查北大校庆，只需在搜索框中输入“北大校庆”，然后回车。 TSE的查询返回结果 为方便解释起见，我们用A，B，C标识其中的几个部分。 1) “A”表示统计栏，包括用户输入的查询词，有关查询结果和搜索时间（一般搜索响应时间不超过1秒钟）的统计数字； 2) “B”表示一条查询结果， 包括该网页网址、网页摘要（在摘要信息中，您的原始查询字词，都用红色字体表示，以便阅读）。 3) “C”表示网页快照。通过链接访问网页失效时，可以访问TSE的缓存网页；或者网络拥塞的时候，可以通过访问缓存网页避免直接访问该网页。 TSE 网页快照 图中最上部分标明此网页来自TSE的网页快照。用户输入的查询短语如果被系统分成多个关键词，用不同颜色表示，并增加链接便于点击相应关键词直接到达正文中该关键词出现的位置。正文部分取自网页原文的缓存，其中包含用户查询关键词的文字加亮显示。 TSE 系统结构 上面图1、2、3、展示了TSE的查询服务功能，为了完成上述功能，需要网页搜集和预处理两个部分的支持。 图4所示为TSE系统结构，对应于搜索引擎三段式工作流程，是图中左侧的A表示搜集部分，中间的B表示整理（即预处理）部分和右侧的C表示服务部分。 其中黄色圆柱形图表示数据产品，按照统一并且简单易懂的格式存储，除本系统使用外，可以提供给其他科研机构使用；椭圆形绿色图表示系统流程中的内部数据，由于与系统中使用的数据结构结合紧密，不适合作为数据产品提供给其他研究机构；矩形蓝色表示系统流程的程序部分（过程），是数据产品与内部数据之间的桥梁。 系统起始于A搜集，结束于C服务，整个流程可以重复进行，从而达到系统的更新。 图4中的各个数据产品，内部数据和过程在后续章节相应部分细致讲解。在TSE中不包括PageRank的计算和日志挖掘，这两个过程主要是对查询结果的排序产生作用，在实际应用中的搜索引擎是必不可少的，但是对于讲解搜索引擎的工作过程不是必需的。 后续内容讲解TSE搜集部分（对应图4的A） ；第四章讲解TSE预处理部分（对应图中的B）；第五章讲解TSE服务部分（对应图中的C）。]]></description>
		<wfw:commentRss>http://scseoer.com/small-search-engine-system.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>超文本传输协议</title>
		<link>http://scseoer.com/hyper-text-transfer-protocol.html</link>
		<comments>http://scseoer.com/hyper-text-transfer-protocol.html#comments</comments>
		<pubDate>Sun, 31 Jul 2011 06:39:15 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[应答体]]></category>
		<category><![CDATA[搜索引擎]]></category>
		<category><![CDATA[网页]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1235</guid>
		<description><![CDATA[超文本传输协议（Hypertext Transfer Protocol, HTTP）是Web的基础协议。为了本章的完整，首先对HTTP进行简要的介绍，然后重点讲解如何实现Web信息的收集。 HTTP是一个简单的协议。客户进程建立一条同服务器进程的TCP连接，然后发出请求并读取服务器进程的应答。服务器进程关闭连接表示本次响应结束。服务器进程返回的内容包含两个部分，一个“应答头”（response header），一个“应答体”（response body），后者通常是一个HTML文件，我们称之为“网页”。 在Linux（或window）环境下，有一个简单的方法可以让我们来感受一下HTTP协议的工作情况，即运行一个Telnet的客户程序与一个HTTP服务器程序通信。 下面是获取北京大学主页的例子（注意，下面显示的从服务器得到的内容不包括上述“应答头”）。 [webg@BigPc ]$ telnet www.pku.cn 80                // 连接到服务器的80号端口 Trying 162.105.129.12&#8230;                                         // 由Telnet客户输出 Connected to rock.pku.cn (162.105.129.12).          // 由Telnet客户输出 Escape character is ‘^]’.                                      // 由Telnet客户输出 GET /                 [...]]]></description>
		<wfw:commentRss>http://scseoer.com/hyper-text-transfer-protocol.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>搜索引擎的体系结构</title>
		<link>http://scseoer.com/system-structure.html</link>
		<comments>http://scseoer.com/system-structure.html#comments</comments>
		<pubDate>Sun, 31 Jul 2011 06:23:48 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[控制器]]></category>
		<category><![CDATA[搜索引擎]]></category>
		<category><![CDATA[搜集器]]></category>
		<category><![CDATA[日志分析]]></category>
		<category><![CDATA[检索]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1232</guid>
		<description><![CDATA[在上述工作原理的基础上，作为一个网络应用软件，我们可以勾画出搜索引擎的体系结构，其中的大部分模块和前面的原理描述有直接的对应。这里需要特别讨论的是还没有专门提及的“控制器”模块。 网页的搜集，如果只是为了做些简单的实验，不过上万篇网页的话，许多矛盾都不会出现，可以用最简单的工具（例如wget3）完成。但如果是为了向大规模搜索引擎稳定地提供网页数据，通常需要每天搜集上百万网页，而且是持续进行，情况则要复杂许多，核心是要综合解决效率、质量和“礼貌”的问题。这就是“控制器”的作用。 搜索引擎的体系结构 所谓效率，在这里就是如何利用尽量少的资源（计算机设备、网络带宽、时间）来完成预定的网页搜集量。在批量搜集的场合，我们通常考虑半个月左右能搜集到的网页，自然是越多越好。由于网页之间存在的独立性，利用许多台计算机同时来做这项工作是一个吸引人的想法，在第六章有专门的论述。这里需要指出三点： 第一，即使是用一台计算机来搜集网页，也应该注意并发性的开发和利用。由于从网上抓取一篇网页通常需要秒量级的等待网络通信时间，同时启动多个抓取进程/线程，或者利用操作系统提供的异步通信机制，让多个网络通信时间重叠起来，让网络通信时间和存放网页的磁盘访问时间重叠起来是很有意义的。同时启动抓取进程的数量取决于硬件条件和搜集软件的设计，一般情况下可以上百个，做得好也可能上千个（即上千个进程也不会造成CPU成为瓶颈）。 在效率问题上应该指出的第二点是并不是设备越多越好。在用若干台计算机形成一个机群的安排下，它们共同分享出口网络带宽，随着设备量的增加，这个网络带宽（或者是周围的某个环境带宽）很快就成为瓶颈。 经验表明实际上用不了超过10台计算机。人们曾经有过分布式搜集的想法，即让多台设备分布在网络上的不同位置，从而克服上述带宽瓶颈问题；理论上是对的。但对于维护千万到亿量级的搜索引擎来说似乎还用不上，具体实现起来的麻烦会超过可能带来的好处（也许Google那样的针对多个国家用户的巨型搜索引擎需要用这种技术）。 影响搜集效率的第三点发生在网络的另一端，即服务器方，它可能来不及提供所需的网页。这除了有些Web服务器所处的网络条件比较差，或者有太多其他人访问外，搜索引擎太频繁对它们发出网页请求也是一个重要原因。落实到技术上，就是要有一个访问策略或者URL规划，不要让搜集器启动的抓取进程都集中在少数几个网站上。 将搜集活动的关注过分集中在几个网站上，或者在一小段时间里从一个网站抓取太多的网页还可能引起其他的严重后果，即所谓“礼貌”问题。 一般来讲，网站的管理人员都很愿意让自己的网页被搜索引擎索引，从而有可能得到更多的访问流量；但这只是问题的一方面。问题的另一方面是网站绝不希望由于搜索引擎的“密集”抓取活动阻碍了普通用户通过浏览器的访问，使那些用户得到这个网站访问起来很困难的印象，从而不再光顾。不加控制的网页抓取，给网站造成的现象有时候和制造拒绝服务（Denial of Servide, DoS）攻击的黑客造成的现象一样。 因此，管理良好的网站常常会有一个监视器运行，监视是否有来源于单个IP地址的过分密集的访问。一旦出现这种情况，要么会通告该IP地址的拥有者注意行为，或者会干脆屏蔽来自它的访问，更有甚者，还可能在网上公布该IP地址作为黑名单。 因此，适当地规划网页的抓取，限制单位时间内对一个网站抓取网页的数量（例如每天不超过2万个，或者至少每隔30秒才对同一个网站发出下一个网页请求，等等），是大规模搜索引擎必须要认真对待的问题。总之，搜索引擎需要和网站“和睦相处”，它们是相互依存的。 所谓质量问题，指的是在有限的时间，搜集有限的网页，希望它们尽量是比较“重要”的网页，或者说不要漏掉那些很重要的网页。哪些网页是比较重要的？也是仁者见仁，智者见智的，不可能有一个统一认可的标准。 如果让重要性和流行度等同起来，即越多人看过的网页越重要，至少是直觉上有一定道理的。这样，我们可以考虑一个网站从主页开始向下，按照链接的深度将网页组织成一层层的，上层中的网页统计上会比下层的网页重要些。这样一种认识通过PageRank得到了加强，即较靠近主页的网页通常PageRank值较高。这样，首先得到尽量多的主页，然后从主页开始的先宽搜索就应该是一个较好的策略。 网页搜集过程中还有一个基本的问题是要保证每个网页不被重复抓取。由于一篇网页可能被多篇网页链接，在spider爬取过程中就可能多次得到该网页的url。于是如果不加检查和控制，网页就会被多次抓取。遇到循环链接的情况，还会使爬取器陷死。 解决这个问题的有效方法是使用两个表，unvisited_table和visited_table。前者包含尚未访问的url，后者记录已访问的url。系统首先将要搜集的种子url放入unvisited_table，然后 spider从其中获取要搜集网页的url，搜集过的网页url放入visited_table中，新解析出的并且不在visited_table中的url加入unvisited_table。 此方法简单明了，适合在单个节点上实现。但是当搜集子系统涉及到多个节点的时候，如何避免各个节点之间的重复工作就复杂了，还要考虑网络的通信量、负载平衡、以及单个节点性能瓶颈等问题。这些问题的细节将在第六章讨论。]]></description>
		<wfw:commentRss>http://scseoer.com/system-structure.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>搜索引擎查询服务</title>
		<link>http://scseoer.com/query-service.html</link>
		<comments>http://scseoer.com/query-service.html#comments</comments>
		<pubDate>Sun, 31 Jul 2011 06:10:44 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[搜索引擎]]></category>
		<category><![CDATA[摘要]]></category>
		<category><![CDATA[查询方式]]></category>
		<category><![CDATA[结果排序]]></category>
		<category><![CDATA[网页匹配]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1230</guid>
		<description><![CDATA[如“搜索引擎预处理”所介绍，从一个原始网页集合S开始，预处理过程得到的是对S的一个子集的元素的某种内部表示，这种表示构成了查询服务的直接基础。对每个元素来说，这种表示至少包含如下几个方面： 原始网页文档 URL和标题 编号 所含的重要关键词的集合（以及它们在文档中出现的位置信息） 其他一些指标（例如重要程度，分类代码等） 而系统关键词总体的集合和文档的编号一起构成了一个倒排文件结构，使得一旦得到一个关键词输入，系统能迅速给出相关文档编号的集合输出。 然而，如同我们在第一章提到的，用户通过搜索引擎看到的不是一个“集合”，而是一个“列表”。如何从集合生成一个列表，是服务子系统的主要工作。从搜索引擎系统功能划分的角度，有时候将倒排文件的生成也作为服务子系统的一部分功能，但我们这里将它划分到预处理阶段中觉得更方便些。 换句话讲，服务子系统是在服务进行的过程中涉及的相关软件程序，而为这些软件程序事先准备数据的程序都算在预处理子系统中。下面来看对服务子系统的要求和其工作原理，主要有三个方面。 1、查询方式和匹配 查询方式指的是系统允许用户提交查询的形式。考虑到各种用户的不同背景和不同的信息需求，不可能有一种普适的方式。一般认为，对于普通网络用户来说，最自然的方式就是“要什么就输入什么”。但这是一种相当模糊的说法。例如用户输入“北京大学”，可能是他想了解北京大学目前有些什么信息向外发布，想看看今年的招生政策（于是希望看的是北大网站上的内容），也可能是他想了解外界目前对北京大学有些什么评价（于是希望看到的是其他权威网站上关于北大的消息）。这是两种相当不同的需求。 在其他一些情况下，用户可能关心的是间接信息，例如“喜马拉雅山的高度”，8848米应该是他需要的，但不可能包含在这短语中。而用户输入“惊起一滩鸥鹭”则很可能是想知道该词的作者是谁，或者希望能提醒前面几句是什么。 尽管如此，用一个词或者短语来直接表达信息需求，希望网页中含有该词或者该短语中的词，依然是主流的搜索引擎查询模式。这不仅是因为它的确代表了大多数的情况，还因为它比较容易实现。 这样，一般来讲，系统面对的是查询短语。就英文来说，它是一个词的序列；就中文来说，它是包含若干个词的一段文字。一般地，我们用q0表示用户提交的原始查询，例如，q0 =“网络与分布式系统实验室”。它首先需要被“切词”（segment）或称“分词”，即把它分成一个词的序列。如上例，则为“网络 与 分布式 系统 实验室”（注意，不同的分词软件可能得出不同的结果，这里用的是北大计算语言所的在线分词软件）。然后需要删除那些没有查询意义或者几乎在每篇文档中都会出现的词（例如“的”），在本例中即为“与”。最后形成一个用于参加匹配的查询词表，q = {t1, t2, …, tm}，在本例中就是q = {网络，分布式，系统，实验室}。前面讲过， 倒排文件就是用词来作为索引的一个数据结构，显然，q中的词必须是包含在倒排文件词表中才有意义。有了这样的q，它的每一个元素都对应倒排文件中的一个倒排表（文档编号的集合），记作L(ti)，它们的交集即为对应查询的结果文档集合，从而实现了查询和文档的匹配。上述过程的基本假设是：用户是希望网页包含所输入查询文字的。 2、结果排序 上面，我们了解了得到和用户查询相关的文档集合的过程。这个集合的元素需要以一定的形式通过计算机显示屏呈现给用户。就目前的技术情况看，列表是最常见的形式（但人们也在探求新的形式，如Vivisimo 引擎将结果页面以类别的形式呈现）。给定一个查询结果集合，R={r1, r2, …, rn}，所谓列表，就是按照某种评价方式，确定出R中元素的一个顺序，让这些元素以这种顺序呈现出来。 笼统地讲，ri和q的相关性（relevance）是形成这种顺序的基本因素。但是，有效地定义相关性本身是很困难的，从原理上讲它不仅和查询词有关，而且还和用户的背景，以及用户的查询历史有关。 不同需求的用户可能输入同一个查询，同一个用户在不同的时间输入的相同的查询可能是针对不同的信息需求。为了形成一个合适的顺序，在搜索引擎出现的早期人们采用了传统信息检索领域很成熟的基于词汇出现频度的方法。大致上讲就是一篇文档中包含的查询（q）中的那些词越多，则该文档就应该排在越前面；再精细一些的考虑则是若一个词在越多的文档中有出现，则该词用于区分文档相关性的作用就越小。 这样一种思路不仅有一定直觉上的道理，而且在倒排文件数据结构上很容易实现。因为，当我们通过前述关键词的提取过程，形成一篇文档的关键词集合，p = {t1, t2, …, tn}的时候，很容易同时得到每一个ti在该文档中出现的次数，即词频，而倒排文件中每个倒排表的长度则对应着一个词所涉及的文档的篇数，即文档频率。 然而，由于网页编写的自发性、随意性较强，仅仅针对词的出现来决定文档的顺序，在Web上做信息检索表现出明显的缺点，需要有其他技术的补充。这方面最重要的成果就是前面提到过的PageRank。通过在预处理阶段为每篇网页形成一个独立于查询词（也就和网页内容无关）的重要性指标，将它和查询过程中形成的相关性指标结合形成一个最终的排序，是目前搜索引擎给出查询结果排序的主要方法。 3、文档摘要 搜索引擎给出的结果是一个有序的条目列表，每一个条目有三个基本的元素：标题，网址和摘要。其中的摘要需要从网页正文中生成。一般来讲，从一篇文字中生成一个恰当的摘要是自然语言理解领域的一个重要课题，人们已经做了多年的工作并取得了一些成果。但相关的技术用到网络搜索引擎来有两个基本困难。 一、网页的写作通常不规范，文字比较随意，因此从语言理解的角度难以做好； 二、复杂的语言理解算法耗时太多，不适应搜索引擎要高效处理海量网页信息的需求。 我们做过统计，即使是分词这一项工作（文本理解的基础），在高档微机上每秒钟也只能完成10篇左右网页的处理。因此搜索引擎在生成摘要时要简便许多，基本上可以归纳为两种方式，一是静态方式，即独立于查询，按照某种规则，事先在预处理阶段从网页内容提取出一些文字，例如截取网页正文的开头512个字节（对应256个汉字），或者将每一个段落的第一个句子拼起来，等等。这样形成的摘要存放在查询子系统中，一旦相关文档被选中与查询项匹配，就读出返回给用户。 显然，这种方式对查询子系统来说是最轻松的，不需要做另外的处理工作。但这种方式的一个最大的缺点是摘要和查询无关。一篇网页有可能是多个不同查询的结果，例如当用户分别查询“北大计算机网络”和“北大分布式系统”，搜索引擎在两种情况下应该都作为结果返回。当用户输入某个查询，他一般是希望摘要中能够突出显示和查询直接对应的文字，希望摘要中出现和他关心的文字相关的句子。 因此，我们有了“动态摘要”方式，即在响应查询的时候，根据查询词在文档中的位置，提取出周围的文字来，在显示时将查询词标亮。这是目前大多数搜索引擎采用的方式。为了保证查询的效率，需要在预处理阶段分词的时候记住每个关键词在文档中出现的位置。 除上述外，查询服务返回的内容还有一些细节的支持。例如，对应一个查询往往会有成千上万的结果，返回给用户的内容通常都是按页组织的，一般每页显示10个结果。统计表明，网络用户一般没有耐心一页页看下去，平均翻页数小于2。这告诉我们将第一页的内容组织好非常重要。如果希望用户多用搜索引擎，就要让第一页的内容尽量有吸引力。]]></description>
		<wfw:commentRss>http://scseoer.com/query-service.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>搜索引擎预处理</title>
		<link>http://scseoer.com/pretreatment.html</link>
		<comments>http://scseoer.com/pretreatment.html#comments</comments>
		<pubDate>Sun, 31 Jul 2011 06:00:14 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[关键词]]></category>
		<category><![CDATA[搜索引擎]]></category>
		<category><![CDATA[重复网页]]></category>
		<category><![CDATA[链接分析]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1228</guid>
		<description><![CDATA[得到海量的原始网页集合，距离面向网络用户的检索服务之间还有相当的距离。宏观地看，服务子系统是一个程序。采用Wirth关于“程序 = 算法+数据结构”的观点来考察这个程序，一个合适的数据结构是查询子系统工作的核心和关键。这里只是指出：现行最有效的数据结构是“倒排文件”（inverted file）；倒排文件是用文档中所含关键词作为索引，文档作为索引目标的一种结构（类似于普通书籍中，索引是关键词，书的页面是索引目标）。我们在第八章中有进一步分析。下面讨论从网页集合形成这样的倒排文件过程中的几个主要问题，即我们所说的 “预处理”。主要包括四个方面，关键词的提取，“镜像网页”（网页的内容完全相同，未加任何修改）或“转载网页”（near-replicas，主题内容基本相同但可能有一些额外的编辑信息等，转载网页也称为“近似镜像网页”）的消除，链接分析和网页重要程度的计算。 1、关键词的提取 随便取一篇网页的源文件（例如通过浏览器的“查看源文件”功能），我们可以看到其中的情况纷乱繁杂。除了我们从浏览器中能够正常看到的文字内容外，还有大量的HTML标记。根据天网统计，网页文档源文件的大小（字节量）通常大约是其中内容大小的4倍。 另外，由于HTML文档产生来源的多样性，许多网页在内容上比较随意，不仅文字不讲究规范、完整，而且还可能包含许多和主要内容无关的信息（例如广告，导航条，版权说明等）。这些情况既给有效的信息查询带来了挑战，也带来了一些新的机遇，在后面的章节将会有进一步的论述。 这里我们只是指出，为了支持后面的查询服务，需要从网页源文件中提取出能够代表它的内容的一些特征。从人们现在的认识和实践来看，所含的关键词即为这种特征最好的代表。于是，作为预处理阶段的一个基本任务，就是要提取出网页源文件的内容部分所含的关键词。 对于中文来说，就是要根据一个词典Σ，用一个所谓“切词软件”，从网页文字中切出Σ所含的词语来。在那之后，一篇网页主要就由一组词来近似代表了，p = {t1, t2, …, tn}。一般来讲，我们可能得到很多词，同一个词可能在一篇网页中多次出现。从效果(effectiveness)和效率（efficiency）考虑，不应该让所有的词都出现在网页的表示中，要去掉诸如“的”，“在”等没有内容指示意义的词，称为“停用词”(stop word)。这样，对一篇网页来说，有效的词语数量大约在200个左右。 2、重复或转载网页的消除 与生俱来的数字化和网络化给网页的复制以及转载和修改再发表带来了便利，因此我们看到Web上的信息存在大量的重复现象。天网在2003年的一次大规模统计分析表明，网页的重复率平均大约为4。也就是说，当你通过一个URL在网上看到一篇网页的时候，平均还有另外3个不同的URL也给出相同或者基本相似的内容。这种现象对于广大的网民来说是有正面意义的，因为有了更多的信息访问机会。但对于搜索引擎来说，则主要是负面的；它不仅在搜集网页时要消耗机器时间和网络带宽资源，而且如果在查询结果中出现，无意义地消耗了计算机显示屏资源，也会引来用户的抱怨，“这么多重复的，给我一个就够了”。因此，消除内容重复或主题内容重复的网页是预处理阶段的一个重要任务。第七章对此有详细的分析论述。 3、链接分析 前面提到，大量的HTML标记既给网页的预处理造成了一些麻烦，也带来了一些新的机遇。从信息检索的角度讲，如果系统面对的仅仅是内容的文字，我们能依据的就是“共有词汇假设”（shared bag of words），即内容所包含的关键词集合，最多加上词频（term frequency 或tf、TF）和词在文档集合中出现的文档频率（document frequency 或df、DF）之类的统计量。而TF和DF这样的频率信息能在一定程度上指示词语在一篇文档中的相对重要性或者和某些内容的相关性，这是有意义的。 有了HTML标记后，情况还可能进一步改善，例如在同一篇文档中，&#60;H1&#62;和&#60;/H1&#62;之间的信息很可能就比在&#60;H4&#62;和&#60;/H4&#62;之间的信息更重要。特别地，HTML文档中所含的指向其他文档的链接信息是人们近几年来特别关注的对象，认为它们不仅给出了网页之间的关系，而且还对判断网页的内容有很重要的作用。例如“北大学报”这几个字在北京大学学报社会科学版的主页上是没有的，因此一个仅靠内容文字分析的搜索引擎就不可能返回该主页作为结果。但是北京大学主页上是用“北大学报（社）”作为链接信息指向了北京大学学报社会科学版的主页。因此在很好利用链接信息的搜索引擎中应该能返回北京大学学报社会科学版的主页。 4、 网页重要程度的计算 搜索引擎返回给用户的，是一个和用户查询相关的结果列表。列表中条目的顺序是很重要的一个问题。由于面对各种各样的用户，加之查询的自然语言风格，对同样的q0返回相同的列表肯定是不能使所有提交q0的用户都满意的（或者都达到最高的满意度）。 因此搜索引擎实际上追求的是一种统计意义上的满意。人们认为Google目前比天网好，是因为在多数情况下前者返回的内容要更符合用户的需要，而不是所有情况下都如此。 如何对查询结果进行排序有很多因素需要考虑，后面将有深入的讨论。这里只是概要解释在预处理阶段可能形成的所谓“重要性”因素。顾名思义，既然是在预处理阶段形成的，就是和用户查询无关的。 如何讲一篇网页比另外一篇网页重要？ 人们参照科技文献重要性的评估方式，核心想法就是“被引用多的就是重要的”。“引用”这个概念恰好可以通过HTML超链在网页之间体现得非常好，作为Google创立核心技术的PageRank就是这种思路的成功体现。除此以外，人们还注意到网页和文献的不同特点，即一些网页主要是大量对外的链接，其本身基本没有一个明确的主题内容，而另外有些网页则被大量的其他网页链接。 从某种意义上讲，这形成了一种对偶的关系，这种关系使得人们可以在网页上建立另外一种重要性指标。这些指标有的可以在预处理阶段计算，有的则要在查询阶段计算，但都是作为在查询服务阶段最终形成结果排序的部分参数。]]></description>
		<wfw:commentRss>http://scseoer.com/pretreatment.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>搜索引擎搜集网页</title>
		<link>http://scseoer.com/collect-webpage.html</link>
		<comments>http://scseoer.com/collect-webpage.html#comments</comments>
		<pubDate>Sun, 31 Jul 2011 05:52:03 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[抓取]]></category>
		<category><![CDATA[搜素引擎]]></category>
		<category><![CDATA[蜘蛛程序]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1226</guid>
		<description><![CDATA[搜索引擎这样一个软件系统应该是何种方式？如果说软件系统是工作在某个数据集合上的程序的话，这个软件系统操作的数据不仅包括内容不可预测的用户查询，还要包括在数量上动态变化的海量网页，并且这些网页不会主动送到系统来，而是需要由系统去抓取。 首先，我们考虑考虑下搜索引擎抓取的时机，是事先还是实时，工程师们往往比较有经验，在网络比较流畅的情况下，从网上下载一篇网页大约需要1秒钟左右，因此如果在用户查询的时候即时去网上抓来成千上万的网页，一个个分析处理，和用户的查询匹配，不可能满足搜索引擎的响应时间要求。不仅如此，这样做的系统效益也不高（会重复抓取太多的网页）；面对大量的用户查询，不可能想象每来一个查询，系统就到网上“搜索”一次。 因此，大规模搜索引擎服务的基础应该是一批预先搜集好的处理网页（直接或者间接）。这一批网页如何维护？可以有两种基本的考虑。 定期搜集：每次搜集替换上一次的内容，我们称之为“批量搜集”。由于每次都是重新来一次，对于大规模搜索引擎来说，每次搜集的时间通常会花几周。而由于这样做开销较大，通常两次搜集的间隔时间也不会很短（例如早期天网的版本大约每3个月来一次，Google在一段时间曾是每隔28天来一次）。这样做的好处是系统实现比较简单，主要缺点是“时新性”（freshness）不高，还有重复搜集所带来的额外带宽的消耗。 增量搜集：开始时搜集一批，往后只是搜集新出现的网页、搜集那些在上次搜集后有过改变的网页、发现自从上次搜集后已经不再存在了的网页，并从库中删除。 由于除新闻网站外，许多网页的内容变化并不是很经常的（有研究指出50%网页的平均生命周期大约为50天），这样做每次搜集的网页量不会很大（例如我们在2003年初估计中国每天有30-50万变化了的网页），于是可以经常启动搜集过程（例如每天）。30万网页，一台PC机，在一般的网络条件下，半天也就搜集完了。这样的系统表现出来的信息时新性就会比较高，主要缺点是系统实现比较复杂；这种复杂还不仅在于搜集过程，而是还在于下面要谈到的建索引的过程。 上面讲的是系统网页数据库维护的基本策略。在这两种极端的情况之间也可能有一些折中的方案，J. Cho博士在这方面做过深入的研究，根据一种网页变化模型和系统所含内容时新性的定义，提出了相应优化的网页搜集策略。其中一个有趣的结论是：在系统搜集能力一定的情况下，若有两类网页（例如“商业”和“教育”），它们的更新周期差别很大（例如“商业”类网页平均更新周期是“天”，而“教育”类网页平均更新周期是“月”），则系统应该将注意力放在更新慢的网页上，以使系统整体的时新性达到比较高的取值。 在具体搜集过程中，如何抓取一篇篇的网页，也可以有不同的考虑。最常见的一种是所谓“爬取”：将Web上的网页集合看成是一个有向图，搜集过程从给定起始URL集合 S（或者说“种子”）开始，沿着网页中的链接，按照先深、先宽、或者某种别的策略遍历，不停的从S中移除URL，下载相应的网页，解析出网页中的超链接URL，看是否已经被访问过，将未访问过的那些URL加入集合S。整个过程可以形象地想象为一个蜘蛛（spider）在蜘蛛网（Web）上爬行（crawl）。后面我们会看到，真正的系统其实是多个“蜘蛛”同时在爬。 这种方式的好处除了概念很漂亮，一般实现起来也不困难外，还有很重要的一条是容易通过一定的策略，使搜集到的网页相对比较“重要”。前面提过，任何所谓“间接”，指的是提供搜索服务的系统可能利用别人已经事先抓好的数据，元搜索引擎就是如此。 搜索引擎是不可能将Web上的网页搜集完全的，通常都是在其他条件的限制下决定搜集过程的结束（例如磁盘满，或者搜集时间已经太长了）。因此就有一个尽量使搜到的网页比较重要的问题，这对于那些并不追求很大的数量覆盖率的搜索引擎特别重要。研究表明，按照先宽搜索方式得到的网页集合要比先深搜索得到的集合重要（这里当然有一个重要性的指标问题）。这种方式的一个困难是要从每一篇网页中提取出所含的URL。由于HTML的灵活性，其中出现URL的方式各种各样，将这个环节做得彻底不容易（例如我们现在还没有很好的简单办法从JavaScript脚本中提取URL）。同时，由于Web的“蝴蝶结”形状，这种方式搜集到的网页不大会超过所有目标网页数量2的2/3。 另外一种可能的方式是在第一次全面网页搜集后，系统维护相应的URL集合S，往后的搜集直接基于这个集合。每搜到一个网页，如果它发生变化并含有新的URL，则将它们对应的网页也抓回来，并将这些新URL也放到集合S中；如果S中某个url对应的网页不存在了，则将它从S中删除。这种方式也可以看成是一种极端的先宽搜索，即第一层是一个很大的集合，往下最多只延伸一层。 还有一种方法是让网站拥有者主动向搜索引擎提交它们的网址（为了宣传自己，通常会有这种积极性），系统在一定时间内（2天到数月不等）定向向那些网站派出“蜘蛛”程序，扫描该网站的所有网页并将有关信息存入数据库中。大型商业搜索引擎一般都提供这种功能。]]></description>
		<wfw:commentRss>http://scseoer.com/collect-webpage.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>搜索引擎的基本要求</title>
		<link>http://scseoer.com/search-engine-basic-requirements.html</link>
		<comments>http://scseoer.com/search-engine-basic-requirements.html#comments</comments>
		<pubDate>Sun, 31 Jul 2011 05:37:50 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[工作流程]]></category>
		<category><![CDATA[搜索引擎]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1222</guid>
		<description><![CDATA[搜索引擎是一个网络应用软件系统，对它有如下基本要求。 能够接受用户通过浏览器提交的查询词或者短语，记作q，例如“非-典”，“伊-拉-克-战-争”，“床前明月光”等等。 在一个可以接受的时间内返回一个和该用户查询匹配的网页信息列表，记作L。这个列表的每一条目至少包含三个元素（标题，网址链接，摘要）。 搜索引擎简单示意图 这里有几个问题要注意，它们对应上面的黑色文字： “可以接受的时间”，也就是响应时间。对于在Web上面软件来说，这个时间不能太长，通常也就在“秒”这个量级。这是衡量搜索引擎可用性的一个基本指标，也是和传统信息检索系统的一个差别。更进一步的，这样的响应时间要求不仅要能满足单个用户查询，而且要能在系统设计负载的情况下满足所有的用户。也就是说，系统应该在额定吞吐率的情况下保证秒级响应时间。这其中详细的分析将在中篇第八章展开。 “匹配”，指的是网页中以某种形式包含有 q 的内容，其中最简答的、最常见的形式就是 q 在其中直接出现。不过后面我们会看到，如果一个搜索引擎就是以百分之百满足这种简单的包含关系为目标，即使实现了也并不就达到了最好的效果。 “列表”这一味着一种序（rank），在绝大多数情况下，L 是相当长的，例如超过1万个条目（这是和图书馆全文检索系统的又一个不同，那里返回的列表通常较短，例如几十个条目）。这不仅是由于Web上的信息量大，也由于搜索引擎的查询方式简单。简单，意味着抽象；抽象，意味着有更多的具体事物可能是它的体现。对于一个长长的列表，很少有用户有耐心都审视一遍（不仅是因为长，还因为大多数使用搜索引擎的用户通常都是“找到为止”，而不是“不全部找到不罢休”，加上这个列表中和一个用户关心的其实只占很少的比例）。有分析统计表明，用户平均察看返回结果不超过2页。 现代大规模高质量搜索引擎一般采用三段式的工作流程，即：网页搜集、预处理和查询服务。 搜索引擎三段式的工作流程]]></description>
		<wfw:commentRss>http://scseoer.com/search-engine-basic-requirements.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>搜索引擎的概念</title>
		<link>http://scseoer.com/search-engine-concept.html</link>
		<comments>http://scseoer.com/search-engine-concept.html#comments</comments>
		<pubDate>Sun, 31 Jul 2011 05:01:51 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[搜索引擎]]></category>
		<category><![CDATA[搜索结果]]></category>
		<category><![CDATA[查询词]]></category>
		<category><![CDATA[网页快照]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1220</guid>
		<description><![CDATA[搜索引擎，指的是一种在Web上应用的软件系统，它以一定的策略在Web上搜集和发现信息，在对信息进行处理和组织后，为用户提供Web信息查询服务。从使用者的角度看，这种软件系统提供一个网页界面，让他通过浏览器提交一个词语或者短语，然后很快返回一个可能和用户输入内容相关的信息列表（常常会是很长一个列表，例如包含1万个条目）。这个列表中的每一条目代表一篇网页，至少有3个元素： 标题：以某种方式得到的网页内容的标题。最简单的方式就是从网页的&#60;TITLE&#62;&#60;/TITLE&#62;标签中提取的内容。（尽管在一些情况下并不真正反映网页的内容）。在第七章有介绍其他形成“标题”的方法。 URL：该网页对应的“访问地址”。有经验的Web用户常常可以通过这个元素对网页内容的权威性进行判断，例如http://www.people.com上面的内容通常就比http://7ta.cn（某个假想的个人网站）上的要更权威些（不排除后者上的内容更有趣些）。 摘要：以某种方式得到的网页内容的摘要。最简单的一种方式就是将网页内容的头若干字节（例如512）截取下来作为摘要。本书第七章会介绍形成“摘要”的其他方法。 通过浏览这些元素，用户对相应的网页是否真正包含他所需的信息进行判断。比较肯定的话则可以点击上述URL，从而得到该网页的全文。用户在百度提交了查询词“财神客栈”，系统返回一个相关信息列表。列表的每一条目所含内容比上述要丰富些，但核心还是那三个元素。 百度搜索财神客栈返回的结果 如果用户主要是了解财神客栈的影片信息，第一条目可能就是很好的选择，不仅摘要看起来味道要浓一些，而且从URL上能看到提供信息的网站是百度旗下百科网站。如果用户主要是想了解财神客栈这部电影演员信息，则后面的条目可能会更相关些。 这个例子提示了我们一个重要的情况，即搜索引擎提供信息查询服务的时候，它面对的只是查询词。而有不同背景的人可能提交相同的查询词，关心的是和这个查询词相关的不同方面的信息，但搜索引擎通常是不知道用户背景的，因此搜索引擎既要争取不漏掉任何相关的信息，还要争取将那些“最可能被关心”的信息排在列表的前面。这也就是对搜索引擎的根本要求。除此以外，考虑到搜索引擎的应用环境是Web，因此对大量并发用户查询的响应性能也是一个不能忽略的方面。 作为对搜索引擎工作原理的基本了解，这里有两个问题需要首先澄清。 第一，当用户提交查询的时候，搜索引擎并不是即刻在Web上“搜索”一通，发现那些相关的网页，形成列表呈现给用户；而是事先已“搜集”了一批网页，以某种方式存放在系统中，此时的搜索只是在系统内部进行而已。 第二，当用户感到返回结果列表中的某一项很可能是他需要的，从而点击URL，获得网页全文的时候，他此时访问的则是网页的原始出处。 于是，从理论上讲搜索引擎并不保证用户在返回结果列表上看到的标题和摘要内容与他点击URL所看到的内容一致（上面那个“财神客栈”的例子就是如此！），甚至不保证那个网页还存在。 这也是搜索引擎和传统信息检索系统的一个重要区别。这种区别源于前述Web信息的基本特征。为了弥补这个差别，现代搜索引擎都保存网页搜集过程中得到的网页全文，并在返回结果列表中提供“网页快照”或“历史网页”链接，保证让用户能看到和摘要信息一致的内容。]]></description>
		<wfw:commentRss>http://scseoer.com/search-engine-concept.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>便于搜索引擎处理的URL</title>
		<link>http://scseoer.com/search-engines-handle-url.html</link>
		<comments>http://scseoer.com/search-engines-handle-url.html#comments</comments>
		<pubDate>Sat, 30 Jul 2011 06:01:42 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[爬虫程序]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1199</guid>
		<description><![CDATA[无论是谷歌的SEO指南还是百度的SEO建议，都提到网页URL问题，创建搜索引擎易于处理的URL结构，有助于SEO工作的顺利进行。 1、网站的网址结构应尽可能简单些。 请考虑组织您的内容，让网址的构建合乎逻辑并易于理解（尽可能采用易读字词而非长的 ID 数字）。 例如，如果您要搜索有关搜索引擎营销 (SEM) 的信息： http://www.scseoer.com/sem 一类的网址将会有助于您决定是否点击该链接。 http://www.scseoer.com/index.php?id_sezione=360&#38;sid=3a5ebc94 一类的网址对用户的吸引力大大降低。 2、建议您在网址中使用标点符号。 网址 http://www.scseoer.com/how-internal-links.html 比网址 http://www.scseoer.com/howinternallinks.html 对搜索引擎帮助大得多。 建议您在网址中使用连字符 (-) 而尽量避免使用下划线 (_)。 3、过于复杂的网址，特别是那些包含多个参数的网址，可能会给抓取工具带来麻烦，因为它们可能会产生大量不必要的网址（无限空间），全都指向您网站上相同或相似的内容。搜索引擎可能会因此而消耗大量不必要的带宽，也可能无法为您网站的所有内容编制完整索引。 导致网址过多可能有多种原因 一组项目的累加过滤。很多网站对同一组项目或搜索结果提供不同的视图，这样一般可以让用户使用定义的标准对其进行过滤（例如：显示海景酒店）。 当以累加模式组合过滤器时（例如：带健身中心的海景酒店），网站中网址（数据视图）的数量就会急剧增加。 因为搜索引擎只需查看少量能用来访问各个酒店网页的列表即可，所以没有必要创建大量区别不大的酒店列表。 例如： 特价酒店： http://www.example.com/hotel-search-results.jsp?Ne=292&#38;N=461 特价海景酒店： http://www.example.com/hotel-search-results.jsp?Ne=292&#38;N=461+429 带健身中心的特价海景酒店： http://www.example.com/hotel-search-results.jsp?Ne=292&#38;N=461+429+4294 动态生成文档。 由于计数器、时间戳或广告影响，这可能会产生少量变化。 网址中有问题的参数。例如，会话 ID 可以产生大量的重复项目和更多的网址。 排序参数。某些大型购物网站会提供多种方式来排序相同的项目，因此造成网址数量急剧增大。 例如： http://www.example.com/results?search_type=search_videos&#38;search_query=tpb&#38;search_sort=relevance&#38;search_category=25 网址中不相关的参数，例如推介参数。例如： http://www.example.com/search/noheaders?click=6EE2BF1AF6A3D705D5561B7C3564D9C2&#38;clickPage=OPD+Product+Page&#38;cat=79 日历问题。动态生成的日历可能会生成指向未来及过去日期的链接，而这些日期没有开始日期和结束日期。 例如： http://www.example.com/calendar.php?d=13&#38;m=8&#38;y=2011 损坏的相对链接。损坏的相对链接往往会造成死循环。 这个问题通常是由路径元素重复造成的。 例如： http://www.example.com/index.shtml/discuss/category/school/061121/html/interview/category/health/070223/html/category/business/070302/html/category/community/070413/html/FAQ.htm 避免网址结构发生潜在问题的办法 建议您使用 robots.txt 文件阻止搜索引擎爬虫程序访问有问题的网址。 [...]]]></description>
		<wfw:commentRss>http://scseoer.com/search-engines-handle-url.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>避免出现“robots.txt 限制错误”</title>
		<link>http://scseoer.com/robots-error.html</link>
		<comments>http://scseoer.com/robots-error.html#comments</comments>
		<pubDate>Sat, 30 Jul 2011 05:45:57 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[robots]]></category>
		<category><![CDATA[爬虫程序]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1196</guid>
		<description><![CDATA[搜索引擎爬虫程序在爬行某条URL时，如果该URL因受 robots.txt 限制，那么，爬虫程序将无法抓取此网址。 这种情况可能是由多种原因造成的。 您的 robots.txt 文件可能完全禁止 爬虫程序。 可能禁止对此网址所在目录的访问，也可能特别禁止访问此网址。 通常，这并不属于错误。您可能专门设置了一个 robots.txt 文件来阻止爬虫程序抓取此网址。如果是这种情况，则无需更正；搜索引擎将继续遵循 robots.txt文件规则，如果正常URL被误操作写入规则，请及时更正，以便爬虫下次可以正常获取URL及网页信息。 如果一个网址重定向到一个被 robots.txt 文件拦截的网址，则第一个网址会报告为被 robots.txt 拦截（即使该网址在 robots.txt 分析工具中列为”允许”）。]]></description>
		<wfw:commentRss>http://scseoer.com/robots-error.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>重定向错误</title>
		<link>http://scseoer.com/redirect-errors.html</link>
		<comments>http://scseoer.com/redirect-errors.html#comments</comments>
		<pubDate>Sat, 30 Jul 2011 05:37:43 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[搜索引擎]]></category>
		<category><![CDATA[重定向]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1193</guid>
		<description><![CDATA[搜索引擎爬虫程序在爬行网页的时候，有时候会遇见一些网页URL无法爬行或者爬行受到阻碍。在对网页进行SEO优化之前，确保网页URL被顺利爬行是整个工程的基础，下面的建议或许对你非常有用： 使用诸如 Lynx 之类的文本浏览器检查您的网站，因为许多搜索引擎查看您网站的方式与 Lynx 几乎一样。如果诸如 JavaScript、Cookie、会话 ID、框架、DHTML 或 Flash 等功能造成您无法在文本浏览器中查看整个网站，则搜索引擎“蜘蛛”程序在抓取您的网站时可能会遇到问题。 如果要使用动态网页（如网址中包含 ? 字符），请注意并非每一个搜索引擎“蜘蛛”程序都能抓取动态和静态网页。这有助于缩短参数长度并减少参数数量。 如果您要将一个网页永久重定向至另一个网页，请确保返回正确的 HTTP 状态代码（301 永久重定向），避免出现重定向错误。 尽可能使用绝对链接，而不是相对链接。 经常发生的重定向错误 1、重定向错误 搜索引擎无法完全爬行网页上面的重定向。谷歌在网站站长指南中建议您确保网站上的每个网页至少可以通过一个静态文本链接打开，这样便于搜索引擎访问。以下是有关使用重定向的一些建议： 最大限度地减少在网页之间追踪链接所需的重定向数量。 确保您的重定向计时器设置为相对较短的时间。 避免在您网页的 &#60;head&#62; 语句中使用元刷新。 2、重定向循环错误 搜索引擎开始爬行重定向，但多次被定向至相同的网址。请检查并确保您的重定向未指向其本身。 3、重定向网址过长 搜索引擎遇爬虫程序到了一个重定向网址，其长度超过了 RFC 2616 中建议的长度上限（255 字节）。请确保您在进行重定向时未自动向网址附加信息（如会话 ID）。同时确保搜索机器人抓取您网站时不会抓取会话 ID 和跟踪其访问网站路径的参数。 4、重定向无效 爬虫程序追踪了来自此网页的重定向，但却无法访问该网址。请确保您的重定向指向了有效的网页。 5、重定向为空 爬虫程序在此网页中找到了一个重定向，但该重定向未指向任何位置，因此 爬虫程序无法进行追踪。请确保您所有的重定向均有效且不为空。 6、Cookie 错误 由于 Cookie 要求，爬虫程序在导航网页时遇到了问题。搜索引擎在抓取使用 Cookie 导航的网站时可能会遇到问题。您可以使用文本浏览器（lynx浏览器）在您的网站中导航，看看“蜘蛛”程序是如何进行抓取的。]]></description>
		<wfw:commentRss>http://scseoer.com/redirect-errors.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>谷歌搜索结果中的网站链接</title>
		<link>http://scseoer.com/google-serp-sitelinks.html</link>
		<comments>http://scseoer.com/google-serp-sitelinks.html#comments</comments>
		<pubDate>Sun, 24 Jul 2011 02:04:22 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[搜索结果]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1169</guid>
		<description><![CDATA[显示在谷歌的搜索结果中部分网站下面的链接称为网站链接，这类链接可帮助用户浏览您的网站。谷歌的系统会分析您网站的链接结构来寻找可让用户节省时间的快捷方式，以便让用户快速找到要查找的信息。 只有在谷歌认为搜索结果中的网站链接对用户非常有用的情况下，谷歌才会显示这些网站链接。如果您的网站结构不允许谷歌的算法查找正常的网站链接，或者当谷歌认为您网站的网站链接与用户的查询不相关时，谷歌不会显示这些网站链接。 目前，网站链接完全是自动产生的。谷歌一直在努力改进谷歌的网站链接算法，并且将来可能会采纳网站站长所提供的信息和建议。不过，您可以参照谷歌提供的一些最佳做法提高网站链接的质量。例如，对于网站的内部链接，请确保您使用的是定位文字和替代文字，这样不仅能提供丰富信息、节省空间，还能避免重复问题。阅读关于链接结构的重要性的博文（英文版）。 http://googlewebmastercentral.blogspot.com/2008/10/importance-of-link-architecture.html 如果您认为所显示的您网站的网站链接不恰当或不正确，可以拦截这些网站链接，这样，它们就不会再显示出来。 要拦截网站链接，请先确保您已通过验证是该网站的拥有者。然后： 在网站站长工具首页上，点击所需的网站。 在网站配置下，点击网站链接。如果谷歌有关于您网站的网站链接信息，谷歌会显示这些网站链接的列表。 点击您要删除的网站链接旁边的拦截。请告知谷歌您要拦截该网站链接的原因，这会帮助谷歌改进生成和显示网站链接的方式。 在您拦截或取消拦截网站链接之后，可能需要等待一段时间才能看到您所做的更改。 请注意，仅当一个网站具有至少三个可用的网站链接时，谷歌才会显示这些网站链接。如果网站中未拦截的网站链接少于三个，Google 搜索结果中将不会显示您网站的任何网站链接。 在您成功拦截了网站链接后，该网站链接在 90 天内将不会显示在 Google 搜索结果中。您每次访问“网站站长工具”上的“网站链接”页后，此有效期就会顺延。]]></description>
		<wfw:commentRss>http://scseoer.com/google-serp-sitelinks.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>谷歌索引状态</title>
		<link>http://scseoer.com/index-state.html</link>
		<comments>http://scseoer.com/index-state.html#comments</comments>
		<pubDate>Sun, 24 Jul 2011 01:56:10 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[索引]]></category>
		<category><![CDATA[网页快照]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1166</guid>
		<description><![CDATA[您可使用专门的搜索来查看用于表示 Google 将您的网站编入索引的方式的示例结果。要查看完整的示例结果列表，请使用 info: 操作符，例如：info:scseoer.com。查看下面的内容来获取有关每种搜索类型的详细信息。 您网站中已编入索引的网页 要查看您网站中已编入索引的网页，请使用 site: 操作符，例如：site:scseoer.com。（请注意：请勿在操作符和网址之间使用空格。） 您可在整个域上执行搜索，也可将搜索限定在某个子域或子目录上，例如：site:scseoer.com/seo-help。 在操作符前放置减号可从您的搜索中排除网页。例如，site:google.com -site:adwords.google.com 搜索可为您提供位于 google.com 域上您所有已编入索引的网页，但不包含 adwords.google.com 上的网页。 链接到您网站首页的网页 要查看链接到 www.scseoer.com 的网站，请使用 link:scseoer.com。（您可使用 link:scseoer.com 或 link:www.scseoer.com，但第一种搜索将返回更完整的结果。）您还可以搜索指向特定网页或目录的链接：link:scseoer.com/seo-help。 您网站的当前缓存 cache: 操作符可显示 Google 编入索引的网页的存档副本。例如，cache:google.com 可显示 Google 主页最近一次编入索引的版本，并提供有关缓存创建日期的信息。您也可以查看此网页的纯文本版本。这非常有用，因为它可以让您了解 Googlebot 是如何看待这类网页的。 如果您不想让搜索者访问您网页的缓存版本，那么，请使用 noarchive 元标记，具体如下： &#60;meta name=”robots” content=”noarchive”&#62; Google 仍会抓取该网页并将其编入索引，但用户将不会在搜索结果中看到缓存链接。 与您网站类似的网页 related: 操作符可显示与您所查找的网站类似的网站，返回的结果等同于您点击谷歌搜索结果页上搜索结果旁边的类似网页。 通常，使用这个操作符可查找到重叠的资源。如果您的网站包含了大量内容，那么，您可获得最好的、最有用的结果。 Google 会通过多种因素来判断不同网站之间的相似性。然而，所返回网站的质量并不会影响到您的排名，也不会影响到 Google 将您的网站编入索引的方式。]]></description>
		<wfw:commentRss>http://scseoer.com/index-state.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Googlebot 与网站</title>
		<link>http://scseoer.com/googlebot-website.html</link>
		<comments>http://scseoer.com/googlebot-website.html#comments</comments>
		<pubDate>Sun, 24 Jul 2011 01:40:44 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[搜索引擎]]></category>
		<category><![CDATA[蜘蛛]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1164</guid>
		<description><![CDATA[Googlebot 是 Google 的网页抓取机器人（有时称为“信息采集软件”）。抓取是 Googlebot 发现新网页和更新的网页以将这些网页添加到 Google 索引中的过程。 谷歌搜索引擎使用许多计算机来提取（或“抓取”）网站上的大量网页。Googlebot 使用算法确定抓取过程：计算机程序确定要抓取的网站、抓取频率以及从每个网站抓取的网页数量。 进行抓取时，Googlebot 会先查看以前的抓取过程所生成的一系列网页网址，包含网站站长提供的站点地图数据。Googlebot 在访问其中的每个网站时，会检测各网页上的链接（SRC 和 HREF），并将这些链接添加到要抓取的网页列表。它会记录新出现的网站、现有网站的更新以及无效链接，并据此更新 Google 索引。 Googlebot 如何访问您的网站 Googlebot 对大多数网站的平均访问频率为几秒钟一次。但是，如果网络有延迟，则访问频率可能会在短时间内有所提高。一般来说，Googlebot 每次只会下载各网页的一份副本。如果您发现 Googlebot 多次下载同一网页，可能是因为抓取工具停止后又重新启动所致。 谷歌搜索引擎将 Googlebot 分布在多台计算机上以便提高性能，并随着网络规模的扩大而扩大。此外，为了降低带宽占用，谷歌搜索引擎会在几台计算机上运行多个抓取工具，而这些计算机通常位于他们正在网络中编制索引的网站附近。因此，您的日志可能会显示来自 google.com 上的多台计算机的访问记录，而且所有计算机使用的都是用户代理 Googlebot。谷歌搜索引擎的目标是：每次访问您的网站时，以您服务器的带宽所允许的速度尽可能多地抓取网页。 阻止 Googlebot 抓取您网站上的内容 对于网络服务器，要想通过不发布指向它的链接的方式来达到保密目的几乎是不可能的。只要有人通过您“私密”服务器上的链接访问其他网络服务器，您的“私密”网址就会出现在引用页标签中，而其他网络服务器也会存储这些网址并将其发布在自己的引用页日志中。同样，网络中包含许多过期和已损坏的链接。只要有人发布了指向您网站的不正确链接，或未能成功更新链接以反映您服务器的更改，Googlebot 就会尝试从您的网站下载不正确的链接。 如果要阻止 Googlebot 抓取您网站上的内容，您可以选择使用多种方法，包括使用 robots.txt 阻止其访问您服务器上的文件和目录。 您创建完 robots.txt 文件后，Googlebot 可能需要一段时间才能发现您的更改。如果 Googlebot 仍继续抓取您在 robots.txt 文件中阻止的内容，请检查 robots.txt 文件的位置是否正确。该文件必须位于服务器的顶层目录（例如：www.myhost.com/robots.txt）中；如果位于子目录，则不会产生任何效果。 如果您只想阻止网络服务器日志显示“未找到文件”这样一种错误讯息，则可以创建名为 robots.txt 的空文件。如果您想阻止 Googlebot 跟踪您网站上某网页中的任何链接，则可以使用 [...]]]></description>
		<wfw:commentRss>http://scseoer.com/googlebot-website.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>关键词排名为什么不好?</title>
		<link>http://scseoer.com/keywords-ranking-bad.html</link>
		<comments>http://scseoer.com/keywords-ranking-bad.html#comments</comments>
		<pubDate>Sun, 24 Jul 2011 01:23:30 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[关键词]]></category>
		<category><![CDATA[网站内容]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1161</guid>
		<description><![CDATA[搜索引擎的目标是为每个查询返回高度匹配的结果。搜索结果是通过搜索引擎的搜索索引返回的。搜索索引会随着网络上所添加或修改的内容而不断变化。由于网络上的内容在不断改变，搜索引擎的排名算法也在实时更新，因此，搜索结果中网址的排名可能会发生变化。在极少数情况下，网址甚至可能会被删除。 搜索引擎这些变化可能会对网站所有者造成困扰。如果您的网站已与网络上的其他网站建立起可靠的链接，那么，搜索引擎很有可能会在下次抓取时再度添加您的网站。搜索引擎无法保证某一网页始终显示在索引中，也不能保证它总是获得特定的显示排名，谷歌网站站长指南会介绍一些实用信息，让您的网站易于被抓取工具抓取。遵循了这些建议后，您的网站始终出现在谷歌搜索引擎搜索结果中的可能性应当会大大地增加。 如果您的网站还未出现在 Google 搜索结果中，或者，您网站在搜索结果中的排名与之前相比变差，那么，请按照以下步骤进行查看以确定问题发生的潜在原因并对问题进行修复。 查看您的网站是否被 Google 编入了索引 确保 Google 能够找到并抓取您的网站 确保 Google 能够将您的网站编入索引 确保您的内容实用且具有相关性 查看您的网站是否被 Google 编入了索引 执行“site:”搜索 谷歌搜索引擎经常发现这样一种情况：当网站站长告知 Google 的搜索结果中已不再显示他们的网站时，这些网站实际上仍然收录在搜索结果中。要快速判断您的网站是否仍在谷歌的索引中，只需在 Google 网站中搜索您的网站的完整网址即可。例如，搜索 site:google.cn 会返回以下结果：http://www.google.cn/search?num=100&#38;q=site:google.cn。注意：您不能在 site: 操作符和域名之间加空格。 如果您在 Google 网站中搜索了您的网址后发现，您的网站仍然被列在搜索结果内，那么，这说明，您的网站已被 Google 编入了索引。 不过，如果您的网站曾经编入索引，但目前未在其中列出，则可能是您的网站因违反谷歌网站站长指南而遭到了删除。请查看该指南并修复所有的问题，然后提交重新审核请求。 验证您的网站是否在域名的基础上进行了排名 在 Google 上搜索 www.[您的域名].com。如果您的网站未出现在搜索结果中，或在搜索结果中的排名不佳，则说明您的网站可能由于违反了网站站长指南而受到了处罚。如果搜索引擎发现您的网站存在某些问题（如存在恶意软件），将通过消息中心通知您。这种情况下，您也应根据网站站长指南检查自己的网站是否符合相关规定。确定已解决了所有问题后，请提交重新审核请求。 提醒搜索引擎注意您有新内容 如果您的网站刚刚建立，谷歌可能还对此一无所知。将网址添加到 Google。让 Google 尽快发现新网页的方法之一便是提交站点地图。即便您的网站已经编入索引，站点地图仍是让 Google 了解您认为最重要的网页的绝佳方法。 确保 Google 能够找到并抓取您的网站 抓取是 Googlebot 发现要添加到 Google 索引中的新页面和更新后的页面的过程。谷歌的抓取过程会先检查以前的抓取过程中生成的网页网址列表，其中添加了网站站长提供的站点地图数据。在 Googlebot [...]]]></description>
		<wfw:commentRss>http://scseoer.com/keywords-ranking-bad.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>301重定向错误</title>
		<link>http://scseoer.com/301-redirect-error.html</link>
		<comments>http://scseoer.com/301-redirect-error.html#comments</comments>
		<pubDate>Sun, 24 Jul 2011 00:53:55 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[URL]]></category>
		<category><![CDATA[重定向]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1156</guid>
		<description><![CDATA[在前面的SEO帮助文章中，提到URL规范化，最后的建议中有采用301重定向的方法来规范URL，如果我们将一个网页使用301重定向到另一个网页，那么，要确保返回正确的301状态码，否则，可能会导致搜索引擎爬虫程序的抓取错误，下面是一些常见的301重定向错误： 1、重定向错误 Google 无法完全追踪此页的重定向。谷歌在网站站长指南中建议您确保网站上的每个网页至少可以通过一个静态文本链接打开，这样便于爬虫程序抓取。以下是有关使用重定向的一些建议： 最大限度地减少在网页之间追踪链接所需的重定向数量。 确保您的重定向计时器设置为相对较短的时间。 避免在您网页的 &#60;head&#62; 语句中使用元刷新。 2、重定向循环错误 Google 已开始追踪重定向，但多次被定向至相同的网址。请检查并确保您的重定向未指向其本身。 3、重定向网址过长 Google 遇到了一个重定向网址，其长度超过了 RFC 2616 中建议的长度上限（255 字节）。请确保您在进行重定向时未自动向网址附加信息（如会话 ID）。同时确保爬虫程序抓取您网站时不会抓取会话 ID 和跟踪其访问网站路径的参数。 4、重定向无效 Google 追踪了来自此网页的重定向，但却无法访问该网址。请确保您的重定向指向了有效的网页。 5、重定向为空 Google 在此网页中找到了一个重定向，但该重定向未指向任何位置，因此Googlebot 无法进行追踪。请确保您所有的重定向均有效且不为空。 6、Cookie 错误 由于 Cookie 要求，Google 在导航网页时遇到了问题。搜索引擎在抓取使用 Cookie 导航的网站时可能会遇到问题。您可以使用lynx文本浏览器在您的网站中导航，看看“蜘蛛”程序是如何进行抓取的。]]></description>
		<wfw:commentRss>http://scseoer.com/301-redirect-error.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>利用 rel=”canonical” 来规范URL</title>
		<link>http://scseoer.com/rel-canonical.html</link>
		<comments>http://scseoer.com/rel-canonical.html#comments</comments>
		<pubDate>Fri, 22 Jul 2011 14:49:54 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[URL]]></category>
		<category><![CDATA[规范]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1145</guid>
		<description><![CDATA[在平时的SEO工作中，我们可以实用rel=”canonical”来规范网页。 为什么要指定规范网页？ 规范网页是一组内容高度相似的网页的首选版本。 对于网站来说，包含多个列有同组产品的网页很正常。例如，一个网页可能按字母表顺序显示产品，而其他网页则按照价格或评分显示相同产品。例如： http://www.example.com/product.php?item=swedish-fish&#38;trackingid=1234567&#38;sort=alpha&#38;sessionid=5678asfasdfasfd http://www.example.com/product.php?item=swedish-fish&#38;trackingid=1234567&#38;sort=price&#38;sessionid=5678asfasdfasfd 如果 Google 知道这些网页的内容相同，谷歌可能只会将搜索结果的一个版本编入索引。谷歌的算法会选择谷歌认为可以最好地回答用户查询的网页。不过，现在用户可以通过将 &#60;link&#62; 元素和 rel=”canonical” 属性添加到该网页非规范版本的 &#60;head&#62; 部分，为搜索引擎指定规范网页。 添加此链接和属性可以让网站拥有者识别出哪些网页具有相同的内容，从而向 Google 提出建议：“在内容相同的所有网页中，此网页最有用。请将该网页排在搜索结果中靠前的位置。” 如何指定规范网址？ 您可以通过以下两种方式指定规范网址： 在每个非规范版本的 HTML 网页的 &#60;head&#62; 部分中，添加一个 rel=”canonical” 链接。 要指定指向网页 http://www.example.com/product.php?item=swedish-fish 的规范链接，请按以下形式创建 &#60;link&#62; 元素： &#60;link rel=”canonical” href=”http://www.example.com/product.php?item=swedish-fish”/&#62; 将上述链接复制到某网页（例如 http://www.example.com/product.php?item=swedish-fish&#38;sort=price）所有非规范版本的 &#60;head&#62; 部分中。 如果您在 http://www.example.com/product.php?item=swedish-fish 和 https://www.example.com/product.php?item=swedish-fish 上都发布了内容，则可以指定该网页的规范版本。创建 &#60;link&#62; 元素： &#60;link rel=”canonical” href=”http://www.example.com/product.php?item=swedish-fish”/&#62; 将上述链接添加到 https://www.example.com/product.php?item=swedish-fish 的 &#60;head&#62; 部分中。 使用 [...]]]></description>
		<wfw:commentRss>http://scseoer.com/rel-canonical.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>URL规范化</title>
		<link>http://scseoer.com/url-standardization.html</link>
		<comments>http://scseoer.com/url-standardization.html#comments</comments>
		<pubDate>Fri, 22 Jul 2011 14:42:07 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[动态参数]]></category>
		<category><![CDATA[网站地图]]></category>
		<category><![CDATA[规范]]></category>
		<category><![CDATA[重定向]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1143</guid>
		<description><![CDATA[URL规范化，许多网站通过不同的网址提供相同的 HTML 内容或文件。比如，您有一个服装网站，绿色礼服是其中的畅销商品之一，那么可以通过多个不同的网址访问礼服产品的网页，特别是当您使用会话 ID 或其他参数时： http://www.example.com/products/women/dresses http://www.example.com/products?category=dresses&#38;color=green&#38;cruel=no http://example.com/shop/index.php?product_id=32highlight=green+dress&#38;cat_id=1&#38;sessionid=123&#38;affid=431 http://example.com/dresses/cocktail?gclid=ABCD http://www.example.com/礼服/绿色礼服.html 为了更好地控制您的网址在搜索结果中的显示方式以及加强属性（例如链接流行度），建议您选择规范（首选）网址作为网页的首选版本。您可以通过多种方式告知 Google 您的使用偏好。虽然不要求您必须采用这些方式（如果您没有指明规范的网址，谷歌会自行确定谷歌认为最佳的版本），但建议您最好这样做。 设置您的首选域 为网页的每个版本指定规范链接 使用 301重定向 通过将网址加入站点地图来指明您的规范（首选）网址 指明要让 Google 采用的处理动态参数的方式 在您的 HTTP 标头中指定规范链接 设置您的首选域 设置您的首选域来告知 Google 您希望您的网站使用哪个版本的网址（http://www.example.com 还是 http://example.com）。 如果您将首选域设置为 http://example.com，那么谷歌会将指向 http://www.example.com 的链接与指向您首选域的链接视为完全相同的链接。 要设置某个网站的首选域，请点击网站配置，然后点击设置。在首选域部分，选择您需要的选项。 为网页的每个版本指定规范链接 如果您希望将 http://www.example.com/礼服/绿色礼服.html 设为您列表的规范网址，可以将属性为 rel=”canonical” 的 &#60;link&#62; 元素添加到非规范网页的 &#60;head&#62; 部分，向搜索引擎指明这一点。要执行这一操作，请创建如下链接： &#60;link rel=”canonical” href=”http://www.example.com/礼服/绿色礼服.html”&#62; 将这些附加信息添加到非规范网址的 &#60;head&#62; 部分。 http://example.com/dresses/greendress.html?gclid=ABCD http://example.com/dresses/index.php?product_id=32highlight=green+dress&#38;cat_id=1&#38;sessionid=123 这会告知 Google [...]]]></description>
		<wfw:commentRss>http://scseoer.com/url-standardization.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NOODP 元标记</title>
		<link>http://scseoer.com/noodp.html</link>
		<comments>http://scseoer.com/noodp.html#comments</comments>
		<pubDate>Fri, 22 Jul 2011 14:27:04 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[DMOZ目录]]></category>
		<category><![CDATA[元标记]]></category>
		<category><![CDATA[网页描述]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1140</guid>
		<description><![CDATA[NOODP 元标记可以来告诉谷歌不要使用开放式目录管理系统的网页描述来源，例如DMOZ目录的网页介绍（前提是网页已经加入DMOZ目录）。 为防止所有支持元标记的搜索引擎使用此信息生成网页描述，请使用下列元标记： &#60;meta name=”robots” content=”NOODP”&#62; 要特别防止 Google 使用此信息生成网页描述，请使用下列元标记： &#60;meta name=”googlebot” content=”NOODP”&#62; 如果您使用漫游器元标记提供其他说明，可以结合使用这些元标记。例如： &#60;meta name=”googlebot” content=”NOODP, nofollow”&#62; 请注意，将此元标记添加到网页中后，可能需要一段时间才会在索引中反映摘录更改。 如果您担心标题或摘录内容出现问题，可能需要确认该内容未出现在您的网站上。如果出现了，则更改此内容将会在谷歌下次抓取您的网站时影响您的 Google 摘录。如果没有出现，请在 Google上搜索标题或摘要，并将搜索内容括在引号中。这样会显示网络上通过此文本引用您网站的网页。如果您与这些网页的网站站长联系，请求他们更改有关您网站的信息，则在下次抓取这些网页时，谷歌的抓取工具会识别所有更改。]]></description>
		<wfw:commentRss>http://scseoer.com/noodp.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>nosnippet 元标记</title>
		<link>http://scseoer.com/nosnippet.html</link>
		<comments>http://scseoer.com/nosnippet.html#comments</comments>
		<pubDate>Fri, 22 Jul 2011 14:19:51 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[元标记]]></category>
		<category><![CDATA[网页描述]]></category>
		<category><![CDATA[蜘蛛程序]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1138</guid>
		<description><![CDATA[nosnippet 元标记是用来删除摘要和即时预览，摘要是显示在搜索结果中网页标题下面的文本摘要，用来说明网页的内容。点击放大镜图标 即可激活网页快照，这就是即时预览；此功能可让用户在每个搜索结果后面看到相关网页的布局，从而选择最佳结果。 摘要和即时预览非常实用，它们可以帮助用户决定是否点击搜索结果中的网站。不过，您可以指定 Google 不显示摘要（这样既不会显示文字摘要，也不会显示预览图标）。 要阻止 Google 显示您网页的摘要和即时预览，请将以下标记放置到网页的 &#60;HEAD&#62; 部分中： &#60;meta name=”googlebot” content=”nosnippet”&#62; 请注意，该标记会阻止在常规搜索结果中显示预览，但不会影响广告的预览。 如果您想在谷歌的搜索结果中显示自己网页的摘要，但又想禁止 Google 使用开放式目录管理系统中的说明信息，则可以使用NOODP。]]></description>
		<wfw:commentRss>http://scseoer.com/nosnippet.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>noindex 元标记</title>
		<link>http://scseoer.com/noindex.html</link>
		<comments>http://scseoer.com/noindex.html#comments</comments>
		<pubDate>Fri, 22 Jul 2011 14:12:03 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[元标记]]></category>
		<category><![CDATA[爬虫程序]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1136</guid>
		<description><![CDATA[noindex 元标记拦截对您网站的访问。如果您不具备对服务器的根访问权限，此方法将非常有用，因为它允许您逐页控制对网站的访问。 要防止所有漫游器将网站中的网页编入索引，请将以下元标记添加到网页的 &#60;head&#62; 部分： &#60;meta name=”robots” content=”noindex”&#62; 要允许其他漫游器将该网页编入索引而只阻止 Google 的漫游器，请将以下元标记置入其 部分： &#60;meta name=”googlebot” content=”noindex”&#62; 如果 Google 看到某一页上有 noindex 元标记，就会将此页从谷歌的搜索结果中完全丢弃，而不管是否还有其他页链接到此页。但是，其他搜索引擎可能会以不同的方式解译此指令。因此，指向相关网页的链接可能仍会显示在搜索结果中。 请注意，由于谷歌必须抓取您的网页才能看到 noindex 元标记，因此在极少数情况下 Googlebot 可能会看不到和不遵循 noindex 元标记。如果您的网页仍显示在搜索结果中，可能是因为在您添加标记后谷歌尚未抓取过您的网站。（此外，如果您使用了 robots.txt 文件拦截此网页，谷歌也无法看到此标记。） 如果内容当前出现在谷歌的索引中，谷歌会在下次抓取此内容时将其删除。要加快删除过程，请使用 Google 网站管理员工具中的网址删除请求工具。]]></description>
		<wfw:commentRss>http://scseoer.com/noindex.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>元标记</title>
		<link>http://scseoer.com/meta-tag.html</link>
		<comments>http://scseoer.com/meta-tag.html#comments</comments>
		<pubDate>Fri, 22 Jul 2011 14:01:08 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[搜索结果]]></category>
		<category><![CDATA[爬虫程序]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1130</guid>
		<description><![CDATA[元标记是网站站长为搜索引擎提供有关其网站信息的绝佳方法。您可以使用元标记为各种类型的客户端提供信息，而每个系统只会处理它们可以识别的元标记，而将其余标记都忽略。元标记会添加到 HTML 页的 &#60;head&#62; 部分，通常如下所示： &#60;!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”&#62; &#60;html&#62; &#60;head&#62; &#60;META NAME=”Description” CONTENT=”作者：A.N. Author，插图者：P. Picture，类别：图书，价格：9.24 英镑，长度：784 页”&#62; &#60;META http-equiv=”Content-Type” CONTENT=”text/html; charset=iso-8859-1&#8243;&#62; &#60;META NAME=”google-site-verification” CONTENT=”+nxGUDJ4QpAZ5l9Bsjdi102tLVC21AIh5d1Nl23908vVuFHs34=”/&#62; &#60;title&#62;示例图书 &#8211; 适于儿童阅读的优秀旧图书&#60;/title&#62; &#60;META NAME=”robots” CONTENT=”noindex,nofollow”&#62; Google 可以识别以下元标记（和相关项）： &#60;meta name=”description” content=”网页说明” /&#62; 此标记会提供网页的简短说明。在某些情况下，此说明充当搜索结果中显示的一部分代码段。 &#60;title&#62;网页标题&#60;/title&#62; 虽然从技术上讲，这不是一个元标记，但是此标记经常与”description”（说明）一起使用。此标记的内容通常显示为搜索结果（在用户的浏览器中）中的标题。 &#60;meta name=”robots” content=”&#8230;, &#8230;” /&#62; &#60;meta name=”googlebot” content=”&#8230;, &#8230;” /&#62; 这些元标记可以控制搜索引擎抓取和编制索引的行为。robots [...]]]></description>
		<wfw:commentRss>http://scseoer.com/meta-tag.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>重复内容</title>
		<link>http://scseoer.com/duplicate-content.html</link>
		<comments>http://scseoer.com/duplicate-content.html#comments</comments>
		<pubDate>Fri, 22 Jul 2011 13:46:50 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[网页内容]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1126</guid>
		<description><![CDATA[重复内容通常是指域内或多个域之间存在的、与其他内容完全匹配或大致类似的内容。大多数情况下，重复内容本身不具有欺骗性。非恶意重复内容可能包含： 能够生成用于移动设备的常规和简化网页的论坛 通过多个不同网址显示或链接的存储项目 网页的可打印版本 如果您的网站包含多个具有大量重复内容的网页，您可以采用多种方法向 Google 指明您的首选网址（URL标准化）。（这叫做“规范化”。）有关规范化的详细信息。 然而，在某些情况下，为操纵搜索引擎排名或获得更多的访问量，某些网站所有者会故意在多个域内安插重复内容。此类行为即属于欺骗性行为，这会导致非常糟糕的用户体验：用户在一组搜索结果中会看到大量相同的重复内容。 Google 会尽量使用不同的信息来编制索引以及显示网页。谷歌举例说明这种过滤方式：如果您网站上的每篇文章都包含“普通版”和“打印版”，并且两个版本都没有用于阻止抓取的 noindex 元标记，谷歌会选择列出其中一个。如果 Google 认定显示重复内容是为了操纵谷歌的排名并欺骗谷歌的用户，尽管这种情况很少出现，谷歌也会在将此类网站编入索引和对其进行排名的过程中做出相应的调整。这样一来，网站的排名可能会受到影响，或者谷歌可能会将网站从 Google 索引中完全删除，网站删除后将不会再显示在搜索结果中。 您可采取某些措施来主动解决重复内容的问题，并确保访问者可看到您希望他们看到的内容。 使用 301 重定向 如果您已重组网站结构，请在 .htaccess 文件中使用 301 重定向 (RedirectPermanent)，灵活地重定向用户、Googlebot 和其他信息采集软件。（在 Apache 中，可以使用 .htaccess 文件进行此操作；在 IIS 中，可以通过管理控制台进行此操作。） 保持一致 尽量使您的内部链接保持一致。 例如，请勿链接到http://www.example.com/page/、http://www.example.com/page 和 http://www.example.com/page/index.htm。 使用顶级域 为便于谷歌选用最恰当的文档版本，请尽量使用顶级域来处理国家/地区特定的内容。例如，http://www.example.de 与 http://www.example.com/de 或 http://de.example.com 相比，更能说明是针对德国的内容。 谨慎联合供稿 如果您在其他网站上将您的内容显示为联合供稿，那么，在每次指定的搜索中，Google 会始终显示谷歌认为最适合用户的版本，该版本可能是您的首选版本，也可能不是。不过，这有助于确保将您的内容显示为联合供稿的每个网站都包含一个指向您原始文章的链接。您也可以要求其他网站站长对包含您的联合供稿资料的网页使用 noindex 元标记，阻止搜索引擎将此版本编入索引。 使用网站站长工具告诉谷歌您希望以何种方式将您的网站编入索引 您可以向 Google 说明自己的首选域。 （例如，http://www.example.com [...]]]></description>
		<wfw:commentRss>http://scseoer.com/duplicate-content.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>网站浏览器兼容性</title>
		<link>http://scseoer.com/browser-compatibility.html</link>
		<comments>http://scseoer.com/browser-compatibility.html#comments</comments>
		<pubDate>Fri, 22 Jul 2011 13:26:44 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[兼容性]]></category>
		<category><![CDATA[浏览器]]></category>
		<category><![CDATA[网页编码]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1121</guid>
		<description><![CDATA[用户通常会使用浏览器访问您的网站。各浏览器解译网站代码的方式略有不同，这意味着您的网站在不同浏览器中显示的效果会有所差异。一般情况下，您应避免依赖于浏览器特定的行为，例如在未指定内容类型或编码的情况下，希望浏览器可以正确检测到相应的内容类型或编码。此外，您还可以采取以下步骤来确保网站在不同的浏览器中都能正确显示。 在尽可能多的浏览器中测试您的网站 完成网站设计后，您应通过多个浏览器复查网站的外观和功能，确保将您独具匠心的设计完美呈现给所有访问者。早在网站开发阶段，您就应该进行这种测试。各种浏览器（甚至是同一浏览器的不同版本）对同一网站的呈现可能会有所不同。您可以使用诸如 Google Analytics（分析）这样的服务来了解访问者最常使用哪些浏览器访问您的网站。 编写高质量、易解译的 HTML 即使您编写的 HTML 无效，您的网站在某些浏览器中也可以正确显示，但尽管如此，您的网站可能不会在所有浏览器（或将来出现的浏览器）中都正确显示。要使您的网页在所有浏览器中显示的效果相同，最好的方法就是使用有效的 HTML 和 CSS 编写网页，然后在尽可能多的浏览器中测试这些网页显示的效果。有效、易解译的 HTML 可保证网页得以正确显示，而 CSS 可以将网页的外观和内容分离开来，使网页可以更快速地载入和呈现给访问者。您可以使用验证工具检查自己的网站，例如 W3 Consortium 免费提供的在线 HTML 和 CSS 验证工具，还可以使用诸如 HTML Tidy 的工具快捷地清理您的代码。（尽管 Google 强烈推荐使用有效的 HTML，但这并不影响 Google 抓取您的网站并将其编入索引的方式。） 指定字符编码 为使浏览器可以呈现您网页上的文字，您应始终为相应的文档指定编码。某些浏览器无法识别文档深处的字符集声明，因此，您应将此编码置于文档（或框架）的顶部。此外，您还应确保您的网络服务器不发送相冲突的 HTTP 标头。content-type: text/html; charset=ISO-8859-1 之类的标头会替代网页中的所有字符集声明。 使网页易于访问 并非所有用户都会在浏览器中启用 JavaScript。此外，Flash 和 ActiveX 等技术在某些浏览器中的效果可能并不好（或根本不适用）。建议您按照 Flash 和其他富媒体使用指南进行操作，然后在 Lynx 这样的纯文本浏览器中测试您的网站。提供针对富媒体内容和功能的纯文本浏览方式，有助于搜索引擎更方便地抓取您的网站并将其编入索引，同时也大大方便了使用屏幕读取器等技术访问您网站的用户。]]></description>
		<wfw:commentRss>http://scseoer.com/browser-compatibility.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>向站点地图添加图片信息</title>
		<link>http://scseoer.com/picture-sitemap.html</link>
		<comments>http://scseoer.com/picture-sitemap.html#comments</comments>
		<pubDate>Fri, 22 Jul 2011 13:17:53 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[图片]]></category>
		<category><![CDATA[网站地图]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1117</guid>
		<description><![CDATA[Google 推出了图片搜索（与网页搜索一样），向用户提供最好并且相关度最高的搜索结果。遵守 Google 的网站站长指南并采用图片SEO优化最佳做法， 可以提高在相应搜索结果中返回图片的几率。此外，对于您网站网址上的图片，您还可以使用站点地图向 Google 提供其他有关信息。这样做不仅可以帮助 Google 发现通过其他方式可能无法找到的图片（例如通过 JavaScript 表单获得的图片），还可以让您确定网页上最重要的图片。 例如，如果您的网站使用了模板，则每个网页上可能都显示了一幅精选的样板图片。如果您未在站点地图 中列出该图片，则是在告诉 Google 该图片的重要性要比已列出的图片低。但是，Google 不保证一定会将您的所有图片编入索引，也不保证一定会使用您站点地图中的全部信息。 要向 Google 提供有关您网站中图片的信息，您需要先创建标准网站地图。（您也可以更新现有的站点地图。） 对于站点地图中列出的每个网址，您都可以添加与该网址网页上的重要图片有关的其他信息。以下示例展示了 http://example.com/sample.html 网址的站点地图条目，其中包含两张图片。（您可为每个网页列出的图片的数目上限为 1,000 张。） &#60;?xml version=”1.0&#8243; encoding=”UTF-8&#8243;?&#62; &#60;urlset xmlns=”http://www.sitemaps.org/schemas/sitemap/0.9&#8243; xmlns:image=”http://www.google.com/schemas/sitemap-image/1.1&#8243;&#62; &#60;url&#62; &#60;loc&#62;http://example.com/sample.html&#60;/loc&#62; &#60;image:image&#62; &#60;image:loc&#62;http://example.com/image.jpg&#60;/image:loc&#62; &#60;/image:image&#62; &#60;image:image&#62; &#60;image:loc&#62;http://example.com/photo.jpg&#60;/image:loc&#62; &#60;/image:image&#62; &#60;/url&#62; &#60;/urlset&#62; 图片标记定义 标记 必需 说明 &#60;image:image&#62; 是 包含单张图片的所有相关信息。每个网址 (&#60;loc&#62; tag) 可包含的 &#60;image:image&#62; 标记的数目上限为 1,000 个。 &#60;image:loc&#62; [...]]]></description>
		<wfw:commentRss>http://scseoer.com/picture-sitemap.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>图片SEO优化</title>
		<link>http://scseoer.com/images-seo.html</link>
		<comments>http://scseoer.com/images-seo.html#comments</comments>
		<pubDate>Fri, 22 Jul 2011 13:09:25 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[图片]]></category>
		<category><![CDATA[文字]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1115</guid>
		<description><![CDATA[Google 推出了图片搜索（与网页搜索一样），向用户提供最好并且相关程度最高的搜索结果。遵循下面列出的最佳做法（以及谷歌常用的网站站长指南）可增加您的图片出现在搜索结果中的几率。 您可以通过向网络站点地图添加信息，为 Google 提供有关自己图片的其他详细信息，并为谷歌提供通过其他方式可能无法发现的图片的网址（向站点地图添加图片信息）。 请勿在图片中嵌入重要文字 对于网页标题和菜单项等元素，请勿在图片中嵌入重要文字，因为并非所有用户都能访问这些元素。要确保尽可能多的用户能够访问您的基于重要文字的内容，请采用常规 HTML 格式。 尽可能多向谷歌提供图片的相关信息 提供您图片的详细信息以及包含参考信息的文件名，文件名可向 Google 提供关于图片主题的线索。尽量使用能够较好地说明图片主题的文件名。例如，my-new-black-kitten.jpg 较之 IMG00023.JPG 可以提供更多信息。说明性文件名对用户也有用处：如果谷歌在找到图片的网页上找不到适当的文字，谷歌会在搜索结果中将文件名用作图片的摘录。 创建最佳替代文字 替代属性用于说明图片文件的内容。该属性的重要性体现在以下几个方面： 它可为 Google 提供关于图片主题的有用信息。谷歌使用此类信息来帮助确定要返回的最符合用户查询的图片。 许多用户（例如存在视觉障碍的用户、使用屏幕阅读器的用户或带宽不够的用户）可能看不到网页上的图片。说明性的替代文字可向这些用户提供重要信息。 不太好的： &#60;img src=”puppy.jpg” alt=”"/&#62; 较好的： &#60;img src=”puppy.jpg” alt=”小狗”/&#62; 最好的： &#60;img src=”puppy.jpg” alt=”斑点狗取回猎物”&#62; 应避免 &#60;img src=”puppy.jpg” alt=”小狗 幼犬 小犬 幼狗 拾猎犬 拉布拉多猎犬 猎狼犬 赛特犬 导盲犬 杰克 拉塞尔犬 小猎犬 狗粮 便宜的狗粮 小狗食物”/&#62; 在 alt 属性中填入关键字（关键字堆砌），可能会造成不良的用户体验，而且还会让别人把您的网站视为垃圾网站。您应该想办法制作信息丰富的实用内容，这些内容应根据具体的环境适当地使用关键字。建议您使用 [...]]]></description>
		<wfw:commentRss>http://scseoer.com/images-seo.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>关键字堆砌</title>
		<link>http://scseoer.com/keyword-stuffing.html</link>
		<comments>http://scseoer.com/keyword-stuffing.html#comments</comments>
		<pubDate>Fri, 22 Jul 2011 12:54:57 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[作弊]]></category>
		<category><![CDATA[关键词]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1112</guid>
		<description><![CDATA[“关键字堆砌“是指在网页中加入大量关键字，尝试操纵网站在 Google 搜索结果中的排名。在网页中加入大量关键字会对用户体验产生负面影响，因而可能损害网站排名。请集中精力创建信息丰富的实用内容，在上下文中适当使用关键字。 为解决此问题，请查阅网站，检查是否存在关键字滥用现象。通常，这种现象表现为随意重复的关键字列表或段落。请认真检查，因为关键字往往采用隐藏文字的形式，或可能在 TITLE 标记或 ALT 属性中隐藏。 如果您已进行了更改并确信您的网站不再违反谷歌的指南，请提交网站以便让谷歌重新审核。]]></description>
		<wfw:commentRss>http://scseoer.com/keyword-stuffing.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>隐藏文字和链接</title>
		<link>http://scseoer.com/hidden-text-hidden-links.html</link>
		<comments>http://scseoer.com/hidden-text-hidden-links.html#comments</comments>
		<pubDate>Fri, 22 Jul 2011 12:47:24 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[作弊]]></category>
		<category><![CDATA[隐藏]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1107</guid>
		<description><![CDATA[内容中包含隐藏文字或链接可能会导致您的网站被认为不可信赖，因为它向搜索引擎和访问者提供的信息不一样。文字（如过量关键字）可通过多种方式隐藏，包括： 在白色背景上显示白色文字 将文字置于图片后 使用 CSS 隐藏文字 将字体大小设置为0 隐藏链接的目的是让 Googlebot 抓取，但由于以下原因，人眼无法识别： 链接由隐藏文字组成（例如，文字颜色与背景颜色相同）。 使用 CSS 制作只有一个像素高的小链接。 链接隐藏在某个小字符中，例如，段落中间的一个连字符。 如果您的网站被认为包含具有故意欺骗性的隐藏文字和链接，就可能会从 Google 索引中删除，因而不会显示在搜索结果页中。要评估您的网站是否包含隐藏文字或链接，请查找网站访问者不易识别的全部内容。是否存在任何只让搜索引擎识别而不让访问者看到的文字或链接？ 如果您使用文字尝试描述搜索引擎无法访问的内容（例如，Javascript、图片或 Flash 文件），则请注意，很多使用屏幕读取器、移动浏览器、不带插件的浏览器、低速网络的访问者也将无法查看这种内容。对这些项目使用说明性文字可提高网站的可访问性。关闭浏览器中的 Javascript、Flash 和图片，或使用 Lynx 等纯文本浏览器，可以测试网站可访问性。以下是一些使网站可被访问的建议： 图片：使用 alt 属性提供说明性文字。此外，建议在图片周围使用用户可识别的标题和说明性文字。 Javascript：将 Javascript 中的相同内容放入非脚本标记中。如果使用这种方法，请确保非脚本标记中的内容与 Javascript 中的内容完全相同，并能向浏览器中未启用 Javascript 的访问者显示。 视频：在 HTML 中加上关于视频的说明性文字，也可以考虑提供解说词。 如果您在自己网站中发现隐藏文字或链接，请将其删除；如果想让网站访问者看到此内容，请设置为易于识别的文字或链接。如果您的网站已从谷歌的搜索结果中删除，请参阅谷歌的网站站长指南了解详情。如果您更改了网站内容并确信不再违反指南，请提交网站请求重新审核。]]></description>
		<wfw:commentRss>http://scseoer.com/hidden-text-hidden-links.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>常见的SEO作弊方式</title>
		<link>http://scseoer.com/seo-cheating.html</link>
		<comments>http://scseoer.com/seo-cheating.html#comments</comments>
		<pubDate>Fri, 22 Jul 2011 12:40:43 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[作弊]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1103</guid>
		<description><![CDATA[如果你从事常规性SEO工作，请务必实用白帽SEO方式来优化你的网页，一些SEO作弊方式请尽量避免，以便造成网页从搜索结果中被删除。 隐藏真实内容 隐藏真实内容指的是向用户和搜索引擎显示不同的内容或网址的行为。如果您的网站根据 User agent 而显示不同的搜索结果，那么，谷歌可能会因此而认定您的网站具有欺骗性，并会从 Google 索引中将您的网站删除。 隐藏真实内容的示例如下： 向搜索引擎提供 HTML 文本形式的网页，但却向用户提供图片或 Flash 形式的网页。 分别向搜索引擎和用户提供不同的内容。 如果您的网站包含搜索引擎无法抓取到的元素（例如除 Flash、Javascript 或图片之外的 Rich Media 文件），那么，请不要向搜索引擎提供已隐藏的内容。您应当考虑到访问您网站的用户可能也无法看到这些元素。例如： 请为浏览器中已关闭了屏幕读取器或图片的访问者提供用于描述图片的替代文字。 在非脚本标记中添加 Javascript 的文字内容。 请确保您在两种元素中所添加的内容相同（例如，在 Javascript 和非脚本标记中添加了相同的文字）。如果替代元素中包含了大量不一致的内容，那么，这可能会导致 Google 对此类网站采取相应措施。 欺骗性 Javascript 重定向 当 Googlebot 对包含 Javascript 的网页编制索引时，它只会将该网页编入索引，但不会去追踪 Javascript 本身所隐藏的任何链接或将这些链接编入索引。使用 Javascript 完全是一种合法的网络行为。然而，为欺骗搜索引擎而使用 Javascript 则是不合法的行为。例如，在 Javascript 和非脚本标记中分别放置不同的文字会违反谷歌的网站站长指南，因为如果这样做，网站会对用户（能够看到基于 Javascript 的文字）和搜索引擎（能够看到非脚本标记中的文字）分别显示不同的内容。为向用户和搜索引擎分别显示不同的内容而在 Javascript 中嵌入可将用户重定向到不同网页的链接，这种做法是违反网站站长指南的。如果在 Javascript 中嵌入了重定向链接，那么，搜索引擎会将原始网页编入索引，但不会去追踪该链接，而用户则会被引导到重定向目标页。与隐藏真实内容一样，这种行为也具有欺骗性，因为，这种行为可使网站分别向用户和 Googlebot 显示不同的内容，并可将访问者引导到他们并不想访问的网页。 请注意，在 [...]]]></description>
		<wfw:commentRss>http://scseoer.com/seo-cheating.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>谷歌网站站长指南</title>
		<link>http://scseoer.com/webmaster-guidelines.html</link>
		<comments>http://scseoer.com/webmaster-guidelines.html#comments</comments>
		<pubDate>Fri, 22 Jul 2011 12:19:44 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[指南]]></category>
		<category><![CDATA[网页内容]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1098</guid>
		<description><![CDATA[遵循谷歌网站站长指南有助于 Google 查找您的网站、将其编入索引和进行排名。即使我们选择不采纳这些建议，谷歌也强烈建议对“质量指南”多加留意，其中简要说明了一些可能导致网站从 Google 索引中彻底删除或受到其他处罚的违规行为。如果网站受到处罚，则可能不会再出现在 Google.cn 或任何 Google 合作伙伴网站的搜索结果中。 谷歌网站站长指南包括 设计与内容指南 技术指南 质量指南 网站准备就绪后： 通过 http://www.google.com/addurl.html 将其提交给 Google。 通过 Google 网站站长工具提交站点地图。Google 使用站点地图来了解我们网站的结构，并提高对网页的抓取率。 确保应了解网页的所有网站都知道网站已处于在线状态。 设计与内容指南 网站应具有清晰的层次结构和文本链接。每个网页应至少可以通过一个静态文本链接打开。 为用户提供包含指向网站重要部分的链接的站点地图。如果站点地图中包含的链接数量过多，您应将该站点地图分成多个网页。 将特定网页上的链接限制在合理的数量内。 网站应实用且信息丰富，网页文字应清晰、准确地表述要传达的内容。 要考虑到用户会使用哪些字词来查找您的网页，确保网站上确实包含了这些文字。 尽量使用文字而不是图片来显示重要的名称、内容或链接。Google 抓取工具无法识别图片中所含的文字。如果必须对文字性内容使用图片，请考虑使用“ALT”属性来加入一些描述性的文字。 确保 &#60;title&#62; 元素和 ALT 属性具有描述性且准确无误。 检查链接是否损坏，并确保 HTML 格式正确。 如果要使用动态网页（即网址中包含“?”字符），请注意并非每一个搜索引擎信息采集软件都能抓取动态和静态网页。这有助于缩短参数长度并减少参数数目。 有关发布图片的最佳做法，请参阅谷歌图片优化准则。 技术指南 使用诸如 Lynx 的文本浏览器来检查您的网站，因为大多数搜索引擎信息采集软件查看您网站的方式与 Lynx 几乎一样。如果诸如 Javascript、Cookie、会话 ID、框架、DHTML 或 Flash 等复杂功能造成您无法在文本浏览器中看到整个网站，则搜索引擎信息采集软件在抓取您的网站时可能会遇到问题。 允许搜索漫游器在不使用可跟踪其网站访问路径的会话 ID 或参数的情况下抓取您的网站。这些技术对跟踪单个用户的行为非常有用，但漫游器的访问模式却完全不同。如果采用这些技术，可能会导致对网站的索引编制不完整，因为漫游器可能无法排除那些看上去不同、但实际却指向同一个网页的网址。 [...]]]></description>
		<wfw:commentRss>http://scseoer.com/webmaster-guidelines.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何让谷歌重新审核网站</title>
		<link>http://scseoer.com/google-review-website.html</link>
		<comments>http://scseoer.com/google-review-website.html#comments</comments>
		<pubDate>Fri, 22 Jul 2011 11:51:46 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[审核网站]]></category>
		<category><![CDATA[搜索结果]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1091</guid>
		<description><![CDATA[如果我们的网站没有出现在 Google 搜索结果中，或者网站在搜索结果中的排名与以前相比有所下降（并确信自己的网站并没有违反谷歌网站站长指南），可以要求 Google 重新审核网站。 此外，如果我们认为自己最近购买的域名可能在购买之前已违犯了谷歌网站站长指南，可以填写并提交重新审核申请表来通知谷歌：最近购买了该网站并且该网站现已符合谷歌的指南要求。 要请求重新审核网站，请按以下步骤操作： 使用 Google 帐户登录网站站长工具。 确保已经添加和验证了您要重新审核的网站。 请求重新审核网站。]]></description>
		<wfw:commentRss>http://scseoer.com/google-review-website.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>搜索引擎链接分析与购买链接</title>
		<link>http://scseoer.com/link-analysis-purchase-inks.html</link>
		<comments>http://scseoer.com/link-analysis-purchase-inks.html#comments</comments>
		<pubDate>Fri, 22 Jul 2011 10:16:03 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[PR值]]></category>
		<category><![CDATA[链接]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1087</guid>
		<description><![CDATA[Google 和大多数其他搜索引擎都是借助链接来确定网站的声誉。某网站在 Google 搜索结果中的排名部分取决于谷歌对链接到该网站的网站的分析结果。基于链接的分析是一种极为重要的衡量网站价值的方法，它大大提高了网络搜索的质量。链接的数量和质量都会影响评级，而且质量更为重要。 不过，有些 SEO 和网站站长通过购买和销售链接来提升 PR值，而不考虑链接的质量、来源和对网站的长期影响。购买或销售链接来提升 PageRank 是违反网站站长指南的行为，会对网站在搜索结果中的排名产生负面影响。 并非所有付费链接都违反我们的指南。如果是以广告宣传为目的，而不是为了操控搜索结果，那么购买和销售链接的行为就属于正常的网络经营活动。以广告宣传为目的而进行购买的链接应指明此种性质。可以通过以下几种方式完成此操作： 将 rel=”nofollow” 属性添加到 &#60;a&#62; 标记中 将链接重定向到利用 robots.txt 文件阻止搜索引擎抓取的中间网页 Google 将极力确保完全排除旨在操控搜索引擎结果的链接，以及为提升 PageRank 而交换和购买的链接。如果您发现有的网站在购买和销售链接以提升 PageRank，可以向谷歌投诉。谷歌将借助我们提供的信息改进检测这类链接的算法。 如果我们已进行更改并确信网站不再违反谷歌网站站长指南，可以提交网站重新审核。]]></description>
		<wfw:commentRss>http://scseoer.com/link-analysis-purchase-inks.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nofollow 标签</title>
		<link>http://scseoer.com/nofollow.html</link>
		<comments>http://scseoer.com/nofollow.html#comments</comments>
		<pubDate>Fri, 22 Jul 2011 10:09:23 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[Nofollow]]></category>
		<category><![CDATA[robots]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1084</guid>
		<description><![CDATA[“nofollow”向网站管理员提供了一种方式，即告诉搜索引擎”不要追踪此网页上的链接“或”不要追踪此特定链接“。 最初，nofollow 属性出现在网页级元标记中，用于指示搜索引擎不要追踪（即抓取）网页上的任何出站链接。例如： &#60;meta name=”robots” content=”nofollow” /&#62; 在将 nofollow 用于各个链接前，我们需要完成大量的工作（例如，将链接重定向至 robots.txt 中拦截的网址），以阻止漫游器追踪某网页上的各个链接。因此，我们创建了 rel 属性的 nofollow 属性值。这可让网站管理员更精确地进行控制：无需指示搜索引擎和漫游器不要追踪该网页的所有链接，只需轻松地指示漫游器不要抓取某特定链接即可。例如： &#60;a href=”signin.php” rel=”nofollow”&#62;sign in&#60;/a&#62; Google 如何处理已使用 nofollow 的链接？ 通常情况下，谷歌不会追踪这些链接。也就是说，Google 不会传送这些链接中的 PageRank 或定位文字。从本质上说，使用 nofollow 会使我们放弃整个网络中相应的目标链接。不过，如果有未使用 nofollow 的其他网站链接指向这些目标网页，或目标网页的网址是通过站点地图提交给 Google 的，则这些目标网页可能仍会出现在谷歌的索引中。此外，值得注意的是，其他搜索引擎对 nofollow 的处理方式可能略有不同（比如百度）。 那些情况中考虑使用 nofollow 不可信赖的内容：如果您不能或不想为自己的网站所链接的网页内容提供担保，例如，不可信赖的用户评论或留言簿条目，您就不应追踪这些链接。这可以阻止垃圾内容发送者定位您的网站，有助于防止您的网站无意中将 PageRank 传送给网络上的”恶邻”。尤其是，如果垃圾评论发送者发现不受信赖的链接在服务中没有被追踪，就可能决定不定位相应的内容管理系统或博客服务。如果您希望认可并奖励可靠的内容提供者，那么，对于始终如一地提供高质量内容的成员或用户所发布的链接，您可以决定是自动还是手动删除其中的 nofollow 属性。 付费链接：网站在 Google 搜索结果中的评级在一定程度上取决于对链接到该网站的其他网站的分析。为了防止付费链接影响搜索结果并对用户产生不利影响，我们建议网站站长对此类链接使用 nofollow。根据搜索引擎指南的要求，将按照与在线和离线客户所希望的、相同的付费关系公布方式，以机器可读取的方式公布付费链接（例如，整页的报纸广告可能采用”广告”标题）。有关 Google 对付费链接的态度的详情。 按优先级别进行抓取：搜索引擎漫游器无法作为成员登录或注册您的论坛，因此没有理由邀请 Googlebot 追踪”在此注册”或”登录”链接。对这些链接应用 nofollow，即可让 Googlebot 抓取您希望在 [...]]]></description>
		<wfw:commentRss>http://scseoer.com/nofollow.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>谷歌能索引的文件类型</title>
		<link>http://scseoer.com/google-indexed-file-types.html</link>
		<comments>http://scseoer.com/google-indexed-file-types.html#comments</comments>
		<pubDate>Fri, 22 Jul 2011 09:28:36 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[robots]]></category>
		<category><![CDATA[索引]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1081</guid>
		<description><![CDATA[谷歌可将大多数类型的网页和文件内容编入索引。Google最常编入索引的文件类型包括： Adobe Flash (.swf) Adobe 便携式文档格式 (.pdf) Adobe PostScript (.ps) Autodesk Design Web Format (.dwf) Google 地球（.kml、.kmz） GPS 交换格式 (.gpx) Hancom Hanword (.hwp) HTML（.htm、.html、其他文件扩展名） Microsoft Excel（.xls、.xlsx） Microsoft PowerPoint（.ppt、.pptx） Microsoft Word（.doc、.docx） OpenOffice 演示文稿 (.odp) OpenOffice 电子表格 (.ods) OpenOffice 文本文件 (.odt) 富文本格式（.rtf、.wri） 可缩放矢量图形 (.svg) 文本文件（.txt、.text、其他文件扩展名），包括采用常用编程语言的源代码： Basic 源代码 (.bas) C/C++ 源代码（.c、.cc、.cpp、.cxx、.h、.hpp） C# 源代码 (.cs) Java 源代码 (.java) Perl [...]]]></description>
		<wfw:commentRss>http://scseoer.com/google-indexed-file-types.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>If-Modified-Since 与 If-None-Match</title>
		<link>http://scseoer.com/if-modified-since-if-none-match.html</link>
		<comments>http://scseoer.com/if-modified-since-if-none-match.html#comments</comments>
		<pubDate>Fri, 22 Jul 2011 09:01:49 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[HTTP标头]]></category>
		<category><![CDATA[客户端]]></category>
		<category><![CDATA[服务期]]></category>
		<category><![CDATA[状态码]]></category>

		<guid isPermaLink="false">http://www.scseoer.com/?p=1076</guid>
		<description><![CDATA[谷歌在站长帮助的技术指南中提到： 确保您的网络服务器支持 If-Modified-Since HTTP 标头。通过该功能，您的网络服务器可以告诉 Google 自上次抓取您的网站以来，内容是否已发生变化。该功能可以节省您的带宽和开销。 我们来看一下网上对HTTP 头：Last-Modified 与 If-Modified-Since的介绍。 简单的说，Last-Modified 与If-Modified-Since 都是用于记录页面最后修改时间的 HTTP 头信息，只是 Last-Modified 是由服务器往客户端发送的 HTTP 头，而 If-Modified-Since 则是由客户端往服务器发送的头，可 以看到，再次请求本地存在的 cache 页面时，客户端会通过 If-Modified-Since 头将先前服务器端发过来的 Last-Modified 最后修改时间戳发送回去，这是为了让服务器端进行验证，通过这个时间戳判断客户端的页面是否是最新的，如果不是最新的，则返回新的内容，如果是最新的，则 返回 304 告诉客户端其本地 cache 的页面是最新的，于是客户端就可以直接从本地加载页面了，这样在网络上传输的数据就会大大减少，同时也减轻了服务器的负担。 想要详细查看 HTTP 头信息，可以在 Firefox 中安装 LiveHTTPHeaders 插件，安装完成之后按 Alt+L 就可以在 Sidebar 中看到了。 ETags和If-None-Match是一种常用的判断资源是否改变的方法。类似于Last-Modified和HTTP-IF-MODIFIED-SINCE。但是有所不同的是Last-Modified和HTTP-IF-MODIFIED-SINCE只判断资源的最后修改时间，而ETags和If-None-Match可以是资源任何的任何属性，比如资源的MD5等。 ETags和If-None-Match的工作原理是在HTTP Response中添加ETags信息。当客户端再次请求该资源时，将在HTTP Request中加入If-None-Match信息（ETags的值）。如果服务器验证资源的ETags没有改变（该资源没有改变），将返回一个304状态；否则，服务器将返回200状态，并返回该资源和新的ETags。 原文：http://wuhua.iteye.com/blog/385451]]></description>
		<wfw:commentRss>http://scseoer.com/if-modified-since-if-none-match.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>搜索引擎原理</title>
		<link>http://scseoer.com/search-engine-principle.html</link>
		<comments>http://scseoer.com/search-engine-principle.html#comments</comments>
		<pubDate>Sat, 30 Apr 2011 05:42:54 +0000</pubDate>
		<dc:creator>何清勇SEO博客</dc:creator>
				<category><![CDATA[SEO帮助]]></category>
		<category><![CDATA[原理]]></category>
		<category><![CDATA[搜索引擎]]></category>

		<guid isPermaLink="false">http://www.dianshan123.com/scseoer/?p=299</guid>
		<description><![CDATA[《搜索引擎原理》摘录于“华夏英才基金学术文库”，主要讲述搜索引擎原理、技术与系统，是早期的一本关于“搜索引擎”的书籍，分三个部分，从搜索引擎基本工作原理概述开始，到一个小型简单搜索引擎实现的具体细节，进而详细讨论了大规模分布式搜索引擎系统的设计要点及其关键技术；最后面向主题和个性化的Web信息服务，阐述了中文网页自动分类等技术及其应用。本书层次分明，由浅入深；既有深入的理论分析，也有大量的实验数据，具有学习和实用双重意义。由于篇幅较长，该文章只作为综述和目录结构，平时经常在跟搜索引擎接触，感兴趣的朋友在空余时间好好了解，虽不能深入研究搜索引擎，但至少可以作为参考与借鉴。 本文以原作者（李晓明、闫宏飞、王继民）设计、实现并维护运行北大“天网”搜索引擎的经验，介绍大规模搜索引擎的工作原理和实现技术。要向读者揭示，为什么向搜索引擎输入一个关键词或者短语，就能够在秒钟内得到那么多相关的文档及其摘要，而点击其中的链接就能够被引导到文档的全文，且其中相当一部分可能正是用户需要的，本文按照上、中、下三篇展开相关的内容。 一、搜索引擎的基本工作原理 要解决的是为什么搜索引擎能提供如此信息查找服务的问题，以及它在功能上有什么本质的局限性。这一篇的内容包括网页的搜集过程，网页信息的提取、组织方式和索引结构，查询提交和响应的过程以及结果产生等等。这其中，虽然我们假定读者熟悉URL，HTML，HTTP，CGI，MIME等基本概念，但在上下文中也给予了必要的介绍，力图保持行文的流畅性。这一部分内容对于需要构建小规模搜索引擎的研究人员会有直接的参考价值。 二、讨论和大规模实用搜索引擎有关的技术问题 所谓大规模在这里指至少维护超过1千万的网页信息，提供相关的查询服务。所涉及的内容包括并行分布处理技术的应用，数据局部性的开发，缓存技术的应用，以及搜集的网页在提供服务之前的预处理问题和高效倒排文件的建立技术等等。这一部分的讨论有比较强的计算机系统结构的风格，向读者展示计算机系统结构课程中的那些概念是如何生动地体现在一个实际应用系统中的。这一部分的内容对构建大规模数字图书馆的技术人员也应该有帮助。 三、网络与并行分布处理技术与中文处理技术 本篇介绍挑战性更强一些的内容。一般地讲，前面所述可以称为是“通用搜索引擎”，为最广泛的人群提供信息查询服务是它的基本宗旨。这意味着它的应用模式必须尽量简单，即关键词或查询短语的提交和匹配响应。尽管这已经可以解决许多问题了，但对有些重要的信息需求依然显得力不从心。例如，一个人可能会关心最近半年来网上出现了哪些关于他（她）的信息，一个企业可能要关心它做了一次大规模促销活动后一个月内网上有什么反响，一个政府机构可能会关心在一项政策法规颁布后的网上舆论。面向主题和个性化的信息查询服务就是我们试图描述的一种基本途径。这一部分内容更多的和网上中文信息处理技术有关。更准确地讲，网络与并行分布处理技术与中文处理技术的结合，从而实现大规模、高性能、高质量、有针对性地网上信息查询服务。这一部分内容可能对从事中文信息处理的研究人员有启发作用。 鸣谢：雷鸣、赵江华、冯是聪、单松巍、谢正茂、彭波、张志刚、龚笔宏、孟涛、昝红英、陈葆珏、刘建国、王建勇、黄蕊等等。 搜索引擎原理目录 第一章、搜索引擎的概念 WEB搜索引擎基本原理和技术 第二章、WEB搜索引擎工作原理和体系结构 第一节、基本要求 第二节、网页搜集 第三节、预处理 第四节、查询服务 第五节、体系结构 第三章、WEB信息的搜集 第一节、引言 超文本传输协议 一个小型搜索引擎系统（TSE） 第二节、网页搜集 定义URL类和Page类 与服务器建立连接 发送请求和接收数据 网页信息存储的天网格式 第三节、多道搜集程序并行工作 多线程并发工作 控制对一个站点并发搜集线程的数目 第四节、如何避免网页的重复搜集 记录未访问、已访问URL和网页内容摘要信息 域名与IP的对应问题 第五节、如何首先搜集重要的网页 第六节、搜集信息的类型 第七节、本章小结 第四章、对搜集信息的预处理 第一节、信息预处理的系统结构 第二节、索引网页库 第三节、中文自动分词 第四节、分析网页和建立倒排文件 第五节、本章小结 第五章、信息查询服务 第一节、查询服务的系统结构 第二节、检索的定义 第三节、查询服务的实现 结果集合的形成 查询结果显示 第四节、本章小结 对质量和性能的追求 第六章、可扩展搜集子系统 第一节、天网系统概述和集中式搜集系统结构 天网系统结构 集中式搜集系统 第二节、利用并行处理技术高效搜集网页的一种方案 [...]]]></description>
		<wfw:commentRss>http://scseoer.com/search-engine-principle.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

