深入分析PHP的功能,自动获取文章主题的关键词函数。
我用来写程序一直试图避免这一问题,标签的使用程序,对一些人来说,输入的要求是什么,为了程序的懒惰和经验,它是希望可以有类似的功能,自动生成的关键词,文章标签自动采集,这次为了迎接新的项目,所以做一个晚上的这个功能。为了实现关键词自动获取的功能,可分为三个步骤。
1,分词算法用于单独的标题和内容,与关键词频率提取。目前两种主要算法的ICTCLAS和中国科学院隐藏马尔可夫的模式。但这两个都太高,有一定的门槛,都只支持C + + / java.there是目前推荐的基于php.scws pscws和款发布1.0.0正式版在2008-03-08,最新版本已经1.0.4.pscws是PHP版本,是由张开发的款宴,原名phpcws.phpcws首次使用ICTCLAS中文分词算法3共享API过程的初始分割,然后采用逆向最大匹配自己写的算法和分割过程中单词的组合,并加入到分词结果标点符号过滤功能。然而,令人遗憾的是,只有Linux系统目前支持的,它并没有被移植到WIN平台。
2、将提取的结果与现有的词库,处理,去除无用词得到的最一致的关键词。主要是看单词库,我们可以定义自己的单词库,我们可以利用现有的成熟的同义词。例如,新浪和网易的博客这个功能。他们应该有好的词库进行分词,因为他们都是大网站,而我,在区的一个小程序,不能得到任何权威的单词库,所以我们可以从现有的开源程序,看到自己的词库。
3,选择合适的关键词作为最终关键词,对提取后的结果进行处理,得到与当前内容最为一致的关键词。现阶段,对具体情况进行分析,在任何情况下都不可能实现这种智能,最重要的是,目前的PHP类CMS有自己的提取关键字系统。
目前,流传最广的网络是dedecms分词的源代码,我做了一个试验,很呆,效果很差。首先建立了密钥长度,数量的确定,然后获取关键词的词,这个词就是关键词,一个好的标题,在除了从文本阅读只是为了实现这个关键词设定长度,是最后的关键词。此外,类似的话,比如我们的无意义的词没有被删除,提取并列为关键词。频率太高。有时甚至空间的HTML作为关键词提出,这需要改进。但如果它是一个辅助功能,已经是非常好的。Discuz要好一点,但Discuz不提供源代码,但它只是提供了一个在线的API。
有几个版本的分割。最好的版本应该是最新版本。频率是多少。其次是dede5.7的分词和Discuz的API之间的比较。
测试的例子:
标题=美元ThinkPHP官员将停止对2版的支持。
身体=美元做了更好的工作发展,维护和支持ThinkPHP框架。自2012年5月1日起,S正式发布了对2版和以前版本的维护和支持。为了节省能源和低碳考虑,还取消了官方网站的相应版本和文档下载。
记得ThinkPHP版本已经在那些年一起发展。
在ThinkPHP 2版
ThinkPHP 2006出生,致力于Web应用的快速发展,2版是在2009年10月1日发布,在1。*完整的重建和新的飞跃版,是一个具有里程碑意义的版本,因为新版本奠定了基础,同时也积累了更多的用户群体和网站,在连续快速更新框架,并发布了新版本的2.1、2.2和3版本,预示着ThinkPHP 3时代,2的生命周期已经结束,但基本上很多2的功能扩展或完善为2.1版本,这是比较容易从2版本升级到2.2版本是2.1和2.2.the 2的最终版本。*版本,不再更新功能,只做bug修复。;
一、Dede分词
将结果排序如下
标题数组(
{ ThinkPHP } = > 1
{官方} = 1
{ 1
{停止} > 1
{ } = 1
{ 2 } = 1
{版本1
{ 1
{支持1
)
内容排列(
{版本12
{ 12
{和} = 8
{ ThinkPHP } = > 5
{ 2 } = 5
{也} = 3
{ 2.2 } = 3
{ 2.1 } = 3
{开发> > > 3
{ 3 } = 2
{ 2
{快速} = 2
{ > } > 2
{释放} > 2
{维护} > 2
{前2
{ 2
{新} = 2
{支持2
{框架2
同时,{ > > > 2
{从} > 2
最后的需要是怎样去掉关键词的最初的想法是先删除这些单词,然后根据内容的排序顺序,看看是否出现在标题中,这是我们所需要的,这样我们就可以提取一定数量的单词和最后的关键词,这样我们就可以得到它。
版本ThinkPHP 2支持停止
五个关键词,似乎是可以接受的。
两。鉴于Discuz,使用API是一个XML文档和关键词后得到的解析
,快速,版本升级,开发,用户
五个字,第一个字是…
对比这两方面,我们发现第一个dede +后续过程更接近于该文档的内容,应稍好,而Discuz偏离文章的主题,但其取字有一定的知名度。