基于Php实现自动获取关键词的分析
现在的CMS都自带了采集功能,内容和标题相对来说很好处理,但大部分情况关键词很难能提取到。于是自动获取关键字成为当前PHP类CMS的“传统问题”。
那如何才能自动获取关键词呢,其主要步骤主要可以分为如下三个步骤:
1,通过分词算法将标题和内容分别进行分割,提取出关键词和频度
在内容的分词阶段,当前主要的两个算法是中科院的ICTCLAS和隐马尔可夫模型。但这两个都太高端,有一定的门槛,且都是只支持C++/JAVA。基于PHP的当前有两个是值得推荐的PSCWS和HTTPCWS。
SCWS于2008-03-08发布1.0.0 正式版,到现在最新版本已经到了1.0.4。PSCWS是它的PHP版。
而HTTPCWS是张宴开发的,之前叫PHPCWS。PHPCWS 先使用“ICTCLAS 3.0 共享版中文分词算法”的API进行初次分词处理,再使用自行编写的“逆向最大匹配算法”对分词和进行词语合并处理,并增加标点符号过滤功能,得出分词结果。目前仅支持Linux/Unix系统。
2,将提取结果与现有词库进行比较,得到最符合规则的关键词
这里主要就是要看词库了,我们可以自己定义词库,也可以使用现有的成熟词库。
3,然后将这两套关键词进行比较,得到最符合当前内容的关键词
在这个阶段就是具体情况具体分析了。当前PHP类CMS都自有自己的提取关键词系统。其中在网络上流传最广的是DEDECMS的分词源码,我也在我的POPCMS上作过测试,效果很不错,不过类似“我们”等无意义的词提取并被列为关键词的频率太高,甚至有时候还会把空格的HTML提出来做为关键词,亟待改进。不过如果作为辅助功能,它已经很好了。
另外PHPCMS和DISCUZ的自动提取关键词功能也很强大。
适合SEO的CMS必备要素
必需的CMS功能
URLs没有参数和会话id(session id) - URL里用来区别用户的会话id和追踪浏览路径的参数对SEO来说是致命的。通常这样的URL会带来不完整的索引和造成搜索引擎认为你的网页是重复内容。
H1 标签 - 不能设置H1标签是糟糕的。单个网页上太多H1标签也不好。给无关重要的信息使用H1标签(比如文章发布日期等)也不行。一般说来,文章标题是使用H1标签最好的内容。
可定制URL架构 - 如果CMS缺省的URL架构不适合你的需要,你应该能够修改。例如,你不想存档文章的网址里有/archives/这样的字样,你应该可以去掉。或者你想把文章的网址从单纯的数字修改为文章名字,你也应该可以做到。
301重定向到重要的URL - 现在,重复内容是很多动态网站管理员碰到的很大问题。所以,能自动通过CMS来处理重定向是一个必须有的功能。
重要的CMS功能
静态网址 - 网络爬虫(蜘蛛,机器人)最喜欢的是那些看上去是静态网址的页面,即网址里没有动态参数。
含有关键字的网址 - 在您的网址中包含关键字可以有助于提高网站的排名。如果您的CMS不支持可定义网址(可在网址中包含关键字,而不是只能在网址中显示文章ID),错过这种现成搜索引擎优化的机会,会非常不爽。
RSS供稿 - 提供RSS供稿是必不可少的,如果你想通过博客,新闻简报(newsletter)分享给最酷最in的Web 2.0的人群。最好也能有Feedburner(国内可能是抓虾、鲜果或有道)的集成功能,能提高你RSS供稿的订户。
Ping功能 - 这能让类似谷歌博客搜索引擎(百度博客搜索,Feedsky等)最快知道你已经发布的新内容,使他们能够来抓取你最新的RSS提要。
标签和标签云(Tag Clouds)-这项Web 2.0的功能是强大的搜索引擎优化工具,这在很大程度上要归功于它们是富含关键字的文本链接。这是您重新构建内部链接结构的机会,也是不必完全调整您网页栏目分类和组织地调整网页PageRank流向的工具。
可单独定制的标题标签(title)和H1标签 - 每个标题标签应可以和帖子/文章/产品标题分离。H1标签也一样。这样锚文本可以多种多样,可以和标题标签和H1标签不同。因此,您可以者H1标签和标题标签使用其他关键字(同义词等)- 而不用担心被认为是过度SEO!
多级分类结构 - 如果一个CMS不允许你网站有嵌套的子分类或孙分类,那对您网站的内部架构和多层分类构建将是可怕的的限制。
典型(优先, Canonical)标记 - 虽然我不相信谷歌总是可靠地遵守和读取这个新的标签,但拥有这项功能是值得的,如果需要时可马上应用。
想要的CMS功能
可段落性地摘录 - 动态网站的重复内容问题越来越厉害了,例如在博客里,同样的内容既是固定链接的网页,又存在于分类网页、存档网页、标签页和主页中。内容的统一和唯一性摘录,并且只在永久链接的网页显示将有助于搜索引擎将永久链接页面作为唯一的内容。
网站的面包屑式(Breadcrumb)导航 - 通过使用文本链接的面包屑式导航会强化你网站内部链接结构的层次性,同时希望这些链接富含关键字。
可按灵活的规则自动生成标题标记 - 如果标题标签总是由您的网站名加冒号再加文章名字(网站名:文章名)这样的样式 ,那么至少在搜索引擎优化法方面来讲,你完蛋了。您应该能够修改用于生成整个网站的标题标签的规则,使他们更搜索引擎优化。
基于网页页面的元标签描述 - 动态网站的一项大问题,就是所有页面都使用相同的页面描述标签。这页会导致重复内容问题。
在低价值页面加入noindex标记 - 即使你增加了nofollow链接到这些网页,其他人可能仍然链接到这些页面并产生让这些页面的排名(Pagerank)高于你更有价值的页面的排名的风险。
在文章分类和标签分类页面富含关键字的介绍文字 - 富含关键字的介绍文字有助于建立一个稳定的含关键字的主题/页面,而不是只靠最新文章,产品或博客帖子来在页面上突出这些关键字。
细分的链接nofollows控制-如果您的网站允许用户通过“评论发布内容”,如果你不采用nofollow这些评论中的链接的话,您的网站将吸引垃圾评论和链接。哎呀,你可能是一个垃圾邮件磁铁反正,它只是对你更坏没有nofollows。此外,不管你如何对网站页面进行PageRank设计,站在搜索引擎优化的立场上,你应该能够有选择性地决定您网站内部网页间的Pagerank的传递。
可定制的导航链接锚文本 - “联系”,“关于我们”,“了解更多”,“全部文章”等等都是糟糕的锚文本(至少从搜索引擎优化的立场)。希望您的CMS可以改善这种情况而让锚文本显示合适的富含关键字文本。
批量编辑或批量上传(或两者) - 只能对每一个网页的进行编辑是没有效率的。相反,通过Excel或一个批量编辑界面批量修改标题,H1标签,文件名,甚至描述元标签是最好的(如WordPress的可批量修改标题标签的插件)。
公开声明关键字 - 当您已决定你的主要关键字时,你应该能够将这至关重要的信息不要太过明显的暴露,以防竞争对手的窥探。这意味着不应该在HTML中的任何地方(包括元标签)里放置关键字,因为所有的足智多谋的竞争者都会用“查看页面源代码”。最好能放在数据库里,并且使用CMS管理界面来设置。
自动301重定向以前版本的网址 - 想象多次更新以前网页的永久链接或产品页的URL。如果你不小心,每一个以前版本的网址都可能会被搜索引擎认为是重复的网页。
谷歌产品搜索Feed - 如果您的CMS提供在线目录网站,那么这个功能是给你的。它可以节约很多时间。如果你是一个在线零售商而且没有提交到谷歌Base,那么留意这个提醒:忽视谷歌产品搜索(原Froogle)是很危险的!
可选的CMS功能
XML Sitemaps生成器 - [...]
CMS开发实录之模板系统困惑
自己在试着做一个基于PHP的CMS,在现在纷繁复杂的PHP界,我的这个想法渺小而迷茫。当各个CMS的大佬们都已经占地为王的时候,我还在为一些不值一提的技术问题,苦苦的求索着,真不知道,这样做倒底对还是不对。我把自己开发的过程写成文章,以备自己以后缅怀。
我的CMS取名为泡泡,我只想把它做的简单而傻瓜,让所有想拥有网站的人都可以简单的建设一个正统的网站,而不是博客,我想这也是很多小企业主的想法。但毕竟大家都不是搞这个的,究竟怎样的算是简单,怎么样才能方便,这也太见仁见智了。
其实一个CMS的工作流程是相当简单的,添加,修改,删除,做列表,做首页,做内容。还有什么,没啥了,但这些内容倒底应该怎么表现,倒底应该由谁来实现这些表现呢,这就是个麻烦事了。让不懂的人做模板基本是赶鸭子上架。我们要把模板做的尽量简单,我不可能像DISCUZ那样可以用自己的产品去引导用户,毕竟他是大佬,我不是。
目前常用的模板系统有两种储存方式,一种是直接读取服务器上目录,建立目录树,并用一个外挂的配置文件,对这些文件进行归类,以方便程序辨认读取;第二种就是所有的模板内容全部进数据库,组合方式和类别,属性全部存入表里,是他们更加方便拓展管理。
方法一的好处在于,它让自己拥有FTP等写入权限的模板编辑用户,很方便的修改模板,但它的配置文件很不灵活,管理不充分;方法二的优势是,它强化管理,容易生成模板见的逻辑结构,然而不方便通过CMS以外的方式进行直接编辑。
这样,就存在了一个很明显的取舍问题,我们的目标群体是什么?我们应该怎么去规划模板的建设方式…
首发地址:http://www.cmslabs.net/thread-44-1-1.html希望大家给我留言
如何增加反向链接
在艾瑞、Donews等IT行业新闻网站发布高质量文章。这些网站的排名很好,除了增加反向链接,还会给你带来高质量的流量。
向行业网站和论坛提交文章。如SEO的研究性文章,提交给SEO信息资料网站或SEO论坛。
发送新闻稿。高质量的新闻稿提交给新闻门户网站。
跟踪发布你文章的站点。给他们提供稿件来源。
与其他网站交换文章发表。
把文章发送给RSS网站如抓虾、鲜果等。
做一个让人觉得自己很重要的调查,比如关于家庭主妇的研究等。如果你让别人觉得自己重要,别人会免费为你宣传。
很老但很有用。把网站提交给DMOZ或其他免费目录。
让你的文章加入百度搜藏、雅虎搜藏、Google书签、QQ书签等社会化书签。
交换链接。但注意与链接养殖场远一点。
用专业与其他网站交换链接。如提供开源程序,采用者会留有链接。
给内容管理系统CMS或Blog系统等开源网站系统提供免费精美模板。别忘了在模板中添加“由×××设计”。
为开源网站程序开发插件,并留有作者链接。
开发有用的工具,发表并留有下载地址。
让用户通过Google阅读器、RSS等订阅你的文章。
问问你的合作伙伴或商业伙伴是否可以给你一个链接。
与合作伙伴互相推荐链接。
友情链接。
博客的评论,并留有自己的名字和链接。
如果你在网上购买了产品,则把产品评论写下来,会带来链接。你也可以写产品推荐,注意:要写得可信,如果有具体情况最佳。
对专业帖子进行评论,并留有签名指向。
参与问答平台如百度知道、雅虎知识、问问等等。可以为站点添加链接。
参与相关论坛如Google论坛等。可以为站点添加链接。
参与社会化wiki平台如百度百科,维基百科等的编辑。
Google page建立专业网页并建立指向。
行业会议时,拍摄行业名人(喝醉酒了)的照片,并留有你的精彩解说。这可能是很好的链接诱饵。
有意思的有用的访谈很容易成为原创,并迅速传播。
seo的技术难题
优化难点之一:内容管理系统(CMS)
内容管理系统(CMS)的出现,满足了人们自己创建、发布和更新网站而又不必懂技术的要求。对于那些需要频繁更新或拥有大量投稿群的网站公司来说,CMS系统无疑能够为他们带来切实的经济利益。CMS在房地产业和一些小型零售业中的应用尤为广泛。
现在CMS程序已达上百种之多。但遗憾的是,首先,在这上百种形形色色的CMS程序中,真正能够对搜索引擎具有友好性的却寥寥无几。而且由于CMS的类型非常之多,一旦搜索引擎优化人员遇到从前没有遇到过的新类型CMS,那么他们在对网站实施优化前,就必须先要突击学习这种CMS系统。其次,CMS系统往往还会为搜索引擎优化人员对于站内的单独页面进行标题及其它元标识的优化工作增加相当程度的难度。此外,许多CMS系统的文件命名设置的默认值较为笨拙,常常会用象“page1.htm”或“nextpage.php”这样毫无意义的名字。正是上述三个问题使得优化人员在对用CMS系统设计的网站进行优化时常会遭遇重重困难。而且很大程度上限制住了优化人员的手脚,影响了对网站的整体优化力度,达不到预期的排名效果。
优化难点之二:FLASH
FLASH如果运用得当,可以为网站增色不少。但若运用不当,不但会为网站带来用户体验方面的种种问题,而且还会很大程度地影响到网站的搜索引擎排名。许多网民都有打开一个网站,首先展现眼前的是一个纯图片介绍或FLASH介绍信息的经历。
FLASH主要是一个电影,同时它还具备构成一个网页的能力。我们可以在FLASH中内嵌入链接和文字来创建一个看上去很标准的网页。可是由于这些数据被存储在网站的托管服务器上,后缀为.SWF的图形文件中,对于搜索引擎的爬行索引程序来说,它们无法读取并记录这些数据。糟糕的是,有些网站甚至彻头彻尾都用的是FLASH。对于这样的网站,可以建立一个标准的HTML页面,然后把FLASH内嵌到该标准网页中。FLASH的开发商Macromedia公司正着手开发一个更新的对搜索引擎具备友好性的升级版本。不过在这个新版本发布之前,那些纯粹使用FLASH的站点想要在搜索引擎中获得前十名的可能性几乎很渺茫。
优化难点之三:Frames
网站设计者们往往利用Frame来实现工具栏导航功能,即将一个页面(浏览器窗口)分割成两到多个活动区域,并在其中一个区域内放置静态菜单页面。无论用户访问网站的什么位置,静态菜单页面部分是始终不变的。其好处是导航清晰,而且由于不必在每个内容页面中再包含菜单项目,减少了代码量。
困扰搜索引擎对Frames型站点的检索的主要问题frame-set被写入源代码的方式。当我们在浏览一个使用Frames设计的网页, 我们其实是在浏览至少三个文件。这些文件被编译到一起,使它们看起来是一个文件。第一个文件就是frame设置文件(frame-set)。然后该文件再调用剩下的其它页面,并让它们在页面上逐次出现,这样就能达到看起来好象一个页面的效果。
当搜索引擎的爬行程序在源代码之间穿梭时,它们也只能看到文件名,但看不到实际的文件或文件内容本身。对Frames的优化可以通过诸如《noframes》元标识优化之类的方法进行,但这些方法都比不上一个设计适当的普通HTML文件来的有效。
优化难点之四:图片型索引页/主页
图片型索引页/主页的优化处理也是相当棘手的。许多设计人员在兴致勃勃地为网站创建一个绚丽无比的“封面”,却忽略了搜索引擎所需要的文本信息。因而,这样的设计虽然可能会让网站看起来如其企业一般极具组织性和有效性,但是一个纯图片型的首页却往往会被搜索引擎的爬行程序所忽略掉,因为在这个页面上只有图片,而没有任何可供其读取和记录的文本内容。
图片型网页的设计者往往习惯于在图片上加链接,而不是提供文本链接让搜索引擎可以跟进检索网站中的其它页面,这样一来,由于搜索引擎的检索程序不跟进图片链接,那么图片中所包含的链接就很有可能被搜索引擎忽略。
优化难点之五:购物系统(Shopping Carts)
购物系统不仅实现了商务电子化,而且它满足了人们可以直接从网上购物的需要。但遗憾的是,大部分购物系统软件都对搜索引擎缺乏友好性。对于网上商店来说,我推荐大家使用Apple Pie Cart系统,这是一款具有客户获得特性的购物系统。其设计者为罗伯特。李,为W3C(World Wide Web Consortium互联网联合组织)的会员,也是一名资深网站开发人员。在设计该款购物系统时,罗伯特对搜索引擎的性能进行了全面的考虑。当然,市场中不乏同样对搜索引擎具有友好性的其它种类的购物系统,但这是我见过的对搜索引擎的爬行程序最开放的一款购物系统。
linux下crontab的使用技巧
Crontab 这个名字来自 “chronos”,一个古希腊语, “时间”的意思.
crontab 是用来让使用者在固定时间或固定间隔执行程式之用,换句话说,也就是类似使用者的时程表。
在很多大型CMS网站系统中,对于内容的预发布都会用到。
-u user 是指设定指定 user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设定自己的时程表。
参数 :
-e [UserName]: 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)
-r [UserName]: 删除目前的时程表
-l [UserName]: 列出目前的时程表
-v [UserName]:列出用户cron作业的状态
时程表的格式如下 :
f1 f2 f3 f4 f5 program
其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程式。
当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程式,其余类推
当 f1 为 a-b 时表示从第 a 分钟到第 b [...]

