❶ 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;
}
}