使用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>

(0)

相关推荐

  • PHPAnalysis中文分词类详解

    PHPAnalysis是目前广泛使用的中文分词类,使用反向匹配模式分词,因此兼容编码更广泛,现将其变量与常用函数详解如下: 一.比较重要的成员变量 $resultType   = 1        生成的分词结果数据类型(1 为全部, 2为 词典词汇及单个中日韩简繁字符及英文, 3 为词典词汇及英文)                                    这个变量一般用 SetResultType( $rstype ) 这方法进行设置.$notSplitLen  = 5     

  • PHP中文分词的简单实现代码分享

    当然, 本文不是要对中文搜索引擎做研究, 而是分享如果用 PHP 做一个站内搜索引擎. 本文是这个系统中的一篇. 我使用的分词工具是中科院计算所的开源版本的 ICTCLAS. 另外还有开源的 Bamboo, 我随后也会对该工具进行调研. 从 ICTCLAS 出发是个不错的选择, 因为其算法传播比较广泛, 有公开的学术文档, 并且编译简单, 库依赖少. 但目前只提供了 C/C++, Java 和 C# 版本的代码, 并没有 PHP 版本的代码. 怎么办呢? 也许可以学习它的 C/C++ 源码和学术

  • 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 PSCWS

  • php实现的中文分词类完整实例

    本文实例讲述了php实现的中文分词类.分享给大家供大家参考,具体如下: 该中文分词类源码使用http://tools.jb51.net/code/jb51_php_format进行了格式化处理,便于阅读.具体代码如下: class Segmentation { var $options = array('lowercase' => TRUE, 'segment_english' => FALSE); var $dict_name = 'Unknown'; var $dict_words = a

  • php实现scws中文分词搜索的方法

    本文实例讲述了php实现scws中文分词搜索的方法.分享给大家供大家参考,具体如下: 1.4个文件(本站下载地址.)解压后,放到一个地方 eg:E:/wamp/scws 2.php.ini 中配置 extension = php_scws.dll scws.default.charset = utf8 //配置默认的编码方式 scws.default.fpath = "E:/wamp/scws" //加压后文件的路径 3.使用 $so = scws_new(); $so->set

  • 开源php中文分词系统SCWS安装和使用实例

    一.SCWS简介 SCWS 是 Simple Chinese Word Segmentation 的首字母缩写(即:简易中文分词系统).这是一套基于词频词典的机械式中文分词引擎,它能将一整段的中文文本基本正确地切分成词. 词是中文的最小语素单位,但在书写时并不像英语会在词之间用空格分开, 所以如何准确并快速分词一直是中文分词的攻关难点.SCWS 采用纯 C 语言开发,不依赖任何外部库函数,可直接使用动态链接库嵌入应用程序, 支持的中文编码包括 GBK.UTF-8 等.此外还提供了 PHP 扩展模

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

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

  • asp中利用CSW中文分词组件来实现自己网站的内容关键词自动提取

    比如标题是:腾讯QQ 2006 珊瑚虫集成版 v4.5b 分词后:[此资源关键词:腾讯 QQ 珊瑚虫 集成 ] 并且把关键词做成专题,可以为每个内容页面生成相关连接了 用CSW中文分词组件 下载:http://www.vgoogle.net/Product_CSW.asp 下面是我的ASP代码,比较粗浅,但实用 codecsw 得到输出的所有分词结果,用它的组建里面有个ASP文件,你一看就知道怎么得到分词结果了,这个不详细说了. 复制代码 代码如下: fcon=split(htm," "

  • iOS中自带超强中文分词器的实现方法

    说明 在处理文本的时候,第一步往往是将字符串进行分词,得到一个个关键词.苹果从很早就开始支持中文分词了,而且我们几乎人人每天都会用到,回想一下,在使用手机时,长按一段文字,往往会选中按住位置的一个词语,这里就是一个分词的绝佳用例,而iOS自带的分词效果非常棒,大家可以自己平常注意观察一下,基本对中文也有很好的效果.而这个功能也开放了API供开发者调用,我试用了一下,很好用! 效果如下: 实现 其实苹果给出了完整的API,想要全面了解的可以直接看文档:CFStringTokenizer Refer

  • Python结巴中文分词工具使用过程中遇到的问题及解决方法

    本文实例讲述了Python结巴中文分词工具使用过程中遇到的问题及解决方法.分享给大家供大家参考,具体如下: 结巴分词是Python语言中效果最好的分词工具,其功能包括:分词.词性标注.关键词抽取.支持用户词表等.这几天一直在研究这个工具,在安装与使用过程中遇到一些问题,现在把自己的一些方法帖出来分享一下. 官网地址:https://github.com/fxsjy/jieba 1.安装. 按照官网上的说法,有三种安装方式, 第一种是全自动安装:easy_install jieba 或者 pip

  • python中文分词,使用结巴分词对python进行分词(实例讲解)

    在采集美女站时,需要对关键词进行分词,最终采用的是python的结巴分词方法. 中文分词是中文文本处理的一个基础性工作,结巴分词利用进行中文分词. 其基本实现原理有三点: 1.基于Trie树结构实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图(DAG) 2.采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合 3.对于未登录词,采用了基于汉字成词能力的HMM模型,使用了Viterbi算法 安装(Linux环境) 下载工具包,解压后进入目录下,运行:python set

  • Python3爬虫中关于中文分词的详解

    原理 中文分词,即 Chinese Word Segmentation,即将一个汉字序列进行切分,得到一个个单独的词.表面上看,分词其实就是那么回事,但分词效果好不好对信息检索.实验结果还是有很大影响的,同时分词的背后其实是涉及各种各样的算法的. 中文分词与英文分词有很大的不同,对英文而言,一个单词就是一个词,而汉语是以字为基本的书写单位,词语之间没有明显的区分标记,需要人为切分.根据其特点,可以把分词算法分为四大类: ·基于规则的分词方法 ·基于统计的分词方法 ·基于语义的分词方法 ·基于理解

  • docker 安装solr8.6.2 配置中文分词器的方法

    一.环境版本 Docker version 19.03.12 centos7 solr8.6.2 二.docker安装 1.使用官方安装脚本自动安装 curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 2.使用国内 daocloud 一键安装命令: curl -sSL https://get.daocloud.io/docker | sh 三.docker安装solr8.6.2 1.docker拉取solr doc

  • 几款开源的中文分词系统

    以下介绍4款开源中文分词系统. 1.ICTCLAS – 全球最受欢迎的汉语分词系统 中文词法分析是中文信息处理的基础与关键.中国科学院计算技术研究所在多年研究工作积累的基础上,研制出了汉语词法分析系统ICTCLAS(Institute of Computing Technology, Chinese Lexical Analysis System),主要功能包括中文分词:词性标注:命名实体识别:新词识别:同时支持用户词典:支持繁体中文:支持GBK.UTF-8.UTF-7.UNICODE等多种编码

  • Python中文分词工具之结巴分词用法实例总结【经典案例】

    本文实例讲述了Python中文分词工具之结巴分词用法.分享给大家供大家参考,具体如下: 结巴分词工具的安装及基本用法,前面的文章<Python结巴中文分词工具使用过程中遇到的问题及解决方法>中已经有所描述.这里要说的内容与实际应用更贴近--从文本中读取中文信息,利用结巴分词工具进行分词及词性标注. 示例代码如下: #coding=utf-8 import jieba import jieba.posseg as pseg import time t1=time.time() f=open(&q

随机推荐