现在的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的自动提取关键词功能也很强大。