php+scws中文分词查询
注意:
- php需安装scws扩展 需要引
- 入分词词典和分词规则,可在php.ini中设置路径,也可在代码中设置路径
官方简介
SCWS 是 Simple Chinese Word Segmentation 的首字母缩写(即:简易中文分词系统)。
这是一套基于词频词典的机械式中文分词引擎,它能将一整段的中文文本基本正确地切分成词。 词是中文的最小语素单位,但在书写时并不像英语会在词之间用空格分开, 所以如何准确并快速分词一直是中文分词的攻关难点。
SCWS 采用纯 C 语言开发,不依赖任何外部库函数,可直接使用动态链接库嵌入应用程序, 支持的中文编码包括 GBK、UTF-8 等。此外还提供了 PHP 扩展模块, 可在 PHP 中快速而方便地使用分词功能。
分词算法上并无太多创新成分,采用的是自己采集的词频词典,并辅以一定的专有名称,人名,地名, 数字年代等规则识别来达到基本分词,经小范围测试准确率在 90% ~ 95% 之间,基本上能满足一些小型搜索引擎、关键字提取等场合运用。首次雏形版本发布于 2005 年底。
官网地址:http://www.xunsearch.com/scws/
scws官方分词演示地址:http://www.xunsearch.com/scws/demo/v48.php
少废话,上代码
$word = \'女士电脑冰箱1\';// 检查scws_new函数是否存在if (!function_exists(\'scws_new\')) return false;$so = scws_new(); //实例化// 这里没有调用 set_dict 和 set_rule 系统会自动试调用 ini 中指定路径下的词典和规则文件//设置分词所用词典(此处使用utf8的词典)$so->set_dict(APP_ROOT.\'/lib/scws_lib/dict.utf8.xdb\');//设置分词所用规则$so->set_rule(APP_ROOT.\'/lib/scws_lib/rules.utf8.ini\');//词前去掉标点符号$so->set_ignore(true);//是否散字自动二元$so->set_duality(true);//设置编码格式$so->set_charset(\'utf-8\');$so->send_text($word);$words = [];while ($tmp = $so->get_result()){foreach($tmp as $key=>$val){// 过滤数字和单个字if( !is_numeric($val[\'word\']) && mb_strlen($val[\'word\']) >= 2 ){$words[] = $val[\'word\'];}}}$so->close();// 分词去重$words = array_unique($words);// 输出:// [\'女士\',\'冰箱\',\'电脑\']
完 ···