网上不断摘抄,并结合自己的理解,总结了57个用于搜索引擎排名优化的总结,可以让新手易如反掌迅速上手。这意味着网页设计师和SEO新手中大部分人都能迅速上手,没有任何困难。
2008年11月22日星期六
学习seo,总结实践经验的实施
建站多年总在学习和总结中成长……
网上不断摘抄,并结合自己的理解,总结了57个用于搜索引擎排名优化的总结,可以让新手易如反掌迅速上手。这意味着网页设计师和SEO新手中大部分人都能迅速上手,没有任何困难。
1、首先选一套已经经过优化的CMS管理系统,可以寻找我的博客的中其他关于CMS管理系统的文章作为参考,简单的说:选择CMS系统需要具备一下几下: A 、有Title、keyword等meta标签自动生成的功能,也可以自己定义 B、标题、分类等中为关键位置采用heading标题标签,最好是能自动按从属关系自动从h1-h6自动生成。 C、URL经过优化,促使URL名称可以自定义或者采用关键字拼音进行URL优化。 ……
2、如果需要使用Java script做网页特效,如下拉菜单、图片地图、或者图片链接,那么你一定要放置它们的文本链接在页面的外部调用,用CSS+xhtml让链接暴露在Java script代码的外面,以便于搜索引擎的蜘蛛抓取到链接部分,否则再漂亮的特效只能是摆设,无法给您带来营销的帮助;
3、title标签都知道他的重要性,但是我经常看到很多网站会这样写,“网站建设网站优化网站营销”把很多关键词直接写在title这个位置上,显然是硬生生你像把搜索引擎给强奸了。我曾经用我的几个网站做一些试验,事实证明,title的正确写法应该是主“关键字-简短说明”比你用关键词堆彻的标题排名更有优势。如果你必须把公司名称放里面,那就放在标题最后。除非你是一个家喻户晓的知名品牌,您的公司名称可能会获得一些搜索; 4、如果是一个销售行的网站,哪么首先要考虑的销售,而不是精美,当然作为一个能跑业务的网站首先要具备的第一要素就是:要有好排名、并且起码的朴实、耐看。别不考虑SEO就设计你的网站。Flash再漂亮的网站上搜索引擎无法读出其中的内容也是枉然。蜘蛛可以抓取文本,而不是Flash或图像;当然如果你很有钱,也可以做一个漂亮的FLASH网站对自己养眼,对朋友可以炫耀。 5、网页内不要使用框架,Flash和Ajax所有这些都有一个共同的问题-你不能链接到一个单一的网页。它的要么全部要么一无所有。最好的SEO结果总是不用框架、flash,和节制使用AJAX; 6、理论上URL扩展名无关紧要。使用.html,.htm,.asp,.php等等,并没有什么区别; 当然一个纯静态的html网页不用通过解析引擎进行编译解析和调用数据库,读取起来速度快、浏览方便是网民所喜欢的,网民喜欢的也肯定会影响搜索引擎的排名,更重要的是纯静态网页不需要去读取数据库进行页面生成,不会因为脚本错误让搜索引擎的爬虫走进死循环里,哪么也会影响搜索引擎爬虫对网站的收录量,收录量同样会影响排名。 7、当优化您的blog文章时,记得提取文章标题来优化title标签。请注意设置好文章的相关关键字; 8、在网页当中通过适当的在文本链接、图片alt属性,甚至域名里布置关键词和关键字;在图片下方或旁边增加如“更多的……”链接,包含关键词。 9、确定www和非www域名的从属关系,主推一个域名,在搜索引擎看来www和不加www的域名不是同一个页面。很多客户喜欢一个网站使用多个域名,哪么在搜索引擎看来,其中有一个域名就是相似页面了,从而会导致域名的收录量下滑,而影响你的排名。确定了从属关系后正确的使用增加404 302 301页面自定义重定向功能,然所有的页面都跳转到主域名下面去。 10、就像你的文章或网页一样,优化你的RSS种子里的文本,使用描述、关键字丰富你在title和description里的文本; 11、建立良好的全局导航链接也称内部链接,远胜于仅仅依靠一个XML的网站地图;
1、互联网从始至今一直都遵循内容为王的原则,尽量做一些原创的软文发布在你的网站,如果实在没有多少墨水,别忘记了google有个自动翻译工具,你可以把一些相关的英文文章通过翻译成中文,在语法上稍微做个调整,哪么可能他就是一篇好的原创文章了,要注意的内容中要体现你的关键字,关键字要做一些特殊的处理,如加粗、斜体、添加链接; 2、记得给你的软文关键词添加你的网站链接,积极的发布、参与到其他的一些订阅器里;一旦你的文章被转摘、收录的话,哪么你的反向链接就自然增加了。这是比较权威的反向链接。 3、经常更新你的网站的文章内容,搜索引擎喜欢新鲜的文字类的描述,新鲜的网页内容能够帮助您改善排名。定期更新添加,新鲜内容的增加会吸引搜索引擎的注意; 4、如果你不是经常更新网站内容,哪么你可以建立一个自己公司的博客,可以采用像baidu、google、wordpress这类的博客,因为搜索蜘蛛喜欢新鲜的文本。Blog每周至少更新三次,用新鲜、良好的内容来吸引这些爬虫,你试想一下,如果你搜索引擎你要收录博客上的内容,你从哪里开始爬起?就知道为什么要把博客建在百度、google、wordpress了。 5、让你的网站方便并容易使用,方可到达你的可以快速的找到他想要的东西。这会影响你的网站的流行度,从而,影响到你的排名; 6、搜索引擎喜欢独一无二的内容也喜欢有质量的内容。在二者之间又有所区别。确认你的内容二者兼备; 7、最好给图片添加一个标题说明。比如像一个新闻配图,为它加上含有关键字的标题说明,附加带有关键词的alt属性; 8、要注意图片周围的文本内容。图片的排名基于同一页面在它周围的文本。注意关键词文本,和标题; 1、关注热门搜索词,并不说我们要去做热门词的优化,关注热门搜索词有助于您对目前网民的搜索习惯有进一步的了解,曾经有一个兄弟公司接了一个“nike shoes”关键词,并按照自己以往的优化经验去做竞争,个人觉得是有点不理智,试想一下这个词多少人在做,竞争程度可想而知,就算做上去了客户的营销对象是否精准呢,当然选择这个去做优化最终的结果可想而知。我觉得如果换个角度去考虑一下精准客户的选择,哪么我们衍生出这么一个关键词“buy nike shoes”会减少很多竞争程度,也会帮助你获得对网民精准行为的搜索从而获得精准客户。这是一个从网民的搜索行为习惯来判断选择精准关键词获得精准的客户营销方式。 2、适度的把握页面的关键词密度是很重要的,正常我们需要把每个页面的关键密度控制在2-7之间,过密的关键词密度很容易让你的网站进沙盒的。
1、不要太注重google的PageRank,那只是影响排名算法极小的一部分。网页的质量和外链的广泛度还是直接影响排名的重要原因,我们回忆一下,互联网在没有成熟的搜索引擎之前推广靠什么?靠友情链接、分类目录或者是链接联盟来实现。总而言之,互联网是一个互联互通的世界。只要这个名字还叫互联网,哪么链接一定是很重要的。 2、上一条说到的链接,我们要注意在外链中体现你的主关键字,也就是一个道理,当大多数人说你是蜘蛛侠,哪么就算你说你不是蜘蛛侠,你也是蜘蛛侠了。这个可能就是黑帽seoer们所谓的 google炸弹吧。据说有一次,美国大选,很多黑帽把“无能政府”的关键词链接到白宫的布什的简历上,结果在世界各大搜索引擎的“无能政府”关键词的第一条就是该页面的指向。 3、在搜索引擎看来就算你是通过一域名http://www.35tool.com/,他和http://www.35tool.com/default.aspx 还不是同一个页面。检查整个网站链接到首页的情况。哪么我们需要确认你的网站下是default.aspx在你主域名下吗?如果是的话,请区分你的链接。如果是外部链接,链接到http://www.35tool.com/,内部链接则链接到http://www.35tool.com/default.aspx; 4、一个新的网站如何让搜索引擎爬虫快速收录你,我们经验发现,通过一个权重高的高质量网站的链接可以让搜索引擎尽快的光顾你的新网站.如果通过google的规则提交表单,花费数周乃至一到二个月时间才可以做到,而且试验发现通过google的提交表单,收录数量很少。 5、和其他网站交换友情链接,重要的应该是考虑对方的质量,如果对方仅仅只是一个采集的垃圾站,哪么就算他目前的pr很高,也要担心了。因为你也不知道什么时候对方会被惩罚。而一些品质优良的,有很好的内容的原创站点、名人博客他们目前就算是没有PR,但是他们作为一个新闻源,他们的pr低只是暂时的。远离垃圾站、广交朋友、多建外链。 6、不仅链接要使用关键字锚文本,链接周围的文字也要与关键字相关。换而言之,文章的描述性文本围绕这些关键字链接开展。 7、要有好的链接心态,给出链接开心,得到链接也开心。别舍不得链出,其实一个网站只有链入没有链出的网站也不是搜索引擎所需喜欢的。 8、通常来自.edu域名、gov域名的链接,搜索引擎会给较高评价。可以尝试搜索一下可能正在寻找赞助商的非赢利.edu网站;
1、如果你使用虚拟主机,请事先做一个黑名单检查,确认你没有和被惩罚或垃圾邮件代理网站在一起。他们负面的恶名可能会影响你自己的排名; 2、当你注册一个域名,使用了隐藏域名所有者信息功能的话,Google或许会把你看成一个潜在的垃圾邮件制造者; 1、SEO不是一次性工作。搜索引擎的景观每天都在变化,因此期望您的搜索引擎优化工作每天都在坚持; 2、获取网站所有者或CEO或者名人的博客链接。它价值连城!CEO在blog上的影响力难以置信到相当于公司的官方声明。回应网站所有者的读者的评论会使你的信誉迅速升空; 3、了解社会化营销。它是SEO的一部分。当你了解更多类似Digg,Yelp,Del.icio.us,Facebook网站时,这有益于将来你在搜索中的竞争; 4、学会使用google站长工具并依靠他不断修正来自网站内部一些错误
网上不断摘抄,并结合自己的理解,总结了57个用于搜索引擎排名优化的总结,可以让新手易如反掌迅速上手。这意味着网页设计师和SEO新手中大部分人都能迅速上手,没有任何困难。
2008年11月21日星期五
搜索引擎的工作原理
SE工作原理概述
网络蜘蛛的爬行过程
如何编制索引
分词的计算方法
一个完整的搜索引擎响应过程范例
答疑
搜索引擎的工作原理概述
所有人应该都有在自己的电脑的硬盘上查找文件的过程吧。比如你在C盘查找“my.txt"这样一个文件,可能需要4分钟时间,
那么如果搜索引擎工作也是用这样慢的响应速度的话,它会被用户淘汰的。搜索引擎,每天要响应几亿次用户的搜索请求,每天=24小时约=于1万秒.换句话说每秒要响应1万次左右用户的搜索请求,如果它不能在1秒之内完成1万次响应,则属于失败。
根据我们的经验,如果搜索引擎,不能把搜索结果事先储存起来,而是象我们一样,每次都从数据库里查找的话,那么你也太小瞧这些搜索引擎发明人了。其实我们很容易知道,也经过GOOGLE官方资料证实,对于所有的词,GOOGLE都已经建立了索引。所谓的索引,就相当于一本字典,通过索引,我们可以快速定位到用户输入的查询的词。这样,搜索引擎可以在非常短的时间内根据相关性的算法,把搜索结果的前1000项结果返回给用户。当然,如果用户输入的不止是一个词,它有可能输入一句话或者一个词组。则GOOGEL自然有一套分词方法,将输入的一句话或者一个词组分解成一个一个的词。然后对于每一个词,进行相关性的运算,最后将最符合相关性的前1000项结果返回。
刚才我们讲了第1部分:SE工作原理概述 ,下面我们讲一下蜘蛛的爬行过程。
蜘蛛的爬行过程
无论是哪一个搜索引擎,都有自己的“蜘蛛”,当然名字可能不叫蜘蛛,但其作用都是一样的,尽可能多的将网络上的网页建立快照。据保守估计,GG至少收录了200亿个页面,我估计可能达到近千亿个页面。我们按照每个页面50K字节算,则这200亿个页面=1000T字节。如果用硬盘来装,按硬盘容量是100G来算的话,则需要1万只硬盘阵列才能装下这些快照。那么对于这样海量的数据,如果假如下载一个网页需要一秒钟,下载这 200 亿个网页则需要 634 年。可是我们知道,搜索引擎当然不会这么笨。用单线程来下载。因此,一个商业的搜索引擎爬虫需要有成千上万个服务器,并且由快速网络连接起来。如何建立这样复杂的网络系统,如何协调这些服务器的任务,就是网络设计和程序设计的艺术了。
当搜索引擎的蜘蛛在下载页面的时候,并不是简单的将页面拍成快照就完成工作了。期间它还有一系列复杂的算法。比如,分析一下网页源代码中的超级链接,将符合格式的超级链接的关键字的相关性增加。对于它认为是作弊的链接,则可能会减分。如果判断某个超链违反了它的规定,一旦触发条件,刚有可能将其网址列入黑名单。总而言之,蜘蛛的很多工作我们无法猜测,也无法得到证实,我们只需要知道它在爬行过程中,同时进行大量的计算就可以了。
搜索引擎的索引原理
刚才我们讲了网络蜘蛛的爬行过程 下面再讲讲索引:
建立一个搜索引擎大致需要做这样几件事:自动下载尽可能多的网页;建立快速有效的索引;根据相关性对网页进行公平准确的排序。世界上不可能有比二进制更简单的计数方法了,也不可能有比布尔运算更简单的运算了。尽管今天每个搜索引擎都宣称自己如何聪明、多么智能化,其实从根本上讲都没有逃出布尔运算的框框。
现在我们看看文献检索和布尔运算的关系。对于一个用户输入的关键词,搜索引擎要判断每篇文献是否含有这个关键词,如果一篇文献含有它,我们相应地给这篇文献一个逻辑值 -- 真(TRUE,或 1),否则,给一个逻辑值 -- 假(FALSE, 或0)。比如我们要找有关原子能应用的文献,但并不想知道如何造原子弹。我们可以这样写一个查询语句“原子能 AND 应用 AND (NOT 原子弹)”,表示符合要求的文献必须同时满足三个条件:
- 包含原子能
- 包含应用
- 不包含原子弹
一篇文献对于上面每一个条件,都有一个 True 或者 False 的答案,根据上述真值表就能算出每篇文献是否是要找的。早期的文献检索查询系统大多基于数据库,严格要求查询语句符合布尔运算。今天的搜索引擎相比之下要聪明的多,它自动把用户的查询语句转换成布尔运算的算式。当然在查询时,不能将每篇文献扫描一遍,来看看它是否满足上面三个条件,因此需要建立一个索引。
由于时间有限,有些内容我已经事先准备好了。我们知道,google收录的所有的网页都有一个编号。最简单索引的结构是用一个很长的二进制数表示一个关键字是否出现在每篇文献中。有多少篇文献,就有多少位数,每一位对应一篇文献,1 代表相应的文献有这个关键字,0 代表没有。比如关键字“原子能”对应的二进制数是0100100001100001...,表示第二、第五、第九、第十、第十六篇文献包含着个关键字。注意,这个二进制数非常之长。同样,我们假定“应用”对应的二进制数是 0010100110000001...。那么要找到同时包含“原子能”和“应用”的文献时,只要将这两个二进制数进行布尔运算 AND。根据上面的真值表,我们知道运算结果是0000100000000001...。表示第五篇,第十六篇文献满足要求。
由于每个网页的编号都是非常大。因为google收录了几百个页面。所以对于每个关键词所对应的网页编号来说,它只需要记录包含这个关键词的网页编号即可。对于互联网的搜索引擎来讲,每一个网页就是一个文献。互联网的网页数量是巨大的,网络中所用的词也非常非常多。因此这个索引是巨大的,在万亿字节这个量级。现在的搜索引擎对所有的词都有索引,而不是象以前一样,只有重要的词才有索引。为了网页排名方便,索引中还需存有大量附加信息,诸如每个词出现的位置、次数等等。因此,整个索引就变得非常之大,以至于不可能用一台计算机存下。大家普遍的做法就是根据网页的序号将索引分成很多份(Shards),分别存储在不同的服务器中。每当接受一个查询时,这个查询就被分送到许许多多服务器中,这些服务器同时并行处理用户请求,并把结果送到主服务器进行合并处理,最后将结果返回给用户。我发现我讲的你们都知道了啊。
分词的计算方法
刚才讲了 3.如何编制索引 下面讲讲 4.分词的计算方法 对于用户输入的查询。对于中日韩等语言,首先需要进行分词。例如把句子 “中国航天官员应邀到美国与太空总署官员开会。” 分成一串词:
中国 / 航天 / 官员 / 应邀 / 到 / 美国 / 与 / 太空 / 总署 / 官员 / 开会。
如果是你来设计,你会怎么分?你会怎么设计分词算法?搜标吧 你来说说。是不是根据主谓宾啊最容易想到的,也是最简单的分词办法就是查字典。这种方法最早是由北京航天航空大学的梁南元教授提出的。据说Google使用统计方法分词,而百度有自己的巨大词库。
用 “查字典” 法,其实就是我们把一个句子从左向右扫描一遍,遇到字典里有的词就标识出来,遇到复合词(比如 “上海大学”)就找最长的词匹配,遇到不认识的字串就分割成单字词,于是简单的分词就完成了。这种简单的分词方法完全能处理上面例子中的句子。
八十年代,哈工大的王晓龙博士把它理论化,发展成最少词数的分词理论,即一句话应该分成数量最少的词串。这种方法一个明显的不足是当遇到有二义性(有双重理解意思)的分割时就无能为力了。比如,对短语 “发展中国家” 正确的分割是“发展-中-国家”,而从左向右查字典的办法会将它分割成“发展-中国-家”,显然是错了。
我们要保证分出来的词最符合用户的需求,并且最后算法的结果只能存在一种分词方法。另外,并非所有的最长匹配都一定是正确的。比如“上海大学城书店”的正确分词应该是 “上海-大学城-书店,” 而不是 “上海大学-城-书店”。
九十年代以前,海内外不少学者试图用一些文法规则来解决分词的二义性问题,都不是很成功。90年前后,清华大学的郭进博士用统计语言模型成功解决分词二义性问题,将汉语分词的错误率降低了一个数量级。
利用统计语言模型分词的方法,可以用几个数学公式简单概括如下:
我们假定一个句子S可以有几种分词方法,为了简单起见我们假定有以下三种:
A1, A2, A3, ..., Ak,
B1, B2, B3, ..., Bm
C1, C2, C3, ..., Cn
当然不能保证100%的正确。但只要保证绝大多数正确即可。中文词不能用公式去做,这个是肯定的。呵呵。。错误是允许的,但是要能修正错误。即使是让人来分,也不能保证100%的正确呢。
其中,A1, A2, B1, B2, C1, C2 等等都是汉语的词。那么最好的一种分词方法应该保证分完词后这个句子出现的概率最大。也就是说如果 A1,A2,..., Ak 是最好的分法,那么 (P 表示概率):
P (A1, A2, A3, ..., Ak) 〉 P (B1, B2, B3, ..., Bm), 并且
P (A1, A2, A3, ..., Ak) 〉 P(C1, C2, C3, ..., Cn)
因此,只要我们利用上回提到的统计语言模型计算出每种分词后句子出现的概率,并找出其中概率最大的,我们就能够找到最好的分词方法。上面就是搜索引擎采用的方法。它是基于大量的统计数据来进行分词的。不错,大家没必要搞的太细,只要理解思路即可。
一个完整的搜索引擎响应过程范例
当用户输入一个查询时,搜索引擎将输入的分成一个一个的词,然后用Bool运算,将最符合相关性的网页编号返回给用户。那么对于最简单的情况,比如用户只输入一个词,搜索引擎是根据什么决定排名的呢?大家考虑一下。
对于给定一个查询,有关网页综合排名大致由相关性和网页排名乘积决定。这是google官方的说法。但是,很明显,google不可能把所有的细节都透露给你的。现在的搜索引擎对 TF/IDF 进行了不少细微的优化,使得相关性的度量更加准确了。当然,对有兴趣写一个搜索引擎的爱好者来讲,使用 TF/IDF 就足够了。 如果我们结合上网页排名(Page Rank),那么给定一个查询,有关网页综合排名大致由相关性和网页排名乘积决定。我认为相关性=网页内部优化+网页外部高质量外接,其中内部优化只占了10%的权重不到。如果是竞争激烈的词。
百度和GG,以及所有的搜索引擎的 算法都雷同。经过这么多年的淘汰,能生存下来的搜索引擎,在算法上都大同小异。
网络蜘蛛的爬行过程
如何编制索引
分词的计算方法
一个完整的搜索引擎响应过程范例
答疑
搜索引擎的工作原理概述
所有人应该都有在自己的电脑的硬盘上查找文件的过程吧。比如你在C盘查找“my.txt"这样一个文件,可能需要4分钟时间,
那么如果搜索引擎工作也是用这样慢的响应速度的话,它会被用户淘汰的。搜索引擎,每天要响应几亿次用户的搜索请求,每天=24小时约=于1万秒.换句话说每秒要响应1万次左右用户的搜索请求,如果它不能在1秒之内完成1万次响应,则属于失败。
根据我们的经验,如果搜索引擎,不能把搜索结果事先储存起来,而是象我们一样,每次都从数据库里查找的话,那么你也太小瞧这些搜索引擎发明人了。其实我们很容易知道,也经过GOOGLE官方资料证实,对于所有的词,GOOGLE都已经建立了索引。所谓的索引,就相当于一本字典,通过索引,我们可以快速定位到用户输入的查询的词。这样,搜索引擎可以在非常短的时间内根据相关性的算法,把搜索结果的前1000项结果返回给用户。当然,如果用户输入的不止是一个词,它有可能输入一句话或者一个词组。则GOOGEL自然有一套分词方法,将输入的一句话或者一个词组分解成一个一个的词。然后对于每一个词,进行相关性的运算,最后将最符合相关性的前1000项结果返回。
刚才我们讲了第1部分:SE工作原理概述 ,下面我们讲一下蜘蛛的爬行过程。
蜘蛛的爬行过程
无论是哪一个搜索引擎,都有自己的“蜘蛛”,当然名字可能不叫蜘蛛,但其作用都是一样的,尽可能多的将网络上的网页建立快照。据保守估计,GG至少收录了200亿个页面,我估计可能达到近千亿个页面。我们按照每个页面50K字节算,则这200亿个页面=1000T字节。如果用硬盘来装,按硬盘容量是100G来算的话,则需要1万只硬盘阵列才能装下这些快照。那么对于这样海量的数据,如果假如下载一个网页需要一秒钟,下载这 200 亿个网页则需要 634 年。可是我们知道,搜索引擎当然不会这么笨。用单线程来下载。因此,一个商业的搜索引擎爬虫需要有成千上万个服务器,并且由快速网络连接起来。如何建立这样复杂的网络系统,如何协调这些服务器的任务,就是网络设计和程序设计的艺术了。
当搜索引擎的蜘蛛在下载页面的时候,并不是简单的将页面拍成快照就完成工作了。期间它还有一系列复杂的算法。比如,分析一下网页源代码中的超级链接,将符合格式的超级链接的关键字的相关性增加。对于它认为是作弊的链接,则可能会减分。如果判断某个超链违反了它的规定,一旦触发条件,刚有可能将其网址列入黑名单。总而言之,蜘蛛的很多工作我们无法猜测,也无法得到证实,我们只需要知道它在爬行过程中,同时进行大量的计算就可以了。
搜索引擎的索引原理
刚才我们讲了网络蜘蛛的爬行过程 下面再讲讲索引:
建立一个搜索引擎大致需要做这样几件事:自动下载尽可能多的网页;建立快速有效的索引;根据相关性对网页进行公平准确的排序。世界上不可能有比二进制更简单的计数方法了,也不可能有比布尔运算更简单的运算了。尽管今天每个搜索引擎都宣称自己如何聪明、多么智能化,其实从根本上讲都没有逃出布尔运算的框框。
现在我们看看文献检索和布尔运算的关系。对于一个用户输入的关键词,搜索引擎要判断每篇文献是否含有这个关键词,如果一篇文献含有它,我们相应地给这篇文献一个逻辑值 -- 真(TRUE,或 1),否则,给一个逻辑值 -- 假(FALSE, 或0)。比如我们要找有关原子能应用的文献,但并不想知道如何造原子弹。我们可以这样写一个查询语句“原子能 AND 应用 AND (NOT 原子弹)”,表示符合要求的文献必须同时满足三个条件:
- 包含原子能
- 包含应用
- 不包含原子弹
一篇文献对于上面每一个条件,都有一个 True 或者 False 的答案,根据上述真值表就能算出每篇文献是否是要找的。早期的文献检索查询系统大多基于数据库,严格要求查询语句符合布尔运算。今天的搜索引擎相比之下要聪明的多,它自动把用户的查询语句转换成布尔运算的算式。当然在查询时,不能将每篇文献扫描一遍,来看看它是否满足上面三个条件,因此需要建立一个索引。
由于时间有限,有些内容我已经事先准备好了。我们知道,google收录的所有的网页都有一个编号。最简单索引的结构是用一个很长的二进制数表示一个关键字是否出现在每篇文献中。有多少篇文献,就有多少位数,每一位对应一篇文献,1 代表相应的文献有这个关键字,0 代表没有。比如关键字“原子能”对应的二进制数是0100100001100001...,表示第二、第五、第九、第十、第十六篇文献包含着个关键字。注意,这个二进制数非常之长。同样,我们假定“应用”对应的二进制数是 0010100110000001...。那么要找到同时包含“原子能”和“应用”的文献时,只要将这两个二进制数进行布尔运算 AND。根据上面的真值表,我们知道运算结果是0000100000000001...。表示第五篇,第十六篇文献满足要求。
由于每个网页的编号都是非常大。因为google收录了几百个页面。所以对于每个关键词所对应的网页编号来说,它只需要记录包含这个关键词的网页编号即可。对于互联网的搜索引擎来讲,每一个网页就是一个文献。互联网的网页数量是巨大的,网络中所用的词也非常非常多。因此这个索引是巨大的,在万亿字节这个量级。现在的搜索引擎对所有的词都有索引,而不是象以前一样,只有重要的词才有索引。为了网页排名方便,索引中还需存有大量附加信息,诸如每个词出现的位置、次数等等。因此,整个索引就变得非常之大,以至于不可能用一台计算机存下。大家普遍的做法就是根据网页的序号将索引分成很多份(Shards),分别存储在不同的服务器中。每当接受一个查询时,这个查询就被分送到许许多多服务器中,这些服务器同时并行处理用户请求,并把结果送到主服务器进行合并处理,最后将结果返回给用户。我发现我讲的你们都知道了啊。
分词的计算方法
刚才讲了 3.如何编制索引 下面讲讲 4.分词的计算方法 对于用户输入的查询。对于中日韩等语言,首先需要进行分词。例如把句子 “中国航天官员应邀到美国与太空总署官员开会。” 分成一串词:
中国 / 航天 / 官员 / 应邀 / 到 / 美国 / 与 / 太空 / 总署 / 官员 / 开会。
如果是你来设计,你会怎么分?你会怎么设计分词算法?搜标吧 你来说说。是不是根据主谓宾啊最容易想到的,也是最简单的分词办法就是查字典。这种方法最早是由北京航天航空大学的梁南元教授提出的。据说Google使用统计方法分词,而百度有自己的巨大词库。
用 “查字典” 法,其实就是我们把一个句子从左向右扫描一遍,遇到字典里有的词就标识出来,遇到复合词(比如 “上海大学”)就找最长的词匹配,遇到不认识的字串就分割成单字词,于是简单的分词就完成了。这种简单的分词方法完全能处理上面例子中的句子。
八十年代,哈工大的王晓龙博士把它理论化,发展成最少词数的分词理论,即一句话应该分成数量最少的词串。这种方法一个明显的不足是当遇到有二义性(有双重理解意思)的分割时就无能为力了。比如,对短语 “发展中国家” 正确的分割是“发展-中-国家”,而从左向右查字典的办法会将它分割成“发展-中国-家”,显然是错了。
我们要保证分出来的词最符合用户的需求,并且最后算法的结果只能存在一种分词方法。另外,并非所有的最长匹配都一定是正确的。比如“上海大学城书店”的正确分词应该是 “上海-大学城-书店,” 而不是 “上海大学-城-书店”。
九十年代以前,海内外不少学者试图用一些文法规则来解决分词的二义性问题,都不是很成功。90年前后,清华大学的郭进博士用统计语言模型成功解决分词二义性问题,将汉语分词的错误率降低了一个数量级。
利用统计语言模型分词的方法,可以用几个数学公式简单概括如下:
我们假定一个句子S可以有几种分词方法,为了简单起见我们假定有以下三种:
A1, A2, A3, ..., Ak,
B1, B2, B3, ..., Bm
C1, C2, C3, ..., Cn
当然不能保证100%的正确。但只要保证绝大多数正确即可。中文词不能用公式去做,这个是肯定的。呵呵。。错误是允许的,但是要能修正错误。即使是让人来分,也不能保证100%的正确呢。
其中,A1, A2, B1, B2, C1, C2 等等都是汉语的词。那么最好的一种分词方法应该保证分完词后这个句子出现的概率最大。也就是说如果 A1,A2,..., Ak 是最好的分法,那么 (P 表示概率):
P (A1, A2, A3, ..., Ak) 〉 P (B1, B2, B3, ..., Bm), 并且
P (A1, A2, A3, ..., Ak) 〉 P(C1, C2, C3, ..., Cn)
因此,只要我们利用上回提到的统计语言模型计算出每种分词后句子出现的概率,并找出其中概率最大的,我们就能够找到最好的分词方法。上面就是搜索引擎采用的方法。它是基于大量的统计数据来进行分词的。不错,大家没必要搞的太细,只要理解思路即可。
一个完整的搜索引擎响应过程范例
当用户输入一个查询时,搜索引擎将输入的分成一个一个的词,然后用Bool运算,将最符合相关性的网页编号返回给用户。那么对于最简单的情况,比如用户只输入一个词,搜索引擎是根据什么决定排名的呢?大家考虑一下。
对于给定一个查询,有关网页综合排名大致由相关性和网页排名乘积决定。这是google官方的说法。但是,很明显,google不可能把所有的细节都透露给你的。现在的搜索引擎对 TF/IDF 进行了不少细微的优化,使得相关性的度量更加准确了。当然,对有兴趣写一个搜索引擎的爱好者来讲,使用 TF/IDF 就足够了。 如果我们结合上网页排名(Page Rank),那么给定一个查询,有关网页综合排名大致由相关性和网页排名乘积决定。我认为相关性=网页内部优化+网页外部高质量外接,其中内部优化只占了10%的权重不到。如果是竞争激烈的词。
百度和GG,以及所有的搜索引擎的 算法都雷同。经过这么多年的淘汰,能生存下来的搜索引擎,在算法上都大同小异。
再谈:使用CMS如何做好SEO搜索引擎优化?
针对这个问题宽泛的谈一下CMS系统(content management system,内容管理系统)和SEO的关系。
从开发环境的角度上来说,网上常用的ASP开发的CMS有:动易、风讯等,PHP开发的CMS有:DedeCms、HBcms、CmsWare、帝国CMS等。平台的选择非常重要,我们通常会主要考虑其安全性、负载能力、易用性、可扩展性等等,从SEO角度探索下优秀CMS系统具备的品质,
SEO是什么?SEO::search engine optimization,中文意思是搜索引擎优化。从事这方面工作的就是search engine optimizer,搜索引擎优化师。他们利用工具或者其他的各种手法使网站符合搜索引擎的搜索规则从而获得较好的排名(也就是常说的网站优化)。无止境地追求较前排名是SEO们一世的目标。
使用CMS如何做好SEO搜索引擎优化?
这里我们首先要明白影响搜索引擎排名优化的一些重要因素,也叫SEO
1.URL中包含要优化的关键词,可以用“-”进行分词,用_进行连词,连词的意思的就是组合成同一个词,比如:zai_xian_ke_fu.html("在线客服"的拼音),哪么采用下划线在线客服就是一个词。
2.网页Title中绝对匹配和相对匹配要优化的关键词。seo中很关键的一个位置,虽然搜索引擎的算法一直在变,但是title是每个网页体现在搜索引擎里的重要说明文字。所以这个位置的关键第一要靠前,且要自然,同一词不能重复2次以上。
3.meta标签中绝对匹配和相对匹配要优化的关键词。
4.网页核心内容绝对匹配和相对匹配要优化的关键词 ,内容中的关键词最好用粗体、斜体标注。
5.网页内容标题使用〈h1〉标签优化
6.网页主体内容第一段以关键词开头,这个在针对GOOGLE的优化中很管用。
7.网页主体内容使用段落格式,每个段落针对不同的组合关键词展开优化,可以的话每个段落都以关键词开头
8.相关内容的展示:在网页核心内容下设置相关内容展示区,选择包含关键词的文章标题并给予链接,同时,提供给用户到该优化关键词的专题区
9.评论中出现关键词
10.对网页中的关键词做适当的特殊处理(加粗、加红、斜体等)
11. 网页中重点图片(内容区、相关内容区、重点图片等)给予合理的包含关键词的ALT文字
12.图片名中包含关键词
13.域名中中包含关键词
14.目录名中包含关键词
15.文件名中包含关键词
16.网站频道或栏目名中包含关键词
然后注意在cms的模板制作或修改中合理应用这些因素(懂html)就可以搞定啦........
虽然你使用了一个seo做得比较好的cms,但不是一劳永逸。后期还需要不断的增加高质量的反向链接,这是seoer的工作中的重点,没有反向链接的网站就如信息孤岛一般,同样搜索引擎也不会看重你的。链接为王,互联网的含义就是互联互通,相信你只要简单作好以上几步,你的网站有一个好的排名应该没问题了.....
PS:一直以来希望建立一个友情链接互换的QQ群,集合一些手头有链接资源的SEOER一起共享链接资源。不是所谓的链接工厂,人多了,相关性就容易建立起来。有兴趣参与一起共享资源的朋友可以相互交流一下。
从开发环境的角度上来说,网上常用的ASP开发的CMS有:动易、风讯等,PHP开发的CMS有:DedeCms、HBcms、CmsWare、帝国CMS等。平台的选择非常重要,我们通常会主要考虑其安全性、负载能力、易用性、可扩展性等等,从SEO角度探索下优秀CMS系统具备的品质,
SEO是什么?SEO::search engine optimization,中文意思是搜索引擎优化。从事这方面工作的就是search engine optimizer,搜索引擎优化师。他们利用工具或者其他的各种手法使网站符合搜索引擎的搜索规则从而获得较好的排名(也就是常说的网站优化)。无止境地追求较前排名是SEO们一世的目标。
使用CMS如何做好SEO搜索引擎优化?
这里我们首先要明白影响搜索引擎排名优化的一些重要因素,也叫SEO
1.URL中包含要优化的关键词,可以用“-”进行分词,用_进行连词,连词的意思的就是组合成同一个词,比如:zai_xian_ke_fu.html("在线客服"的拼音),哪么采用下划线在线客服就是一个词。
2.网页Title中绝对匹配和相对匹配要优化的关键词。seo中很关键的一个位置,虽然搜索引擎的算法一直在变,但是title是每个网页体现在搜索引擎里的重要说明文字。所以这个位置的关键第一要靠前,且要自然,同一词不能重复2次以上。
3.meta标签中绝对匹配和相对匹配要优化的关键词。
4.网页核心内容绝对匹配和相对匹配要优化的关键词 ,内容中的关键词最好用粗体、斜体标注。
5.网页内容标题使用〈h1〉标签优化
6.网页主体内容第一段以关键词开头,这个在针对GOOGLE的优化中很管用。
7.网页主体内容使用段落格式,每个段落针对不同的组合关键词展开优化,可以的话每个段落都以关键词开头
8.相关内容的展示:在网页核心内容下设置相关内容展示区,选择包含关键词的文章标题并给予链接,同时,提供给用户到该优化关键词的专题区
9.评论中出现关键词
10.对网页中的关键词做适当的特殊处理(加粗、加红、斜体等)
11. 网页中重点图片(内容区、相关内容区、重点图片等)给予合理的包含关键词的ALT文字
12.图片名中包含关键词
13.域名中中包含关键词
14.目录名中包含关键词
15.文件名中包含关键词
16.网站频道或栏目名中包含关键词
然后注意在cms的模板制作或修改中合理应用这些因素(懂html)就可以搞定啦........
虽然你使用了一个seo做得比较好的cms,但不是一劳永逸。后期还需要不断的增加高质量的反向链接,这是seoer的工作中的重点,没有反向链接的网站就如信息孤岛一般,同样搜索引擎也不会看重你的。链接为王,互联网的含义就是互联互通,相信你只要简单作好以上几步,你的网站有一个好的排名应该没问题了.....
PS:一直以来希望建立一个友情链接互换的QQ群,集合一些手头有链接资源的SEOER一起共享链接资源。不是所谓的链接工厂,人多了,相关性就容易建立起来。有兴趣参与一起共享资源的朋友可以相互交流一下。
订阅:
博文 (Atom)
关注者
我的素材相册
素材