需求:做SEO的keywords时,需要从标题或者正文里提取关键字
1.PHPAnalysis下载地址
https://github.com/feixuekeji/PHPAnalysis
下载后解压放到extend目录下(以tp5为例,其他目录也行)
2.封装
<?php
/**
* @auther: xxf
* Date: 2019/8/19
* Time: 11:04
*/
namespace WordAnalysis;
/**
* 中文分词提取关键字
*/
class Analysis
{
/**
* Notes:关键字提取
* @auther: xxf
* Date: 2019/8/19
* Time: 11:09
* @param string $content
* @param int $num 获取数量
* @return string
*/
public static function getKeywords($content = "",$num = 3) {
if (empty ( $content )) {
return '';
}
require_once 'phpanalysis.class.php';
\PhpAnalysis::$loadInit = false;
$pa = new \PhpAnalysis ( 'utf-8', 'utf-8', false );
$pa->LoadDict ();
$pa->SetSource ($content);
$pa->StartAnalysis ( true );
$tags = $pa->GetFinallyKeywords ($num); // 获取文章中的n个关键字
return $tags;//返回关键字
}
}
使用
$data['seo']['keyword'] = Analysis::getKeywords($article_info['title']);
========================================================================
根据上例,自己把下载的这个类库放到extend文件夹中
在控制器中,引用这个类库:
import('WordAnalysis.Analysis', EXTEND_PATH,'.php');
在方法中
/**
* 分词查询
* @return [type] [description]
*/
public function fenciselect(){
$obj = new \WordAnalysis\Analysis();
$title="碳fdd的风格的法国红酒法国还法师风格";
$keyword = $obj::getKeywords($title);
var_dump($keyword);
}
前台输出的结果是
string(24) "风格,法国,fdd,红酒"