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年5月1日起s对2.0及之前版本的维护和支持,为了节能低碳考虑,同时也取消官网的相应版本和文档下载。
就此缅怀那些年,曾经一起开发的ThinkPHP版本吧!
关于ThinkPHP 2.0版本
ThinkPHP 诞生于2006年,致力于WEB应用的快速开发,其2.0版本发布于2009年10月1日 ,在之前的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] => 1
[官方] => 1
[即将] => 1
[停止] => 1
[对] => 1
[2.0] => 1
[版本] => 1
[的] => 1
[支持] => 1
)
内容Array
(
[版本] => 12
[的] => 12
[和] => 8
[ThinkPHP] => 5
[2.0] => 5
[也] => 3
[2.2] => 3
[2.1] => 3
[开发] => 3
[3.0] => 2
[是] => 2
[快速] => 2
[到] => 2
[发布] => 2
[维护] => 2
[之前] => 2
[了] => 2
[新版] => 2
[支持] => 2
[框架] => 2
[同时] => 2
[从] => 2
*******
对此如何取出最终的需要的关键词呢? 初步思路是先去除“的”,“些”这些词,再按照内容的排序顺序,依次看分到是否出现在标题中出现即为所需的,这样可以取出一定量的词最为最终关键词。如上结果我们可以得到
版本 thinkphp 2.0 支持 停止
五个关键词。看起来结果还是可以接受的。
二、在来看discuz的,利用api得到的是一个xml文档,解析后得到的关键词是
的、快速、版本升级、开发、用户
五个词,第一个是“的”......
对比这两种方式发现第一种dede+后续处理的较为接近文档的内容,应该是稍好一些,而discuz的偏离了文章的主题,但是其取到词有一定的热门性。
作者:zdrjlamp
/phprm/15580.htmlwww.phpzy.comtrue/phprm/15580.htmlTechArticlephp实现自动获取生成关键词功能 tag什么的都是要求使用程序的人自行输入,对于某些懒人及为了程序的体验,则是希望可以有自动生成文章关键词,自动获取文章tag的类似功能,这次为...
php 自动关键词,php实现自动获取生成关键词功能相关推荐
- python关键词大全_Python 批量获取Baidu关键词的排名并入库
1.[代码][Python]代码 #-*- coding: UTF-8 -*- #Python UTF-8 抓取百度关键词V1.0 #key.txt是抓取文件配置 #author PHPer.yang ...
- 自动生成文章的html,文章自动更新工具|自动生成文件|自动伪原创|文章自动插入关键词工具...
概念网络发布一款自动更新文章的工具, 该套工具可用概念的文章站程序, 概念的发布站程序, 概念的企业站程序, 只要在服务器一直开着这个工具, 工具会更具配置文件的配置, 每天定时的更新网站的文章, 文 ...
- jeecg-boot自动生成代码_无代码实现销售系统自动判定并生成订单功能
ERP项目中,业务员创建销售单后,还需要确认产品库存是否充足,如不充足,还需要手动创建生成订单通知车间进行生产,比较麻烦,客户希望系统可以自动进行判断,自动根据现有库存生成生产订单. 目标: 新建销售 ...
- html5自动生成图片,HTML5拖放API如何实现自动生成相框功能 HTML5拖放API实现自动生成相框功能代码...
HTML5拖放API如何实现自动生成相框功能?下面小编给大家分享一下HTML5拖放API实现自动生成相框功能代码,代码很详细,小编觉得挺不错的,有需要的小伙伴们可以来看看. 实现功能: 将桌面图片拖入 ...
- 织梦全站自动关键词内链插件可指定关键词批量插入内链
织梦网站内链插件对网站优化排名的好处 1.织梦网站内部链结构有助于提高搜索引擎的爬行效率,从而增强网站的包容性.搜索引擎根据页面中的链接从一个页面爬行到另一个页面. 2.织梦网站内部链接则代表网站页面 ...
- 关键词抽取与自动文摘
关键词抽取与自动文摘 在自然语言处理中对于关键词抽取与自动文摘这两个主题,有着多种多样的方式去解决它们,这里将介绍一种叫做TextRank的方法,就可以解决这两个问题.我将结合具体的代码,试图将算法解 ...
- html相框自动生成功能,网页制作HTML5拖放API实现自动生成相框功能
实现功能: 将桌面图片拖入指定地方,生成相框和相关信息. 相框需要自己配置,设置为背景,在CSS中设置. 效果如图: html部分: H5拖放API之图片相框效果 > 请将图片拖放至此处 CSS ...
- HTML5自动生成相框,HTML5拖放API实现自动生成相框功能
实现功能: 将桌面图片拖入指定地方,生成相框和相关信息. 相框需要自己配置,设置为背景,在CSS中设置. 效果如图: html部分: H5拖放API之图片相框效果 > 请将图片拖放至此处 CSS ...
- 自动登录TP-LINK路由器,获取所有信息,重启等等,实用方法
用Python自动登录TP-LINK路由器,获取信息,重启等操作 思路:想获取TP-LINK里面的所有信息,必须首先登录,然后提交相应的操作(比如重启) 1. 做任何操作,首先得登录到路由器 界面上面 ...
最新文章
- 使用命令wsimport构建WebService客户端
- 限定项目的 Node.js 版本
- java.lang.VerifyError解决方案 Android
- 利用邻接表完成图的BFS和DFS
- GDCM:rle转img文件的测试程序
- Ubuntu下共享目录的设置
- 软件推荐---站长查询工具
- Spring-JDBC通用Dao
- 开发日志_Jan.8.2017
- $Django Paginator分页器 批量创建数据
- SpringCloud学习笔记027---SpringBoot集成MyBatis_实现多数据源_可以自定义数据库类型
- LeetCode(509)——斐波那契数(JavaScript)
- 你们一般持有几支基金?怎么管理的?
- end_request: I/O error
- 根据秒数返回(天,小时,分钟,秒)
- java类 家族成员 姓氏_中国史上十大家族,占据中国九大姓,看看有没有你的姓氏...
- html中的排名怎么写,html制作畅销书排行榜
- 【Strategy模式】C++设计模式——策略模式
- 【时间之外】几张图说清楚供应链金融赚钱方法
- PrinTao CANON Home Studio Edition 8.0r12 17 Mac 佳能专业打印软件