使用Discuz关键词服务器实现PHP中文分词

不同于使用自己的服务器进行分词,Discuz!在线中文分词服务是基于API返回分词结果的。在项目中,我们只需要一个函数即可方便地进行分词、关键词提取。
以下是根据Discuz!在线分词服务API写的函数,测试可正常运行:

复制代码代码如下:

/**
 * DZ在线中文分词
 * @param $title string 进行分词的标题
 * @param $content string 进行分词的内容
 * @param $encode string API返回的数据编码
 * @return  array 得到的关键词数组
 */
 function dz_segment($title = ‘‘, $content = ‘‘, $encode = ‘utf-8‘){
    if($title == ‘‘){
        return false;
    }
    $title = rawurlencode(strip_tags($title));
    $content = strip_tags($content);
    if(strlen($content)>2400){ //在线分词服务有长度限制
        $content =  mb_substr($content, 0, 800, $encode);
    }
    $content = rawurlencode($content);
    $url = ‘http://keyword.discuz.com/related_kw.html?title=‘.$title.‘&content=‘.$content.‘&ics=‘.$encode.‘&ocs=‘.$encode;
    $xml_array=simplexml_load_file($url);                        //将XML中的数据,读取到数组对象中  
    $result = $xml_array->keyword->result;
    $data = array();
    foreach ($result->item as $key => $value) {
            array_push($data, (string)$value->kw);
    }
    if(count($data) > 0){
        return $data;
    }else{
        return false;
    }
 }

分词示例,通过url访问:

复制代码代码如下:

http://keyword.discuz.com/related_kw.html?title=高三历史全程复习精品教程&content=&ics=utf-8&ocs=utf-8

返回的XML数据:

复制代码代码如下:

<?xml version="1.0" encoding="utf-8" ?>
<total_response>
 <svalid>36000</svalid>
 <keyword>
 <info>
  <count>1</count>
  <errno>0</errno>
  <nextuptime>1291287160</nextuptime>
  <keep>0</keep>
 </info>
 <result>
  <item>
   <kw><![CDATA[高三历史]]></kw>
  </item>
 </result>
 </keyword>
</total_response>

时间: 2024-10-10 10:16:07

使用Discuz关键词服务器实现PHP中文分词的相关文章

对本地Solr服务器添加IK中文分词器实现全文检索功能

在上一篇随笔中我们提到schema.xml中<field/>元素标签的配置,该标签中有四个属性,分别是name.type.indexed与stored,这篇随笔将讲述通过设置type属性的值实现中文分词的检索功能 首先下载IK中文分词项目,下载地址https://code.google.com/archive/p/ik-analyzer/downloads?page=1, 其中除了含有jar包之外,还有三个相关的配置文件 第一步,将IKAnalyzer2012FF_u1.jar添加到项目的WE

Discuz!在线中文分词服务

Discuz!在线中文分词服务是基于API返回分词结果的.在项目中,我们只需要一个函数即可方便地进行分词.关键词提取.以下是根据Discuz!在线分词服务API写的函数,测试可正常运行: 代码代码如下: /** * DZ在线中文分词 * @param $title string 进行分词的标题 * @param $content string 进行分词的内容 * @param $encode string API返回的数据编码 * @return array 得到的关键词数组 */ functi

Sphinx中文分词在discuz 中的应用

Sphinx中文分词在discuz 中的应用. Sphinx-for-chinese是一款专注于中文搜索的全文检索软件,在sphinx的基础上添加了中文处理模块并优化了中文搜索效果.相比而言,以某某论坛几千万数据环境来看,比Coreseek封装的sphinx中文分词+mmseg3组合要好一点 1.准备环境 cd /var/tmp/ wget http://www.sphinx-search.com/downloads/sphinx-for-chinese-2.2.1-dev-r4311.tar.

Thinkphp3.2使用scws中文分词 提取关键词

SCWS 是 Simple Chinese Word Segmentation 的首字母缩写(即:简易中文分词系统).1.下载scws官方提供的类(这里使用的是pscws第四版的)http://www.xunsearch.com/scws/down/pscws4-20081221.tar.bz2下载XDB 词典文件 (这里使用的是utf8简体中文词典包)http://www.xunsearch.com/scws/down/scws-dict-chs-utf8.tar.bz22.解压scws类Ps

PHP实现关键词全文搜索Sphinx及中文分词Coreseek的安装配置

一.需求 实现文章标题中或分类(甚至文章内容)包含搜索词的文章,按照搜索词出现的频率的权重展示. 二.环境 Nginx+PHP+Mysql(系统Centos7). 三.安装 1.安装依赖 yum -y install make gcc gcc-c++ libtool autoconf automake imake mariadb mariadb-server mariadb-devel libxml2-devel expat-devel 2.下载软件包 git clone https://git

(转)Sphinx中文分词安装配置及API调用

这几天项目中需要重新做一个关于商品的全文搜索功能,于是想到了用Sphinx,因为需要中文分词,所以选择了Sphinx for chinese,当然你也可以选择coreseek,建议这两个中选择一个,暂时不要选择原版Sphinx(对中文的支持不是很好).又因为服务器所用 MySQL在当时编译时并没有编译Sphinx扩展,而重新编译MySQL并加入Sphinx暂时又无法实现(项目用到了多台服务器,在不影响现有业务的 情况下不可能去重新编译MySQL的),所以采用的是程序通过API来外部调用Sphin

Solr5.5.1 IK中文分词配置与使用

前言 用过Lucene.net的都知道,我们自己搭建索引服务器时和解决搜索匹配度的问题都用到过盘古分词.其中包含一个词典. 那么既然用到了这种国际化的框架,那么就避免不了中文分词.尤其是国内特殊行业比较多.比如油田系统从勘探.打井.投产等若干环节都涉及一些专业词汇. 再像电商,手机.手机配件.笔记本.笔记本配件之类.汽车,品牌.车系.车型等等,这一系列数据背后都涉及各自领域的专业名次,所以中文分词就最终的目的还是为了解决搜索结果的精确度和匹配度的问题. IK搜索预览 我的univeral Cor

Sphinx中文分词安装配置及API调用

这几天项目中需要重新做一个关于商品的全文搜索功能,于是想到了用Sphinx,因为需要中文分词,所以选择了Sphinx for chinese,当然你也可以选择coreseek,建议这两个中选择一个,暂时不要选择原版Sphinx(对中文的支持不是很好).又因为服务器所用 MySQL在当时编译时并没有编译Sphinx扩展,而重新编译MySQL并加入Sphinx暂时又无法实现(项目用到了多台服务器,在不影响现有业务的 情况下不可能去重新编译MySQL的),所以采用的是程序通过API来外部调用Sphin

2 中文分词工具 jieba 和 HanLP

前言 中文分词有很多种,常见的比如有中科院计算所 NLPIR.哈工大 LTP.清华大学 THULAC .斯坦福分词器.Hanlp 分词器.jieba 分词.IKAnalyzer 等.这里针对 jieba 和 HanLP 分别介绍不同场景下的中文分词应用. jieba 分词 jieba 安装 (1)Python 2.x 下 jieba 的三种安装方式,如下: 全自动安装:执行命令 easy_install jieba 或者 pip install jieba / pip3 install jieb