用户名:
密 码: 记住
您当前的位置:首页 > 网络编程 > php教程

php 利用scws实现mysql全文搜索功能

时间:2015-01-23  来源:西部数据  作者:西部数据

scws这样的中文分词插件比较不错,简单的学习了一下,它包涵一些专有名称、人名、地名、数字年代等规则集合,可以直接将语句按这些规则分开成一个一个关键词,准确率在90%-95%之间,按照安装说明把scws的扩展放入php的扩展目录里,下载规则文件和词典文件,并在php配置文件中引用它们,就可以用scws进行分词了.

1) 修改 php 扩展代码以兼容支持 php 5.4.x

2) 修正 php 扩展中 scws_get_tops 的 limit 参数不允许少于 10 的问题

3) libscws 增加 scws_fork() 从既有的 scws 实例产生分支并共享词典/规则集,主要用于多线程开发.

4) 新增部分版本的 win32 的 dll 扩展

PHP实例代码如下:

  1. <?php 
  2. //实例化分词插件核心类 
  3. $so = scws_new(); 
  4. //设置分词时所用编码 
  5. $so->set_charset(‘utf-8’); 
  6. //设置分词所用词典(此处使用utf8的词典) 
  7. $so->set_dict('/path/dict.utf8.xdb'); 
  8. //设置分词所用规则 
  9. $so->set_rule('/path/rules.utf8.ini '); 
  10. //分词前去掉标点符号 
  11. $so->set_ignore(true); 
  12. //是否复式分割,如“中国人”返回“中国+人+中国人”三个词。 
  13. $so->set_multi(true); 
  14. //设定将文字自动以二字分词法聚合 
  15. $so->set_duality(true); 
  16. //开源代码phpfensi.com 
  17. //要进行分词的语句 
  18. $so->send_text(“欢迎来到火星时代IT开发”); 
  19. //获取分词结果,如果提取高频词用get_tops方法 
  20. while ($tmp = $so->get_result()) 
  21.   print_r($tmp); 
  22. $so->close(); 
  23. ?> 

注:如以上例子,输入的文字,词典,规则文件这三者的字符集必须统一,另外mysql 4.XX有的是不支持中文全文搜索的,可以存入关键字对应的区位码以方便全文搜索.

版本列表

版本 类型 平台 性能 其它

SCWS-1.1.x C 代码 *Unix*/*PHP* 准确: 95%, 召回: 91%, 速度: 1.2MB/sec

PHP扩展分词速度: 250KB/sec [下载] [文档] [安装说明]

php_scws.dll(1) PHP扩展库 Windows/PHP 4.4.x 准确: 95%, 召回: 91%,

php_scws.dll(2) PHP扩展库 Windows/PHP 5.2.x 准确: 95%, 召回: 91%,

php_scws.dll(3) PHP扩展库 Windows/PHP 5.3.x 准确: 95%, 召回: 91%,  

php_scws.dll(4) PHP扩展库 Windows/PHP 5.4.x 准确: 95%, 召回: 91%,

PSCWS23 PHP源代码 不限 (不支持UTF-8) 准确: 93%, 召回: 89%,

PSCWS4 PHP源代码 不限 准确: 95%, 召回: 91%,

来顶一下
返回首页
返回首页
推荐资讯
WiFi太不安全:7岁女孩11分钟内入侵公共网络 WiFi太不安全:7岁女孩11分钟内入侵近期刚刚发布研究说WiFi网络能获得人们手机里多少私人信息,
不服跑个分?人工智能也出现“刷分”乱象 不服跑个分?人工智能也出现“刷分2014年,人工智能领域突然爆发,成为了科研和科技创业的热门
相关文章
    无相关信息
栏目更新
栏目热门