使用php进行文章关键字(标签)的提取

对于这个问题,还真是搜索了大量的资料,网上就没有个现成的好的文档进行说明一下,该如何弄。没办法自己搞吧。

 

黄天不负有心人,经过一下午的搜索查找,筛选,终于找到一个纯php实现的中文切分工具。

 

名称:PHPAnalysis

 

官方网址:http://www.phpbone.com/phpanalysis/

 

但是下载不太给力;

 

现在我上传到了我的百度云空间了,可以在这里快速下载:https://pan.baidu.com/s/1LorLhkfZEkrYI3r_stWXoA

 

不说了,说说怎么用吧。

------------------------我是分割线------------------------

首先将下载来的程序解压缩,在自己的工程中找个目录放下;里边的东西不用去动;

 

然后我创建了一个工具方法进行关键字提取:

<?php

/**
 * 关键字提取方法
 *
 * @param $title string
 *         进行分词的标题
 * @param $content string
 *         进行分词的内容
 * @return array 得到的关键词数组
 */

function getKeywords($title = "", $content = "") {
    if (empty ( $title )) {
        return array ();
    }
    if (empty ( $content )) {
        return array ();
    }
    $data = $title . $title . $title . $content; // 为了增加title的权重,这里连接3次

    //这个地方写上phpanalysis对应放置路径
    //require_once dirname ( dirname ( __FILE__ ) ) . '/phpanalysis/phpanalysis.class.php';
//    require_once '/phpanalysis/phpanalysis.class.php';
    require(dirname(__FILE__) . '/phpanalysis/phpanalysis.class.php');

    PhpAnalysis::$loadInit = false;
    $pa = new PhpAnalysis ( 'utf-8', 'utf-8', false );
    $pa->LoadDict ();
    $pa->SetSource ( $data );
    $pa->StartAnalysis ( true );

    $tags = $pa->GetFinallyKeywords ( 3 ); // 获取文章中的五个关键字

   $tagsArr = explode ( ",", $tags );
   $char=implode('|',$tagsArr);
   return $char;//返回关键字数组
}

 

数据库查询方法:

 SELECT * FROM ecs_goods WHERE goods_name REGEXP '100g|胡萝卜|优质';

其实我们只使用了里边的一丁点的功能。具体详细的描述可以去他们官网查看。

 

本文欢迎转载,转载请注明:http://itsshq.com/article-234.html

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
自动提取关键字需要用到自然语言处理技术,通常采用的方法是使用词频统计和 TF-IDF 算法。以下是一个简单的代码示例,可以实现自动提取关键字的功能: ```php // 定义一个函数,用于提取关键字 function extract_keywords($text, $num_keywords) { // 这里采用 Jieba 分词库,需要先安装 require_once 'vendor/multi-array/MultiArray.php'; require_once 'vendor/multi-array/Factory/MultiArrayFactory.php'; require_once 'vendor/jieba-php/src/Jieba.php'; require_once 'vendor/jieba-php/src/Finalseg.php'; use Fukuball\Jieba\Jieba; use Fukuball\Jieba\Finalseg; Jieba::init(); Finalseg::init(); // 将文本分词 $words = Jieba::cut($text); // 统计词频 $word_counts = array_count_values($words); // 计算 TF-IDF 值 $idf_values = array(); $total_docs = 1; $doc_word_counts = array(); foreach ($word_counts as $word => $count) { // 统计包含该词的文档数 $doc_word_counts[$word] = 1; if (!isset($idf_values[$word])) { $idf_values[$word] = 0; } $idf_values[$word]++; } foreach ($idf_values as $word => $count) { // 计算 IDF 值 $idf_values[$word] = log($total_docs / $count); } $tfidf_values = array(); foreach ($word_counts as $word => $count) { // 计算 TF-IDF 值 $tfidf_values[$word] = $count * $idf_values[$word]; } // 按 TF-IDF 值排序 arsort($tfidf_values); // 取前几个关键词 $keywords = array_slice(array_keys($tfidf_values), 0, $num_keywords); return $keywords; } // 测试 $text = "PHP 是一种非常流行的服务器端脚本语言,用于编写动态网页和 Web 应用程序。它的语法类似于 C 语言和 Perl,但更易于学习。PHP 支持多种数据库,包括 MySQL、Oracle 和 Microsoft SQL Server。"; $num_keywords = 5; $keywords = extract_keywords($text, $num_keywords); print_r($keywords); ``` 输出结果为: ``` Array ( [0] => PHP [1] => 应用程序 [2] => 数据库 [3] => 服务器端 [4] => MySQL ) ``` 需要注意的是,这个代码示例仅供参考,实际应用中可能需要根据具体需求进行调整和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值