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


Posted in PHP onDecember 25, 2015

本文实例讲述了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_charset('utf8'); //编码
// 这里没有调用 set_dict 和 set_rule 系统会自动试调用 ini 中指定路径下的词典和规则文件 
$so->add_dict(ini_get('scws.default.fpath') . '/dict.utf8.xdb');
//$so->add_dict('./dd.txt',SCWS_XDICT_TXT);
$so->set_rule(ini_get('scws.default.fpath') . '/rules.utf8.ini'); 
$so->set_duality(0);  //散字二元 
$so->set_ignore(0); //忽略标点符号
$so->set_multi(0); 
$wd='要搜索的内容';
$so->send_text($wd); 
while($tmp = $so->get_result())
//遍历后即得到字符串分割后的内容,
//根据得到的内容分别到数据库中查找(like匹配)
{
}

亲自试验了一下如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test</title>
</head>
<body>
<?php
function search($keywords,$table,$key1,$key2){
// (要查找的字符串,表名,字段一,字段二)如果就一个字段的话,$key2='';
 $arr=array();
 $str=array(); 
 if( preg_match("/^[^\x80-\xff]+$/", $keywords)){//判断keywords是否全为英文,全为英文的话按照字符串切割处理
 $str1=explode(' ',$keywords); //先按照空格切割
 foreach($str1 as $key=>$value)
 {
  $str2=explode(',',$value); //,切割
  foreach($str2 as $k=>$v)
  {
  $str3=explode('.',$v); //。切割
  foreach($str3 as $kk=>$vv)
  {
   array_push($arr,$vv);//处理完后,返回一个数组
  }
  }
 }
 }else{//对中文的分词处理
 $so = scws_new(); 
 $so->set_charset('utf8'); 
  // 这里没有调用 set_dict 和 set_rule 系统会自动试调用 ini 中指定路径下的词典和规则文件 
   $so->add_dict(ini_get('scws.default.fpath') . '/dict.utf8.xdb');
   $so->set_rule(ini_get('scws.default.fpath') . '/rules.utf8.ini'); 
   $so->set_duality(0);  //散字二元 
  $so->set_ignore(0); //忽略标点符号
  $so->set_multi(0);
 $so->send_text($keywords);
 while ($tmp = $so->get_result())//得到一个数组,里面包含词组和标点符号
 {
  foreach($tmp as $key=>$value)
  {
  $value=$value["word"];
  if(preg_match("/^[一-?]{6,21}$/", $value))//去除标点符号
  {
   array_push($arr,$value);
  }
  }
 }
 }
 foreach($arr as $key=>$value)//便利得到的数组,到数据库中匹配
 {
 if($key2!='')
 {
  $sql="select * from `$table` where `$key1` like '%$value%' or `$key2` like '%$value%'";
 }else{
  $sql="select * from `$table` where `$key1` like '%$value%'";
 }
 $query=mysql_query($sql);
 array_push($str,$query);
 }
 return $str;
}
include('conn.php');
$keywords="哈哈lsd djk,hdjs dd";
$table='two_key';
$key1='address';
$key2='';
$query=search($keywords,$table,$key1,$key2);
foreach($query as $key=>$value)
{
 while($row=mysql_fetch_array($value))
 {
 echo $row[id].'----'.$row[name].'-----'.$row[address].'<br>';
 }
}
?>
</body>
</html>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
15个小时----从修改程序到自己些程序
Oct 09 PHP
php上传、管理照片示例
Oct 09 PHP
php 用sock技术发送邮件的函数
Jul 21 PHP
PHP获取数组中某元素的位置及array_keys函数应用
Jan 29 PHP
PHP实现多进程并行操作的详解(可做守护进程)
Jun 18 PHP
php自动加载autoload机制示例分享
Feb 20 PHP
PHP的魔术常量__METHOD__简介
Jul 08 PHP
浅析PHP程序设计中的MVC编程思想
Jul 28 PHP
PHP中ini_set与ini_get用法实例
Nov 04 PHP
基于php实现的php代码加密解密类完整实例
Oct 12 PHP
PHP中的函数声明与使用详解
May 27 PHP
使用Zookeeper分布式部署PHP应用程序
Mar 15 PHP
php自定义分页类完整实例
Dec 25 #PHP
php导出生成word的方法
Dec 25 #PHP
大家都应该掌握的PHP关联数组使用技巧
Dec 25 #PHP
[原创]PHP实现逐行删除文件右侧空格的方法
Dec 25 #PHP
PHP操作MySQL的mysql_fetch_* 函数的常见用法教程
Dec 25 #PHP
php通过淘宝API查询IP地址归属等信息
Dec 25 #PHP
php实现统计目录文件大小的函数
Dec 25 #PHP
You might like
在PHP中使用灵巧的体系结构
2006/10/09 PHP
php简单smarty入门程序实例
2015/06/11 PHP
PHP图形计数器程序显示网站用户浏览量
2016/07/20 PHP
可以文本显示的公告栏的js代码
2007/03/11 Javascript
js 图片等比例缩放代码
2010/05/13 Javascript
表单切换,用回车键替换Tab健(不支持IE)
2011/07/20 Javascript
jQuery源码分析-01总体架构分析
2011/11/14 Javascript
js/jquery获取文本框输入焦点的方法
2014/03/04 Javascript
jQuery使用之处理页面元素用法实例
2015/01/19 Javascript
JavaScript学习笔记之Function对象
2015/01/22 Javascript
Ionic默认的Tabs模板使用实例
2016/08/29 Javascript
基于angular中的重要指令详解($eval,$parse和$compile)
2016/10/21 Javascript
javascript入门之window对象【新手必看】
2016/11/22 Javascript
原生js更改css样式的两种方式
2017/03/15 Javascript
详解 vue.js用法和特性
2017/10/15 Javascript
深入理解JS的事件绑定、事件流模型
2018/05/13 Javascript
angularjs1.5 组件内用函数向外传值的实例
2018/09/30 Javascript
深入浅出vue图片路径的实现
2019/09/04 Javascript
js HTML DOM EventListener功能与用法实例分析
2020/04/27 Javascript
浅谈Vue使用Elementui修改默认的最快方法
2020/12/05 Vue.js
详解Python Socket网络编程
2016/01/05 Python
Python 安装第三方库 pip install 安装慢安装不上的解决办法
2019/06/18 Python
python中bs4.BeautifulSoup的基本用法
2019/07/27 Python
tensorflow实现对张量数据的切片操作方式
2020/01/19 Python
使用HTML5 IndexDB存储图像和文件的示例
2018/11/05 HTML / CSS
Sneaker Studio波兰:购买运动鞋
2018/04/28 全球购物
市场营销方案范文
2014/03/11 职场文书
班级课外活动总结
2014/07/09 职场文书
人力资源管理专业求职信
2014/07/23 职场文书
离婚案件原告代理词
2015/05/23 职场文书
机器人总动员观后感
2015/06/09 职场文书
导游词之重庆钓鱼城
2019/09/19 职场文书
数据库连接池
2021/04/06 MySQL
Java使用httpRequest+Jsoup爬取红蓝球号码
2021/07/02 Java/Android
详解Python中*args和**kwargs的使用
2022/04/07 Python
分享几个实用的CSS代码块
2022/06/10 HTML / CSS