SCWS中文分词,功能函数实例应用
结合前文的demo演示,现写一个实用的功能函数,使用方法:
header('Content-Type:text/html;charset=UTF-8');
$text        = '我是一个中国人,我会C++语言,我也有很多T恤衣服,我想知道奥迪A6与第八代索纳塔哪个油耗低,谢谢花好月圆二手奥拓芽菜好吃悦翔V3怎么样卧槽日系车Q5';
$so          = scws_new();
$getFCstr = scwsFenCi($so,$text,$xattr='');
echo $getFCstr;
echo '<br />--------------------<br />';
echo fenCi2Encode($getFCstr);
/**
* SCWS中文分词
* @param so SCWS对象实例,如:$so = scws_new();
* @param text 待分词的中文文本
* @param xattr 过滤的词性(为空就是不过滤词性)
* @return 返回分好词的字符串(多词空格间隔);失败返回false;
* @author martinzhang
*/
function scwsFenCi($so,$text,$xattr=''){
if(!is_object($so)){return false;} //设定分词词典、规则集、欲分文本字符串的字符集(utf8 和 gbk)
$so->set_charset('utf8'); //强行设定分词所用的词典
//$so->set_dict('D:/Program Files/AppServ/scws/etc/dict.utf8.xdb'); //强行设定分词所用的新词识别规则集(用于人名、地名、数字时间年代等识别)
//$so->set_rule('D:/Program Files/AppServ/scws/etc/rules.utf8.ini'); $so->set_ignore('yes'); //设定分词返回结果时是否去除一些特殊的标点符号之类
$so->set_duality(false); //设定是否将闲散文字自动以二字分词法聚合 //设定分词返回结果时是否复式分割,如“中国人”返回“中国+人+中国人”三个词。
//也可用 1-15 来表示:(1)短词 (2)二元(将相邻的2个单字组合成一个词) (4)重要单字 (8)全部单字
$so->set_multi(0); //发送设定分词所要切割的文本
//执行本函数时,若未加载任何词典和规则集,则会自动试图在 ini 指定的缺省目录下查找缺省字符集的词典和规则集
$so->send_text($text); $getWords = $so->get_words($xattr); //n,nz,un,ns,i
//print_r($getWords);
if(is_array($getWords)){
foreach($getWords as $arrWord){
if(preg_match('/[a-zA-Z0-9]{2,}/',$arrWord['word'],$arrMatch)){
$word_fc .= $arrWord['word'].' ';
}elseif(strlen($arrWord['word'])>=4){
$word_fc .= $arrWord['word'].' ';
}
}
return trim($word_fc);
}else{
return false;
}
} /**
* 分词转码
* @param strKeywords 已经分词的字符串(词间“空格”分隔)
* @return 返回分词的转码字符串
* @author martinzhang
*/
function fenCi2Encode($strKeywords){
$pattern = array('/%/','/\+/');
$replace = array('',' ');
return preg_replace($pattern,$replace,urlencode(trim($strKeywords)));
} /**
* 将搜索关键词 高亮
* @param keywordStr 关键词(多关键词以“空格”分隔)
* @param contentStr 待替换的内容部分
* @param color 设置高亮颜色(默认:#ff0000)
* @return 返回替换后的新内容
* @author martinzhang
*/
function highLightKeyword($keywordStr,$contentStr,$color='#ff0000'){
$arrKW = explode(' ',$keywordStr);
$arrKW = array_unique($arrKW);
$color == '' ? $color = '#ff0000' : $color = $color;
foreach($arrKW as $val){
$contentStr = str_replace($val,"<span style='color:{$color}'>$val</span>",$contentStr);
}
return $contentStr;
}
SCWS中文分词,功能函数实例应用的更多相关文章
- SCWS 中文分词
		
SCWS 中文分词v1.2.3 开源免费的中文分词系统,PHP分词的上乘之选! 首页 下载 演示 文档 关于 服务&支持 API/HTTP 论坛 捐赠 源码@github 文档目录 SCWS- ...
 - SCWS中文分词,词典词性标注详解
		
SCWS中文分词词典条目多达26万条之巨,在整理的时候已经把很多明显不对的标注或词条清理了 ---- 附北大词性标注版本 ----Ag 形语素 形容词性语素.形容词代码为a,语素代码g前面置以A. a ...
 - SCWS中文分词,安装说明(以:Win32环境、utf8字符集为例)
		
SCWS官方网站:http://www.xunsearch.com/scws/ 1. 根据您当前用的 PHP 版本,下载相应已编译好的 php_scws.dll 扩展库. 目前支持 PHP-5. ...
 - ThinkPHP3.2添加scws中文分词
		
前言 前一段时间,公司网站做站内搜索,只简单针对输入的文字进行搜索,作全匹配检索,搜索出来的内容很少.如何达到模糊搜索,匹配到更多的内容成了需要解决的问题.于是,今天想到可以做分词检索,如何对输入的一 ...
 - SCWS中文分词,demo演示
		
上文已经讲了关于SCSW中文分词的安装配置,本节进入demo演示: <?php header('Content-Type:text/html;charset=UTF-8'); echo '< ...
 - Thinkphp3.2使用scws中文分词 提取关键词
		
SCWS 是 Simple Chinese Word Segmentation 的首字母缩写(即:简易中文分词系统).1.下载scws官方提供的类(这里使用的是pscws第四版的)http://www ...
 - SCWS中文分词PHP扩展详细安装说明
		
因最近写的一段代码,需要用到中文分词,在网上找了一下,发现了scws这个不错的插件,故根据文档安装使用,下面记录下安装的全过程 系统:centos 安装scws wget http://www.xun ...
 - SCWS中文分词,向xdb词库添加新词
		
SCWS是个不错的中文分词解决方案,词库也是hightman个人制作,总不免有些不尽如人意的地方.有些词语可能不会及时被收入词库中. 幸好SCWS提供了词库XDB导出导入词库的工具(phptool_f ...
 - 基于Tire树和最大概率法的中文分词功能的Java实现
		
对于分词系统的实现来说,主要应集中在两方面的考虑上:一是对语料库的组织,二是分词策略的制订. 1. Tire树 Tire树,即字典树,是通过字串的公共前缀来对字串进行统计.排序及存储的一种树形结构 ...
 
随机推荐
- (原创)python发送邮件
			
这段时间一直在学习flask框架,看到flask扩展中有一个mail插件,所以今天就给大家演示如果发邮件. 首先我注册了一个163邮箱,需要开启smtp功能,因为咱们python发送邮件经过的是smt ...
 - Jenkins CLI 通过ssh方式链接时的证书
			
在Jenkins自己的配置文档下,并没有详细说明要如何生成ssh证书,不过随便网上查一查就会有很多. 这里记录一个坑: 这个ssh必须要用ssh2!!! 这个ssh必须要用ssh2!!! 这个ssh必 ...
 - Lua学习笔记(7): 模块
			
模块 模块就像是c语言工程项目目录里的.h.c文件或外部依赖项,为某一个文件的代码提供依赖,其实就是把工作分成几个模块,方便项目的管理,提高开发效率和维护效率 在Lua中,模块其实就是一个表,实现方式 ...
 - 【转载】IntelliJ IDEA 2017常用快捷键
			
IntelliJ IDEA 是一款致力于提供给开发工程师沉浸式编程体验的IDE工具,所以在其中提供了很多方便高效的快捷键,一旦熟练掌握,整个开发的效率和体验将大大提升.本文就按照笔者自己日常开发时的使 ...
 - 拉格朗日乘子法与KKT条件 && SVM中为什么要用对偶问题
			
参考链接: 拉格朗日乘子法和KKT条件 SVM为什么要从原始问题变为对偶问题来求解 为什么要用对偶问题 写在SVM之前——凸优化与对偶问题 1. 拉格朗日乘子法与KKT条件 2. SVM 为什么要从原 ...
 - Scrum立会报告+燃尽图(十月十六日总第七次):总结工作经验,商讨未来策略
			
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2197 Scrum立会master:李文涛 一.小组介绍 组长:付佳 组员 ...
 - scrum立会报告+燃尽图(第三周第三次)
			
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2286 项目地址:https://coding.net/u/wuyy694 ...
 - ZOJ 1842	Prime Distance(素数筛选法2次使用)
			
Prime Distance Time Limit: 2 Seconds Memory Limit: 65536 KB The branch of mathematics called nu ...
 - lintcode-511-交换链表当中两个节点
			
511-交换链表当中两个节点 给你一个链表以及两个权值v1和v2,交换链表中权值为v1和v2的这两个节点.保证链表中节点权值各不相同,如果没有找到对应节点,那么什么也不用做. 注意事项 你需要交换两个 ...
 - Java 成员初始化顺序
			
package com.cwcec.test; class Fu { int num = 5; //构造代码块 { System.out.println("Fu constructor co ...