解读:php实现手动获取生成文章主题关键词功能的深入剖析
优采云 发布时间: 2020-08-30 07:18php实现手动获取生成文章主题关键词功能的深入剖析
:/// php 实现手动获取生成文章主题关键词功能的深入剖析页面导航: 正文内容php 自动生成关键词 php 实现手动获取生成文章主题关键词功能 的深入剖析 本篇文章是对php 实现手动获取生成文章主题关键词功能进行了详尽的剖析介 绍,需要的同事参考下 以前写程序仍然在逃避这个问题,tag 什么的都是要求使用程序的人自行输 入,对于个别优采云及为了程序的体验,则是希望可以有手动生成文章关键词, 自动获取文章tag 的类似功能,这次为了迎接新的项目,所以忙活了一晚上, 研究了一下这个功能。 要实现手动获取关键词的功能,大概可以分成三步 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 系统,尚未移植到win 平台上。 2,将提取结果与现有词库进行比较,处理,去除无用的词得到最符合规则的关 键词。这里主要就是要看词库了,我们可以自己定义词库,也可以使用现有的 成熟词库。比如新浪和网易博客都有这个功能,。他们动词应当有不错的词库, 因为她们都是大网站,而我呢,区区一个小程序员,不可能搞到哪些权威的词 库,所以只能从现有的开源程序上入手,看看她们的词库。 3,在处理后的提取结果中选择适当的作为最终的关键词,得到最符合当前内容 的关键词,在这个阶段就是具体情况具体剖析了,无论如何也不可能达到人的 那种智能化。最多是。当前PHP 类CMS 都自有自己的提取关键词系统。 目前在网路上留传最广的是DEDECMS 的动词源码,我做了测试,发现相当的 呆,效果太不好。它先设置一个关键词宽度,确定获取关键词的数目,然后取 词,它觉得标题分好的词就是所需关键词,在加上从正文中读取关键词只抵达 到这个所设置的宽度,就是最终关键词了。
另外类似“我们”等无意义的词也 没有清除掉提取并被列为关键词的频度很高,甚至有时候就会把空格的HTML 出来做为关键词,亟待改进。不过若果作为辅助功能,它早已挺好了。而discuz 的稍为好一些,但是discuz 并没有提供源码,只是提供了一个在线 api。 而dede 的副词也有好几个版本,最好的应当是最新版的吧,出现频度哪些都有 了,下面就以dede5.7 的动词和discuz 的api 的结果对比下 测试事例: $title="THINKPHP 官方正式停止对2.0 版本的支持"; $body="了更好地做好ThinkPHP 框架的开发、维护和支持工作,官方宣布从 2012 对2.0及之前版本的维护和支持,为了节能低碳考虑,同 时也取消官网的相应版本和文档下载。 就此悼念那些年,曾经一起开发的ThinkPHP 版本吧! 关于ThinkPHP 2.0 版本 ThinkPHP 诞生于2006 年,致力于WEB 应用的快速开发,其2.0 版本发布于 2009 年10 ,在之前的1.*版本上完成新的构建和飞越,当时是一次划时代的版本,为新版奠定了基础,同时也积累了较多的用户群和网站,随着框 架的快速更新,和新版2.1、2.2 和3.0 版本的相继发布,预示着ThinkPHP 3.0时代到来了,2.0 的生命周期宣告结束。
但基本上2.0 的好*敏*感*词*都延续或 者建立到2.1 版本中了,从2.0 版本升级到2.1 和2.2 版本也相对轻松。2.2 版本是2.*版本的最终版本,不再更新功能,仅做BUG 修复。"; 一、dede 分词 将结果排序后如下 標題Array 对此怎么取出最终的须要的关键词呢?初步思路是先除去“的”,“些”这些 词,再根据内容的排序次序,依次看分到是否出现在标题中出现即为所需的, 这样可以取出一定量的词最为最终关键词。如上结果我们可以得到 版本 thinkphp 2.0 支持 停止 五个关键词。看起来结果还是可以接受的。 二、在来看discuz 的,利用api 得到的是一个xml 文档,解析后得到的关键词 的、快速、版本升级、开发、用户五个词,第一个是“的”...... 对比这两种方法发觉第一种dede+后续处理的较为接近文档的内容,应该是稍 好一些,而discuz 的偏离了文章的主题,但是其取到词有一定的热门性