❶ php 要从文章内容,提取关键词,要怎么写!
提取关键词,你必须得有个词库。然后根据词库匹配文章内容。词库越多效率越低,文章内容长度越长效率越低。
网上针对php有相干的分词算法,你可以搜
”SCWS
中文分词“
来看一下。你可以根据里面的例子来做扩展
❷ PHP类CMS如何自动获取关键字
个人认为,我们还是需要通过在实践中来巩固我们所掌握的知识理论,才能更好的实现我们的学习目标。而且还要不断的更新知识,因为每种语言的更新速度都是很快的,如果不持续的学习,我们所掌握的知识就会很快的被淘汰掉。比如,现在的CMS都自带了采集功能,内容和标题相对来说很好处理,但大部分情况关键词很难能提取到。于是自动获取关键字成为当前PHP类CMS的传统问题。 1,PHP类CMS通过分词算法将标题和内容分别进行分割,提取出关键词和频度 在内容的分词阶段,当前主要的两个算法是中科院的ICTCLAS和隐马尔可夫模型。但这两个都太高端,有一定的门槛,且都是只支持C++/JAVA。基于PHP的当前有两个是值得推荐的PSCWS和HTTPCWS。 而HTTPCWS是张宴开发的,之前叫PHPCWS。PHPCWS 先使用ICTCLAS 3.0 共享版中文分词算法的API进行初次分词处理,再使用自行编写的逆向最大匹配算法对分词和进行词语合并处理,并增加标点符号过滤功能,得出分词结果。目前仅支持Linux/Unix系统。 2,PHP类CMS将提取结果与现有词库进行比较,得到最符合规则的关键词 这里主要就是要看词库了,我们可以自己定义词库,也可以使用现有的成熟词库。 3,然后PHP类CMS将这两套关键词进行比较,得到最符合当前内容的关键词 在这个阶段就是具体情况具体分析了。当前PHP类CMS都自有自己的提取关键词系统。其中在网络上流传最广的是DEDECMS的分词源码,我也在我的POPCMS上作过测试,效果很不错,过类似我们等无意义的词提取并被列为关键词的频率太高源码天空 ,甚至有时候还会把空格的HTML提出来做为关键词,亟待改进。不过如果作为辅助功能,它已经很好了。
❸ php中,自动从所发表的文章中提取关键词、关键字
搜一下:php中,自动从所发表的文章中提取关键词、关键字
❹ 如何用PHP截取关键词(关键词都是用小逗号隔开的,关键词数量不等),然后循环展示。
$str = "中国,美国,法国";
$array = explode(",", $str);
foreach($array as $key => $val){
if(empty($val)) continue;
echo "<li>".$val"</li>";
}
❺ 如何 用php抓取google关键词排名
1.说下思路,利用PHP的curl函数储存cookie,google搜索页面是无法用file_get_connents打开的,必须要完全模拟浏览器才行,网络就不同了,直接用file_get_conntens抓取页面,然后用正则处理下就行了。
2.[code]<?php
header("Content-Type:text/html;charset=utf-8");
functionggsearch($url_s,$keyword,$page=1){
$enKeyword=urlencode($keyword);
$rsState=false;
$page_num=($page-1)*10;
if($page<=10){
$interface="eth0:".rand(1,4);//避免GG封IP
$cookie_file=dirname(__FILE__)."/temp/google.txt";//存储cookie值
$url="http://www.google.com/search?q=$enKeyword&hl=en&prmd=imvns&ei=JPnJTvLFI8HlggeXwbRl&start=$page_num&sa=N";
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
//curl_setopt($ch,CURLOPT_USERAGENT,$_SERVER['HTTP_USER_AGENT']);//获取浏览器类型
curl_setopt($ch,CURLOPT_USERAGENT,"Mozilla/5.0(Windows;U;WindowsNT6.1;en-US;rv:1.9.1.2)Gecko/20090729Firefox/3.5.2GTB5");
curl_setopt($ch,CURLOPT_INTERFACE,"$interface");//指定访问IP地址
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_file);
$contents=curl_exec($ch);
curl_close($ch);
$match="!<div\s*id=\"search\">(.*)</div>\s+<\!--z-->!";
preg_match_all("$match","$contents",$line);
while(list($k,$v)=each($line[0])){
preg_match_all("!<h3\s+class=\"r\"><a[^>]+>(.*?)</a>!",$v,$title);
$num=count($title[1]);
for($i=0;$i<$num;$i++){
if(strstr($title[0][$i],$url_s)){
$rsState=true;
$j=$i+1;
$sum=$j+(($page)*10-10);
//echo$contents;
echo"关键字".$keyword."<br>"."排名:".'<fontcolor="red"size="20"style="">'.$sum.'</font>'."####"."第".'<fontcolor="#00FFFF"size="18"style="">'.$page.'</font>'."页"."第".'<fontcolor="#8000FF"size="15"style="">'.$j.'</font>'."名".$title[0][$i]."<br>";
echo"<ahref='".$url."'>"."点击搜索结果"."</a>"."<br>";
echo"<hr>";
break;
}
}
}
unset($contents);
if($rsState===false){
ggsearch($url_s,$keyword,++$page);//找不到搜索页面的继续往下搜索
}
}else{
echo'关键字'.$keyword.'10页之内没有该网站排名'.'<br>';
echo"<hr>";
}
}
if(!empty($_POST['submit'])){
$time=explode('',microtime());
$start=$time[0]+$time[1];
$more_key=trim($_POST['textarea']);
$url_s=trim($_POST['url']);
if(!empty($more_key)&&!empty($url_s)){
/*判断输入字符的规律*/
if(strstr($more_key,"\n")){
$exkey=explode("\n",$more_key);
}
if(strstr($more_key,"|")){
$exkey=explode("|",$more_key);
}
if(!strstr($more_key,"\n")&&!strstr($more_key,"|")){
$exkey=array($more_key);
}
/*判断是否有www或者http://之类的东西*/
if(count(explode('.',$url_s))<=2){
$url=ltrim($url_s,'http://www');
$url='www.'.$url_s;
}
foreach($exkeyas$keyword){
//$keyword;
ggsearch($url_s,$keyword);
}
$endtime=explode('',microtime());
$end=$endtime[0]+$endtime[1];
echo'<hr>';
echo'程序运行时间:';
echo$end-$start;
//die();
}
}
?>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<title>抓取排名</title>
</head>
<body>
<formaction=""method="post">
<span>关键字:</span><textareaname="textarea"rows="20"cols="40"wrap="off">
格式例如:keyword1|keyword2|keyword3
或者:keyword1
keyword2
keyword3
</textarea>
<span>url地址:</span><inputtype="text"name="url">
<inputtype="submit"name="submit"value="搜索">
</form>
</body>
❻ PHP preg_match抓取关键词
如果你要<div class="nav" monkey="nav">和<div class="head-ad">之间的所有源码,用 preg_match 就可以,不用preg_match_all ,如果你要里面的所有的 <li></li>标签中的内容,可以用preg_match_all
//提取所有代码
$pattern = '/<div class="nav" monkey="nav">(.+?)<div class="head-ad">/is';
preg_match($pattern, $string, $match);
//$match[0] 即为<div class="nav" monkey="nav">和<div class="head-ad">之间的所有源码
echo $match[0];
//然后再提取<li></li>之间的内容
$pattern = '/<li.*?>(.+?)<\/li>/is';
preg_match_all($pattern, $match[0], $results);
$new_arr=array_unique($results[0]);
foreach($new_arr as $kkk){
echo $kkk;
}
❼ php 该如何获取从百度搜索进入网站的关键词
可以获取到用户跳转时最后一次的链接,也就是你拿到用户来源链接后,看看这里面是否包含关键词信息,如果不包含,那就没办法通过开发的方式实现。比如网络搜索,也许可以使用他们的网站统计服务来查看数据,但自己开发,可能不行。
像 MEZW搜索 这种直接跳转的话,就没问题,同样获取来源链接地址,然后从里面提取关键词即可。
❽ PHP中文分词 自动获取关键词介绍
复制代码
代码如下:
<?php
header("Content-Type:text/html;
charset=utf-8");
define('APP_ROOT',
str_replace('\\',
'/',
dirname(__FILE__)));
$test
=
'这里是一段中文测试代码!';
function
get_tags_arr($title)
{
require(APP_ROOT.'/pscws4.class.php');
$pscws
=
new
PSCWS4();
$pscws->set_dict(APP_ROOT.'/scws/dict.utf8.xdb');
$pscws->set_rule(APP_ROOT.'/scws/rules.utf8.ini');
$pscws->set_ignore(true);
$pscws->send_text($title);
$words
=
$pscws->get_tops(5);
$tags
=
array();
foreach
($words
as
$val)
{
$tags[]
=
$val['word'];
}
$pscws->close();
return
$tags;
}
print_r(get_tags_arr($test));
//============================================================
function
get_keywords_str($content){
require(APP_ROOT.'/phpanalysis.class.php');
PhpAnalysis::$loadInit
=
false;
$pa
=
new
PhpAnalysis('utf-8',
'utf-8',
false);
$pa->LoadDict();
$pa->SetSource($content);
$pa->StartAnalysis(
false
);
$tags
=
$pa->GetFinallyResult();
return
$tags;
}
print(get_keywords_str($test));
相关下载地址
SCWS
–
简易中文分词系统
SCWS
在概念上并无创新成分,采用的是自行采集的词频词典,并辅以一定程度上的专有名称、人名、地名、数字年代等规则集,经小范围测试大概准确率在
90%
~
95%
之间,已能基本满足一些中小型搜索引擎、关键字提取等场合运用。
SCWS
采用纯
C
代码开发,以
Unix-Like
OS
为主要平台环境,提供共享函数库,方便植入各种现有软件系统。此外它支持
GBK,UTF-8,BIG5
等汉字编码,切词效率高。
系统平台:Windows/Unix
开发语言:C
使用方式:PHP扩展
演示网址:http://www.ftphp.com/scws/demo.php
开源官网:http://www.ftphp.com/scws/
晴枫附注:作为PHP扩展,容易与现有的基于PHP架构的Web系统继续集成,是其一大优势。
PhpanAlysis -
PHP无组件分词系统
PhpanAlysis分词系统是基于字符串匹配的分词方法
,这种方法又叫做机械分词方法,它是按照一定的策略将待分析的汉字串与一个“充分大的”机器词典中的词条进行配,若在词典中找到某个字符串,则匹配成功(识别出一个词)。按照扫描方向的不同,串匹配分词方法可以分为正向匹配
和逆向匹配;按照不同长度优先匹配的情况,可以分为最大(最长)匹配和最小(最短)匹配;按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。
系统平台:PHP环境
开发语言:PHP
使用方式:HTTP服务
演示网址:http://www.itgrass.com/phpanalysis/
开源官网:http://www.itgrass.com/phpanalysis/
晴枫附注:实现简单,容易使用,能做一些简单应用,但大数据量的计算效率不如前几种。
试用了几个系统,基本分词功能都没什么问题,只是在个别一些词的划分上存在一些差异;对于词性的确定,系统间有所不同。
http://www.jb51.net/codes/40139.html
❾ php 查询 sql 数据库 提取文章关键词
$res=mysql_query("select
*
from
keyword");//查找所有关键词
while($row
=
mysql_fetch_array($rec)){//一次判断,文章中有没有出现该关键词
$str
=
$row['name'];
$rec
=
mysql_query("select
*
from
文章表
where
$title
like
'%$str%'
or
$content
like
'%$str%'");//模糊查询文章标题和内容中出现了的该关键词的数据
$num
=
mysql_num_rows($rec);//文章标题和内容中出现了的该关键词的文章条数
if($num){
echo
$str;
}
}