最大正向匹配算法 PHP实现
2016-03-25 18:02
507 查看
字符串最大正向匹配算法说明可以参考其他文章,这里只做实现。
三个参数:查询词 $query,词典$dict,最大长度,这里设置为15
词典示例:
$dict = array('测试字符'=>'测试字符', '测试'=>'测试',)
public function extractWords($query,$dict,$max_len=15){$feature = "";$slen=mb_strlen($query,'UTF8');$c_bg = 0;while($c_bg<$slen){$matched = false;$c_len =(($slen-$c_bg)>$max_len)?$max_len:($slen-$c_bg);$t_str = mb_substr($query, $c_bg,$c_len,'UTF8');for($i=$c_len;$i>1;$i--){$ttts = mb_substr($t_str, 0,$i,'UTF8');if(!empty($dict[$ttts])){// echo 'matched = '.$ttts.PHP_EOL;$matched = true;$c_bg += $i;if(!empty($feature)){$feature.=",";}$feature.=$ttts;break;}}if(!$matched){$c_bg++;}}echo $feature.PHP_EOL;}
相关文章推荐
- php三种基础算法:冒泡,插入和快速排序法
- thinkphp在新浪SAE平台的部署
- 关于phpstudy安装的问题
- php 写一个水仙花数的函数
- PHP运算符优先级
- PHP实现基本认证
- PHP中与Perl兼容的正则表达式处理函数
- php strcmp 进行字符串二进制比较
- 【php爬虫】百万级别知乎用户数据爬取与分析
- PHP合并数组
- PHP7 扩展之自动化测试
- PHP7 扩展之自动化测试
- 搭建php开发环境
- 四大组件之ContentProvider
- PHP 函数
- php单例
- FTPClient文件下载
- Laravel整合UEditor编辑器使用阿里云OSS存储(二)改造UEditor上传OSS
- FTP上传
- php实现斐波那契数列的三种方法,递归回调和迭代器和数组之间性能对比