您的位置:首页 > 编程语言 > PHP开发

最大正向匹配算法 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;}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: