本篇章节讲解PHP实现的最大正向匹配算法。分享给大家供大家参考,具体如下:
正向最大匹配算法:从左到右将待分词文本中的几个连续字符与词表匹配,如果匹配上,则切分出一个词。但这里有一个问题:要做到最大匹配,并不是第一次匹配到就可以切分的 。
函数中包含三个参数:
词典示例:
'编程之家','脚本下载'=>'脚本下载','JS编程'=>'JS编程'
);
函数定义:
$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,$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相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》及《》
希望本文所述对大家PHP程序设计有所帮助。 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|